12 #ifndef MFEM_TESLA_SOLVER
13 #define MFEM_TESLA_SOLVER
15 #include "../../config/config.hpp"
19 #include "../common/pfem_extras.hpp"
26 using miniapps::H1_ParFESpace;
27 using miniapps::ND_ParFESpace;
28 using miniapps::RT_ParFESpace;
29 using miniapps::ParDiscreteGradOperator;
30 using miniapps::ParDiscreteCurlOperator;
31 using miniapps::DivergenceFreeProjector;
33 namespace electromagnetics
38 static double mu0_ = 4.0e-7*M_PI;
109 double (*muInv_)(
const Vector&);
117 std::map<std::string,socketstream*> socks_;
163 #endif // MFEM_USE_MPI
165 #endif // MFEM_TESLA_SOLVER
double muInv(const Vector &x)
Abstract parallel finite element space.
void GetErrorEstimates(Vector &errors)
ParGridFunction * GetPsi()
TeslaSolver(ParMesh &pmesh, int order, Array< int > &kbcs, Array< int > &vbcs, Vector &vbcv, double(*muInv)(const Vector &), void(*a_bc)(const Vector &, Vector &), void(*j_src)(const Vector &, Vector &), void(*m_src)(const Vector &, Vector &))
The BoomerAMG solver in hypre.
Data collection with VisIt I/O routines.
HYPRE_Int GetProblemSize()
void RegisterVisItFields(VisItDataCollection &visit_dc)
SurfaceCurrent(ParFiniteElementSpace &H1FESpace, ParFiniteElementSpace &HCurlFESpace, ParDiscreteGradOperator &Grad, Array< int > &kbcs, Array< int > &vbcs, Vector &vbcv)
Wrapper for hypre's parallel vector class.
Base class Coefficient that may optionally depend on time.
void WriteVisItFields(int it=0)
const ParGridFunction & GetVectorPotential()
void ComputeSurfaceCurrent(ParGridFunction &k)
Class for parallel grid function.
Wrapper for hypre's ParCSR matrix class.
Class for parallel meshes.