https://mooseframework.inl.gov
MFEMPetscNonlinearSolver.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 
16 #ifdef MFEM_USE_PETSC
17 
22 {
23 public:
25 
27 
28  void ConstructSolver() override;
29 
30  void SetLinearSolver(mfem::Solver & solver) override;
31  bool RequiresGradient() const override { return true; }
32  bool RequiresExternalLinearSolver() const override { return false; }
33 };
34 
35 #endif
36 
37 #endif
bool RequiresGradient() const override
Return whether this nonlinear solver requires Jacobian/gradient information from the operator...
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...
MFEMPetscNonlinearSolver(const InputParameters &parameters)
MooseObject wrapper for mfem::PetscNonlinearSolver-backed nonlinear solves.
void ConstructSolver() override
Override in derived classes to construct and set the solver options.
void SetLinearSolver(mfem::Solver &solver) override
Configure the linear solver used inside the nonlinear solve.
static InputParameters validParams()
MooseObject base for nonlinear MFEM solve strategies configured in the input file.
bool RequiresExternalLinearSolver() const override
Return whether this nonlinear solver requires an externally configured MFEM linear solver...