...
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
}
}
|
...
- 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. }
Moving-window with mesh refinement for short-range wakefield
- 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. }
Gaussian beam going through a cavity
- 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 |
---|
Monitor: { Type: Point //point monitor Name: monA //an //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 |
---|
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 } |
...
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 } |
...