https://mooseframework.inl.gov
Loading...
Searching...
No Matches
TimeDependentEquationSystemProblemOperator.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
17
18namespace Moose::MFEM
19{
20
24{
25public:
27 const std::string & weak_form_name = "");
28
29 virtual void SetGridFunctions() override;
30 virtual void Init() override;
31 virtual void ImplicitSolve(const mfem::real_t, const mfem::Vector &, mfem::Vector &) override;
32 virtual void Solve() override;
33
34 [[nodiscard]] virtual Moose::MFEM::TimeDependentEquationSystem *
35 GetEquationSystem() const override
36 {
37 mooseAssert(_equation_system,
38 "No TimeDependentEquationSystem in TimeDependentEquationSystemProblemOperator.");
39 return _equation_system.get();
40 }
41
42protected:
44 void FormEquationSystemOperator(mfem::real_t dt);
45
46private:
47 std::shared_ptr<Moose::MFEM::TimeDependentEquationSystem> _equation_system{nullptr};
48};
49
50} // namespace Moose::MFEM
51
52#endif
Problem operator for time-dependent problems with an equation system.
virtual Moose::MFEM::TimeDependentEquationSystem * GetEquationSystem() const override
Returns a pointer to the operator's equation system.
virtual void ImplicitSolve(const mfem::real_t, const mfem::Vector &, mfem::Vector &) override
std::shared_ptr< Moose::MFEM::TimeDependentEquationSystem > _equation_system
void FormEquationSystemOperator(mfem::real_t dt)
Form equation-system state for the current implicit time step.
Class to store weak form components for time dependent PDEs.
Problem operator for time-dependent problems with no equation system.
Utilities for converting between vector(s) of libMesh Points and MFEM Vector(s).