9#ifndef WARPX_ELECTROSTATICSOLVER_H_
10#define WARPX_ELECTROSTATICSOLVER_H_
92 std::array<amrex::Real, 3> beta,
93 amrex::Real required_precision,
94 amrex::Real absolute_tolerance,
98 std::optional<ablastr::fields::MultiLevelVectorField> efield = std::nullopt
119 std::array<amrex::Real, 3> beta
139 std::array<amrex::Real, 3> beta
ElectrostaticSolver & operator=(const ElectrostaticSolver &)=delete
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....
Definition ElectrostaticSolver.cpp:227
std::unique_ptr< PoissonBoundaryHandler > m_poisson_boundary_handler
Definition ElectrostaticSolver.H:146
ElectrostaticSolver()=default
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
Definition ElectrostaticSolver.cpp:125
virtual void InitData()
Definition ElectrostaticSolver.H:40
ElectrostaticSolver(ElectrostaticSolver &&)=delete
amrex::Real self_fields_absolute_tolerance
Definition ElectrostaticSolver.H:150
amrex::Real self_fields_required_precision
Definition ElectrostaticSolver.H:149
ElectrostaticSolver(const ElectrostaticSolver &)=delete
bool is_igf_2d_slices
Definition ElectrostaticSolver.H:162
virtual ~ElectrostaticSolver()
ElectrostaticSolver & operator=(ElectrostaticSolver &&)=delete
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 fixe...
Definition ElectrostaticSolver.cpp:51
void ReadParameters()
Definition ElectrostaticSolver.cpp:30
int self_fields_verbosity
Definition ElectrostaticSolver.H:158
int self_fields_max_iters
Definition ElectrostaticSolver.H:152
int num_levels
Definition ElectrostaticSolver.H:143
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....
Definition ElectrostaticSolver.cpp:391
virtual void ComputeSpaceChargeField(ablastr::fields::MultiFabRegister &fields, MultiParticleContainer &mpc, MultiFluidContainer *mfl, int max_level)=0
Computes charge density, rho, and solves Poisson's equation to obtain the associated electrostatic po...
Definition MultiFluidContainer.H:36
Definition MultiParticleContainer.H:68
Definition EffectivePotentialPoissonSolver.H:63
amrex::Vector< ScalarField > MultiLevelScalarField
Definition MultiFabRegister.H:200
amrex::Vector< VectorField > MultiLevelVectorField
Definition MultiFabRegister.H:208
Definition MultiFabRegister.H:262