https://mooseframework.inl.gov
Loading...
Searching...
No Matches
TimeDependentEquationSystem.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
14#include "EquationSystem.h"
15
16namespace Moose::MFEM
17{
22{
23public:
25
26 virtual void SetTimeStep(mfem::real_t & dt) { _dt = dt; };
27 virtual void AddKernel(std::shared_ptr<MFEMKernel> kernel) override;
28
29 virtual bool IsTimeDependent() const override { return true; }
30
31protected:
32 virtual void BuildBilinearForms() override;
33 virtual void BuildMixedBilinearForms() override;
34 virtual void BuildNonlinearForms() override;
35 virtual void EliminateCoupledVariables() override;
36
38 mfem::real_t _dt;
39
45 _td_mblfs; // named according to trial variable
46
49
50private:
52};
53
54} // namespace Moose::MFEM
55
56#endif
Owns the weak-form mathematics of a MOOSE MFEM problem.
Lightweight adaptor over an std::map from strings to pointer to T.
Problem operator for time-dependent problems with an equation system.
Class to store weak form components for time dependent PDEs.
const Moose::MFEM::TimeDerivativeMap & _time_derivative_map
Map between variable names and their time derivatives.
virtual void BuildBilinearForms() override
Build bilinear forms (diagonal Jacobian contributions)
Moose::MFEM::NamedFieldsMap< mfem::ParBilinearForm > _td_blfs
Containers to store contributions to weak form of the form (F du/dt, v)
virtual void BuildMixedBilinearForms() override
Build mixed bilinear forms (off-diagonal Jacobian contributions)
virtual void EliminateCoupledVariables() override
Perform trivial eliminations of coupled variables lacking corresponding test variables.
virtual void BuildNonlinearForms() override
Build non-linear action forms.
virtual void AddKernel(std::shared_ptr< MFEMKernel > kernel) override
Add kernels.
Moose::MFEM::NamedFieldsMap< Moose::MFEM::NamedFieldsMap< mfem::ParMixedBilinearForm > > _td_mblfs
Moose::MFEM::NamedFieldsMap< Moose::MFEM::NamedFieldsMap< std::vector< std::shared_ptr< MFEMKernel > > > > _td_kernels_map
Lightweight adaptor over a std::map relating names of GridFunctions with the name of their time deriv...
Utilities for converting between vector(s) of libMesh Points and MFEM Vector(s).