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:
32
33 virtual void SetGridFunctions() override;
34 virtual void Init(mfem::BlockVector & X) override;
35 virtual void ImplicitSolve(const mfem::real_t, const mfem::Vector &, mfem::Vector &) override;
36 virtual void Solve() override;
37
38 [[nodiscard]] virtual Moose::MFEM::TimeDependentEquationSystem *
39 GetEquationSystem() const override
40 {
41 mooseAssert(_equation_system,
42 "No TimeDependentEquationSystem in TimeDependentEquationSystemProblemOperator.");
43 return _equation_system.get();
44 }
45
46protected:
48 void FormEquationSystemOperator(mfem::real_t dt);
49
50private:
51 std::shared_ptr<Moose::MFEM::TimeDependentEquationSystem> _equation_system{nullptr};
52};
53
54} // namespace Moose::MFEM
55
56#endif
std::unique_ptr< T_DEST, T_DELETER > dynamic_pointer_cast(std::unique_ptr< T_SRC, T_DELETER > &src)
These are reworked from https://stackoverflow.com/a/11003103.
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).