https://mooseframework.inl.gov
Loading...
Searching...
No Matches
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{
21public:
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
48private:
52};
53
54#endif
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application.
Definition MooseError.h:311
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system.
virtual SolveObject * timeStepSolveObject() override
Return the solve object wrapped by time stepper.
virtual Real relativeSolutionDifferenceNorm(bool) const override
Not supported for MFEM problems, so error if called.
virtual std::set< TimeIntegrator * > getTimeIntegrators() const override
MFEM problems have no libMesh based TimeIntegrators attached, so return empty set.
static InputParameters validParams()
MFEMProblemData & _mfem_problem_data
virtual void init() override
Initialize the executioner.
MFEMProblemSolve _mfem_problem_solve
virtual std::vector< std::string > getTimeIntegratorNames() const override
MFEM problems have no libMesh based TimeIntegrators attached, so return empty vector.
virtual void takeStep(Real input_dt=-1.0) override
Do whatever is necessary to advance one step.
MFEMProblem & _mfem_problem
Interface required for MFEM executioners to add and get ProblemOperators:
Base class for transient executioners that use a FixedPointSolve solve object for multiapp-main app i...
Base problem data struct.