https://mooseframework.inl.gov
Loading...
Searching...
No Matches
JacobianTestAction.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#include "JacobianTestAction.h"
11#include "MooseObjectAction.h"
12#include "ActionFactory.h"
13#include "ActionWarehouse.h"
14#include "MooseEnum.h"
15#include "FEProblemBase.h"
16#include "Conversion.h"
17
20{
22
23 params.addParam<Real>("snes_test_err", 1e-8, "Finite differencing parameter");
24
25 return params;
26}
27
29 : TestAction(params), _snes_test_err(Moose::stringify<Real>(getParam<Real>("snes_test_err")))
30{
31}
32
33void
35{
36 const std::string class_name = "SetupPreconditionerAction";
38 params.set<std::string>("type") = "SMP";
39
40 std::shared_ptr<MooseObjectAction> action = std::static_pointer_cast<MooseObjectAction>(
41 _action_factory.create(class_name, "smp", params));
42
43 action->getObjectParams().set<bool>("full") = true;
44 action->getObjectParams().set<MooseEnum>("solve_type") = "newton";
45#if PETSC_VERSION_LESS_THAN(3, 9, 0)
46 action->getObjectParams().set<MultiMooseEnum>("petsc_options_iname") =
47 "-snes_type -snes_test_err";
48 action->getObjectParams().set<std::vector<std::string>>("petsc_options_value") = {"test",
50#else
51 action->getObjectParams().set<MultiMooseEnum>("petsc_options") = "-snes_test_jacobian";
52 action->getObjectParams().set<MultiMooseEnum>("petsc_options_iname") = "-snes_test_err";
53 action->getObjectParams().set<std::vector<std::string>>("petsc_options_value") = {_snes_test_err};
54#endif
55
56 _awh.addActionBlock(action);
57}
std::shared_ptr< Action > create(const std::string &action, const std::string &action_name, InputParameters &parameters)
InputParameters getValidParams(const std::string &name)
void addActionBlock(std::shared_ptr< Action > blk)
ActionWarehouse & _awh
void addParam(const std::string &name, const std::initializer_list< typename T::value_type > &value, const std::string &doc_string)
T & set(const std::string &name, bool quiet_mode=false)
static InputParameters validParams()
JacobianTestAction(const InputParameters &params)
virtual void addPreconditioner() override
Adds the preconditioner.
const std::string _snes_test_err
Finite differencing parameter.
ActionFactory & _action_factory
Base class for adding common actions for testing.
Definition TestAction.h:18
static InputParameters validParams()
Definition TestAction.C:17