7#ifndef THETA_IMPLICIT_EM_H_
8#define THETA_IMPLICIT_EM_H_
66 void Define (
WarpX* a_WarpX,
bool from_restart)
override;
79 int a_step )
override;
85 bool a_from_jacobian )
override;
amrex::Real m_theta
Time-biasing parameter for fields used on RHS to advance system.
Definition ImplicitSolver.H:166
ThetaImplicitEM()=default
WarpXSolverVec m_Eold
Definition ThetaImplicitEM.H:112
void ComputeRHS(WarpXSolverVec &a_RHS, const WarpXSolverVec &a_E, amrex::Real start_time, int a_nl_iter, bool a_from_jacobian) override
Computes the RHS of the equation corresponding to the specified implicit algorithm....
Definition ThetaImplicitEM.cpp:137
void OneStep(amrex::Real start_time, amrex::Real a_dt, int a_step) override
Advances the simulation one time step.
Definition ThetaImplicitEM.cpp:86
WarpXSolverVec m_E
Solver vectors to be used in the nonlinear solver to solve for the electric field E....
Definition ThetaImplicitEM.H:112
void FinishFieldUpdate(amrex::Real end_time)
Nonlinear solver is for the time-centered values of E. After the solver, need to use m_E and m_Eold t...
Definition ThetaImplicitEM.cpp:174
void PrintParameters() const override
Definition ThetaImplicitEM.cpp:71
void InitializeCurlCurlBCMasks()
Inititialize the BC masks for the curl curl operator.
Definition ThetaImplicitEM.cpp:197
ThetaImplicitEM(ThetaImplicitEM &&)=delete
~ThetaImplicitEM() override=default
void Define(WarpX *a_WarpX, bool from_restart) override
Read user-provided parameters that control the implicit solver. Allocate internal arrays for intermed...
Definition ThetaImplicitEM.cpp:15
amrex::Real GetThetaForPC() const override
Definition ThetaImplicitEM.H:90
ThetaImplicitEM & operator=(ThetaImplicitEM &&)=delete
const amrex::MultiFab * GetCurl2BCmask(int lev, int field_dir) const override
Return reference to the multifabs for curl curl mask in virtual dirs.
Definition ThetaImplicitEM.cpp:190
ThetaImplicitEM(const ThetaImplicitEM &)=delete
ThetaImplicitEM & operator=(const ThetaImplicitEM &)=delete
void UpdateWarpXFields(const WarpXSolverVec &a_E, amrex::Real start_time)
Update the E and B fields owned by WarpX.
Definition ThetaImplicitEM.cpp:159
This is a wrapper class around a Vector of pointers to MultiFabs that contains basic math operators a...
Definition WarpXSolverVec.H:56