https://mooseframework.inl.gov
EquationSystemProblemOperator.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 "ProblemOperator.h"
16 
17 namespace Moose::MFEM
18 {
21 {
22 public:
24  : ProblemOperator(problem), _equation_system(_problem_data.eqn_system)
25  {
26  }
27 
28  virtual void SetGridFunctions() override;
29  virtual void Solve() override;
30 
31  [[nodiscard]] virtual Moose::MFEM::EquationSystem * GetEquationSystem() const override
32  {
33  mooseAssert(_equation_system, "No EquationSystem in EquationSystemProblemOperator.");
34  return _equation_system.get();
35  }
36 
37 protected:
40 
41 private:
42  std::shared_ptr<Moose::MFEM::EquationSystem> _equation_system{nullptr};
43 };
44 
45 } // namespace Moose::MFEM
46 
47 #endif
Class to store weak form components (bilinear and linear forms, and optionally mixed and nonlinear fo...
Steady-state problem operator with no equation system.
std::shared_ptr< Moose::MFEM::EquationSystem > _equation_system
virtual Moose::MFEM::EquationSystem * GetEquationSystem() const override
Returns a pointer to the operator&#39;s equation system.
Steady-state problem operator with an equation system.
void BuildEquationSystemOperator()
Add kernels/bcs and assemble the linear part of the equation system.
Utilities for converting between vector(s) of libMesh Points and MFEM Vector(s).