TOSCA simulation for Pol He3 Field
By Jixie Zhang, Sep 9th,2020
The TOSCA simulation geometry files were prepared by Steven Lassiter.
The simulation were performed by both Steven and Jixie.
In D2N, the target base was not rotated. The axis of horizontal large coils (HL) is along Lab X axis.
The axis of horizontal small coils (HS) is along Lab Z axis.
In A1N, the target base was rotated clockwise (top view) about Y axis by 45 degrees.
Please keep in mind that the coordinate system in the TOSCA simulation is defined in this way:
X axis goes to beam right, y axis goes up, Z axis goes to upstream.
We have rotated the output about Y axis by 180 degrees to make it in the Lab frame.
Where is the maps located
The rotated TOSCA field maps for each single set of coils are stored in group dir:
Scripts to combine maps
Jixie provides python scrips to combine these 7 rotated individual maps (HB, HL, HS, VL, VS, HLCC and HSCC)
into one map with each map scaled to the given current. These scrips will also make some plots of "Field vs Y|Z"
and "Gradient vs Y|Z". These scrips are stored at
How to run these scripts to combine maps
First of all, the script require matplotlib, numpy, pandas modules. You need to install them before running it.
1) change "TableDir" to where the tables are located.
2) configure "Target_Currents_xxxxx" 2-D list. It contains 4 rows and 7 columns.
The rows are represent for target polarization polarity of 0. 90, 180, and 270 deg.
The structure of each row is the current for these coils: HB,HL,HS,VL,VS,HLCC,HSCC.
3) Keep in mind that in D2N experiment, HS coil current in read back is in opposite
sign, VL and VS are switched.
In A1N experiment, HS coil current in read back is also in opposite sign.
When you provide "Target_current", you really need to be careful.
4) This script can make some plot using functions. For example "PlotGradientVsZ(xx,yy,figname)"
will plot the 9 gradients as a function of z at line (x=xx,y=yy).
User need to specify xx and yy locations and output figure name.
For some reasons this script can process only one polarity each run. (This might be fixed later).