--- SpinDemo ---


SpinDemo är ett program för att visualisera spinnvektorer och påverkan av tex excitation, relaxation.

SpinDemo kan användas på olika sätt, dels interaktivt genom att direkt ange rotation runt x- eller y-axlar eller med hjälp av skript för att excekvera en serie av kommandon. Enklaste sättet att skapa ett skript är att skriva in texten i en enkel texthanterare tex Anteckningar eller Texthanteraren och kopiera och klistra in texten i Skriptfältet. Se nedan för tillgängliga kommandon.

SpinDemo bygger på Bloch-ekvationerna för att visualisera effekten av rotation och relaxation i spinnsystem. Varje spinnsystem innehåller 101 spinnvektorer. Spinnvektorer som ökar i fas är blå, spinnvektorer som minskar i fas är röda. Gul spinnvektor utgör referensfas. Sk. 'Off resonance'-effekter simuleras med linjärt ökande/minskande fasskift.

DEMO-exempel finns som demonstrerar olika spinnrelaterade fenomen. De visar även på möjlig användning av olika kommandon i skript:

- 'TSE' visar effekten av T2 och T2* i en 3-eko TSE excitation.

- 'Long Eq' visar hur longitudinell jämvikt uppnås för olika T1/T2. Ändra T1/T2 och även värdet för XROT på rad 007 i skriptet för att se hur annat jämviktsläge etableras.

- 'STIR' visar effekten av en inversionpuls. TI är vald föra att "nolla" system med kort T1. Ändra värdet för Delay på rad 008 i skriptet to null system föra att "nolla" system med annat T1. (Delay = 0.69*T1)

- 'SSFP' ger en visuell beskrivning av fasutvecklingen med en SSFP sekvens olika kraftig sk off-resonance. För att istället se effekten av olika T1/T2: sätt värdet för doOff på rad 004-006 till tex 1050/2050/3050. Ändra värdet på T1/T2 för resp spinnsystem på rad 001-003.

- 'TrippleIR' visar möjligheten att "nolla" två olika spinnsystem med 3 IR pulses. En kombination av selektiva och icke-selektiva IR pulser "nollar" signalen från två spinnsystem.

- 'Sel Excite' visar 1331-excitationspuls för frekvensselektiv excitation.

Kommandon skrivs rad för rad i en enkel texthanterare, kopieras och klistras in i skriptfältet.
Syntax: Radnr Kommando Param1 Param2. Mellanslag används som avskiljare.
Radnr måste skrivas in som 001, 002 etc men har ingen betydelse utom för 000 = Kommentar och FAtab som måste börja på 101.
Se Demo för exempel på olika skript.

Kommando Param1 Param2 Betydelse
1T1T2 T1(tics) T2(tics) Anger T1 och T2 för system 1.
2T1T2 T1(tics) T2(tics) Anger T1 och T2 för system 2.
3T1T2 T1(tics) T2(tics) Anger T1 och T2 för system 3.
doOff 0/(tics/180°) Disable/enable "Off resonance". Addera 1000/2000/3000 för att speciellt välja spinnsystem 1/2/3.
doFqS 0/(tics/180°) Disable/enable frekvens skift (System1 -(tics/180°), System3 +(tics/180°)).
do<FA x(%) Disable/enable olika flipp-vinkel (System1 -x% System3, +x% FA in XYRot, FRot).
Delay tics Väntetid.
XRot grader Rotation runt x-axeln.
YRot grader Rotation runt y-axeln.
ZRot grader Rotation runt z-axeln.
FRot grader fas Rotation runt specifiserad axel i xy-planet.
fas = vinkel från x-axel.
XYRot Rotation angiven i tabell FAtab.
FAtab grader fas Tabell med rotationsparametrar som excekveras av XYRot kommandot. Radnr 101-300.
SelInv 100+10+1 Inversion av spinnpopulation. System väljs genom att addera 100+10+1.
Spoil 0/1(bool) Sätt Sxy = 0.
Loop LoopCnt Start på block med kommandon som repeteras LoopCnt antal gånger.
EndLoop Rad Slut på repetitionsblock. Rad = Radnr för Loop-kommando.

Kommandon och parametrar kan skrivas in och ändras i skriptfältet.
T1 och T2 värden kan ändras i sina resp fält.
Tiden definieras i "tics". Ett "tic" är approx. 25ms på en tillräckligt snabb dator.

SpinDemo är utvecklat i Eclipse Java.
/PG