www.mooseframework.org
SetupPreconditionerAction.C
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://www.mooseframework.org
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 
19 unsigned int SetupPreconditionerAction::_count = 0;
20 
21 registerMooseAction("MooseApp", SetupPreconditionerAction, "add_preconditioning");
22 
25 {
27  params.addClassDescription("Add a Preconditioner object to the simulation.");
28  return params;
29 }
30 
32  : MooseObjectAction(params)
33 {
34 }
35 
36 void
38 {
39  if (_problem.get() != NULL)
40  {
41  // build the preconditioner
42  std::shared_ptr<MoosePreconditioner> pc =
44 
45  pc->_nl.setPreconditioner(pc);
46 
52  }
53 }
NonlinearSystemBase & _nl
The nonlinear system whose linearization this preconditioner should be applied to.
static InputParameters validParams()
void storePetscOptions(FEProblemBase &fe_problem, const InputParameters &params)
Stores the PETSc options supplied from the InputParameters with MOOSE.
Definition: PetscSupport.C:543
static InputParameters validParams()
registerMooseAction("MooseApp", SetupPreconditionerAction, "add_preconditioning")
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:110
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system...
Base class for MOOSE preconditioners.
Factory & _factory
The Factory associated with the MooseApp.
Set the preconditioner up.
const std::string _name
The name of this class.
Definition: MooseBase.h:90
std::string _type
The Object type that is being created.
InputParameters _moose_object_pars
The parameters for the object to be created.
virtual void act() override
Method to add objects to the simulation or perform other setup tasks.
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...
std::shared_ptr< FEProblemBase > & _problem
Convenience reference to a problem this action works on.
Definition: Action.h:179
SetupPreconditionerAction(const InputParameters &params)
void setPreconditioner(std::shared_ptr< MoosePreconditioner > pc)
Sets a preconditioner.