https://mooseframework.inl.gov
Loading...
Searching...
No Matches
MFEMMUMPS.C
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#include "MFEMMUMPS.h"
13#include "MFEMProblem.h"
14
16
19{
21 params.addClassDescription("MFEM solver for performing direct solves of sparse systems in "
22 "parallel using the MUMPS library.");
23 params.addParam<int>("print_level", 2, "Set the solver verbosity.");
24
25 return params;
26}
27
28MFEMMUMPS::MFEMMUMPS(const InputParameters & parameters) : Moose::MFEM::LinearSolverBase(parameters)
29{
31}
32
33void
35{
36 auto solver = std::make_unique<mfem::MUMPSSolver>(getMFEMProblem().getComm());
37 solver->iterative_mode = getParam<bool>("use_initial_guess");
38 solver->SetPrintLevel(getParam<int>("print_level"));
39 _solver = std::move(solver);
40}
41
42#endif
registerMooseObject("MooseApp", MFEMMUMPS)
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system.
void addParam(const std::string &name, const S &value, const std::string &doc_string)
These methods add an optional parameter and a documentation string to the InputParameters object.
void addClassDescription(const std::string &doc_string)
This method adds a description of the class that will be displayed in the input file syntax dump.
Wrapper for mfem::MUMPSSolver.
Definition MFEMMUMPS.h:20
MFEMMUMPS(const InputParameters &parameters)
Definition MFEMMUMPS.C:28
void ConstructSolver() override
Override in derived classes to construct and set the solver options.
Definition MFEMMUMPS.C:34
static InputParameters validParams()
Definition MFEMMUMPS.C:18
MFEMProblem & getMFEMProblem()
Return the owning MFEM problem.
Definition MFEMObject.h:45
static InputParameters validParams()
std::unique_ptr< mfem::Solver > _solver
Solver to be used for the problem.
MOOSE now contains C++17 code, so give a reasonable error message stating what the user can do to add...