This page describes the Field options available for electrostatic simulations, that is,
when the field solver
in the Basic Settings
element is set to electrostatic
.
The background charge density field. This field can be added to a simulation by right clicking “Fields”, hovering over “Add Field”, then clicking “Background Charge Density”. You may add many Background Charge Densities to your simulation.
An External Field can be added to a simulation by right clicking “Fields”, hovering over “Add Field”, then clicking “External Field”. An external field will be added after the field solve and effect particle movements in the simulation.
Either import h5 file or function defined.
import h5 file A vis schema compliant h5 file. It does require that the file be in the same directory as the simulation. An error message will be provided if the file fails to import.
- filename:
The name of the .hdf5 file to be imported. Typical convention is simulationName_fieldName_dumpNum.h5
- lower bound 0:
The cell index of the 0th component lower bound of the source field, to be imported to the matching index in the simulation. If left not applicable the entire field will be imported.
- lower bound 1:
The cell index of the 1st component lower bound of the source field, to be imported to the matching index in the simulation. If left not applicable the entire field will be imported.
- lower bound 2:
The cell index of the 2nd component lower bound of the source field, to be imported to the matching index in the simulation. If left not applicable the entire field will be imported.
- upper bound 0:
The cell index of the 0th component upper bound of the source field, to be imported to the matching index in the simulation. If left not applicable the entire field will be imported.
- upper bound 1:
The cell index of the 1st component upper bound of the source field, to be imported to the matching index in the simulation. If left not applicable the entire field will be imported.
- upper bound 2:
The cell index of the 2nd component upper bound of the source field, to be imported to the matching index in the simulation. If left not applicable the entire field will be imported.
Allows for manual specification of each component of the field
The function defining the field in the 0th component. Can be a time varying function
The function defining the field in the 1st component. Can be a time varying function
The function defining the field in the 2nd component. Can be a time varying function
Set to true if any of the functions are time varying. The function will then be recalculated at each time step.
import h5 file by grid index A vis schema compliant h5 file. It does require that the file be in the same directory as the simulation. An error message will be provided if the file fails to import. This variant requires specifying the grid indices of both the source field to import as well as the indices of where to place that field in the simulation. This can be used to translate fields in position from a previous run to a new one.
The total number of cells between the source lower and upper bounds must match that of the simulation lower and upper bounds.
- filename:
The name of the .hdf5 file to be imported. Typical convention is simulationName_fieldName_dumpNum.h5
- source lower bound 0:
The grid index of the lower bound of the 0th dimension of the source field to be imported.
- source lower bound 1:
The grid index of the lower bound of the 1st dimension of the source field to be imported.
- source lower bound 2:
The grid index of the lower bound of the 2nd dimension of the source field to be imported.
- source upper bound 0:
The grid index of the upper bound of the 0th dimension of the source field to be imported.
- source upper bound 1:
The grid index of the upper bound of the 1st dimension of the source field to be imported.
- source upper bound 2:
The grid index of the upper bound of the 2nd dimension of the source field to be imported.
- simulation lower bound 0:
The grid index corresponding to the lower bound of the 0th dimension where the field will be placed in the simulation.
- simulation lower bound 1:
The grid index corresponding to the lower bound of the 1st dimension where the field will be placed in the simulation.
- simulation lower bound 2:
The grid index corresponding to the lower bound of the 2nd dimension where the field will be placed in the simulation.
- simulation upper bound 0:
The grid index corresponding to the upper bound of the 0th dimension where the field will be placed in the simulation.
- simulation upper bound 1:
The grid index corresponding to the upper bound of the 1st dimension where the field will be placed in the simulation.
- simulation upper bound 2:
The grid index corresponding to the upper bound of the 2nd dimension where the field will be placed in the simulation.
To add an Initial Condition to a field, right-click on the field and select Add FieldInitialCondition –> Initial Condition.
- kind (not editable)
- Initial Condition
- expression
- The value of the initial condition. Can be assigned a Constant, Parameter, or SpaceTimeFunction by right-clicking.
- component
- Can be 0, 1 or 2 for the first, second, or third component of the field.
To add a Boundary Condition, right-click on FieldBoundaryConditions and select your choice from Add FieldBoundaryCondition. Your choices for dimensionality and field solver in the Basic Settings element will determine which Boundary Conditions are available to add to your simulation. If the simulation is set up as an electrostatic 2D simulation in cylindrical coordinates (R-Z plane) and if the simulation begins at r=0, then a flag called includeCylAxis (see Section Grid) is set to true. At r = 0, we have set the default field boundary condition to be Neumann with the electric field set to 0. Therefore, the only boundary conditions that need to be set in a 2D cylindrical electrostatic simulation are at RMAX, ZMIN, and ZMAX. If the simulation begins at r > 0, then the user will need to specify the field boundary condition at RMIN.
Use a Dirichlet boundary condition to set the value of the potential field, Phi, on the surface.
The surface on which the Dirichlet boundary condition should be set.
The lower x boundary of the simulation domain.
The lower y boundary of the simulation domain.
The lower z boundary of the simulation domain.
The upper x boundary of the simulation domain.
The upper y boundary of the simulation domain.
The upper z boundary of the simulation domain.
A Dirichlet boundary condition applied only to part of the lower x simulation boundary. The entire lower x boundary must be filled with a boundary condition. The lower coordinate is included in the simulation and the upper bound is exclusive. Also note that at the intersection of the Y or Z simulation boundary the first computational cell of the X boundary is included in the Y or Z simulation boundary condition.
The inclusive lower y coordinate.
The exclusive upper y coordinate.
The inclusive lower z coordinate.
The exclusive upper z coordinate.
A Dirichlet boundary condition applied only to part of the lower y simulation boundary. The entire lower y boundary must be filled with a boundary condition. The lower coordinate is included in the simulation and the upper bound is exclusive. Also note that at the intersection of the X or Z simulation boundary the first computational cell of the Y boundary is included in the X or Z simulation boundary condition.
The inclusive lower x coordinate.
The exclusive upper x coordinate.
The inclusive lower z coordinate.
The exclusive upper z coordinate.
A Dirichlet boundary condition applied only to part of the lower z simulation boundary. The entire lower z boundary must be filled with a boundary condition. The lower coordinate is included in the simulation and the upper bound is exclusive. Also note that at the intersection of the X or Y simulation boundary the first computational cell of the Z boundary is included in the X or Y simulation boundary condition.
The inclusive lower x coordinate.
The exclusive upper x coordinate.
The inclusive lower y coordinate.
The exclusive upper y coordinate.
A Dirichlet boundary condition applied only to part of the upper x simulation boundary. The entire upper x boundary must be filled with a boundary condition. The lower coordinate is included in the simulation and the upper bound is exclusive. Also note that at the intersection of the Y or Z simulation boundary the first computational cell of the X boundary is included in the Y or Z simulation boundary condition.
The inclusive lower y coordinate.
The exclusive upper y coordinate.
The inclusive lower z coordinate.
The exclusive upper z coordinate.
A Dirichlet boundary condition applied only to part of the upper y simulation boundary. The entire upper y boundary must be filled with a boundary condition. The lower coordinate is included in the simulation and the upper bound is exclusive. Also note that at the intersection of the X or Z simulation boundary the first computational cell of the Y boundary is included in the X or Z simulation boundary condition.
The inclusive lower x coordinate.
The exclusive upper x coordinate.
The inclusive lower z coordinate.
The exclusive upper z coordinate.
A Dirichlet boundary condition applied only to part of the upper z simulation boundary. The entire upper z boundary must be filled with a boundary condition. The lower coordinate is included in the simulation and the upper bound is exclusive. Also note that at the intersection of the X or Y simulation boundary the first computational cell of the Z boundary is included in the X or Y simulation boundary condition.
The inclusive lower x coordinate.
The exclusive upper x coordinate.
The inclusive lower y coordinate.
The exclusive upper y coordinate.
Use a shape surface to specify a Dirichlet boundary condition on the surface of a geometry in your simulation.
Choose from any pre-defined geometries in the simulation.
Use a Neumann boundary condition to set the value of the derivative of the potential field, Phi, on the surface.
The surface on which the Dirichlet boundary condition should be set.
The lower x boundary of the simulation domain.
The lower y boundary of the simulation domain.
The lower z boundary of the simulation domain.
The upper x boundary of the simulation domain.
The upper y boundary of the simulation domain.
The upper z boundary of the simulation domain.
A Neumann boundary condition applied only to part of the lower x simulation boundary. The entire lower x boundary must be filled with a boundary condition. The lower coordinate is included in the simulation and the upper bound is exclusive. Also note that at the intersection of the Y or Z simulation boundary the first computational cell of the X boundary is included in the Y or Z simulation boundary condition.
The inclusive lower y coordinate.
The exclusive upper y coordinate.
The inclusive lower z coordinate.
The exclusive upper z coordinate.
A Neumann boundary condition applied only to part of the lower y simulation boundary. The entire lower y boundary must be filled with a boundary condition. The lower coordinate is included in the simulation and the upper bound is exclusive. Also note that at the intersection of the X or Z simulation boundary the first computational cell of the Y boundary is included in the X or Z simulation boundary condition.
The inclusive lower x coordinate.
The exclusive upper x coordinate.
The inclusive lower z coordinate.
The exclusive upper z coordinate.
A Neumann boundary condition applied only to part of the lower z simulation boundary. The entire lower z boundary must be filled with a boundary condition. The lower coordinate is included in the simulation and the upper bound is exclusive. Also note that at the intersection of the X or Y simulation boundary the first computational cell of the Z boundary is included in the X or Y simulation boundary condition.
The inclusive lower x coordinate.
The exclusive upper x coordinate.
The inclusive lower y coordinate.
The exclusive upper y coordinate.
A Neumann boundary condition applied only to part of the upper x simulation boundary. The entire upper x boundary must be filled with a boundary condition. The lower coordinate is included in the simulation and the upper bound is exclusive. Also note that at the intersection of the Y or Z simulation boundary the first computational cell of the X boundary is included in the Y or Z simulation boundary condition.
The inclusive lower y coordinate.
The exclusive upper y coordinate.
The inclusive lower z coordinate.
The exclusive upper z coordinate.
A Neumann boundary condition applied only to part of the upper y simulation boundary. The entire upper y boundary must be filled with a boundary condition. The lower coordinate is included in the simulation and the upper bound is exclusive. Also note that at the intersection of the X or Z simulation boundary the first computational cell of the Y boundary is included in the X or Z simulation boundary condition.
The inclusive lower x coordinate.
The exclusive upper x coordinate.
The inclusive lower z coordinate.
The exclusive upper z coordinate.
A Neumann boundary condition applied only to part of the upper z simulation boundary. The entire upper z boundary must be filled with a boundary condition. The lower coordinate is included in the simulation and the upper bound is exclusive. Also note that at the intersection of the X or Y simulation boundary the first computational cell of the Z boundary is included in the X or Y simulation boundary condition.
The inclusive lower x coordinate.
The exclusive upper x coordinate.
The inclusive lower y coordinate.
The exclusive upper y coordinate.
VSim allows the use of the direct solver SuperLU or one of the current choices for iterative solvers.
Use the SuperLU solver. This is a direct matrix solver which is not recommended for use in a simulation with a grid larger than a few thousand cells. For grids with more than a few thousand cells, use an iterative solver.
An iterative solver for symmetric positive definite matrices.
The size of the error vector for stopping the iteration to solution.
The maximum number of iterations allowed to achieve the solution. Anything above 30 is questionable.
This is described in the AztecOO user guide, p. 17, currently here. Metrics are one of:
An iterative solver. Actually the restarted GMRES. A very robust solver.
Number of vectors used in Krylov subspace.
The maximum number of iterations allowed to achieve the solution. Anything above 30 is questionable.
The size of the error vector for stopping the iteration to solution.
This is described in the AztecOO user guide, p. 17, currently here. Metrics are one of:
How to orthogonalize the Krylov subspace. Options are:
conjugate gradient squared
- tolerance
The size of the error vector for stopping the iteration to solution.
- max iterations
The maximum number of iterations allowed to achieve the solution. Anything above 30 is questionable.
- convergence metric
This is described in the AztecOO user guide, p. 17, currently here. Metrics are one of:
- r0
- Use the ratio of the L2 norms of the residual and the initial residual.
- rhs
- Use the ratio of the L2 norms of the residual and the right-hand side.
- Anorm
- Use the ratio of the L2 norm of the residual and the maximum absolute row sum of the matrix (L-infinity norm).
- noscaled
- Use the ratio of the L2 norm of the residual.
- sol
- Use the ratio of the maximum component of the residual and the sum of (L-infinity norm of the matrix times the maximum absolute component of the first iterate to the solution + the maximum absolute component of the right-hand side).
biconjugate gradient stabilized
- tolerance
The size of the error vector for stopping the iteration to solution.
- max iterations
The maximum number of iterations allowed to achieve the solution. Anything above 30 is questionable.
- convergence metric
This is described in the AztecOO user guide, p. 17, currently here. Metrics are one of:
- r0
- Use the ratio of the L2 norms of the residual and the initial residual.
- rhs
- Use the ratio of the L2 norms of the residual and the right-hand side.
- Anorm
- Use the ratio of the L2 norm of the residual and the maximum absolute row sum of the matrix (L-infinity norm).
- noscaled
- Use the ratio of the L2 norm of the residual.
- sol
- Use the ratio of the maximum component of the residual and the sum of (L-infinity norm of the matrix times the maximum absolute component of the first iterate to the solution + the maximum absolute component of the right-hand side).
transpose-free quasi-minimal residual
- tolerance
The size of the error vector for stopping the iteration to solution.
- max iterations
The maximum number of iterations allowed to achieve the solution. Anything above 30 is questionable.
- convergence metric
This is described in the AztecOO user guide, p. 17, currently here. Metrics are one of:
- r0
- Use the ratio of the L2 norms of the residual and the initial residual.
- rhs
- Use the ratio of the L2 norms of the residual and the right-hand side.
- Anorm
- Use the ratio of the L2 norm of the residual and the maximum absolute row sum of the matrix (L-infinity norm).
- noscaled
- Use the ratio of the L2 norm of the residual.
- sol
- Use the ratio of the maximum component of the residual and the sum of (L-infinity norm of the matrix times the maximum absolute component of the first iterate to the solution + the maximum absolute component of the right-hand side).
preconditioner
no preconditioner
- multigrid
Multigrid has a large number of parameters. In most cases, the defaults are good. If one is using particles, the linear solve often does not matter in overall timing. More information is available in the VSim User Guide: VSim User Guide: Simulation Concepts: Fields
mg defaults
- SA
- Works best with symmetric matrices. Symmetric matrices occur when all boundary conditions in the problem are periodic.
- DD
- Works best in general.
- DD-ML
- Maxwell
- maximum levels
The maximum number of levels of multigrid smoother application before doing a direct solve on the smaller problem. For highly parallel problems this should be limited to 3-4 to minimize communication time.
- smoother type
The smoother to apply at each multigrid level. The default is a good choice, but the user may try other smoothers to achieve best solving times. The choices are:
- Gauss Seidel
- symmetric variable block Gauss Seidel
- Jacobi
- Chebyshev
- Aztec
- smoother sweeps
The number of times to apply the smoother at each multigrid level. A good choice is 3, but the user may try other values to achieve best solving times.
- when to smooth
Generally one wants to smooth both. The before and after choices are provided to the user to try other values to achieve best solving times.
- both
- before
- after
- coarse type
The type of solver to use at the coarsest level.
- Jacobi
- KLU
- damping factor
Damping factor for smoothed aggregation. The default is a good choice. Users may try other values to achieve best solving times.
- threshold
This determines the multigrid aggregation at each level.
- increase or decrease
If set to increasing, level 0 will correspond to the finest level. If set to decreasing, max levels - 1 will correspond to the finest level. Should not affect convergence. The choices are:
- increasing
- decreasing