https://mooseframework.inl.gov
Loading...
Searching...
No Matches
EigenproblemEquationSystem.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{
18class EigensolverBase;
19
22{
23public:
25 ~EigenproblemEquationSystem() override = default;
26
28 void BuildEigenproblemJacobian(mfem::BlockVector & trueX);
29
32
33 bool IsEigen() const override { return true; }
34
35protected:
37 virtual void ApplyEssentialBCs() override;
38
41
43 void FormMassMatrix();
44
45private:
47
49 mfem::OperatorHandle _mass_rhs;
50};
51
52} // namespace Moose::MFEM
53
54#endif
Steady-state eigenproblem operator with an equation system.
Equation system specialization for eigenproblems.
virtual void ApplyEssentialBCs() override
Mark external boundaries as essential for eigenproblem BC elimination.
void BuildEigenproblemJacobian(mfem::BlockVector &trueX)
Build eigenproblem system, with essential boundary conditions accounted for.
mfem::OperatorHandle _mass_rhs
The mass operator (e.g. the RHS operator for a generalized eigenproblem)
~EigenproblemEquationSystem() override=default
void PrepareEigensolver(EigensolverBase &solver)
Prepare the provided eigensolver.
void FormMassMatrix()
Form mass matrix for the eigensolver with Dirichlet BC elimination.
void FormEigenproblemMatrix()
Form HypreParMatrix matrix operator for the eigensolver with Dirichlet BC elimination.
Base class for eigensolvers.
Owns the weak-form mathematics of a MOOSE MFEM problem.
Utilities for converting between vector(s) of libMesh Points and MFEM Vector(s).