12#ifndef MFEM_MAXWELL_SOLVER
13#define MFEM_MAXWELL_SOLVER
34namespace electromagnetics
86 void setupSolver(
const int idt,
const real_t dt)
const;
156 mutable std::map<int, ParBilinearForm *> a1_;
157 mutable std::map<int, HypreParMatrix *> A1_;
158 mutable std::map<int, Coefficient *> dtCoef_;
159 mutable std::map<int, Coefficient *> dtSigmaCoef_;
160 mutable std::map<int, Coefficient *> dtEtaInvCoef_;
161 mutable std::map<int, HypreDiagScale *> diagScale_;
162 mutable std::map<int, HyprePCG *> pcg_;
168 std::map<std::string, socketstream*> socks_;
Base class Coefficients that optionally depend on space and time. These are used by the BilinearFormI...
Wrapper for hypre's ParCSR matrix class.
Wrapper for hypre's parallel vector class.
Class for parallel grid function.
Class for parallel meshes.
Base abstract class for first order time dependent operators.
Base class for vector Coefficients that optionally depend on time and space.
Data collection with VisIt I/O routines.
void ImplicitSolve(const real_t dt, const Vector &x, Vector &k)
Solve the equation: k = f(x + dt k, t), for the unknown k at the current time t.
HYPRE_BigInt GetProblemSize()
real_t GetMaximumTimeStep() const
void WriteVisItFields(int it=0)
void SetInitialEField(VectorCoefficient &EFieldCoef)
void RegisterVisItFields(VisItDataCollection &visit_dc)
MaxwellSolver(ParMesh &pmesh, int sOrder, real_t(*eps)(const Vector &), real_t(*muInv)(const Vector &), real_t(*sigma)(const Vector &), void(*j_src)(const Vector &, real_t, Vector &), Array< int > &abcs, Array< int > &dbcs, void(*dEdt_bc)(const Vector &, real_t, Vector &))
void SetLogging(int logging)
void SetInitialBField(VectorCoefficient &BFieldCoef)
void Mult(const Vector &B, Vector &dEdt) const
Perform the action of the operator: y = k = f(x, t), where k solves the algebraic equation F(x,...
real_t sigma(const Vector &x)
real_t muInv(const Vector &x)
void j_src(const Vector &x, real_t t, Vector &j)