https://mooseframework.inl.gov
ComplexEquationSystemProblemOperator.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 
16 namespace Moose::MFEM
17 {
20 {
21 
22 public:
27  {
28  }
29 
30  virtual void SetGridFunctions() override;
31  virtual void Solve() override;
32 
33  [[nodiscard]] virtual Moose::MFEM::ComplexEquationSystem * GetEquationSystem() const override
34  {
35  mooseAssert(_equation_system,
36  "No ComplexEquationSystem in ComplexEquationSystemProblemOperator.");
37  return _equation_system.get();
38  }
39 
40 private:
41  std::shared_ptr<Moose::MFEM::ComplexEquationSystem> _equation_system{nullptr};
42  std::vector<mfem::ParComplexGridFunction *> _cmplx_trial_variables;
43  std::vector<mfem::ParComplexGridFunction *> _cmplx_test_variables;
44 };
45 
46 } // namespace Moose::MFEM
47 
48 #endif
virtual Moose::MFEM::ComplexEquationSystem * GetEquationSystem() const override
Returns a pointer to the operator&#39;s equation system.
Steady-state problem operator with an equation system.
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.
std::vector< mfem::ParComplexGridFunction * > _cmplx_test_variables
std::vector< mfem::ParComplexGridFunction * > _cmplx_trial_variables
Steady-state problem operator with an equation system.
std::shared_ptr< Moose::MFEM::EquationSystem > eqn_system
Utilities for converting between vector(s) of libMesh Points and MFEM Vector(s).
std::shared_ptr< Moose::MFEM::ComplexEquationSystem > _equation_system