https://mooseframework.inl.gov
MFEMEigensolverBase.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 "MFEMSolverBase.h"
15 
20 {
21 public:
23 
25 
27  virtual void setOperator(mfem::OperatorHandle & op) override = 0;
28 
30  virtual void setMassMatrix(mfem::OperatorHandle & mass) = 0;
31 
33  virtual void getEigenvalues(mfem::Array<mfem::real_t> & eigenvalues) const = 0;
34 
36  virtual const mfem::HypreParVector & getEigenvector(int index) const = 0;
37 
39  virtual void updateSolver(mfem::ParBilinearForm &, mfem::Array<int> &) override {}
40 
41 protected:
44 };
45 
46 #endif
virtual void updateSolver(mfem::ParBilinearForm &, mfem::Array< int > &) override
Updates the solver with the given bilinear form and essential dof list, in case an LOR or algebraic s...
int _num_modes
Number of eigenmodes to compute.
Base class for eigensolvers.
const InputParameters & parameters() const
Get the parameters of the object.
Definition: MooseBase.h:131
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system...
virtual void setMassMatrix(mfem::OperatorHandle &mass)=0
Sets the mass matrix for the eigensolver in derived classes.
virtual void setOperator(mfem::OperatorHandle &op) override=0
Sets the operator for the eigensolver in derived classes.
static InputParameters validParams()
virtual void getEigenvalues(mfem::Array< mfem::real_t > &eigenvalues) const =0
Retrieves the computed eigenvalues.
MFEMEigensolverBase(const InputParameters &parameters)
virtual const mfem::HypreParVector & getEigenvector(int index) const =0
Retrieves the computed eigenvector corresponding to the given index.
Base class for wrapping mfem::Solver-derived classes.