|
WarpX
|
#include <LabFrameExplicitES.H>
Public Member Functions | |
| LabFrameExplicitES (int nlevs_max) | |
| void | InitData () override |
| void | ComputeSpaceChargeField (ablastr::fields::MultiFabRegister &fields, MultiParticleContainer &mpc, MultiFluidContainer *mfl, int max_level) override |
| Computes charge density, rho, and solves Poisson's equation to obtain the associated electrostatic potential, phi. Using the electrostatic potential, the electric field is computed in lab frame, and if relativistic, then the electric and magnetic fields are computed using potential, phi, and velocity of source for potential, beta. This function must be defined in the derived classes. | |
| void | computePhiTriDiagonal (const ablastr::fields::MultiLevelScalarField &rho, const ablastr::fields::MultiLevelScalarField &phi) |
| void | computePhiTriDiagonal_periodic (const ablastr::fields::MultiLevelScalarField &rho, const ablastr::fields::MultiLevelScalarField &phi) |
| Public Member Functions inherited from ElectrostaticSolver | |
| ElectrostaticSolver ()=default | |
| ElectrostaticSolver (int nlevs_max) | |
| virtual | ~ElectrostaticSolver () |
| ElectrostaticSolver (const ElectrostaticSolver &)=delete | |
| ElectrostaticSolver & | operator= (const ElectrostaticSolver &)=delete |
| ElectrostaticSolver (ElectrostaticSolver &&)=delete | |
| ElectrostaticSolver & | operator= (ElectrostaticSolver &&)=delete |
| void | ReadParameters () |
| void | setPhiBC (ablastr::fields::MultiLevelScalarField const &phi, amrex::Real t) const |
| Set Dirichlet boundary conditions for the electrostatic solver. The given potential's values are fixed on the boundaries of the given dimension according to the desired values from the simulation input file, boundary.potential_lo and boundary.potential_hi. | |
| void | computePhi (ablastr::fields::MultiLevelScalarField const &rho, ablastr::fields::MultiLevelScalarField const &phi, std::array< amrex::Real, 3 > beta, amrex::Real required_precision, amrex::Real absolute_tolerance, int max_iters, int verbosity, bool is_igf_2d_slices, std::optional< ablastr::fields::MultiLevelVectorField > efield=std::nullopt) const |
| void | computeE (ablastr::fields::MultiLevelVectorField const &E, ablastr::fields::MultiLevelScalarField const &phi, std::array< amrex::Real, 3 > beta) const |
| Compute the electric field that corresponds to phi, and add it to the set of MultiFab E. The electric field is calculated by assuming that the source that produces the phi potential is moving with a constant speed | |
| void | computeB (ablastr::fields::MultiLevelVectorField const &B, ablastr::fields::MultiLevelScalarField const &phi, std::array< amrex::Real, 3 > beta) const |
| Compute the magnetic field that corresponds to phi, and add it to the set of MultiFab B. The magnetic field is calculated by assuming that the source that produces the phi potential is moving with a constant speed | |
Additional Inherited Members | |
| Public Attributes inherited from ElectrostaticSolver | |
| int | num_levels |
| std::unique_ptr< PoissonBoundaryHandler > | m_poisson_boundary_handler |
| amrex::Real | self_fields_required_precision = 1e-11 |
| amrex::Real | self_fields_absolute_tolerance = 0.0 |
| int | self_fields_max_iters = 200 |
| int | self_fields_verbosity = 2 |
| bool | is_igf_2d_slices = false |
|
inlineexplicit |
| void LabFrameExplicitES::computePhiTriDiagonal | ( | const ablastr::fields::MultiLevelScalarField & | rho, |
| const ablastr::fields::MultiLevelScalarField & | phi ) |
| void LabFrameExplicitES::computePhiTriDiagonal_periodic | ( | const ablastr::fields::MultiLevelScalarField & | rho, |
| const ablastr::fields::MultiLevelScalarField & | phi ) |
|
overridevirtual |
Computes charge density, rho, and solves Poisson's equation to obtain the associated electrostatic potential, phi. Using the electrostatic potential, the electric field is computed in lab frame, and if relativistic, then the electric and magnetic fields are computed using potential, phi, and velocity of source for potential, beta. This function must be defined in the derived classes.
Implements ElectrostaticSolver.
|
overridevirtual |
Reimplemented from ElectrostaticSolver.