Panel |
---|
|
Table of Contents |
---|
minLevel | 2 |
---|
outline | true |
---|
indent | 30px |
---|
type | flat |
---|
separator | newline |
---|
|
|
Tell T3P which mesh file to load and what boundary conditions are used for the different side sets in the mesh file (default: Electric)
Code Block |
---|
ModelInfo: {
File: coarse.ncdf
BoundaryCondition: {
Electric: 2
Magnetic: 3 4
Absorbing: 5 6
}
}
|
To specify the method to partition the mesh
Code Block |
---|
MeshPartitioning: {
Method: PARMETIS //the other option is ZOLTAN
Zoltan: { //if the main method is ZOLTAN, this container will provide further zoltan specific options
Method: RCB
Dimension: 1
Partition Direction: Z
}
}
|
Code Block |
---|
FiniteElement: {
Order: 2 // global order of basis functions (can be 1...6, 2 is recommended)
CurvedSurfaces: on
}
|
- set the basis order to be 0 (p=0).
Code Block |
---|
FiniteElement: {
Order: 0 //p=0 outside of the window
CurvedSurfaces: on
}
|
- set an automatic moving window that following with the beam
Code Block |
---|
PRegion: {
Type: AutomaticMovingWindow
Order: 2 //inside the window, p=2 (basis function order)
Back: 0.01 //back pudding is 0.01m
Front: 0.1 //front pudding is 0.1m
StructureEnd: 1.0 //the maximal z.
}
|
- set the basis order to be 0 (p=0).
Code Block |
---|
FiniteElement: {
Order: 0 //p=0 outside of the window
CurvedSurfaces: on
}
|
- set an automatic moving window that following with the beam
Code Block |
---|
MeshRefinement: {
Order: 2 //inside the window, p=2 (basis function order)
Back: 0.01 //back pudding is 0.01m
Front: 0.1 //front pudding is 0.1m
Subdivision: 1 //subdivide each element inside window once
StructureEnd: 1.0 //the maximal z.
}
|
- The first step is to provide beam information:
Code Block |
---|
LoadingInfo: {
Bunch: {
Type: Gaussian
Sigma: 2e-3 //Sigma (RMS) size of the bunch
Nsigmas: 5 //beam occupies the location from -5 sigma to +5 sigma, total of 10 sigmas
Charge: 1. //charge
}
SymmetryFactor: 4 //factor by which to reduce the charge to account for symmetry conditions (monopole on axis: use 4, dipole at X (or Y) offset: use 2 in connection with proper electric boundary conditions in one plane)
StartPoint: 0. 0. 0. //StartPoint is the position where the beam enters the structure (typically at low Z values)
Direction: 0. 0. 1. //Direction along which the bunch will move, at the speed of light (should be the direction of the normal of the face with BoundaryID)
BoundaryID: 5 //The boundary ID (sidelist number from Cubit), specifies the boundary through which the bunch enters the structure (should be a flat surface, containing StartPoint)
}
|
- Optional: Force analytical BeamBoundaryLoading (can be used if the beampipe is cylindrical). Not required. Default is OFF.
Code Block |
---|
Loading: {
Type: BeamBoundaryLoading
Analytical: on
// Specify the right-handed coordinate system with its Z-axis along the beamline ( CrossProduct(X, Y) = Z = Direction specified above)
Origin: 0.0 0.0 0.0
XDirection: 1.0 0.0 0.0 //this is the direction of the beam offset, if any
YDirection: 0.0 1.0 0.0
Beampipe radius: 0.04
Beam offset: 0 //offset in x-direction of the local 2D coordinate system (value needs to be consistent with StartPoint specified above)
}
|
Code Block |
---|
TimeStepping: {
MaximumTime: 10.e-10 //the maximal time to step
DT: 2e-12 //delta T
}
|
Code Block |
---|
Monitor: {
Type: WakeField // Weiland method (not for protruding structures, beam pipe radius must be the same on left and right side)
Name: wake
Start contour: 0.05 // z-position at which the beampipe-cavity transition starts
End contour: 0.10 // z-position at which the beampipe-cavity transition ends
Smax: 0.3 // the longitudinal wake potential will be recorded from s=0 to s=Smax
}
|
To record the field values at specified location
Code Block |
---|
Monitor: {
Type: Point //point monitor
Name: monA //an output file called monA.out will be generated
//it contains: t Hx Hy Hz Ex Ey Ez
Coordinate: 0.00002, 0.02, 0.1495 //the location
}
|
Code Block |
---|
Monitor: {
Type: Power
ReferenceNumber: 4 //which reference surface to monitor
Name: mymon2
TimeStart: 0 //when power monitor starts
TimeEnd: 30.0e-9 //when it ends
TimeStep: 0.125e-11 //how often it records power density
}
|
Code Block |
---|
Monitor: {
Type: Volume
Name: vol
TimeStart: 10.e-9 //when volume monitor starts
TimeEnd: 500.e-9 //when it ends
TimeStep: 50.e-9 //how often it records volume fields
}
|
After T3P finished runs, users should run acdtool to generate mode files for each records of the volume fields using the following command:
acdtool postprocess volmontomode t3pinput <jobname>
The mode files generated can be viewed using paraview.
request T3P code to checkpointing itself every certain timesteps so that one can restart T3P.
Code Block |
---|
CheckPoint: {
Action: restart //default should be restart. If there is no data available, it will have fresh start.
Ntimesteps: 100 //every 100 times steps, code will checkpoint itself
Directory: CHECKPOINT //the default directory to store checkpointing data
}
|
The options for linear solvers in the implicit timestepping.
Code Block |
---|
LinearSolver: {
Solver: CG //other options include MUMPS (direct solver, faster for less than 32 CPUs) if it is compiled in
Preconditioner: CHOLESKY //other options include DIAGONAL
PrintFrequency: 50 //if you want print solver convergence history
QuietMode: 1 //Set it to 1 if you do not want to print anything
Tolerance: 1e-10 //relative tolerance
MaxIterations: 3000 //maxima number of iterations before CG quits
}
|
Code Block |
---|
Loading: {
Type: PortModeLoading //loading type
Port: {
ReferenceNumber: 3 //port is at reference surface 3
Origin: 0.0 0.0 -0.011
XDirection: 1.0 0.0 0.0
YDirection: 0.0 1.0 0.0
ESolver: {
Type: Analytic
Mode: {
WaveguideType: Coax
ModeType: TEM
A: 0.0011
B: 0.0033
}
}
}
Excitation: {
Power: 1.
Pulse: {
Type: Monochromatic
Frequency: 10.5e9
Rise periods: 150
Fall periods: 150
T0: 0.
TMax: 100.e-9
}
}
}
|