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
14 #include "MFEMProblemSolve.h"
16 #include "TransientBase.h"
17 
19 {
20 public:
22 
23  explicit MFEMTransient(const InputParameters & params);
24 
25  virtual void init() override;
26 
28  virtual SolveObject * timeStepSolveObject() override { return &_mfem_problem_solve; }
29 
31  virtual void takeStep(Real input_dt = -1.0) override;
32 
34  virtual Real relativeSolutionDifferenceNorm(bool /*check_aux*/) const override
35  {
36  mooseError("MFEMTransient executioner does not yet support evaluating the relative solution "
37  "difference norm at each timestep.");
38  return 0.0;
39  }
40 
42  virtual std::set<TimeIntegrator *> getTimeIntegrators() const override { return {}; }
43 
45  virtual std::vector<std::string> getTimeIntegratorNames() const override { return {}; }
46 
47 private:
51 };
52 
53 #endif
Base problem data struct.
virtual SolveObject * timeStepSolveObject() override
Return the solve object wrapped by time stepper.
Definition: MFEMTransient.h:28
virtual std::set< TimeIntegrator * > getTimeIntegrators() const override
MFEM problems have no libMesh based TimeIntegrators attached, so return empty set.
Definition: MFEMTransient.h:42
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system...
MFEMProblemSolve _mfem_problem_solve
Definition: MFEMTransient.h:50
virtual void takeStep(Real input_dt=-1.0) override
Do whatever is necessary to advance one step.
Definition: MFEMTransient.C:63
virtual std::vector< std::string > getTimeIntegratorNames() const override
MFEM problems have no libMesh based TimeIntegrators attached, so return empty vector.
Definition: MFEMTransient.h:45
virtual void init() override
Initialize the executioner.
Definition: MFEMTransient.C:45
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:267
MFEMProblem & _mfem_problem
Definition: MFEMTransient.h:48
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:34
static InputParameters validParams()
Definition: MFEMTransient.C:20
MFEMProblemData & _mfem_problem_data
Definition: MFEMTransient.h:49