WarpX
Loading...
Searching...
No Matches
LabFrameExplicitES Class Referencefinal

#include <LabFrameExplicitES.H>

Inheritance diagram for LabFrameExplicitES:
ElectrostaticSolver

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)
 
- Public Member Functions inherited from ElectrostaticSolver
 ElectrostaticSolver ()=default
 
 ElectrostaticSolver (int nlevs_max)
 
virtual ~ElectrostaticSolver ()
 
 ElectrostaticSolver (const ElectrostaticSolver &)=delete
 
ElectrostaticSolveroperator= (const ElectrostaticSolver &)=delete
 
 ElectrostaticSolver (ElectrostaticSolver &&)=delete
 
ElectrostaticSolveroperator= (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 $\vec{\beta}$:
 
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 $\vec{\beta}$:
 

Additional Inherited Members

- Public Attributes inherited from ElectrostaticSolver
int num_levels
 
std::unique_ptr< PoissonBoundaryHandlerm_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
 

Constructor & Destructor Documentation

◆ LabFrameExplicitES()

LabFrameExplicitES::LabFrameExplicitES ( int nlevs_max)
inline

Member Function Documentation

◆ computePhiTriDiagonal()

void LabFrameExplicitES::computePhiTriDiagonal ( const ablastr::fields::MultiLevelScalarField & rho,
const ablastr::fields::MultiLevelScalarField & phi )

◆ ComputeSpaceChargeField()

void LabFrameExplicitES::ComputeSpaceChargeField ( ablastr::fields::MultiFabRegister & fields,
MultiParticleContainer & mpc,
MultiFluidContainer * mfl,
int max_level )
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.

◆ InitData()

void LabFrameExplicitES::InitData ( )
overridevirtual

Reimplemented from ElectrostaticSolver.


The documentation for this class was generated from the following files: