10 #ifdef MOOSE_MFEM_ENABLED 44 const std::string &
name,
48 const std::string &
name,
52 const std::string &
name,
58 void addFESpace(
const std::string & user_object_name,
59 const std::string &
name,
74 void addSubMesh(
const std::string & user_object_name,
75 const std::string &
name,
82 const std::string &
name,
89 const std::string & var_name,
96 const std::string & var_name,
105 const std::string & var_name,
113 void addKernel(
const std::string & kernel_name,
114 const std::string &
name,
123 const std::string &
name,
132 const std::string &
name,
136 const std::string &
name,
145 const std::string &
name,
152 const std::string &
name,
159 const std::string &
name,
196 std::optional<std::reference_wrapper<mfem::ParGridFunction const>>
void addGridFunction(const std::string &var_type, const std::string &var_name, InputParameters ¶meters)
Adds one MFEM GridFunction to be used in the MFEM solve.
void addMFEMPreconditioner(const std::string &user_object_name, const std::string &name, InputParameters ¶meters)
Method called in AddMFEMPreconditionerAction which will create the solver.
virtual void syncSolutions(Direction) override
Method to transfer data to/from the external application to the associated transfer mesh...
Base problem data struct.
MFEMProblemData & getProblemData()
Method to get the current MFEMProblemData object storing the current data specifying the FE problem...
std::shared_ptr< mfem::ParGridFunction > getGridFunction(const std::string &name)
void addPostprocessor(const std::string &type, const std::string &name, InputParameters ¶meters) override
Override of ExternalProblem::addPostprocessor.
void addFunction(const std::string &type, const std::string &name, InputParameters ¶meters) override
Override of ExternalProblem::addFunction.
InputParameters addMFEMFESpaceFromMOOSEVariable(InputParameters &moosevar_params)
Method used to get an mfem FEC depending on the variable family specified in the input file...
static InputParameters validParams()
virtual MFEMMesh & mesh() override
Overwritten mesh() method from base MooseMesh to retrieve the correct mesh type, in this case MFEMMes...
const InputParameters & parameters() const
Get the parameters of the object.
void addVariable(const std::string &var_type, const std::string &var_name, InputParameters ¶meters) override
Override of ExternalProblem::addVariable.
std::string solverTypeString(unsigned int solver_sys_num) override
Return solver type as a human readable string.
Front-end class for creating and storing MFEM coefficients.
void displaceMesh()
Displace the mesh, if mesh displacement is enabled.
virtual void addAuxVariable(const std::string &var_type, const std::string &var_name, InputParameters ¶ms)
Canonical method for adding an auxiliary variable.
MFEMProblemData _problem_data
void addSubMesh(const std::string &user_object_name, const std::string &name, InputParameters ¶meters)
Add an MFEM SubMesh to the problem.
void addMFEMNonlinearSolver()
Add the nonlinear solver to the system.
Moose::MFEM::CoefficientManager coefficients
const std::string & name() const
Get the name of the class.
Moose::MFEM::CoefficientManager & getCoefficients()
Method to get the PropertyManager object for storing material properties and converting them to MFEM ...
void addMaterial(const std::string &material_name, const std::string &name, InputParameters ¶meters) override
virtual void initialSetup() override
const std::string & type() const
Get the type of this class.
void setMesh()
Set the mesh used by MFEM.
void addMFEMSolver(const std::string &user_object_name, const std::string &name, InputParameters ¶meters)
Method called in AddMFEMSolverAction which will create the solver.
Moose::FEBackend feBackend() const override
void addAuxKernel(const std::string &kernel_name, const std::string &name, InputParameters ¶meters) override
Override of ExternalProblem::addAuxKernel.
void addFESpace(const std::string &user_object_name, const std::string &name, InputParameters ¶meters)
Add an MFEM FESpace to the problem.
MFEMProblem(const InputParameters ¶ms)
void addFunctorMaterial(const std::string &material_name, const std::string &name, InputParameters ¶meters) override
MFEMMesh inherits a MOOSE mesh class which allows us to work with other MOOSE objects.
virtual std::vector< VariableName > getAuxVariableNames()
Returns all the variable names from the auxiliary system base.
void setDevice()
Set the device to use to solve the FE problem.
void addBoundaryCondition(const std::string &bc_name, const std::string &name, InputParameters ¶meters) override
virtual MooseMesh & mesh() override
virtual void externalSolve() override
New interface for solving an External problem.
void addKernel(const std::string &kernel_name, const std::string &name, InputParameters ¶meters) override
Override of ExternalProblem::addKernel.
std::optional< std::reference_wrapper< mfem::ParGridFunction const > > getMeshDisplacementGridFunction()
Returns optional reference to the displacement GridFunction to apply to nodes.
void addAuxVariable(const std::string &var_type, const std::string &var_name, InputParameters ¶meters) override
Override of ExternalProblem::addAuxVariable.
void addTransfer(const std::string &transfer_name, const std::string &name, InputParameters ¶meters) override
Add transfers between MultiApps and/or MFEM SubMeshes.
void addInitialCondition(const std::string &ic_name, const std::string &name, InputParameters ¶meters) override