https://mooseframework.inl.gov
MFEMOperatorChebyshevSmoother.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 "MFEMLinearSolverBase.h"
15 
28 {
29 public:
31 
33 
34  void SetOperator(mfem::Operator & op) override;
35 
36 protected:
37  void ConstructSolver() override;
38 
39 private:
41  const int _order;
42 
44  mfem::Vector _diag;
45 
47  mfem::Array<int> _empty_tdofs;
48 };
49 #endif
void ConstructSolver() override
Override in derived classes to construct and set the solver options.
mfem::Vector _diag
Assembled diagonal.
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...
mfem::Array< int > _empty_tdofs
The operator supplied by MOOSE is already constrained.
Wrapper for mfem::OperatorChebyshevSmoother.
Base class for linear MFEM solvers and preconditioners.
void SetOperator(mfem::Operator &op) override
Updates the solver at the operator level.
MFEMOperatorChebyshevSmoother(const InputParameters &parameters)
const int _order
Degree of the Chebyshev polynomial used by the MFEM smoother.