https://mooseframework.inl.gov
MFEMTransient.h
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://mooseframework.inl.gov
3 //*
4 //* All rights reserved, see COPYRIGHT for full restrictions
5 //* https://github.com/idaholab/moose/blob/master/COPYRIGHT
6 //*
7 //* Licensed under LGPL 2.1, please see LICENSE for details
8 //* https://www.gnu.org/licenses/lgpl-2.1.html
9 
10 #ifdef MOOSE_MFEM_ENABLED
11 
12 #pragma once
13 
15 #include "MFEMProblemSolve.h"
17 #include "TransientBase.h"
18 
20 {
21 public:
23 
24  explicit MFEMTransient(const InputParameters & params);
25 
26  virtual void init() override;
27 
29  virtual SolveObject * timeStepSolveObject() override { return &_mfem_problem_solve; }
30 
32  virtual void takeStep(Real input_dt = -1.0) override;
33 
35  virtual Real relativeSolutionDifferenceNorm(bool /*check_aux*/) const override
36  {
37  mooseError("MFEMTransient executioner does not yet support evaluating the relative solution "
38  "difference norm at each timestep.");
39  return 0.0;
40  }
41 
43  virtual std::set<TimeIntegrator *> getTimeIntegrators() const override { return {}; }
44 
46  virtual std::vector<std::string> getTimeIntegratorNames() const override { return {}; }
47 
48 private:
52 };
53 
54 #endif
Base problem data struct.
virtual SolveObject * timeStepSolveObject() override
Return the solve object wrapped by time stepper.
Definition: MFEMTransient.h:29
virtual std::set< TimeIntegrator * > getTimeIntegrators() const override
MFEM problems have no libMesh based TimeIntegrators attached, so return empty set.
Definition: MFEMTransient.h:43
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system...
MFEMProblemSolve _mfem_problem_solve
Definition: MFEMTransient.h:51
virtual void takeStep(Real input_dt=-1.0) override
Do whatever is necessary to advance one step.
Definition: MFEMTransient.C:64
virtual std::vector< std::string > getTimeIntegratorNames() const override
MFEM problems have no libMesh based TimeIntegrators attached, so return empty vector.
Definition: MFEMTransient.h:46
virtual void init() override
Initialize the executioner.
Definition: MFEMTransient.C:46
MFEMTransient(const InputParameters &params)
Definition: MFEMTransient.C:28
Base class for transient executioners that use a FixedPointSolve solve object for multiapp-main app i...
Definition: TransientBase.h:27
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type and optionally a file path to the top-level block p...
Definition: MooseBase.h:281
MFEMProblem & _mfem_problem
Definition: MFEMTransient.h:49
Interface required for MFEM executioners to add and get ProblemOperators:
virtual Real relativeSolutionDifferenceNorm(bool) const override
Not supported for MFEM problems, so error if called.
Definition: MFEMTransient.h:35
static InputParameters validParams()
Definition: MFEMTransient.C:20
MFEMProblemData & _mfem_problem_data
Definition: MFEMTransient.h:50