https://mooseframework.inl.gov
Loading...
Searching...
No Matches
SetupPreconditionerAction.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// MOOSE includes
12#include "Factory.h"
13#include "PetscSupport.h"
14#include "MoosePreconditioner.h"
15#include "FEProblem.h"
17#include "NonlinearSystemBase.h"
18
20
21registerMooseAction("MooseApp", SetupPreconditionerAction, "add_preconditioning");
22
25{
27 params.addClassDescription("Add a Preconditioner object to the simulation.");
28 return params;
29}
30
35
36void
38{
39 if (_problem.get() != NULL)
40 {
41 // build the preconditioner
42 std::shared_ptr<MoosePreconditioner> pc =
44
45 pc->_nl.setPreconditioner(pc);
46 }
47}
registerMooseAction("MooseApp", SetupPreconditionerAction, "add_preconditioning")
std::shared_ptr< FEProblemBase > & _problem
Convenience reference to a problem this action works on.
Definition Action.h:178
std::shared_ptr< MooseObject > create(const std::string &obj_name, const std::string &name, const InputParameters &parameters, THREAD_ID tid=0, bool print_deprecated=true)
Definition Factory.C:142
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system.
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.
const std::string & _name
The name of this class.
Definition MooseBase.h:381
InputParameters _moose_object_pars
The parameters for the object to be created.
static InputParameters validParams()
std::string _type
The Object type that is being created.
Base class for MOOSE preconditioners.
NonlinearSystemBase & _nl
The nonlinear system whose linearization this preconditioner should be applied to.
void setPreconditioner(std::shared_ptr< MoosePreconditioner > pc)
Sets a preconditioner.
Factory & _factory
The Factory associated with the MooseApp.
Set the preconditioner up.
virtual void act() override
Method to add objects to the simulation or perform other setup tasks.
static InputParameters validParams()
SetupPreconditionerAction(const InputParameters &params)