WarpX
SemiImplicitEM.H
Go to the documentation of this file.
1 /* Copyright 2024 Justin Angus
2  *
3  * This file is part of WarpX.
4  *
5  * License: BSD-3-Clause-LBNL
6  */
7 #ifndef SEMI_IMPLICIT_EM_H_
8 #define SEMI_IMPLICIT_EM_H_
9 
11 
12 #include <AMReX_Array.H>
13 #include <AMReX_MultiFab.H>
14 #include <AMReX_REAL.H>
15 
16 #include "ImplicitSolver.H"
17 
43 {
44 public:
45 
46  SemiImplicitEM() = default;
47 
48  ~SemiImplicitEM() override = default;
49 
50  // Prohibit Move and Copy operations
51  SemiImplicitEM(const SemiImplicitEM&) = delete;
55 
56  void Define ( WarpX* a_WarpX ) override;
57 
58  void PrintParameters () const override;
59 
60  void OneStep ( amrex::Real a_time,
61  amrex::Real a_dt,
62  int a_step ) override;
63 
64  void ComputeRHS ( WarpXSolverVec& a_RHS,
65  const WarpXSolverVec& a_E,
66  amrex::Real a_time,
67  amrex::Real a_dt,
68  int a_nl_iter,
69  bool a_from_jacobian ) override;
70 
71 private:
72 
77 
78 };
79 
80 #endif
Definition: ImplicitSolver.H:24
Definition: SemiImplicitEM.H:43
SemiImplicitEM()=default
void Define(WarpX *a_WarpX) override
Read user-provided parameters that control the implicit solver. Allocate internal arrays for intermed...
Definition: SemiImplicitEM.cpp:13
WarpXSolverVec m_Eold
Definition: SemiImplicitEM.H:76
SemiImplicitEM & operator=(SemiImplicitEM &&)=delete
void OneStep(amrex::Real a_time, amrex::Real a_dt, int a_step) override
Advance fields and particles by one time step using the specified implicit algorithm.
Definition: SemiImplicitEM.cpp:61
SemiImplicitEM(SemiImplicitEM &&)=delete
~SemiImplicitEM() override=default
SemiImplicitEM(const SemiImplicitEM &)=delete
WarpXSolverVec m_E
Solver vectors for E and Eold.
Definition: SemiImplicitEM.H:76
void ComputeRHS(WarpXSolverVec &a_RHS, const WarpXSolverVec &a_E, amrex::Real a_time, amrex::Real a_dt, int a_nl_iter, bool a_from_jacobian) override
Computes the RHS of the equation corresponding to the specified implicit algorithm....
Definition: SemiImplicitEM.cpp:100
void PrintParameters() const override
Definition: SemiImplicitEM.cpp:41
SemiImplicitEM & operator=(const SemiImplicitEM &)=delete
Definition: WarpX.H:85
This is a wrapper class around a Vector of array of pointers to MultiFabs that contains basic math op...
Definition: WarpXSolverVec.H:48