https://mooseframework.inl.gov
Loading...
Searching...
No Matches
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
17namespace Moose::MFEM
18{
19class EigensolverBase;
20
23{
24public:
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
39private:
40 void RecoverEigenproblemSolution(GridFunctions & gridfunctions, EigensolverBase * eigensolver);
41
42protected:
45};
46
47} // namespace Moose::MFEM
48
49#endif
Steady-state eigenproblem operator with an equation system.
EigenproblemEquationSystem * GetEquationSystem() const override
Returns a pointer to the operator's equation system.
void FormEquationSystemOperator()
Form the equation-system operator used by the eigensolver.
void RecoverEigenproblemSolution(GridFunctions &gridfunctions, EigensolverBase *eigensolver)
Equation system specialization for eigenproblems.
Base class for eigensolvers.
Steady-state ProblemOperator that prepares and solves a single EquationSystem.
virtual EquationSystem * GetEquationSystem() const override
Returns a pointer to the operator's equation system.
Utilities for converting between vector(s) of libMesh Points and MFEM Vector(s).
std::shared_ptr< Moose::MFEM::EquationSystem > eqn_system