Field Solvers¶
PyPIC3D supports two production runtime modes selected from
simulation_parameters.
Runtime Modes¶
Electrostatic mode¶
Set:
electrostatic = true
Per step, PyPIC3D:
Pushes particles.
Deposits
rho.Solves Poisson’s equation for
phi.Computes
E = -grad(phi).
The solver key controls both the Poisson solve and gradient operator:
solver = "spectral": FFT Poisson + spectral gradientsolver = "fdtd"(or any non-"spectral"value): conjugate-gradient Poisson + centered finite-difference gradient
Electrodynamic mode¶
Set:
electrostatic = false
Per step, PyPIC3D:
Pushes particles.
Deposits current
J.Updates
E.Updates
B.
The electrodynamic update uses first-order Yee-style kernels in
PyPIC3D.solvers.first_order_yee.
Vector potential mode¶
solver = "vector_potential" currently raises NotImplementedError during
initialization.
Electrodynamic Update Equations¶
PyPIC3D additionally applies a digital filter controlled by
constants.alpha to field components each update.
Boundary Conditions¶
Field boundary conditions are defined by:
simulation_parameters.x_bcsimulation_parameters.y_bcsimulation_parameters.z_bc
Supported values:
periodicconducting
For conducting boundaries, tangential electric-field components are zeroed on
boundary faces during the E update.
Current Deposition Selection¶
Current deposition is selected by:
current_calculation = "j_from_rhov"
or
current_calculation = "esirkepov"
See Current Deposition for behavior and tradeoffs.