Initial test of matching

This commit is contained in:
2025-05-28 10:24:57 +02:00
parent 85360da68e
commit 031c38b89a
3 changed files with 569 additions and 0 deletions

86
Scripts/switchyard.madx Normal file
View File

@@ -0,0 +1,86 @@
MATCH,SEQUENCE=swissfel,range=#s/#e,betx=betax0,alfx=alphax0,bety=betay0,alfy=alphay0;
VARY, NAME=satsy01.mqua020.k1, STEP=0.00001,LOWER=-4,UPPER=4;
VARY, NAME=satsy01.mqua040.k1, STEP=0.00001,LOWER=Kmin,UPPER=Kmax;
VARY, NAME=satsy01.mqua070.k1, STEP=0.00001,LOWER=Kmin,UPPER=Kmax;
VARY, NAME=satsy01.mqua090.k1, STEP=0.00001,LOWER=Kmin,UPPER=Kmax;
CONSTRAINT, SEQUENCE=swissfel, RANGE=satsy01.mbnd200, DX = 0.082; !
CONSTRAINT, SEQUENCE=swissfel, RANGE=satsy01.mbnd200, DPX = 0.0084;
!CONSTRAINT, SEQUENCE=swissfel, RANGE=satsy01.mbnd200, DPX = DPXM*1.2;
CONSTRAINT, SEQUENCE=swissfel, RANGE=satsy01.mbnd200, DY < 0.09;
CONSTRAINT, SEQUENCE=swissfel, RANGE=satsy01.mbnd200, DPY < 1;
LMDIF, CALLS=1000, TOLERANCE=1.E-21;
ENDMATCH;
!-------------------------------------
! match second half of SATSY01 - closing dispersion
if (initquads ==1){
satsy01.mqua210.k1=satsy01.mqua090.k1;
satsy01.mqua230.k1=satsy01.mqua070.k1;
satsy01.mqua260.k1=satsy01.mqua040.k1;
satsy01.mqua280.k1=satsy01.mqua020.k1;
satsy01.mqua300.k1 := 5.27400e-01;
}
DXS = -0.030;
DPXS = -0.001;
MATCH,SEQUENCE=swissfel,range=#s/#e,betx=betax0,alfx=alphax0,bety=betay0,alfy=alphay0;
VARY, NAME=satsy01.mqua280.k1, STEP=0.00001,LOWER=-4,UPPER=4;
VARY, NAME=satsy01.mqua300.k1, STEP=0.00001,LOWER=Kmin,UPPER=Kmax;
CONSTRAINT, SEQUENCE=swissfel, RANGE=satsy01$end, DX = DXS;
CONSTRAINT, SEQUENCE=swissfel, RANGE=satsy01$end, DPX =DPXS;
CONSTRAINT, SEQUENCE=swissfel, RANGE=satsy01$end, X < 0.1;
LMDIF, CALLS=1000, TOLERANCE=1.E-21;
ENDMATCH;
matching.xdispersion=TAR;
!------------------------------------------
! close vertical dispersion
if (initquads==1){
satsy02.mqua010.k1 := - 1.71;
satsy02.mqua110.k1 := 1.22622;
satsy02.mqua120.k1 := 1.64073;
satsy02.mqua230.k1 = -1.61620;
}
MATCH,SEQUENCE=swissfel,range=#s/#e,betx=betax0,alfx=alphax0,bety=betay0,alfy=alphay0;
VARY, NAME=satsy02.mqua010.k1, STEP=0.00001,LOWER=Kmin,UPPER=Kmax;
VARY, NAME=satsy02.mqua110.k1, STEP=0.00001,LOWER=Kmin,UPPER=Kmax;
VARY, NAME=satsy02.mqua120.k1, STEP=0.00001,LOWER=Kmin,UPPER=Kmax;
CONSTRAINT, SEQUENCE=swissfel, RANGE=satsy02$end, DY = 0.0;
CONSTRAINT, SEQUENCE=swissfel, RANGE=satsy02$end, DPY = 0.0;
CONSTRAINT, SEQUENCE=swissfel, RANGE=satsy02$end, X = 0.0;
LMDIF, CALLS=1000, TOLERANCE=1.E-21;
ENDMATCH;
matching.ydispersion=TAR;
!---------------------------------
! match sextupoles
if (initquads==1){
satsy01.msex050.k2 = 100;
satsy01.msex080.k2 = -100;
satsy01.msex220.k2 = -100;
satsy01.msex250.k2 = 100;
}
MATCH,chrom, SEQUENCE=swissfel,range=#s/#e,betx=betax0,alfx=alphax0,bety=betay0,alfy=alphay0;
VARY, NAME=satsy01.msex050.k2, STEP=0.00001;
VARY, NAME=satsy01.msex080.k2, STEP=0.00001;
VARY, NAME=satsy01.msex220.k2, STEP=0.00001;
VARY, NAME=satsy01.msex250.k2, STEP=0.00001;
CONSTRAINT, SEQUENCE=swissFEL, RANGE=satsy02$end, DDX = 0;
CONSTRAINT, SEQUENCE=swissFEL, RANGE=satsy02$end, DDY = 0;
CONSTRAINT, SEQUENCE=swissFEL, RANGE=satsy02$end, DDPX = 0;
CONSTRAINT, SEQUENCE=swissFEL, RANGE=satsy02$end, DDPY = 0;
LMDIF, CALLS=1000, TOLERANCE=1.E-21;
ENDMATCH;

View File

@@ -0,0 +1,34 @@
!-----------------------------------
! switch yard
! matching condition at the septum, the new design by Natalia on 27th July 2011
! find the correct kicker strength to have the right dispersion and offset.
y_sep=0.01;
py_sep=0.0;
dy_sep=-y_sep;
dpy_sep=-py_sep;
S20SY02.MKDC010.cory := SYKICK*2;
S20SY02.MKAC020.cory := SYKICK*3;
S20SY02.MKDC030.cory := SYKICK*2;
S20SY02.MKAC040.cory := SYKICK*3;
S20SY02.MKDC050.cory := SYKICK*2;
use,sequence=s20sy02;
MATCH,SEQUENCE=s20sy02,range=#s/#e,betx=20,alfx=0,bety=20,alfy=0;
VARY,NAME=s20sy02.mqua070.k1,STEP=0.0001,lower=-3,upper=3;
VARY,NAME=s20sy02.mqua100.k1,STEP=0.0001,lower=-3,upper=3;
VARY,NAME=s20sy02.mqua140.k1,STEP=0.0001,lower=-3,upper=3;
VARY,NAME=s20sy02.mqua180.k1,STEP=0.0001,lower=-3,upper=3;
VARY,NAME=SYKICK,STEP=0.0001;
CONSTRAINT,SEQUENCE=s20sy02,range=S20SY02.mbnd200,y=y_sep;
CONSTRAINT,SEQUENCE=s20sy02,range=S20SY02.mbnd200,py=py_sep;
CONSTRAINT,SEQUENCE=s20sy02,range=S20SY02.mbnd200,dy=-0.007;
CONSTRAINT,SEQUENCE=s20sy02,range=S20SY02.mbnd200,dpy<1;
CONSTRAINT,SEQUENCE=s20sy02,range=S20SY02.mqua180, BETY < 60;
LMDIF,CALLS=8000,TOLERANCE=1.e-21;
ENDMATCH;
twiss,sequence=s20sy02,range=#s/#e,rmatrix,betx=20,alfx=0,bety=20,alfy=0;

449
Settings/Reference.json Normal file
View File

@@ -0,0 +1,449 @@
{
"Label": "Reference",
"Order": [
{
"Reference": "Start",
"MatchID": "Laser Heater",
"End": "SINLH02",
"Destination": "SATBD01",
"Sequence": null,
"Save": null
},
{
"Reference": null,
"MatchID": "SINSB04",
"End": null,
"Destination": "SATBD01",
"Sequence": "SINSB04",
"Save": true
},
{
"Reference": "Laser Heater",
"MatchID": "Match to SINSB04",
"End": "SINSB04",
"Destination": "SATBD01",
"Sequence": null,
"Save": null
},
{
"Reference": "Laser Heater",
"MatchID": "Bunch Compressor 1",
"End": "SINDI02",
"Destination": "SATBD01",
"Sequence": null,
"Save": null
},
{
"Reference": null,
"MatchID": "Linac 1",
"End": null,
"Destination": "SATBD01",
"Sequence": "S10CB02",
"Save": true
},
{
"Reference": "Bunch Compressor 1",
"MatchID": "Match to Linac 1",
"End": "S10CB02",
"Destination": "SATBD01",
"Sequence": null,
"Save": null
},
{
"Reference": "Bunch Compressor 1",
"MatchID": "End of Linac 1",
"End": "S10BC01",
"Destination": "SATBD01",
"Sequence": null,
"Save": null
},
{
"Reference": "Bunch Compressor 1",
"MatchID": "Bunch Compressor 2",
"End": "S10MA01",
"Destination": "SATBD01",
"Sequence": null,
"Save": null
},
{
"Reference": null,
"MatchID": "Linac 2",
"End": null,
"Destination": "SATBD01",
"Sequence": [
"S20CB01",
"S20CB02"
],
"Save": true
},
{
"Reference": "Bunch Compressor 2",
"MatchID": "Match to Linac 2",
"End": "S20CB04",
"Destination": "SATBD01",
"Sequence": null,
"Save": null
},
{
"Reference": "Bunch Compressor 2",
"MatchID": "Match to Switchyard",
"End": "S20SY02",
"Destination": "SATBD01",
"Sequence": null,
"Save": null
},
{
"Reference": "Switchyard",
"MatchID": "Resonant Kicker",
"End": "S20SY02",
"Destination": "SATBD01",
"Sequence": null,
"Save": null
}
],
"Dependence": {
"SINSB04-MQUA230": [
"SINSB03-MQUA230"
],
"S10CB02-MQUA230": [
"S10DI01-MQUA120",
"S10CB03-MQUA430",
"S10CB04-MQUA430",
"S10CB05-MQUA430",
"S10CB06-MQUA430",
"S10CB07-MQUA430",
"S10CB08-MQUA430"
],
"S10CB02-MQUA430": [
"S10CB03-MQUA230",
"S10CB04-MQUA230",
"S10CB05-MQUA230",
"S10CB06-MQUA230",
"S10CB07-MQUA230",
"S10CB08-MQUA230"
],
"S20CB01-MQUA430": [
"S20CB03-MQUA430"
],
"SATSY01-MQUA090": [
"SATSY01-MQUA210"
],
"SATSY01-MQUA070": [
"SATSY01-MQUA230"
],
"SATSY01-MQUA040": [
"SATSY01-MQUA260"
]
},
"Reference": {
"Start": {
"Location": "start",
"Twiss": {
"betax": 29.971,
"alphax": 0.003,
"betay": 26.0,
"alphay": -0.288
}
},
"Laser Heater": {
"Location": "sinlh02.mqua410$start",
"Twiss": {
"betax": 11.2,
"alphax": 3.2,
"betay": 0.8,
"alphay": 0.75
}
},
"Bunch Compressor 1": {
"Location": "sindi02.mqua020$start",
"Twiss": {
"betax": 11.1557,
"alphax": -1.17,
"betay": 50,
"alphay": 0.0
}
},
"Bunch Compressor 2": {
"Location": "s10ma01.mqua020$start",
"Twiss": {
"betax": 6.14,
"alphax": -0.83,
"betay": 22.86,
"alphay": -1.18
}
},
"Switchyard": {
"Location": "s20sy02$start",
"Twiss": {
"betax": 48.26,
"alphax": 7.322,
"betay": 14.293,
"alphay": -3.513
}
},
"Linac3": {
"Location": "s30cb10.mqua430$start",
"Twiss": {
"betax": 8.83,
"alphax": 0.548,
"betay": 30.44,
"alphay": -1.866
}
},
"Aramis Stopper": {
"Location": "sarma01.mqua010$start",
"Twiss": {
"betax": 2.304,
"alphax": -1.4045,
"betay": 25.929,
"alphay": -6.363
}
},
"Athos HERO": {
"Location": "satdi01.mqua250$start",
"Twiss": {
"betax": 35.76,
"alphax": -1.166,
"betay": 24.087,
"alphay": 0.648
}
},
"Athos Deflector": {
"Location": "satbd01.mqua010$start",
"Twiss": {
"betax": 50,
"alphax": 0,
"betay": 50,
"alphay": 0
}
}
},
"Parameter": {
"Laser Heater": {
"Variable": [
"SINLH01-MQUA020",
"SINLH01-MQUA040",
"SINLH01-MQUA050",
"SINLH01-MQUA070",
"SINLH02-MQUA010"
],
"Target": [
{
"Location": "sinlh02.mqua410$start",
"Twiss": {
"betax": 11.2,
"alphax": 3.2,
"betay": 0.8,
"alphay": 0.75
}
}
]
},
"SINSB04": {
"Variable": [
"SINSB04-MQUA130",
"SINSB04-MQUA230"
],
"Target": [
{
"Location": "#e",
"Twiss": {
"MUX": 0.2,
"MUY": 0.2
}
}
]
},
"Match to SINSB04": {
"Variable": [
"SINLH02-MQUA410",
"SINLH03-MQUA030",
"SINLH03-MQUA040",
"SINLH03-MQUA060",
"SINLH03-MQUA080",
"SINSB03-MQUA130"
],
"Target": [
{
"Location": "sinsb04$start",
"SavedID": "SINSB04"
}
]
},
"Bunch Compressor 1": {
"Variable": [
"SINBC01-MQUA020",
"SINBC01-MQUA050",
"SINBC01-MQUA070",
"SINBC01-MQUA090",
"SINBC01-MQUA110",
"SINDI01-MQUA020",
"SINDI01-MQUA070"
],
"Target": [
{
"Location": "sindi02.mqua020$start",
"Twiss": {
"betax": 11.1557,
"alphax": -1.17,
"betay": 50,
"alphay": 0.0
}
},
{
"Location": "sinbc02.mbnd400",
"Twiss": {
"betax": 5.1,
"betay": 100
},
"Limit": 1
},
{
"Location": "sinbc01.mqua110$end",
"Twiss": {
"betax": 100
},
"Limit": 1
}
]
},
"Linac 1": {
"Variable": [
"S10CB02-MQUA230",
"S10CB02-MQUA430"
],
"Target": [
{
"Location": "#e",
"Twiss": {
"MUX": 0.1883,
"MUY": 0.1883
}
}
]
},
"Match to Linac 1": {
"Variable": [
"S10CB01-MQUA230",
"S10CB01-MQUA430",
"SINDI02-MQUA020",
"SINDI02-MQUA030",
"SINDI02-MQUA050",
"SINDI02-MQUA060",
"SINDI02-MQUA090"
],
"Target": [
{
"Location": "s10cb02$start",
"SavedID": "Linac 1"
}
]
},
"End of Linac 1": {
"Variable": [
"S10CB07-MQUA430",
"S10CB08-MQUA230",
"S10CB08-MQUA430",
"S10CB09-MQUA230"
],
"Target": [
{
"Location": "s10bc01.mqua020$start",
"Twiss": {
"betax": 4.88,
"betay": 16.11,
"alphax": 0.5546,
"alphay": -1.81
}
}
]
},
"Bunch Compressor 2": {
"Variable": [
"S10BC01-MQUA020",
"S10BC01-MQUA040",
"S10BC01-MQUA060",
"S10BC01-MQUA080",
"S10BC01-MQUA100"
],
"Target": [
{
"Location": "s10ma01.mqua020$start",
"Twiss": {
"betax": 6.14,
"alphax": -0.83,
"betay": 22.86,
"alphay": -1.18
}
}
]
},
"Linac 2": {
"Variable": [
"S20CB01-MQUA430",
"S20CB02-MQUA430"
],
"Target": [
{
"Location": "#e",
"Twiss": {
"MUX": 0.2,
"MUY": 0.2
}
}
]
},
"Match to Linac 2": {
"Variable": [
"S10MA01-MQUA020",
"S10MA01-MQUA050",
"S10MA01-MQUA070",
"S10MA01-MQUA110",
"S10MA01-MQUA130"
],
"Target": [
{
"Location": "s20cb01$start",
"SavedID": "Linac 2"
}
]
},
"Match to Switchyard": {
"Variable": [
"S20SY01-MQUA020",
"S20SY01-MQUA030",
"S20SY01-MQUA050",
"S20SY01-MQUA080"
],
"Target": [
{
"Location": "s20sy02$start",
"Twiss": {
"betax": 48.26,
"alphax": 7.322,
"betay": 14.293,
"alphay": -3.513
}
}
]
},
"Resonant Kicker": {
"Variable": [
"S20SY02-MQUA070",
"S20SY02-MQUA100",
"S20SY02-MQUA140",
"S20SY02-MQUA180",
"S20SY02-MKDC010",
"S20SY02-MKAC020",
"S20SY02-MKDC030",
"S20SY02-MKAC040",
"S20SY02-MKDC050"
],
"Target": [
{
"Script": "Scripts/switchyard_kicker.madx"
}
]
}
}
}