https://mooseframework.inl.gov
Loading...
Searching...
No Matches
MFEMHypreBoomerAMG.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
15
19class MFEMHypreBoomerAMG : public Moose::MFEM::LORLinearSolverBase<mfem::HypreBoomerAMG>
20{
21public:
23
26
27 void ConstructSolver() override;
28
29protected:
31 virtual void SetSolverParameters(mfem::HypreBoomerAMG & solver) override;
32
33private:
35 enum class VectorTreatment
36 {
37 AUTO,
38 SCALAR,
41 };
42
43 std::shared_ptr<mfem::ParFiniteElementSpace> _mfem_fespace{nullptr};
46};
47
48#endif
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system.
Wrapper for mfem::HypreBoomerAMG solver.
std::shared_ptr< mfem::ParFiniteElementSpace > _mfem_fespace
VectorTreatment
How BoomerAMG treats the components of a vector unknown.
VectorTreatment _vector_treatment
The vector treatment in use, with AUTO resolved.
virtual void SetSolverParameters(mfem::HypreBoomerAMG &solver) override
Update the wrapped MFEM solver parameters.
static InputParameters validParams()
void ConstructSolver() override
Override in derived classes to construct and set the solver options.
Base class for LOR compatible linear MFEM solvers and preconditioners.