www.mooseframework.org
Public Member Functions | Public Attributes | Protected Attributes | List of all members
CreateProblemAction Class Reference

#include <CreateProblemAction.h>

Inheritance diagram for CreateProblemAction:
[legend]

Public Member Functions

 CreateProblemAction (InputParameters parameters)
 
virtual void act () override
 
InputParametersgetObjectParams ()
 Retreive the parameters of the object to be created by this action. More...
 
const std::string & getMooseObjectType () const
 Return the object type to be created. More...
 
const std::string & name () const
 The name of the action. More...
 
const std::string & type () const
 
InputParametersparameters ()
 
const InputParametersparameters () const
 
const std::string & specificTaskName () const
 
const std::set< std::string > & getAllTasks () const
 
bool isParamValid (const std::string &name) const
 
void appendTask (const std::string &task)
 
std::string getBaseName () const
 Deprecated name methods, use name() More...
 
std::string getShortName () const
 DEPRECATED METHODS. More...
 
template<typename T >
const T & getParam (const std::string &name) const
 Retrieve a parameter for the object. More...
 

Public Attributes

const ConsoleStream _console
 An instance of helper class to write streams to the Console objects. More...
 

Protected Attributes

std::vector< SubdomainName > _blocks
 
MultiMooseEnum _coord_sys
 
bool _fe_cache
 One entry of coord system per block, the size of _blocks and _coord_sys has to match, except: More...
 
std::string _type
 The Object type that is being created. More...
 
InputParameters _moose_object_pars
 The parameters for the object to be created. More...
 
InputParameters _pars
 Input parameters for the action. More...
 
std::string _registered_identifier
 
std::string _name
 The name of the action. More...
 
std::string _action_type
 
MooseApp_app
 The MOOSE application this is associated with. More...
 
Factory_factory
 The Factory associated with the MooseApp. More...
 
ActionFactory_action_factory
 Builds Actions. More...
 
std::string _specific_task_name
 This member will only be populated if this Action instance is only designed to handle one task. More...
 
std::set< std::string > _all_tasks
 A list of all the tasks that this Action will satisfy. More...
 
ActionWarehouse_awh
 Reference to ActionWarehouse where we store object build by actions. More...
 
const std::string & _current_task
 The current action (even though we have seperate instances for each action) More...
 
std::shared_ptr< MooseMesh > & _mesh
 
std::shared_ptr< MooseMesh > & _displaced_mesh
 
std::shared_ptr< FEProblemBase > & _problem
 Convenience reference to a problem this action works on. More...
 
std::shared_ptr< Executioner > & _executioner
 Convenience reference to an executioner. More...
 

Detailed Description

Definition at line 27 of file CreateProblemAction.h.

Constructor & Destructor Documentation

CreateProblemAction::CreateProblemAction ( InputParameters  parameters)

Definition at line 57 of file CreateProblemAction.C.

58  : MooseObjectAction(parameters),
59  _blocks(getParam<std::vector<SubdomainName>>("block")),
60  _coord_sys(getParam<MultiMooseEnum>("coord_type")),
61  _fe_cache(getParam<bool>("fe_cache"))
62 {
63 }
MultiMooseEnum _coord_sys
std::vector< SubdomainName > _blocks
MooseObjectAction(InputParameters params)
bool _fe_cache
One entry of coord system per block, the size of _blocks and _coord_sys has to match, except:
const T & getParam(const std::string &name) const
Retrieve a parameter for the object.
Definition: Action.h:139

Member Function Documentation

void CreateProblemAction::act ( )
overridevirtual

If the user specified LATEST as the file in their directory path, find the file with the latest timestep and the largest serial number.

Implements Action.

Definition at line 66 of file CreateProblemAction.C.

67 {
68  if (_mesh.get() != NULL)
69  {
70  // build the problem only if we have mesh
71  {
72  _moose_object_pars.set<MooseMesh *>("mesh") = _mesh.get();
73  _moose_object_pars.set<bool>("use_nonlinear") = _app.useNonlinear();
74 
75 #ifdef LIBMESH_HAVE_PETSC
76  // put in empty arrays for PETSc options
77  _moose_object_pars.set<MultiMooseEnum>("petsc_options") = MultiMooseEnum("", "", true);
78  _moose_object_pars.set<std::vector<std::string>>("petsc_inames") = std::vector<std::string>();
79  _moose_object_pars.set<std::vector<std::string>>("petsc_values") = std::vector<std::string>();
80 #endif
81  _problem =
82  _factory.create<FEProblemBase>(_type, getParam<std::string>("name"), _moose_object_pars);
83  if (!_problem.get())
84  mooseError("Problem has to be of a FEProblemBase type");
85 
86  // if users provide a problem type, the type has to be an EigenProblem or its derived subclass
87  // when uing an eigen executioner
88  if (_app.useEigenvalue() && _type != "EigenProblem" &&
89  !(std::dynamic_pointer_cast<EigenProblem>(_problem)))
90  mooseError("Problem has to be of a EigenProblem (or derived subclass) type when using "
91  "eigen executioner");
92  }
93  // set up the problem
94  _problem->setCoordSystem(_blocks, _coord_sys);
95  _problem->setAxisymmetricCoordAxis(getParam<MooseEnum>("rz_coord_axis"));
96  _problem->useFECache(_fe_cache);
97  _problem->setKernelCoverageCheck(getParam<bool>("kernel_coverage_check"));
98  _problem->setMaterialCoverageCheck(getParam<bool>("material_coverage_check"));
99 
100  if (isParamValid("restart_file_base"))
101  {
102  std::string restart_file_base = getParam<FileNameNoExtension>("restart_file_base");
103 
104  std::size_t slash_pos = restart_file_base.find_last_of("/");
105  std::string path = restart_file_base.substr(0, slash_pos);
106  std::string file = restart_file_base.substr(slash_pos + 1);
107 
112  if (file == "LATEST")
113  {
114  std::list<std::string> dir_list(1, path);
115  std::list<std::string> files = MooseUtils::getFilesInDirs(dir_list);
116  restart_file_base = MooseUtils::getLatestAppCheckpointFileBase(files);
117 
118  if (restart_file_base == "")
119  mooseError("Unable to find suitable restart file");
120  }
121 
122  _console << "\nUsing " << restart_file_base << " for restart.\n\n";
123  _problem->setRestartFile(restart_file_base);
124  }
125  }
126 }
bool & useNonlinear()
Set a Boolean indicating whether this app will use a Nonlinear or Eigen System.
Definition: MooseApp.h:243
std::shared_ptr< MooseObject > create(const std::string &obj_name, const std::string &name, InputParameters parameters, THREAD_ID tid=0, bool print_deprecated=true)
Build an object (must be registered) - THIS METHOD IS DEPRECATED (Use create<T>()) ...
Definition: Factory.C:46
MultiMooseEnum _coord_sys
void mooseError(Args &&...args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:182
T & set(const std::string &name, bool quiet_mode=false)
Returns a writable reference to the named parameters.
std::list< std::string > getFilesInDirs(const std::list< std::string > &directory_list)
Retrieves the names of all of the files contained within the list of directories passed into the rout...
Definition: MooseUtils.C:466
Factory & _factory
The Factory associated with the MooseApp.
Definition: Action.h:101
Specialization of SubProblem for solving nonlinear equations plus auxiliary equations.
std::string getLatestAppCheckpointFileBase(const std::list< std::string > &checkpoint_files)
Definition: MooseUtils.C:503
bool & useEigenvalue()
Set a Boolean indicating whether this app will use an eigenvalue executioner.
Definition: MooseApp.h:248
MooseMesh wraps a libMesh::Mesh object and enhances its capabilities by caching additional data and s...
Definition: MooseMesh.h:74
std::vector< SubdomainName > _blocks
bool isParamValid(const std::string &name) const
Definition: Action.h:80
std::shared_ptr< MooseMesh > & _mesh
Definition: Action.h:127
std::string _type
The Object type that is being created.
InputParameters _moose_object_pars
The parameters for the object to be created.
std::shared_ptr< FEProblemBase > & _problem
Convenience reference to a problem this action works on.
Definition: Action.h:131
const ConsoleStream _console
An instance of helper class to write streams to the Console objects.
This is a "smart" enum class intended to replace many of the shortcomings in the C++ enum type It sho...
Specialization of SubProblem for solving nonlinear equations plus auxiliary equations.
Definition: EigenProblem.h:32
MooseApp & _app
The MOOSE application this is associated with.
Definition: Action.h:98
bool _fe_cache
One entry of coord system per block, the size of _blocks and _coord_sys has to match, except:
void Action::appendTask ( const std::string &  task)
inlineinherited

Definition at line 82 of file Action.h.

82 { _all_tasks.insert(task); }
std::set< std::string > _all_tasks
A list of all the tasks that this Action will satisfy.
Definition: Action.h:119
const std::set<std::string>& Action::getAllTasks ( ) const
inlineinherited

Definition at line 68 of file Action.h.

Referenced by AddKernelAction::act().

68 { return _all_tasks; }
std::set< std::string > _all_tasks
A list of all the tasks that this Action will satisfy.
Definition: Action.h:119
std::string Action::getBaseName ( ) const
inherited

Deprecated name methods, use name()

Definition at line 82 of file Action.C.

Referenced by Action::name().

83 {
84  mooseDeprecated("getBaseName() is deprecated.");
86 }
void mooseDeprecated(Args &&...args)
Emit a deprecated code/feature message with the given stringified, concatenated args.
Definition: MooseError.h:202
std::string _name
The name of the action.
Definition: Action.h:92
std::string baseName(const std::string &name)
Function for string the information before the final / in a parser block.
Definition: MooseUtils.C:331
const std::string& MooseObjectAction::getMooseObjectType ( ) const
inlineinherited

Return the object type to be created.

Definition at line 40 of file MooseObjectAction.h.

Referenced by CommonOutputAction::hasConsole().

40 { return _type; }
std::string _type
The Object type that is being created.
InputParameters& MooseObjectAction::getObjectParams ( )
inlineinherited

Retreive the parameters of the object to be created by this action.

Definition at line 35 of file MooseObjectAction.h.

Referenced by SetupDebugAction::act(), MaterialOutputAction::buildMaterialOutputObjects(), CommonOutputAction::create(), AddVariableAction::createInitialConditionAction(), MooseApp::getCheckpointFiles(), CommonOutputAction::hasConsole(), and ActionWarehouse::printInputFile().

35 { return _moose_object_pars; }
InputParameters _moose_object_pars
The parameters for the object to be created.
template<typename T >
const T & Action::getParam ( const std::string &  name) const
inherited

Retrieve a parameter for the object.

Parameters
nameThe name of the parameter
Returns
The value of the parameter

Definition at line 139 of file Action.h.

Referenced by CreateDisplacedProblemAction::act(), AddPeriodicBCAction::act(), AddPeriodicBCAction::autoTranslationBoundaries(), DynamicObjectRegistrationAction::DynamicObjectRegistrationAction(), Action::getAllTasks(), and MooseApp::getCheckpointFiles().

140 {
141  return InputParameters::getParamHelper(name, _pars, static_cast<T *>(0));
142 }
static const T & getParamHelper(const std::string &name, const InputParameters &pars, const T *the_type)
InputParameters _pars
Input parameters for the action.
Definition: Action.h:86
const std::string & name() const
The name of the action.
Definition: Action.h:51
std::string Action::getShortName ( ) const
inherited

DEPRECATED METHODS.

Definition at line 75 of file Action.C.

Referenced by Action::name().

76 {
77  mooseDeprecated("getShortName() is deprecated.");
79 }
void mooseDeprecated(Args &&...args)
Emit a deprecated code/feature message with the given stringified, concatenated args.
Definition: MooseError.h:202
std::string shortName(const std::string &name)
Function for stripping name after the file / in parser block.
Definition: MooseUtils.C:325
std::string _name
The name of the action.
Definition: Action.h:92
bool Action::isParamValid ( const std::string &  name) const
inlineinherited

Definition at line 80 of file Action.h.

Referenced by CopyNodalVarsAction::act(), SetAdaptivityOptionsAction::act(), act(), SetupMeshAction::act(), CreateDisplacedProblemAction::act(), AddAuxVariableAction::act(), AddVariableAction::act(), AddVariableAction::addVariable(), AddPeriodicBCAction::autoTranslationBoundaries(), DynamicObjectRegistrationAction::DynamicObjectRegistrationAction(), and SetupMeshAction::setupMesh().

80 { return _pars.isParamValid(name); }
bool isParamValid(const std::string &name) const
This method returns parameters that have been initialized in one fashion or another, i.e.
InputParameters _pars
Input parameters for the action.
Definition: Action.h:86
const std::string & name() const
The name of the action.
Definition: Action.h:51
const std::string& Action::name ( ) const
inlineinherited
InputParameters& Action::parameters ( )
inlineinherited

Definition at line 63 of file Action.h.

Referenced by GlobalParamsAction::remove(), GlobalParamsAction::setDoubleIndexParam(), GlobalParamsAction::setScalarParam(), and GlobalParamsAction::setVectorParam().

63 { return _pars; }
InputParameters _pars
Input parameters for the action.
Definition: Action.h:86
const InputParameters& Action::parameters ( ) const
inlineinherited

Definition at line 64 of file Action.h.

64 { return _pars; }
InputParameters _pars
Input parameters for the action.
Definition: Action.h:86
const std::string& Action::specificTaskName ( ) const
inlineinherited

Definition at line 66 of file Action.h.

66 { return _specific_task_name; }
std::string _specific_task_name
This member will only be populated if this Action instance is only designed to handle one task...
Definition: Action.h:112
const std::string& Action::type ( ) const
inlineinherited

Definition at line 61 of file Action.h.

Referenced by CommonOutputAction::hasConsole().

61 { return _action_type; }
std::string _action_type
Definition: Action.h:95

Member Data Documentation

ActionFactory& Action::_action_factory
protectedinherited
std::string Action::_action_type
protectedinherited

Definition at line 95 of file Action.h.

Referenced by Action::type().

std::set<std::string> Action::_all_tasks
protectedinherited

A list of all the tasks that this Action will satisfy.

Note: That this is not populated at construction time. However, all tasks will be added prior to act().

Definition at line 119 of file Action.h.

Referenced by Action::appendTask(), and Action::getAllTasks().

MooseApp& Action::_app
protectedinherited
ActionWarehouse& Action::_awh
protectedinherited
std::vector<SubdomainName> CreateProblemAction::_blocks
protected

Definition at line 35 of file CreateProblemAction.h.

Referenced by act().

const ConsoleStream ConsoleStreamInterface::_console
inherited

An instance of helper class to write streams to the Console objects.

Definition at line 37 of file ConsoleStreamInterface.h.

Referenced by IterationAdaptiveDT::acceptStep(), act(), SetupRecoverFileBaseAction::act(), Adaptivity::adaptMesh(), FEProblemBase::adaptMesh(), FEProblemBase::advanceMultiApps(), SimplePredictor::apply(), FEProblemBase::backupMultiApps(), FEProblemBase::checkProblemIntegrity(), IterationAdaptiveDT::computeAdaptiveDT(), Transient::computeConstrainedDT(), NonlinearSystemBase::computeDamping(), IterationAdaptiveDT::computeDT(), IterationAdaptiveDT::computeFailedDT(), IterationAdaptiveDT::computeInterpolationDT(), FEProblemBase::computeResidualType(), IterationAdaptiveDT::constrainStep(), TimeStepper::constrainStep(), AB2PredictorCorrector::converged(), FEProblemBase::execMultiApps(), FEProblemBase::execMultiAppTransfers(), MultiAppPostprocessorTransfer::execute(), MultiAppPostprocessorInterpolationTransfer::execute(), MultiAppVariableValueSamplePostprocessorTransfer::execute(), MultiAppNearestNodeTransfer::execute(), MultiAppPostprocessorToAuxScalarTransfer::execute(), MultiAppScalarToAuxScalarTransfer::execute(), MultiAppVariableValueSampleTransfer::execute(), MultiAppUserObjectTransfer::execute(), MultiAppInterpolationTransfer::execute(), MultiAppMeshFunctionTransfer::execute(), MultiAppProjectionTransfer::execute(), MultiAppCopyTransfer::execute(), Steady::execute(), MultiAppDTKUserObjectTransfer::execute(), ActionWarehouse::executeActionsWithAction(), ActionWarehouse::executeAllActions(), MultiApp::globalAppToLocal(), InversePowerMethod::init(), NonlinearEigen::init(), Steady::init(), FEProblemBase::initialAdaptMesh(), FEProblemBase::initialSetup(), EigenExecutionerBase::inversePowerIteration(), Transient::keepGoing(), IterationAdaptiveDT::limitDTByFunction(), IterationAdaptiveDT::limitDTToPostprocessorValue(), EigenExecutionerBase::makeBXConsistent(), Console::meshChanged(), MooseObject::mooseDeprecated(), MooseObject::mooseInfo(), MooseObject::mooseWarning(), DOFMapOutput::output(), VariableResidualNormsDebugOutput::output(), Console::output(), ControlOutput::outputActiveObjects(), ControlOutput::outputChangedControls(), ControlOutput::outputControls(), Console::outputInput(), Console::outputPostprocessors(), Console::outputScalarVariables(), Console::outputSystemInformation(), FEProblemBase::possiblyRebuildGeomSearchPatches(), EigenExecutionerBase::postExecute(), ActionWarehouse::printActionDependencySets(), EigenExecutionerBase::printEigenvalue(), MaterialPropertyDebugOutput::printMaterialMap(), SolutionTimeAdaptiveDT::rejectStep(), DT2::rejectStep(), FEProblemBase::restoreMultiApps(), SimplePredictor::shouldApply(), NonlinearSystem::solve(), LStableDirk2::solve(), LStableDirk3::solve(), ImplicitMidpoint::solve(), ExplicitTVDRK2::solve(), AStableDirk4::solve(), LStableDirk4::solve(), ExplicitRK2::solve(), TransientMultiApp::solveStep(), Transient::solveStep(), DT2::step(), AB2PredictorCorrector::step(), NonlinearEigen::takeStep(), FEProblemBase::useFECache(), Console::writeTimestepInformation(), Console::writeVariableNorms(), and FEProblemBase::~FEProblemBase().

MultiMooseEnum CreateProblemAction::_coord_sys
protected

Definition at line 36 of file CreateProblemAction.h.

Referenced by act().

const std::string& Action::_current_task
protectedinherited

The current action (even though we have seperate instances for each action)

Definition at line 125 of file Action.h.

Referenced by AddKernelAction::act(), CopyNodalVarsAction::act(), AddScalarKernelAction::act(), SetupMeshAction::act(), SetupMeshCompleteAction::act(), MaterialDerivativeTestAction::act(), and AddNodalNormalsAction::act().

std::shared_ptr<MooseMesh>& Action::_displaced_mesh
protectedinherited
std::shared_ptr<Executioner>& Action::_executioner
protectedinherited

Convenience reference to an executioner.

Definition at line 134 of file Action.h.

Referenced by SetupPredictorAction::act(), and SetupTimeStepperAction::act().

Factory& Action::_factory
protectedinherited
bool CreateProblemAction::_fe_cache
protected

One entry of coord system per block, the size of _blocks and _coord_sys has to match, except:

  1. _blocks.size() == 0, then there needs to be just one entry in _coord_sys, which will be set for the whole domain
  2. _blocks.size() > 0 and no coordinate system was specified, then the whole domain will be XYZ.
  3. _blocks.size() > 0 and one coordinate system was specified, then the whole domain will be that system.

Definition at line 42 of file CreateProblemAction.h.

Referenced by act().

std::shared_ptr<MooseMesh>& Action::_mesh
protectedinherited
InputParameters MooseObjectAction::_moose_object_pars
protectedinherited
std::string Action::_name
protectedinherited
InputParameters Action::_pars
protectedinherited
std::shared_ptr<FEProblemBase>& Action::_problem
protectedinherited

Convenience reference to a problem this action works on.

Definition at line 131 of file Action.h.

Referenced by AddBCAction::act(), AddBoundsVectorsAction::act(), CreateExecutionerAction::act(), AddDGKernelAction::act(), SetAdaptivityOptionsAction::act(), AddMultiAppAction::act(), AddTransferAction::act(), AddInitialConditionAction::act(), AddScalarKernelAction::act(), CheckIntegrityAction::act(), CopyNodalVarsAction::act(), AddDamperAction::act(), AddElementalFieldAction::act(), AddIndicatorAction::act(), AddVectorPostprocessorAction::act(), AddUserObjectAction::act(), AddInterfaceKernelAction::act(), AddDiracKernelAction::act(), AddConstraintAction::act(), InitProblemAction::act(), AddMarkerAction::act(), AddKernelAction::act(), AddMaterialAction::act(), SetupDampersAction::act(), AddNodalKernelAction::act(), AddICAction::act(), AddPostprocessorAction::act(), AddFieldSplitAction::act(), act(), AdaptivityAction::act(), AddFunctionAction::act(), SetupTimeIntegratorAction::act(), SetupTimeStepperAction::act(), CreateDisplacedProblemAction::act(), AddDistributionAction::act(), SetupPreconditionerAction::act(), SetupPredictorAction::act(), SetupResidualDebugAction::act(), MaterialDerivativeTestAction::act(), SetupQuadratureAction::act(), AddSamplerAction::act(), AddAuxVariableAction::act(), AddOutputAction::act(), AddPeriodicBCAction::act(), AddControlAction::act(), MaterialOutputAction::act(), SetupPostprocessorDataAction::act(), AddNodalNormalsAction::act(), AddVariableAction::addVariable(), AddPeriodicBCAction::autoTranslationBoundaries(), CheckOutputAction::checkMaterialOutput(), AddVariableAction::getSubdomainIDs(), and AddPeriodicBCAction::setPeriodicVars().

std::string Action::_registered_identifier
protectedinherited

Definition at line 89 of file Action.h.

std::string Action::_specific_task_name
protectedinherited

This member will only be populated if this Action instance is only designed to handle one task.

This happens when an Action is registered with several pieces of syntax in which case separate instances are built to handle the different incoming parameter values.

Definition at line 112 of file Action.h.

Referenced by Action::specificTaskName().

std::string MooseObjectAction::_type
protectedinherited

The documentation for this class was generated from the following files: