https://mooseframework.inl.gov
EquationSystemProblemOperator.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 MFEM_ENABLED
11 
13 
14 namespace Moose::MFEM
15 {
16 void
18 {
21 }
22 
23 void
25 {
27 
29 }
30 
31 void
33 {
35 
36  if (_problem.jacobian_solver->isLOR() && _equation_system->_test_var_names.size() > 1)
37  mooseError("LOR solve is only supported for single-variable systems");
38 
39  _problem.jacobian_solver->updateSolver(
40  *_equation_system->_blfs.Get(_equation_system->_test_var_names.at(0)),
41  _equation_system->_ess_tdof_lists.at(0));
42 
43  _problem.nonlinear_solver->SetSolver(_problem.jacobian_solver->getSolver());
46 
48 }
49 
50 } // namespace Moose::MFEM
51 
52 #endif
virtual void Solve(mfem::Vector &X) override
virtual void RecoverFEMSolution(mfem::BlockVector &trueX, Moose::MFEM::GridFunctions &gridfunctions)
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:302
const std::vector< std::string > & TrialVarNames() const
std::shared_ptr< Moose::MFEM::EquationSystem > _equation_system
void SetGridFunctions() override
Moose::MFEM::EquationSystem * GetEquationSystem() const override
Returns a pointer to the operator&#39;s equation system.
virtual void BuildEquationSystem()
std::shared_ptr< mfem::NewtonSolver > nonlinear_solver
virtual void BuildJacobian(mfem::BlockVector &trueX, mfem::BlockVector &trueRHS)
Moose::MFEM::GridFunctions gridfunctions
std::shared_ptr< MFEMSolverBase > jacobian_solver
virtual void Init(mfem::BlockVector &X)