Field solvers
Warning
This section is currently in development.
Electromagnetic
- class picmistandard.PICMI_ElectromagneticSolver(grid, method=None, stencil_order=None, cfl=None, source_smoother=None, field_smoother=None, subcycling=None, galilean_velocity=None, divE_cleaning=None, divB_cleaning=None, pml_divE_cleaning=None, pml_divB_cleaning=None, **kw)[source]
Electromagnetic field solver
- Parameters:
grid (grid instance) – Grid object for the diagnostic
method ({'Yee', 'CKC', 'Lehe', 'PSTD', 'PSATD', 'GPSTD', 'DS', 'ECT'}) –
The advance method use to solve Maxwell’s equations. The default method is code dependent.
’Yee’: standard solver using the staggered Yee grid (https://doi.org/10.1109/TAP.1966.1138693)
’CKC’: solver with the extended Cole-Karkkainen-Cowan stencil with better dispersion properties (https://doi.org/10.1103/PhysRevSTAB.16.041303)
’Lehe’: CKC-style solver with modified dispersion (https://doi.org/10.1103/PhysRevSTAB.16.021301)
’PSTD’: Spectral solver with finite difference in time domain, e.g., Q. H. Liu, Letters 15 (3) (1997) 158–165
’PSATD’: Spectral solver with analytic in time domain (https://doi.org/10.1016/j.jcp.2013.03.010)
’DS’: Directional Splitting after Yasuhiko Sentoku (https://doi.org/10.1140/epjd/e2014-50162-y)
’ECT’: Enlarged Cell Technique solver, allowing internal conductors (https://doi.org/10.1109/APS.2005.1551259)
stencil_order (vector of integers) – Order of stencil for each axis (-1=infinite)
cfl (float, optional) – Fraction of the Courant-Friedrich-Lewy criteria [1]
source_smoother (smoother instance, optional) – Smoother object to apply to the sources
field_smoother (smoother instance, optional) – Smoother object to apply to the fields
subcycling (integer, optional) – Level of subcycling for the GPSTD solver
galilean_velocity (vector of floats, optional) – Velocity of Galilean reference frame [m/s]
divE_cleaning (bool, optional) – Solver uses div(E) cleaning if True
divB_cleaning (bool, optional) – Solver uses div(B) cleaning if True
pml_divE_cleaning (bool, optional) – Solver uses div(E) cleaning in the PML if True
pml_divB_cleaning (bool, optional) – Solver uses div(B) cleaning in the PML if True
Electrostatic
- class picmistandard.PICMI_ElectrostaticSolver(grid, method=None, required_precision=None, maximum_iterations=None, **kw)[source]
Electrostatic field solver
- Parameters:
grid (grid instance) – Grid object for the diagnostic
method (string) – One of ‘FFT’, or ‘Multigrid’
required_precision (float, optional) – Level of precision required for iterative solvers
maximum_iterations (integer, optional) – Maximum number of iterations for iterative solvers
Smoothing
- class picmistandard.PICMI_BinomialSmoother(n_pass=None, compensation=None, stride=None, alpha=None, **kw)[source]
Describes a binomial smoother operator (applied to grids)
- Parameters:
n_pass (vector of integers) – Number of passes along each axis
compensation (vector of booleans, optional) – Flags whether to apply comensation along each axis
stride (vector of integers, optional) – Stride along each axis
alpha (vector of floats, optional) – Smoothing coefficients along each axis