https://mooseframework.inl.gov
EigenproblemESProblemOperator.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 
16 
17 namespace Moose::MFEM
18 {
19 class EigensolverBase;
20 
23 {
24 public:
26  {
27  mooseAssert(std::dynamic_pointer_cast<EigenproblemEquationSystem>(_problem_data.eqn_system),
28  "MFEMProblemData::eqn_system is not an EigenproblemEquationSystem.");
29  }
30 
31  virtual void Solve() override;
32 
33  [[nodiscard]] EigenproblemEquationSystem * GetEquationSystem() const override
34  {
35  return static_cast<EigenproblemEquationSystem *>(
37  }
38 
39 private:
40  void RecoverEigenproblemSolution(GridFunctions & gridfunctions, EigensolverBase * eigensolver);
41 
42 protected:
45 };
46 
47 } // namespace Moose::MFEM
48 
49 #endif
void BuildEquationSystemOperator()
Add kernels/bcs and assemble the linear part of the equation system.
virtual EquationSystem * GetEquationSystem() const override
Returns a pointer to the operator&#39;s equation system.
EigenproblemEquationSystem * GetEquationSystem() const override
Returns a pointer to the operator&#39;s equation system.
Equation system specialization for eigenproblems.
Steady-state problem operator with an equation system.
std::shared_ptr< Moose::MFEM::EquationSystem > eqn_system
Steady-state eigenproblem operator with an equation system.
void RecoverEigenproblemSolution(GridFunctions &gridfunctions, EigensolverBase *eigensolver)
Utilities for converting between vector(s) of libMesh Points and MFEM Vector(s).
Base class for eigensolvers.