GdfidL implements five different Schemes to compute Wakepotentials.
# The Yee-Scheme in a static Mesh. -fdtd, doit # Some higher Order Yee-Scheme in a static Mesh. -fdtd, hfdtd= yes, doit # The Yee-Scheme in a moving Mesh. -windowwake, strang= no, fdtdorder= 1, doit # Some other higher Order Yee-Scheme in a moving Mesh, -windowwake, strang= no, fdtdorder= 31, doit # Strang-Splitting in a moving Mesh. -windowwake, strang= yes, doit
When the Grid-Spacing is small enough to make the Dispersion-Error negligable, and when the Absorbing-Boundary-Conditions work well, and when the Napoly-Intergration works well, all Schemes should give roughly the same Result, independent on the Length of straight Beampipes below and above the Wakefield scattering Obstacle. This Writeup demonstrates the Computation via the five Schemes, for different Lengths of straight Beampipes. The Device is a rotational-symmetric Collimator-Like Obstacle.
The Script to compute the Wakepotentials of the Device(s) loops over ThisVariant
taking the Values 1,2,3,4,5
and over ThisZLen
taking the Values 0, 4.
The outer Loop loops over ThisTLen
taking the Values 4,8. With ThisTLen=4
it is a Device where the tapered Length is 4 x the Radius.
When ThisTLen=8
, the tapered Length is 8 x the Radius.
When ThisTLen=16
, the tapered Length is 16 x the Radius.
The Shell-Script tp compute all the Results is: check-Collimator.x
#!/bin/bash for ThisTLen in 4 8 16 do # When the Napoly-Integration is correct, # and the Dispersion Error is negligable, # and the Absorbing-Boundary-Conditions work good, # the Result shall not depend on the Length of the straight Beampipes. # # ThisZLen: Length/Radius of the Beampipes for ThisZLen in 0 4 do # Compute the Results via five different Variants. for ThisVariant in 1 2 3 4 5 do gd1 -DVARIANT=$ThisVariant \ -DZLEN=$ThisZLen \ -DTLEN=$ThisTLen \ -DSCRATCH=/scratch/wb/ \ < CheckNapoly.gdf \ | tee Logfile-tLen-$ThisTLen-Variant-$ThisVariant-zLen-$ThisZLen gd1.pp << UntilThisMarker -gen, infile= @last # This also defines the 'defines()' of the last Computation. # In Particular, VARIANT, ZLEN and TLEN -gen, scratch= /tmp/tLen-TLEN-Variant-VARIANT-zLen-ZLEN- -wakes, onlyplotfiles= yes, doit UntilThisMarker done # Start mymtv2 (plotmtv) showing the five Results in a single Plot. mymtv2 -plotall -fg black -bg white \ /tmp/tLen-$ThisTLen-Variant-{1,2,3,4,5}-zLen-$ThisZLen-Wq_AT_XY.0001 & mymtv2 -plotall -fg black -bg white \ /tmp/tLen-$ThisTLen-Variant-{1,2,3,4,5}-zLen-$ThisZLen-WYq_AT_XY.0001 & done done exit 0
The Inputfile decribing the Device is: CheckNapoly.gdf
define(PLOT, 0) if (VARIANT == 1) then sdefine(WHAT, Static-Yee1) define(WWAKE, 0) sdefine(HFDTD, no) else if (VARIANT == 2) then sdefine(WHAT, Static-Yee33) define(WWAKE, 0) sdefine(HFDTD, yes) else if (VARIANT == 3) then sdefine(WHAT, ww-Strang) define(WWAKE, 1) sdefine(STRANG, yes) define(YEEORDER, 4711) else if (VARIANT == 4) then sdefine(WHAT, ww-Yee1) define(WWAKE, 1) sdefine(STRANG, no) define(YEEORDER, 1) else if (VARIANT == 5) then sdefine(WHAT, ww-Yee31) define(WWAKE, 1) sdefine(STRANG, no) define(YEEORDER, 31) else echo bad Variant: VARIANT stop end if define(A, 1e-3 ) # Radius of the Beampipes define(B, A/3) # Radius of the narrowest Part. define(GAP, TLEN*A) # define(GAP, 8*A) # Strang gives somewhat different Wy. define(STPSZE, A/80/3) define(SIGMA, 30*STPSZE) define(DY, 0.1*A) # y-Position of the Linecharge. -gen, text()= Variant: VARIANT, zLen/Radius: ZLEN, tLen/Radius: TLEN text()= What: WHAT, wwake: WWAKE, Strang: STRANG, YeeOrder: YEEORDER text()= TaperLength/Radius: eval(GAP/A) text()= Sigma/Spacing: eval(SIGMA/STPSZE) define( GEOSCALE, 1 ) # To make the Frequency of an Impedance-Plot to k*A: # define( GEOSCALE, @clight/A/2/@pi ) -mesh, geoscale= GEOSCALE -general outfile= SCRATCH/Collimator-tLen-TLEN-Variant-VARIANT-zLen-ZLEN scratch= SCRATCH/scratch- -mesh spacing= STPSZE pxlow= 0, pxhigh= A+STPSZE, cxlow= mag, cxhigh= ele pylow= 0, pyhigh= A+STPSZE, cylow= ele, cyhigh= ele pzlow = - (GAP/2 + ZLEN*A + 10*STPSZE) pzhigh= + (GAP/2 + ZLEN*A + 10*STPSZE) -material, material= 3, type= electric, kappa= 56e6 # Fill the Universe with Metal. -brick, material= 3, volume= ( -INF,INF, -INF,INF, -INF,INF ), doit -gccylinder material= 0, radius= A, length= INF origin= ( 0, 0, GAP/2 ) direction= ( 0, 0, 1 ) doit # Upper Beampipe material= 0, radius= A, length= INF origin= ( 0, 0, -GAP/2 ) direction= ( 0, 0, -1 ) doit # Lower BeamPipe # The Tapers. -gbor, material= 0, origin= ( 0, 0, 0 ), zprime= ( 0, 0, 1 ), rprime= ( 1, 0, 0 ) clear point= (-GAP/2-STPSZE, 0) # ( Zi, Ri ) point= (-GAP/2-STPSZE, A) point= (-GAP/2, A) point= ( 0, B ) point= ( GAP/2, A) point= ( GAP/2+STPSZE, A) point= ( GAP/2+STPSZE, 0) # show= now doit if (PLOT) then -volumeplot, roty= 90, doit end if -fdtd -ports define(NPML, 40) name= beamlow, plane= zlow, modes= 0, npml= NPML, doit name= beamhigh, plane= zhigh, modes= 0, npml= NPML, doit -lcharge if (PLOT) then showdata= yes else showdata= no end if charge= 1e-12, sigma= SIGMA xposition= 0, yposition= DY shigh= 12*SIGMA if (0) then # If one would want to create a Movie. define(NDT, 0.5 * STPSZE * GEOSCALE / @clight) # Every Timestep -fdtd, -fexport system( rm SCRATCH/H-fields-iVar-VARIANT-* ) outfile= SCRATCH/H-fields-VARIANT- what= h-fields firstsaved= 1e-20 lastsaved= INF distancesaved= NDT bbxlow= -STPSZE/10, bbxhigh= STPSZE/10 bbylow= -INF, bbyhigh= INF bbzlow= -INF, bbzhigh= INF doit end if if (WWAKE) then -windowwake, fdtdorder= YEEORDER, strang= STRANG, doit else -fdtd, hfdtd= HFDTD, doit end if
A Quarter of the rotational symmetric Device is modeled. An electric Boundary Condition at the Plane of Symmetry at y=0 is applied. With that Conditions, the y-transverse Wakepotential is computed. The shown longitudinal Wakepotentials are not the Wakepotentials as would be seen by a Beam at x=y=0.
Plots of the computed longitudinal Wakepotential when ThisZLen
has the Value 0,
ie. the upstream and downstream Beampipes are very short, are shown in Figure 3.
Plots of the computed longitudinal Wakepotential when ThisZLen
has the Value 4,
ie. the upstream and downstream Beampipes are 4 times the Radius long, are shown in Figure 4.
Plots of the computed transverse Wakepotential when ThisZLen
has the Value 0,
ie. the upstream and downstream Beampipes are very short, are shown in Figure 5.
Plots of the computed transverse Wakepotential when ThisZLen
has the Value 4,
ie. the upstream and downstream Beampipes are 4 times the Radius long, are shown in Figure 6.
The Results agree well. All five Schemes give about the same Result. The Length of the Beampipes does not change the Results significantly.
Plots of the computed longitudinal Wakepotential when ThisZLen
has the Value 0,
ie. the upstream and downstream Beampipes are very short, are shown in Figure 7.
Plots of the computed longitudinal Wakepotential when ThisZLen
has the Value 4,
ie. the upstream and downstream Beampipes are 4 times the Radius long, are shown in Figure 8.
Plots of the computed transverse Wakepotential when ThisZLen
has the Value 0,
ie. the upstream and downstream Beampipes are very short, are shown in Figure 9.
Plots of the computed transverse Wakepotential when ThisZLen
has the Value 4,
ie. the upstream and downstream Beampipes are 4 times the Radius long, are shown in Figure 10.
The Results agree well. Four Schemes give about the same Result. The Scheme which gives a significantly different Result for the Wy-Wakepotential is the Strang-Splitting Scheme. The Length of the Beampipes does not change the Results significantly.
Plots of the computed longitudinal Wakepotential when ThisZLen
has the Value 0,
ie. the upstream and downstream Beampipes are very short, are shown in Figure 11.
Plots of the computed longitudinal Wakepotential when ThisZLen
has the Value 4,
ie. the upstream and downstream Beampipes are 4 times the Radius long, are shown in Figure 12.
Plots of the computed transverse Wakepotential when ThisZLen
has the Value 0,
ie. the upstream and downstream Beampipes are very short, are shown in Figure 13.
Plots of the computed transverse Wakepotential when ThisZLen
has the Value 4,
ie. the upstream and downstream Beampipes are 4 times the Radius long, are shown in Figure 14.
The Results agree well. Four Schemes give about the same Result. The Scheme which gives a significantly different Result for the Wy-Wakepotential is the Strang-Splitting Scheme. The Length of the Beampipes does not change the Results significantly.
This is the End of this Writeup.