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

#include <PicardSolve.h>

Inheritance diagram for PicardSolve:
[legend]

Public Types

enum  MoosePicardConvergenceReason {
  MoosePicardConvergenceReason::UNSOLVED = 0, MoosePicardConvergenceReason::CONVERGED_NONLINEAR = 1, MoosePicardConvergenceReason::CONVERGED_ABS = 2, MoosePicardConvergenceReason::CONVERGED_RELATIVE = 3,
  MoosePicardConvergenceReason::CONVERGED_CUSTOM = 4, MoosePicardConvergenceReason::REACH_MAX_ITS = 5, MoosePicardConvergenceReason::DIVERGED_MAX_ITS = -1, MoosePicardConvergenceReason::DIVERGED_NONLINEAR = -2,
  MoosePicardConvergenceReason::DIVERGED_FAILED_MULTIAPP = -3
}
 Enumeration for Picard convergence reasons. More...
 

Public Member Functions

 PicardSolve (Executioner *ex)
 
virtual bool solve () override
 Picard solve the FEProblem. More...
 
unsigned int numPicardIts () const
 Get the number of Picard iterations performed Because this returns the number of Picard iterations, rather than the current iteration count (which starts at 0), increment by 1. More...
 
MoosePicardConvergenceReason checkConvergence () const
 Check the solver status. More...
 
bool XFEMRepeatStep () const
 This function checks the _xfem_repeat_step flag set by solve. More...
 
void clearPicardStatus ()
 Clear Picard status. More...
 
bool hasPicardIteration ()
 Whether or not this has Picard iterations. More...
 
void setMultiAppRelaxationFactor (Real factor)
 Set relaxation factor for the current solve as a MultiApp. More...
 
void setMultiAppRelaxationVariables (const std::vector< std::string > &vars)
 Set relaxation variables for the current solve as a MultiApp. More...
 
virtual void setInnerSolve (SolveObject &solve)
 Set the inner solve object wrapped by this object. More...
 
const std::string & type () const
 Get the type of this object. More...
 
const std::string & name () const
 Get the name of the object. More...
 
const InputParametersparameters () const
 Get the parameters of the object. More...
 
template<typename T >
const T & getParam (const std::string &name) const
 Retrieve a parameter for the object. More...
 
template<typename T >
getCheckedPointerParam (const std::string &name, const std::string &error_string="") const
 Verifies that the requested parameter exists and is not NULL and returns it to the caller. More...
 
bool isParamValid (const std::string &name) const
 Test if the supplied parameter is valid. More...
 
MooseAppgetMooseApp () const
 Get the MooseApp this object is associated with. More...
 
virtual bool enabled () const
 Return the enabled status of the object. More...
 
template<typename... Args>
void paramError (const std::string &param, Args... args)
 Emits an error prefixed with the file and line number of the given param (from the input file) along with the full parameter path+name followed by the given args as the message. More...
 
template<typename... Args>
void paramWarning (const std::string &param, Args... args)
 Emits a warning prefixed with the file and line number of the given param (from the input file) along with the full parameter path+name followed by the given args as the message. More...
 
template<typename... Args>
void paramInfo (const std::string &param, Args... args)
 Emits an informational message prefixed with the file and line number of the given param (from the input file) along with the full parameter path+name followed by the given args as the message. More...
 
template<typename... Args>
void mooseError (Args &&... args) const
 
template<typename... Args>
void mooseWarning (Args &&... args) const
 
template<typename... Args>
void mooseDeprecated (Args &&... args) const
 
template<typename... Args>
void mooseInfo (Args &&... args) const
 

Public Attributes

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

Protected Member Functions

bool solveStep (Real begin_norm_old, Real &begin_norm, Real end_norm_old, Real &end_norm, bool relax, const std::set< dof_id_type > &relaxed_dofs)
 Perform one Picard iteration or a full solve. More...
 
PerfID registerTimedSection (const std::string &section_name, const unsigned int level)
 Call to register a named section for timing. More...
 

Protected Attributes

unsigned int _picard_max_its
 Maximum Picard iterations. More...
 
bool _has_picard_its
 Whether or not we activate Picard iteration. More...
 
bool _accept_max_it
 Whether or not to treat reaching maximum number of Picard iteration as converged. More...
 
bool _has_picard_norm
 Whether or not to use residual norm to check the Picard convergence. More...
 
Real _picard_rel_tol
 Relative tolerance on residual norm. More...
 
Real _picard_abs_tol
 Absolute tolerance on residual norm. More...
 
bool _picard_force_norms
 Whether or not we force evaluation of residual norms even without multiapps. More...
 
Real _relax_factor
 Relaxation factor for Picard Iteration. More...
 
std::vector< std::string > _relaxed_vars
 The transferred variables that are going to be relaxed. More...
 
Real _picard_self_relaxation_factor
 Relaxation factor outside of Picard iteration (used as a subapp) More...
 
std::vector< std::string > _picard_self_relaxed_variables
 Variables to be relaxed outside of Picard iteration (used as a subapp) More...
 
unsigned int _max_xfem_update
 Maximum number of xfem updates per step. More...
 
bool _update_xfem_at_timestep_begin
 Controls whether xfem should update the mesh at the beginning of the time step. More...
 
Executioner_executioner
 Executioner used to construct this. More...
 
FEProblemBase_problem
 Reference to FEProblem. More...
 
std::shared_ptr< DisplacedProblem_displaced_problem
 Displaced problem. More...
 
MooseMesh_mesh
 Mesh. More...
 
MooseMesh_displaced_mesh
 Displaced mesh. More...
 
NonlinearSystemBase_nl
 Reference to nonlinear system base for faster access. More...
 
AuxiliarySystem_aux
 Reference to auxiliary system for faster access. More...
 
SolveObject_inner_solve
 SolveObject wrapped by this solve object. More...
 
const InputParameters_pars
 Parameters of this object, references the InputParameters stored in the InputParametersWarehouse. More...
 
MooseApp_app
 The MooseApp this object is associated with. More...
 
const std::string & _type
 The type of this object (the Class name) More...
 
const std::string & _name
 The name of this object, reference to value stored in InputParameters. More...
 
const bool & _enabled
 Reference to the "enable" InputParaemters, used by Controls for toggling on/off MooseObjects. More...
 
const InputParameters_pg_params
 Params. More...
 
PerfGraph_perf_graph
 The performance graph to add to. More...
 
std::string _prefix
 A prefix to use for all sections. More...
 

Private Attributes

const PerfID _picard_timer
 Timer for Picard iteration. More...
 
unsigned int _xfem_update_count
 Counter for number of xfem updates that have been performed in the current step. More...
 
bool _xfem_repeat_step
 Whether step should be repeated due to xfem modifying the mesh. More...
 
Real _previous_entering_time
 Time of previous Picard solve as a subapp. More...
 
const std::string _solve_message
 
unsigned int _picard_it
 
Real _picard_initial_norm
 Initial residual norm. More...
 
std::vector< Real > _picard_timestep_begin_norm
 Full history of residual norm after evaluation of timestep_begin. More...
 
std::vector< Real > _picard_timestep_end_norm
 Full history of residual norm after evaluation of timestep_end. More...
 
MoosePicardConvergenceReason _picard_status
 Status of Picard solve. More...
 

Detailed Description

Definition at line 23 of file PicardSolve.h.

Member Enumeration Documentation

◆ MoosePicardConvergenceReason

Enumeration for Picard convergence reasons.

Enumerator
UNSOLVED 
CONVERGED_NONLINEAR 
CONVERGED_ABS 
CONVERGED_RELATIVE 
CONVERGED_CUSTOM 
REACH_MAX_ITS 
DIVERGED_MAX_ITS 
DIVERGED_NONLINEAR 
DIVERGED_FAILED_MULTIAPP 

Definition at line 35 of file PicardSolve.h.

36  {
37  UNSOLVED = 0,
38  CONVERGED_NONLINEAR = 1,
39  CONVERGED_ABS = 2,
40  CONVERGED_RELATIVE = 3,
41  CONVERGED_CUSTOM = 4,
42  REACH_MAX_ITS = 5,
43  DIVERGED_MAX_ITS = -1,
44  DIVERGED_NONLINEAR = -2,
45  DIVERGED_FAILED_MULTIAPP = -3
46  };

Constructor & Destructor Documentation

◆ PicardSolve()

PicardSolve::PicardSolve ( Executioner ex)

Definition at line 85 of file PicardSolve.C.

86  : SolveObject(ex),
87  _picard_max_its(getParam<unsigned int>("picard_max_its")),
89  _accept_max_it(getParam<bool>("accept_on_max_picard_iteration")),
90  _has_picard_norm(!getParam<bool>("disable_picard_residual_norm_check")),
91  _picard_rel_tol(getParam<Real>("picard_rel_tol")),
92  _picard_abs_tol(getParam<Real>("picard_abs_tol")),
93  _picard_force_norms(getParam<bool>("picard_force_norms")),
94  _relax_factor(getParam<Real>("relaxation_factor")),
95  _relaxed_vars(getParam<std::vector<std::string>>("relaxed_variables")),
96  // this value will be set by MultiApp
98  _max_xfem_update(getParam<unsigned int>("max_xfem_update")),
99  _update_xfem_at_timestep_begin(getParam<bool>("update_xfem_at_timestep_begin")),
100  _picard_timer(registerTimedSection("PicardSolve", 1)),
101  _picard_it(0),
104  _xfem_repeat_step(false),
106  _solve_message(_problem.shouldSolve() ? "Solve Converged!" : "Solve Skipped!")
107 {
108  if (_relax_factor != 1.0)
109  // Store a copy of the previous solution here
110  _problem.getNonlinearSystemBase().addVector("relax_previous", false, PARALLEL);
111 }
const std::string _solve_message
Definition: PicardSolve.h:157
PerfID registerTimedSection(const std::string &section_name, const unsigned int level)
Call to register a named section for timing.
bool shouldSolve() const
FEProblemBase & _problem
Reference to FEProblem.
Definition: SolveObject.h:42
Real _picard_self_relaxation_factor
Relaxation factor outside of Picard iteration (used as a subapp)
Definition: PicardSolve.h:123
unsigned int _picard_max_its
Maximum Picard iterations.
Definition: PicardSolve.h:104
unsigned int _max_xfem_update
Maximum number of xfem updates per step.
Definition: PicardSolve.h:128
virtual Real & time() const
std::vector< std::string > _relaxed_vars
The transferred variables that are going to be relaxed.
Definition: PicardSolve.h:120
NonlinearSystemBase & getNonlinearSystemBase()
const PerfID _picard_timer
Timer for Picard iteration.
Definition: PicardSolve.h:134
virtual NumericVector< Number > & addVector(const std::string &vector_name, const bool project, const ParallelType type)
Adds a solution length vector to the system.
Definition: SystemBase.C:526
unsigned int _picard_it
Definition: PicardSolve.h:138
bool _xfem_repeat_step
Whether step should be repeated due to xfem modifying the mesh.
Definition: PicardSolve.h:152
bool _update_xfem_at_timestep_begin
Controls whether xfem should update the mesh at the beginning of the time step.
Definition: PicardSolve.h:130
bool _accept_max_it
Whether or not to treat reaching maximum number of Picard iteration as converged. ...
Definition: PicardSolve.h:108
MoosePicardConvergenceReason _picard_status
Status of Picard solve.
Definition: PicardSolve.h:146
const T & getParam(const std::string &name) const
Retrieve a parameter for the object.
Definition: MooseObject.h:188
bool _has_picard_its
Whether or not we activate Picard iteration.
Definition: PicardSolve.h:106
bool _has_picard_norm
Whether or not to use residual norm to check the Picard convergence.
Definition: PicardSolve.h:110
Real _relax_factor
Relaxation factor for Picard Iteration.
Definition: PicardSolve.h:118
Real _picard_abs_tol
Absolute tolerance on residual norm.
Definition: PicardSolve.h:114
unsigned int _xfem_update_count
Counter for number of xfem updates that have been performed in the current step.
Definition: PicardSolve.h:150
SolveObject(Executioner *ex)
Definition: SolveObject.C:16
Real _picard_rel_tol
Relative tolerance on residual norm.
Definition: PicardSolve.h:112
bool _picard_force_norms
Whether or not we force evaluation of residual norms even without multiapps.
Definition: PicardSolve.h:116
Real _previous_entering_time
Time of previous Picard solve as a subapp.
Definition: PicardSolve.h:155

Member Function Documentation

◆ checkConvergence()

MoosePicardConvergenceReason PicardSolve::checkConvergence ( ) const
inline

Check the solver status.

Definition at line 58 of file PicardSolve.h.

58 { return _picard_status; }
MoosePicardConvergenceReason _picard_status
Status of Picard solve.
Definition: PicardSolve.h:146

◆ clearPicardStatus()

void PicardSolve::clearPicardStatus ( )
inline

Clear Picard status.

Definition at line 64 of file PicardSolve.h.

◆ enabled()

virtual bool MooseObject::enabled ( ) const
inlinevirtualinherited

Return the enabled status of the object.

Reimplemented in EigenKernel.

Definition at line 96 of file MooseObject.h.

Referenced by EigenKernel::enabled().

96 { return _enabled; }
const bool & _enabled
Reference to the "enable" InputParaemters, used by Controls for toggling on/off MooseObjects.
Definition: MooseObject.h:183

◆ getCheckedPointerParam()

template<typename T >
T MooseObject::getCheckedPointerParam ( const std::string &  name,
const std::string &  error_string = "" 
) const
inlineinherited

Verifies that the requested parameter exists and is not NULL and returns it to the caller.

The template parameter must be a pointer or an error will be thrown.

Definition at line 77 of file MooseObject.h.

78  {
79  return parameters().getCheckedPointerParam<T>(name, error_string);
80  }
T getCheckedPointerParam(const std::string &name, const std::string &error_string="") const
Verifies that the requested parameter exists and is not NULL and returns it to the caller...
const InputParameters & parameters() const
Get the parameters of the object.
Definition: MooseObject.h:62
const std::string & name() const
Get the name of the object.
Definition: MooseObject.h:56

◆ getMooseApp()

MooseApp& MooseObject::getMooseApp ( ) const
inlineinherited

Get the MooseApp this object is associated with.

Definition at line 91 of file MooseObject.h.

Referenced by RestartableDataIO::createBackup(), RestartableDataIO::deserializeRestartableData(), ConsoleUtils::outputMeshInformation(), Resurrector::restartRestartableData(), and RestartableDataIO::restoreBackup().

91 { return _app; }
MooseApp & _app
The MooseApp this object is associated with.
Definition: MooseObject.h:174

◆ getParam()

template<typename T >
const T & MooseObject::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 188 of file MooseObject.h.

Referenced by FEProblemBase::addMaterialHelper(), ConstraintWarehouse::addObject(), BicubicSplineFunction::BicubicSplineFunction(), Piecewise::buildFromXandY(), MultiApp::createApp(), DerivativeParsedMaterial::DerivativeParsedMaterial(), EigenKernel::EigenKernel(), FEProblemBase::FEProblemBase(), FieldSplitPreconditioner::FieldSplitPreconditioner(), FiniteDifferencePreconditioner::FiniteDifferencePreconditioner(), SideSetsBetweenSubdomainsGenerator::generate(), ExtraNodesetGenerator::generate(), MeshExtruderGenerator::generate(), SideSetsAroundSubdomainGenerator::generate(), GenericConstantRankTwoTensor::GenericConstantRankTwoTensor(), GhostingUserObject::GhostingUserObject(), TimeSequenceStepper::init(), AttribThread::initFrom(), BlockRestrictable::initializeBlockRestrictable(), BoundaryRestrictable::initializeBoundaryRestrictable(), Console::initialSetup(), AdvancedOutput::initialSetup(), SideSetsBetweenSubdomains::modify(), AddExtraNodeset::modify(), MeshExtruder::modify(), SideSetsAroundSubdomain::modify(), ParsedAddSideset::ParsedAddSideset(), ParsedAux::ParsedAux(), ParsedGenerateSideset::ParsedGenerateSideset(), ParsedMaterial::ParsedMaterial(), ParsedODEKernel::ParsedODEKernel(), ParsedSubdomainMeshGenerator::ParsedSubdomainMeshGenerator(), ParsedSubdomainMeshModifier::ParsedSubdomainMeshModifier(), PhysicsBasedPreconditioner::PhysicsBasedPreconditioner(), SingleMatrixPreconditioner::SingleMatrixPreconditioner(), TimePeriod::TimePeriod(), and VectorOfPostprocessors::VectorOfPostprocessors().

189 {
190  return InputParameters::getParamHelper(name, _pars, static_cast<T *>(0));
191 }
static const T & getParamHelper(const std::string &name, const InputParameters &pars, const T *the_type)
const InputParameters & _pars
Parameters of this object, references the InputParameters stored in the InputParametersWarehouse.
Definition: MooseObject.h:171
const std::string & name() const
Get the name of the object.
Definition: MooseObject.h:56

◆ hasPicardIteration()

bool PicardSolve::hasPicardIteration ( )
inline

Whether or not this has Picard iterations.

Definition at line 67 of file PicardSolve.h.

Referenced by Transient::execute(), and Transient::incrementStepOrReject().

67 { return _has_picard_its; }
bool _has_picard_its
Whether or not we activate Picard iteration.
Definition: PicardSolve.h:106

◆ isParamValid()

bool MooseObject::isParamValid ( const std::string &  name) const
inlineinherited

Test if the supplied parameter is valid.

Parameters
nameThe name of the parameter to test

Definition at line 86 of file MooseObject.h.

Referenced by AdvancedOutput::AdvancedOutput(), BicubicSplineFunction::BicubicSplineFunction(), Piecewise::buildFromFile(), Piecewise::buildFromXandY(), DistributedGeneratedMesh::buildMesh(), GeneratedMesh::buildMesh(), CartesianMeshGenerator::CartesianMeshGenerator(), LibmeshPartitioner::clone(), OversampleOutput::cloneMesh(), CSVReader::CSVReader(), MultiAppNearestNodeTransfer::execute(), Exodus::Exodus(), FEProblemBase::FEProblemBase(), FileOutput::FileOutput(), MultiApp::fillPositions(), FunctionDT::FunctionDT(), RenameBoundaryGenerator::generate(), BreakBoundaryOnSubdomainGenerator::generate(), ElementSubdomainIDGenerator::generate(), ExtraNodesetGenerator::generate(), LowerDBlockFromSidesetGenerator::generate(), MeshSideSetGenerator::generate(), RenameBlockGenerator::generate(), GeneratedMeshGenerator::generate(), ParsedSubdomainMeshGenerator::generate(), MeshExtruderGenerator::generate(), SubdomainBoundingBoxGenerator::generate(), MultiAppNearestNodeTransfer::getLocalEntities(), MeshGenerator::getMesh(), MultiAppNearestNodeTransfer::getNearestNode(), IterationAdaptiveDT::init(), EigenExecutionerBase::init(), MooseMesh::init(), AdvancedOutput::initExecutionTypes(), BlockRestrictable::initializeBlockRestrictable(), BoundaryRestrictable::initializeBoundaryRestrictable(), SolutionAux::initialSetup(), MooseParsedVectorFunction::initialSetup(), Console::initialSetup(), Receiver::initialSetup(), SolutionFunction::initialSetup(), MooseParsedGradFunction::initialSetup(), MooseParsedFunction::initialSetup(), AdvancedOutput::initialSetup(), AdvancedOutput::initPostprocessorOrVectorPostprocessorLists(), IterationAdaptiveDT::IterationAdaptiveDT(), LeastSquaresFit::LeastSquaresFit(), LibmeshPartitioner::LibmeshPartitioner(), BreakBoundaryOnSubdomain::modify(), MeshExtruder::modify(), MeshSideSet::modify(), LowerDBlockFromSideset::modify(), AssignElementSubdomainID::modify(), ParsedSubdomainMeshModifier::modify(), RenameBlock::modify(), SubdomainBoundingBox::modify(), MooseMesh::MooseMesh(), EigenExecutionerBase::normalizeSolution(), Output::Output(), PetscOutput::PetscOutput(), Piecewise::Piecewise(), SolutionUserObject::readExodusII(), RenameBlock::RenameBlock(), RenameBlockGenerator::RenameBlockGenerator(), RenameBoundaryGenerator::RenameBoundaryGenerator(), SolutionUserObject::SolutionUserObject(), and TimePeriod::TimePeriod().

86 { return _pars.isParamValid(name); }
const InputParameters & _pars
Parameters of this object, references the InputParameters stored in the InputParametersWarehouse.
Definition: MooseObject.h:171
const std::string & name() const
Get the name of the object.
Definition: MooseObject.h:56
bool isParamValid(const std::string &name) const
This method returns parameters that have been initialized in one fashion or another, i.e.

◆ mooseDeprecated()

template<typename... Args>
void MooseObject::mooseDeprecated ( Args &&...  args) const
inlineinherited

◆ mooseError()

template<typename... Args>
void MooseObject::mooseError ( Args &&...  args) const
inlineinherited

Definition at line 144 of file MooseObject.h.

Referenced by GridPartitioner::_do_partition(), PetscExternalPartitioner::_do_partition(), FEProblemBase::addConstraint(), FEProblemBase::addInitialCondition(), FEProblem::addLineSearch(), FEProblemBase::addLineSearch(), FEProblemBase::addOutput(), DiracKernel::addPointWithValidId(), FEProblemBase::addPostprocessor(), MooseMesh::addQuadratureNode(), FEProblemBase::addVectorPostprocessor(), ADPiecewiseLinearInterpolationMaterial< compute_stage >::ADPiecewiseLinearInterpolationMaterial(), Output::advancedExecuteOn(), AnnularMesh::AnnularMesh(), AnnularMeshGenerator::AnnularMeshGenerator(), MultiApp::appPostprocessorValue(), MultiApp::appProblem(), MultiApp::appProblemBase(), MultiApp::appUserObjectBase(), DerivativeParsedMaterialHelper::assembleDerivatives(), Function::average(), Axisymmetric2D3DSolutionFunction::Axisymmetric2D3DSolutionFunction(), BicubicSplineFunction::BicubicSplineFunction(), BoundingValueElementDamper::BoundingValueElementDamper(), BoundingValueNodalDamper::BoundingValueNodalDamper(), BoundsAux::BoundsAux(), BreakMeshByBlockGenerator::BreakMeshByBlockGenerator(), BreakMeshByBlockGeneratorBase::BreakMeshByBlockGeneratorBase(), MooseMesh::buildCoarseningMap(), Piecewise::buildFromFile(), Piecewise::buildFromXandY(), Piecewise::buildFromXY(), TiledMesh::buildMesh(), FileMesh::buildMesh(), SpiralAnnularMesh::buildMesh(), DistributedGeneratedMesh::buildMesh(), GeneratedMesh::buildMesh(), ImageMeshGenerator::buildMesh3D(), ImageMesh::buildMesh3D(), MooseMesh::buildMeshBaseObject(), MooseMesh::buildRefinementMap(), MooseMesh::buildSideList(), CartesianMeshGenerator::CartesianMeshGenerator(), ChangeOverTimePostprocessor::ChangeOverTimePostprocessor(), EigenExecutionerBase::chebyshev(), SubProblem::checkBlockMatProps(), SubProblem::checkBoundaryMatProps(), FEProblemBase::checkCoordinateSystems(), FEProblemBase::checkDependMaterialsHelper(), FEProblemBase::checkDisplacementOrders(), Material::checkExecutionStage(), BreakMeshByBlockBase::checkInputParameter(), Steady::checkIntegrity(), EigenExecutionerBase::checkIntegrity(), ActuallyExplicitEuler::checkLinearConvergence(), FEProblemBase::checkProblemIntegrity(), Material::checkStatefulSanity(), FEProblemBase::checkUserObjects(), LibmeshPartitioner::clone(), MooseMesh::clone(), ComparisonPostprocessor::comparisonIsTrue(), CompositeFunction::CompositeFunction(), ElementLpNormAux::compute(), ElementH1ErrorFunctionAux::compute(), NodalPatchRecovery::compute(), KernelBase::computeADOffDiagJacobian(), InterfaceKernel::computeElemNeighJacobian(), TimeSequenceStepperBase::computeFailedDT(), IterationAdaptiveDT::computeFailedDT(), TimeStepper::computeFailedDT(), HistogramVectorPostprocessor::computeHistogram(), EqualValueEmbeddedConstraint::computeQpJacobian(), EqualValueEmbeddedConstraint::computeQpOffDiagJacobian(), KernelValue::computeQpResidual(), FEProblemBase::computeResidualInternal(), FEProblemBase::computeResidualTag(), FEProblemBase::computeResidualType(), StatisticsVectorPostprocessor::computeStatValue(), Material::computeSubdomainProperties(), ExplicitEuler::computeTimeDerivatives(), ImplicitEuler::computeTimeDerivatives(), BDF2::computeTimeDerivatives(), NewmarkBeta::computeTimeDerivatives(), CrankNicolson::computeTimeDerivatives(), ActuallyExplicitEuler::computeTimeDerivatives(), LStableDirk2::computeTimeDerivatives(), LStableDirk3::computeTimeDerivatives(), ImplicitMidpoint::computeTimeDerivatives(), ExplicitTVDRK2::computeTimeDerivatives(), AStableDirk4::computeTimeDerivatives(), LStableDirk4::computeTimeDerivatives(), ExplicitRK2::computeTimeDerivatives(), PenetrationAux::computeValue(), ConcentricCircleMesh::ConcentricCircleMesh(), TimeStepper::constrainStep(), CoupledForce::CoupledForce(), DebugResidualAux::DebugResidualAux(), FunctorRelationshipManager::delete_remote_elements(), BicubicSplineFunction::derivative(), DerivativeSumMaterial::DerivativeSumMaterial(), DGKernelBase::DGKernelBase(), FunctorRelationshipManager::dofmap_reinit(), FEProblemBase::duplicateVariableCheck(), EigenProblem::EigenProblem(), Eigenvalues::Eigenvalues(), ElementalVariableValue::ElementalVariableValue(), ElementQualityAux::ElementQualityAux(), MooseMesh::errorIfDistributedMesh(), SolutionUserObject::evalMeshFunction(), SolutionUserObject::evalMeshFunctionGradient(), SolutionUserObject::evalMultiValuedMeshFunction(), SolutionUserObject::evalMultiValuedMeshFunctionGradient(), MultiAppPostprocessorTransfer::execute(), DiscreteElementUserObject::execute(), MultiAppPostprocessorInterpolationTransfer::execute(), MultiAppVariableValueSamplePostprocessorTransfer::execute(), ElementQualityChecker::execute(), NodalValueSampler::execute(), InterfaceQpValueUserObject::execute(), PointValue::execute(), MultiAppPostprocessorToAuxScalarTransfer::execute(), MultiAppScalarToAuxScalarTransfer::execute(), MultiAppVariableValueSampleTransfer::execute(), MultiAppUserObjectTransfer::execute(), MultiAppInterpolationTransfer::execute(), FindValueOnLine::execute(), MultiAppNearestNodeTransfer::execute(), TimeExtremeValue::execute(), VectorPostprocessorComparison::execute(), LeastSquaresFit::execute(), LeastSquaresFitHistory::execute(), FEProblemBase::executeControls(), MultiAppVectorPostprocessorTransfer::executeFromMultiapp(), MultiAppVectorPostprocessorTransfer::executeToMultiapp(), Exodus::Exodus(), FileOutput::FileOutput(), CentroidMultiApp::fillPositions(), MultiApp::fillPositions(), VerifyElementUniqueID::finalize(), VerifyNodalUniqueID::finalize(), DiscreteElementUserObject::finalize(), ElementQualityChecker::finalize(), MemoryUsage::finalize(), PointSamplerBase::finalize(), Transfer::find_sys(), BreakMeshByBlockBase::findFreeBoundaryId(), BreakMeshByBlockGeneratorBase::findFreeBoundaryId(), FunctionDT::FunctionDT(), FunctionMaterialBase::FunctionMaterialBase(), ParsedMaterialHelper::functionParse(), FunctionScalarAux::FunctionScalarAux(), FunctionScalarIC::FunctionScalarIC(), GapValueAux::GapValueAux(), ElementSubdomainIDGenerator::generate(), ExtraNodesetGenerator::generate(), RenameBlockGenerator::generate(), RenameBoundaryGenerator::generate(), GeneratedMeshGenerator::generate(), MeshExtruderGenerator::generate(), SideSetsFromBoundingBoxGenerator::generate(), StackGenerator::generate(), SpiralAnnularMeshGenerator::generate(), PatternedMeshGenerator::generate(), BoundingBoxNodeSetGenerator::generate(), GeneratedMesh::GeneratedMesh(), GeneratedMeshGenerator::GeneratedMeshGenerator(), RandomICBase::generateRandom(), GenericConstantMaterial::GenericConstantMaterial(), GenericFunctionMaterial::GenericFunctionMaterial(), MooseMesh::getBoundaryID(), MultiApp::getBoundingBox(), MooseMesh::getCoarseningMap(), Control::getControllableParameterByName(), FEProblemBase::getCoordSystem(), PiecewiseConstant::getDirection(), FEProblemBase::getDistribution(), GhostingUserObject::getElementalValue(), ElementGenerator::getElemType(), MultiApp::getExecutioner(), FEProblemBase::getFunction(), SolutionUserObject::getLocalVarIndex(), SubProblem::getMatrixTagID(), AnnularMesh::getMaxInDimension(), DistributedGeneratedMesh::getMaxInDimension(), GeneratedMesh::getMaxInDimension(), FEProblemBase::getMaxQps(), FEProblemBase::getMaxShapeFunctions(), AnnularMesh::getMinInDimension(), DistributedGeneratedMesh::getMinInDimension(), GeneratedMesh::getMinInDimension(), MooseMesh::getMortarInterface(), MooseMesh::getMortarInterfaceByName(), MooseMesh::getNodeBlockIds(), MooseMesh::getNodeList(), FEProblemBase::getNonlinearSystem(), MooseMesh::getPairedBoundaryMapping(), ImageMeshGenerator::GetPixelInfo(), ImageMesh::GetPixelInfo(), InterfaceQpValueUserObject::getQpValue(), MaterialStdVectorAux::getRealValue(), MooseMesh::getRefinementMap(), FEProblemBase::getSampler(), DisplacedProblem::getScalarVariable(), FEProblemBase::getScalarVariable(), DisplacedProblem::getStandardVariable(), FEProblemBase::getStandardVariable(), MooseMesh::getSubdomainBoundaryIds(), MooseMesh::getSubdomainID(), DisplacedProblem::getSystem(), FEProblemBase::getSystem(), FEProblemBase::getUserObject(), FEProblemBase::getUserObjectBase(), PerformanceData::getValue(), Residual::getValue(), PerfGraphData::getValue(), LineValueSampler::getValue(), FindValueOnLine::getValueAtPoint(), SubProblem::getVariableHelper(), SubProblem::getVectorTagID(), DisplacedProblem::getVectorVariable(), FEProblemBase::getVectorVariable(), GhostingAux::GhostingAux(), MultiApp::globalAppToLocal(), MooseParsedVectorFunction::gradient(), AdvancedOutput::hasOutputHelper(), CrankNicolson::init(), CSVTimeSequenceStepper::init(), IterationAdaptiveDT::init(), EigenExecutionerBase::init(), Transient::init(), MooseMesh::init(), FEProblemBase::init(), NumPicardIterations::initialize(), FullSolveMultiApp::initialSetup(), PiecewiseBase::initialSetup(), SolutionAux::initialSetup(), Axisymmetric2D3DSolutionFunction::initialSetup(), Exodus::initialSetup(), SolutionFunction::initialSetup(), SolutionUserObject::initialSetup(), FEProblemBase::initialSetup(), AdvancedOutput::initOutputList(), AdvancedOutput::initShowHideLists(), Material::initStatefulProperties(), Function::integral(), InterfaceKernel::InterfaceKernel(), InterfaceTimeKernel::InterfaceTimeKernel(), EigenExecutionerBase::inversePowerIteration(), InversePowerMethod::InversePowerMethod(), IterationAdaptiveDT::IterationAdaptiveDT(), LayeredSideIntegral::LayeredSideIntegral(), LeastSquaresFit::LeastSquaresFit(), LibmeshPartitioner::LibmeshPartitioner(), LinearCombinationFunction::LinearCombinationFunction(), LinearCombinationPostprocessor::LinearCombinationPostprocessor(), LinearNodalConstraint::LinearNodalConstraint(), LineMaterialSamplerBase< Real >::LineMaterialSamplerBase(), LineSearch::lineSearch(), LineValueSampler::LineValueSampler(), MaterialRealTensorValueAux::MaterialRealTensorValueAux(), MaterialRealVectorValueAux::MaterialRealVectorValueAux(), MaterialStdVectorRealGradientAux::MaterialStdVectorRealGradientAux(), MaterialVectorPostprocessor::MaterialVectorPostprocessor(), Distribution::median(), FunctorRelationshipManager::mesh_reinit(), SubProblem::meshChanged(), MeshExtruder::MeshExtruder(), MeshExtruderGenerator::MeshExtruderGenerator(), MeshSideSetGenerator::MeshSideSetGenerator(), SideSetsFromPoints::modify(), SideSetsFromNormals::modify(), AddExtraNodeset::modify(), MeshExtruder::modify(), BreakMeshByBlockBase::modify(), AssignElementSubdomainID::modify(), SmoothMesh::modify(), ElementDeleterBase::modify(), AddAllSideSetsByNormals::modify(), ParsedSubdomainMeshModifier::modify(), RenameBlock::modify(), ImageSubdomain::modify(), OrientedSubdomainBoundingBox::modify(), BoundingBoxNodeSet::modify(), SubdomainBoundingBox::modify(), AddSideSetsFromBoundingBox::modify(), MooseGhostPointNeighbors::MooseGhostPointNeighbors(), MooseMesh::MooseMesh(), MultiAppMeshFunctionTransfer::MultiAppMeshFunctionTransfer(), MultiAppPostprocessorTransfer::MultiAppPostprocessorTransfer(), NearestNodeDistanceAux::NearestNodeDistanceAux(), NearestNodeValueAux::NearestNodeValueAux(), RenameBlockGenerator::newBlockID(), RenameBlock::newBlockID(), RenameBlockGenerator::newBlockName(), RenameBlock::newBlockName(), NewmarkBeta::NewmarkBeta(), NodalConstraint::NodalConstraint(), NodalScalarKernel::NodalScalarKernel(), NodalVariableValue::NodalVariableValue(), NumDOFs::NumDOFs(), NumNonlinearIterations::NumNonlinearIterations(), NumVars::NumVars(), FunctorRelationshipManager::operator()(), RelationshipManager::operator==(), XDA::output(), SolutionHistory::output(), Exodus::output(), AdvancedOutput::outputElementalVariables(), AdvancedOutput::outputInput(), AdvancedOutput::outputNodalVariables(), AdvancedOutput::outputPostprocessors(), AdvancedOutput::outputScalarVariables(), AdvancedOutput::outputSystemInformation(), Console::outputVectorPostprocessors(), AdvancedOutput::outputVectorPostprocessors(), MooseObject::paramError(), PiecewiseBilinear::parse(), ParsedAddSideset::ParsedAddSideset(), ParsedAux::ParsedAux(), ParsedGenerateSideset::ParsedGenerateSideset(), ParsedODEKernel::ParsedODEKernel(), ParsedSubdomainMeshGenerator::ParsedSubdomainMeshGenerator(), ParsedSubdomainMeshModifier::ParsedSubdomainMeshModifier(), PetscExternalPartitioner::PetscExternalPartitioner(), PhysicsBasedPreconditioner::PhysicsBasedPreconditioner(), Piecewise::Piecewise(), PiecewiseBilinear::PiecewiseBilinear(), PiecewiseLinearInterpolationMaterial::PiecewiseLinearInterpolationMaterial(), PiecewiseMulticonstant::PiecewiseMulticonstant(), PiecewiseMultiInterpolation::PiecewiseMultiInterpolation(), SolutionUserObject::pointValueGradientWrapper(), SolutionUserObject::pointValueWrapper(), LStableDirk2::postResidual(), LStableDirk3::postResidual(), ImplicitMidpoint::postResidual(), ExplicitTVDRK2::postResidual(), AStableDirk4::postResidual(), LStableDirk4::postResidual(), ExplicitRK2::postResidual(), Predictor::Predictor(), Transient::preExecute(), SolutionUserObject::readExodusII(), SolutionUserObject::readXda(), FunctorRelationshipManager::redistribute(), EqualValueEmbeddedConstraint::reinitConstraint(), RelativeSolutionDifferenceNorm::RelativeSolutionDifferenceNorm(), RenameBlock::RenameBlock(), RenameBlockGenerator::RenameBlockGenerator(), RenameBoundaryGenerator::RenameBoundaryGenerator(), RinglebMesh::RinglebMesh(), RinglebMeshGenerator::RinglebMeshGenerator(), ScalarComponentIC::ScalarComponentIC(), BicubicSplineFunction::secondDerivative(), FEProblemBase::setCoordSystem(), PiecewiseBase::setData(), EigenProblem::setEigenproblemType(), FEProblemSolve::setInnerSolve(), Sampler::setNumberOfRequiedRandomSeeds(), Exodus::setOutputDimensionInExodusWriter(), Split::setup(), TransientMultiApp::setupApp(), TimeSequenceStepperBase::setupSequence(), Transient::setupTimeIntegrator(), SideSetsFromBoundingBoxGenerator::SideSetsFromBoundingBoxGenerator(), SideSetsFromNormals::SideSetsFromNormals(), SideSetsFromNormalsGenerator::SideSetsFromNormalsGenerator(), SideSetsFromPoints::SideSetsFromPoints(), SideSetsFromPointsGenerator::SideSetsFromPointsGenerator(), SolutionTimeAdaptiveDT::SolutionTimeAdaptiveDT(), SolutionUserObject::SolutionUserObject(), solve(), ActuallyExplicitEuler::solve(), FullSolveMultiApp::solveStep(), SpatialAverageBase::SpatialAverageBase(), UserObject::spatialValue(), SpiralAnnularMesh::SpiralAnnularMesh(), SpiralAnnularMeshGenerator::SpiralAnnularMeshGenerator(), StitchedMesh::StitchedMesh(), NodalUserObject::subdomainSetup(), GeneralUserObject::subdomainSetup(), Constraint::subdomainSetup(), Console::systemInfoFlags(), Terminator::Terminator(), TestSetupPostprocessorDataActionFunction::TestSetupPostprocessorDataActionFunction(), ThreadedGeneralUserObject::ThreadedGeneralUserObject(), ThreadedGeneralUserObject::threadJoin(), DiscreteElementUserObject::threadJoin(), GeneralUserObject::threadJoin(), TiledMeshGenerator::TiledMeshGenerator(), Function::timeDerivative(), TimeExtremeValue::TimeExtremeValue(), TimePeriod::TimePeriod(), VectorPostprocessorVisualizationAux::timestepSetup(), MultiAppCopyTransfer::transfer(), MultiAppMeshFunctionTransfer::transferVariable(), FEProblemBase::uDotDotOldRequested(), FEProblemBase::uDotOldRequested(), EqualValueBoundaryConstraint::updateConstrainedNodes(), SolutionUserObject::updateExodusBracketingTimeIndices(), Axisymmetric2D3DSolutionFunction::value(), ValueRangeMarker::ValueRangeMarker(), ValueThresholdMarker::ValueThresholdMarker(), MultiAppTransfer::variableIntegrityCheck(), VariableTimeIntegrationAux::VariableTimeIntegrationAux(), VectorNodalBC::VectorNodalBC(), VectorOfPostprocessors::VectorOfPostprocessors(), VectorPostprocessorFunction::VectorPostprocessorFunction(), MooseParsedGradFunction::vectorValue(), MooseParsedFunction::vectorValue(), VectorVariableComponentAux::VectorVariableComponentAux(), VolumeHistogram::VolumeHistogram(), VTKOutput::VTKOutput(), DOFMapOutput::writeStreamToFile(), and Console::writeStreamToFile().

144  {
145  std::ostringstream oss;
146  moose::internal::mooseStreamAll(oss, std::forward<Args>(args)...);
147  std::string msg = oss.str();
148  callMooseErrorRaw(msg, &_app);
149  }
void mooseStreamAll(std::ostringstream &ss)
All of the following are not meant to be called directly - they are called by the normal macros (moos...
Definition: MooseError.C:87
void callMooseErrorRaw(std::string &msg, MooseApp *app)
Definition: MooseObject.C:57
MooseApp & _app
The MooseApp this object is associated with.
Definition: MooseObject.h:174

◆ mooseInfo()

template<typename... Args>
void MooseObject::mooseInfo ( Args &&...  args) const
inlineinherited

◆ mooseWarning()

template<typename... Args>
void MooseObject::mooseWarning ( Args &&...  args) const
inlineinherited

◆ name()

const std::string& MooseObject::name ( ) const
inlineinherited

Get the name of the object.

Returns
The name of the object

Definition at line 56 of file MooseObject.h.

Referenced by GridPartitioner::_do_partition(), FEProblemBase::addADJacobianMaterial(), FEProblemBase::addADResidualMaterial(), Executioner::addAttributeReporter(), DumpObjectsProblem::addAuxKernel(), FEProblemBase::addAuxKernel(), DumpObjectsProblem::addAuxScalarKernel(), FEProblemBase::addAuxScalarKernel(), DumpObjectsProblem::addBoundaryCondition(), FEProblemBase::addBoundaryCondition(), DumpObjectsProblem::addConstraint(), FEProblemBase::addConstraint(), FEProblemBase::addDamper(), DumpObjectsProblem::addDGKernel(), FEProblemBase::addDGKernel(), DumpObjectsProblem::addDiracKernel(), FEProblemBase::addDiracKernel(), FEProblemBase::addDistribution(), DumpObjectsProblem::addFunction(), FEProblemBase::addFunction(), FEProblemBase::addIndicator(), DumpObjectsProblem::addInitialCondition(), FEProblemBase::addInitialCondition(), DumpObjectsProblem::addInterfaceKernel(), FEProblemBase::addInterfaceKernel(), DumpObjectsProblem::addKernel(), FEProblemBase::addKernel(), FEProblemBase::addMarker(), DumpObjectsProblem::addMaterial(), FEProblemBase::addMaterial(), FEProblemBase::addMaterialHelper(), MooseMesh::addMortarInterface(), FEProblemBase::addMultiApp(), DumpObjectsProblem::addNodalKernel(), FEProblemBase::addNodalKernel(), FEProblemBase::addPostprocessor(), FEProblemBase::addPredictor(), CreateDisplacedProblemAction::addProxyAlgebraicRelationshipManagers(), CreateDisplacedProblemAction::addProxyGeometricRelationshipManagers(), FEProblemBase::addSampler(), DumpObjectsProblem::addScalarKernel(), FEProblemBase::addScalarKernel(), FEProblemBase::addTimeIntegrator(), FEProblemBase::addTransfer(), FEProblemBase::addUserObject(), FEProblemBase::addVectorPostprocessor(), Output::advancedExecuteOn(), MultiApp::appPostprocessorValue(), MultiApp::appProblem(), MultiApp::appProblemBase(), MultiApp::appUserObjectBase(), DerivativeParsedMaterialHelper::assembleDerivatives(), AStableDirk4::AStableDirk4(), Function::average(), MultiApp::backup(), BreakMeshByBlockGenerator::BreakMeshByBlockGenerator(), ChangeOverTimePostprocessor::ChangeOverTimePostprocessor(), FEProblemBase::checkDependMaterialsHelper(), Damper::checkMinDamping(), Material::checkStatefulSanity(), CompositeFunction::CompositeFunction(), Material::computeSubdomainProperties(), VectorPostprocessorVisualizationAux::computeValue(), MultiApp::createApp(), FEProblemBase::declareVectorPostprocessorVector(), DOFMapOutput::demangle(), DerivativeSumMaterial::DerivativeSumMaterial(), DGKernelBase::DGKernelBase(), DumpObjectsProblem::dumpObjectHelper(), ElementValueSampler::ElementValueSampler(), MooseMesh::errorIfDistributedMesh(), AB2PredictorCorrector::estimateTimeError(), SolutionUserObject::evalMeshFunction(), SolutionUserObject::evalMeshFunctionGradient(), SolutionUserObject::evalMultiValuedMeshFunction(), SolutionUserObject::evalMultiValuedMeshFunctionGradient(), MultiAppPostprocessorTransfer::execute(), MultiAppPostprocessorInterpolationTransfer::execute(), MultiAppVariableValueSamplePostprocessorTransfer::execute(), StatisticsVectorPostprocessor::execute(), MultiAppPostprocessorToAuxScalarTransfer::execute(), MultiAppScalarToAuxScalarTransfer::execute(), MultiAppVariableValueSampleTransfer::execute(), PointValue::execute(), MultiAppMeshFunctionTransfer::execute(), MultiAppInterpolationTransfer::execute(), MultiAppUserObjectTransfer::execute(), MultiAppNearestNodeTransfer::execute(), MultiAppProjectionTransfer::execute(), MultiAppVectorPostprocessorTransfer::execute(), HistogramVectorPostprocessor::execute(), MultiAppCopyTransfer::execute(), Exodus::Exodus(), FileOutput::FileOutput(), MultiApp::fillPositions(), PointSamplerBase::finalize(), DerivativeParsedMaterialHelper::findMatPropDerivative(), FunctionDT::FunctionDT(), GeneralUserObject::GeneralUserObject(), LowerDBlockFromSidesetGenerator::generate(), StitchedMeshGenerator::generate(), Material::getADMaterialProperty(), MultiApp::getBoundingBox(), MooseObject::getCheckedPointerParam(), Control::getControllableParameterByName(), Control::getControllableValue(), Control::getControllableValueByName(), DistributionInterface::getDistribution(), FEProblemBase::getDistribution(), DistributionInterface::getDistributionByName(), MultiApp::getExecutioner(), OutputWarehouse::getFileNumbers(), FEProblemBase::getFunction(), SolutionUserObject::getLocalVarIndex(), Marker::getMarkerValue(), FEProblemBase::getMaterial(), NodalPatchRecovery::getMaterialProperty(), Material::getMaterialProperty(), AuxKernelTempl< ComputeValueType >::getMaterialProperty(), SubProblem::getMaterialPropertyBlockNames(), SubProblem::getMaterialPropertyBoundaryNames(), NodalPatchRecovery::getMaterialPropertyOld(), AuxKernelTempl< ComputeValueType >::getMaterialPropertyOld(), Material::getMaterialPropertyOld(), NodalPatchRecovery::getMaterialPropertyOlder(), AuxKernelTempl< ComputeValueType >::getMaterialPropertyOlder(), Material::getMaterialPropertyOlder(), MeshGenerator::getMesh(), MooseMesh::getMortarInterfaceByName(), OutputWarehouse::getOutput(), MooseObject::getParam(), GeneralUserObject::getPostprocessorValue(), FEProblemBase::getPostprocessorValue(), GeneralUserObject::getPostprocessorValueByName(), FEProblemBase::getPostprocessorValueOld(), FEProblemBase::getPostprocessorValueOlder(), FEProblemBase::getSampler(), FEProblemBase::getScatterVectorPostprocessorValue(), FEProblemBase::getScatterVectorPostprocessorValueOld(), Transient::getTimeStepperName(), InitialConditionBase::getUserObject(), FEProblemBase::getUserObject(), InitialConditionBase::getUserObjectBase(), FEProblemBase::getUserObjectBase(), InitialConditionBase::getUserObjectByName(), GeneralUserObject::getVectorPostprocessorValue(), FEProblemBase::getVectorPostprocessorValue(), GeneralUserObject::getVectorPostprocessorValueByName(), FEProblemBase::getVectorPostprocessorValueOld(), FEProblemBase::hasFunction(), AdvancedOutput::hasOutputHelper(), FEProblemBase::hasPostprocessor(), FEProblemBase::hasUserObject(), FEProblemBase::hasVectorPostprocessor(), FEProblemBase::init(), AdvancedOutput::initExecutionTypes(), AttribName::initFrom(), CSVReader::initialize(), StatisticsVectorPostprocessor::initialize(), HistogramVectorPostprocessor::initialize(), MultiAppProjectionTransfer::initialSetup(), DerivativeFunctionMaterialBase::initialSetup(), SolutionUserObject::initialSetup(), AdvancedOutput::initOutputList(), FEProblemBase::initPostprocessorData(), AdvancedOutput::initPostprocessorOrVectorPostprocessorLists(), Material::initStatefulProperties(), FEProblemBase::initVectorPostprocessorData(), Function::integral(), InterfaceKernel::InterfaceKernel(), Registry::isADObj(), MooseObject::isParamValid(), Registry::isRegisteredObj(), LinearCombinationFunction::LinearCombinationFunction(), Marker::Marker(), MatDiffusionBase< Real >::MatDiffusionBase(), MaterialDerivativeTestKernelBase< Real >::MaterialDerivativeTestKernelBase(), MaterialVectorPostprocessor::MaterialVectorPostprocessor(), Distribution::median(), MemoryUsageReporter::MemoryUsageReporter(), MeshSideSetGenerator::MeshSideSetGenerator(), ElementDeleterBase::modify(), MooseVariableInterface< Real >::MooseVariableInterface(), NearestPointBase< LayeredAverage >::NearestPointBase(), NodalValueSampler::NodalValueSampler(), NodalVariableValue::NodalVariableValue(), Registry::objData(), DOFMapOutput::output(), Output::Output(), AdvancedOutput::outputElementalVariables(), AdvancedOutput::outputInput(), AdvancedOutput::outputNodalVariables(), ConsoleUtils::outputOutputInformation(), Nemesis::outputPostprocessors(), Exodus::outputPostprocessors(), AdvancedOutput::outputPostprocessors(), AdvancedOutput::outputScalarVariables(), AdvancedOutput::outputSystemInformation(), AdvancedOutput::outputVectorPostprocessors(), ParsedAddSideset::ParsedAddSideset(), ParsedAux::ParsedAux(), ParsedGenerateSideset::ParsedGenerateSideset(), ParsedODEKernel::ParsedODEKernel(), ParsedSubdomainMeshGenerator::ParsedSubdomainMeshGenerator(), ParsedSubdomainMeshModifier::ParsedSubdomainMeshModifier(), PointSamplerBase::PointSamplerBase(), Registry::registerObjectsTo(), FEProblemBase::registerRandomInterface(), Material::resetQpProperties(), MultiApp::restore(), Sampler::Sampler(), ScalarComponentIC::ScalarComponentIC(), MooseMesh::setBoundaryName(), Control::setControllableValue(), Control::setControllableValueByName(), OutputWarehouse::setFileNumbers(), MooseMesh::setSubdomainName(), Split::setup(), TransientMultiApp::setupApp(), SideSetsFromNormalsGenerator::SideSetsFromNormalsGenerator(), SideSetsFromPointsGenerator::SideSetsFromPointsGenerator(), SideValueSampler::SideValueSampler(), TransientMultiApp::solveStep(), SpatialAverageBase::SpatialAverageBase(), UserObject::spatialValue(), StitchedMesh::StitchedMesh(), SubProblem::storeBoundaryDelayedCheckMatProp(), SubProblem::storeBoundaryMatPropName(), SubProblem::storeBoundaryZeroMatProp(), SubProblem::storeSubdomainDelayedCheckMatProp(), SubProblem::storeSubdomainMatPropName(), SubProblem::storeSubdomainZeroMatProp(), TaggingInterface::TaggingInterface(), ThreadedGeneralUserObject::ThreadedGeneralUserObject(), Function::timeDerivative(), VectorPostprocessorVisualizationAux::timestepSetup(), TransientMultiApp::TransientMultiApp(), MultiAppTransfer::variableIntegrityCheck(), and AdvancedOutput::wantOutput().

56 { return _name; }
const std::string & _name
The name of this object, reference to value stored in InputParameters.
Definition: MooseObject.h:180

◆ numPicardIts()

unsigned int PicardSolve::numPicardIts ( ) const
inline

Get the number of Picard iterations performed Because this returns the number of Picard iterations, rather than the current iteration count (which starts at 0), increment by 1.

Returns
Number of Picard iterations performed

Definition at line 55 of file PicardSolve.h.

Referenced by NumPicardIterations::getValue().

55 { return _picard_it + 1; }
unsigned int _picard_it
Definition: PicardSolve.h:138

◆ paramError()

template<typename... Args>
void MooseObject::paramError ( const std::string &  param,
Args...  args 
)
inlineinherited

Emits an error prefixed with the file and line number of the given param (from the input file) along with the full parameter path+name followed by the given args as the message.

If this object's parameters were not created directly by the Parser, then this function falls back to the normal behavior of mooseError - only printing a message using the given args.

Definition at line 105 of file MooseObject.h.

Referenced by ADIntegratedBCTempl< T, compute_stage >::ADIntegratedBCTempl(), ADKernelTempl< T, compute_stage >::ADKernelTempl(), ConcentricCircleMeshGenerator::ConcentricCircleMeshGenerator(), DGKernelBase::DGKernelBase(), ElementValueSampler::ElementValueSampler(), MeshCollectionGenerator::generate(), StackGenerator::generate(), StitchedMeshGenerator::generate(), MultiApp::init(), IntegratedBC::IntegratedBC(), Kernel::Kernel(), MeshCollectionGenerator::MeshCollectionGenerator(), NodalBC::NodalBC(), NodalEqualValueConstraint::NodalEqualValueConstraint(), NodalKernel::NodalKernel(), NodalValueSampler::NodalValueSampler(), RandomIC::RandomIC(), MultiAppCopyTransfer::transfer(), and TransientMultiApp::TransientMultiApp().

105  {
106  auto prefix = param + ": ";
107  if (!_pars.inputLocation(param).empty())
108  prefix = _pars.inputLocation(param) + ": (" + _pars.paramFullpath(param) + "):\n";
109  mooseError(prefix, args...);
110  }
void mooseError(Args &&... args) const
Definition: MooseObject.h:144
const std::string & inputLocation(const std::string &param) const
Get/set a string representing the location in the input text the parameter originated from (i...
const InputParameters & _pars
Parameters of this object, references the InputParameters stored in the InputParametersWarehouse.
Definition: MooseObject.h:171
const std::string & paramFullpath(const std::string &param) const
Get/set a string representing the full HIT parameter path from the input file (e.g.

◆ parameters()

const InputParameters& MooseObject::parameters ( ) const
inlineinherited

Get the parameters of the object.

Returns
The parameters of the object

Definition at line 62 of file MooseObject.h.

Referenced by FEProblemBase::addADJacobianMaterial(), FEProblemBase::addADResidualMaterial(), DumpObjectsProblem::addAuxKernel(), FEProblemBase::addAuxKernel(), DumpObjectsProblem::addAuxScalarKernel(), FEProblemBase::addAuxScalarKernel(), DumpObjectsProblem::addBoundaryCondition(), FEProblemBase::addBoundaryCondition(), DumpObjectsProblem::addConstraint(), FEProblemBase::addConstraint(), FEProblemBase::addDamper(), DumpObjectsProblem::addDGKernel(), FEProblemBase::addDGKernel(), DumpObjectsProblem::addDiracKernel(), FEProblemBase::addDiracKernel(), FEProblemBase::addDistribution(), DumpObjectsProblem::addFunction(), FEProblemBase::addFunction(), FEProblemBase::addIndicator(), DumpObjectsProblem::addInitialCondition(), FEProblemBase::addInitialCondition(), DumpObjectsProblem::addInterfaceKernel(), FEProblemBase::addInterfaceKernel(), DumpObjectsProblem::addKernel(), FEProblemBase::addKernel(), FEProblem::addLineSearch(), FEProblemBase::addMarker(), DumpObjectsProblem::addMaterial(), FEProblemBase::addMaterial(), FEProblemBase::addMaterialHelper(), FEProblemBase::addMultiApp(), DumpObjectsProblem::addNodalKernel(), FEProblemBase::addNodalKernel(), FEProblemBase::addOutput(), FEProblemBase::addPostprocessor(), FEProblemBase::addPredictor(), FEProblemBase::addSampler(), DumpObjectsProblem::addScalarKernel(), FEProblemBase::addScalarKernel(), FEProblemBase::addTimeIntegrator(), FEProblemBase::addTransfer(), FEProblemBase::addUserObject(), FEProblemBase::addVectorPostprocessor(), ADPiecewiseLinearInterpolationMaterial< compute_stage >::ADPiecewiseLinearInterpolationMaterial(), AdvancedOutput::AdvancedOutput(), assemble_l2(), Moose::assemble_matrix(), AuxKernelTempl< ComputeValueType >::AuxKernelTempl(), AuxScalarKernel::AuxScalarKernel(), BoundsAux::BoundsAux(), LibmeshPartitioner::clone(), OversampleOutput::cloneMesh(), Moose::compute_bounds(), Moose::compute_jacobian(), Moose::compute_nearnullspace(), Moose::compute_nullspace(), Moose::compute_postcheck(), Moose::compute_transpose_nullspace(), Console::Console(), DumpObjectsProblem::deduceNecessaryParameters(), DumpObjectsProblem::dumpObjectHelper(), EigenProblem::EigenProblem(), Eigenvalue::Eigenvalue(), Exodus::Exodus(), FEProblem::FEProblem(), GapValueAux::GapValueAux(), MooseObject::getCheckedPointerParam(), GhostingUserObject::GhostingUserObject(), MooseMesh::init(), BlockRestrictable::initializeBlockRestrictable(), FEProblemBase::initNullSpaceVectors(), InterfaceKernel::InterfaceKernel(), isValid(), LayeredSideIntegral::LayeredSideIntegral(), MooseVariableInterface< Real >::MooseVariableInterface(), NearestPointBase< LayeredAverage >::NearestPointBase(), NodeFaceConstraint::NodeFaceConstraint(), PenetrationAux::PenetrationAux(), PiecewiseBilinear::PiecewiseBilinear(), PiecewiseLinearInterpolationMaterial::PiecewiseLinearInterpolationMaterial(), MultiAppProjectionTransfer::projectSolution(), RandomIC::RandomIC(), InputParameterWarehouse::removeInputParameters(), FEProblem::setInputParametersFEProblem(), FEProblemBase::setInputParametersFEProblem(), DumpObjectsProblem::stringifyParameters(), and Transient::Transient().

62 { return _pars; }
const InputParameters & _pars
Parameters of this object, references the InputParameters stored in the InputParametersWarehouse.
Definition: MooseObject.h:171

◆ paramInfo()

template<typename... Args>
void MooseObject::paramInfo ( const std::string &  param,
Args...  args 
)
inlineinherited

Emits an informational message prefixed with the file and line number of the given param (from the input file) along with the full parameter path+name followed by the given args as the message.

If this object's parameters were not created directly by the Parser, then this function falls back to the normal behavior of mooseInfo - only printing a message using the given args.

Definition at line 135 of file MooseObject.h.

Referenced by TransientMultiApp::TransientMultiApp().

136  {
137  auto prefix = param + ": ";
138  if (!_pars.inputLocation(param).empty())
139  prefix = _pars.inputLocation(param) + ": (" + _pars.paramFullpath(param) + "):\n";
140  mooseInfo(prefix, args...);
141  }
const std::string & inputLocation(const std::string &param) const
Get/set a string representing the location in the input text the parameter originated from (i...
const InputParameters & _pars
Parameters of this object, references the InputParameters stored in the InputParametersWarehouse.
Definition: MooseObject.h:171
void mooseInfo(Args &&... args) const
Definition: MooseObject.h:164
const std::string & paramFullpath(const std::string &param) const
Get/set a string representing the full HIT parameter path from the input file (e.g.

◆ paramWarning()

template<typename... Args>
void MooseObject::paramWarning ( const std::string &  param,
Args...  args 
)
inlineinherited

Emits a warning prefixed with the file and line number of the given param (from the input file) along with the full parameter path+name followed by the given args as the message.

If this object's parameters were not created directly by the Parser, then this function falls back to the normal behavior of mooseWarning - only printing a message using the given args.

Definition at line 119 of file MooseObject.h.

120  {
121  auto prefix = param + ": ";
122  if (!_pars.inputLocation(param).empty())
123  prefix = _pars.inputLocation(param) + ": (" + _pars.paramFullpath(param) + "):\n";
124  mooseWarning(prefix, args...);
125  }
void mooseWarning(Args &&... args) const
Definition: MooseObject.h:152
const std::string & inputLocation(const std::string &param) const
Get/set a string representing the location in the input text the parameter originated from (i...
const InputParameters & _pars
Parameters of this object, references the InputParameters stored in the InputParametersWarehouse.
Definition: MooseObject.h:171
const std::string & paramFullpath(const std::string &param) const
Get/set a string representing the full HIT parameter path from the input file (e.g.

◆ registerTimedSection()

PerfID PerfGraphInterface::registerTimedSection ( const std::string &  section_name,
const unsigned int  level 
)
protectedinherited

Call to register a named section for timing.

Parameters
section_nameThe name of the code section to be timed
levelThe importance of the timer - lower is more important (0 will always come out)
Returns
The ID of the section - use when starting timing

Definition at line 50 of file PerfGraphInterface.C.

51 {
52  if (_prefix != "")
53  return _perf_graph.registerSection(_prefix + "::" + section_name, level);
54  else
55  return _perf_graph.registerSection(section_name, level);
56 }
PerfGraph & _perf_graph
The performance graph to add to.
std::string _prefix
A prefix to use for all sections.
PerfID registerSection(const std::string &section_name, unsigned int level)
Registers a named section of code.
Definition: PerfGraph.C:42

◆ setInnerSolve()

virtual void SolveObject::setInnerSolve ( SolveObject solve)
inlinevirtualinherited

Set the inner solve object wrapped by this object.

Reimplemented in FEProblemSolve.

Definition at line 36 of file SolveObject.h.

Referenced by Steady::Steady(), and Transient::Transient().

36 { _inner_solve = &solve; }
SolveObject * _inner_solve
SolveObject wrapped by this solve object.
Definition: SolveObject.h:54
virtual bool solve()=0
Solve routine provided by this object.

◆ setMultiAppRelaxationFactor()

void PicardSolve::setMultiAppRelaxationFactor ( Real  factor)
inline

Set relaxation factor for the current solve as a MultiApp.

Definition at line 70 of file PicardSolve.h.

Real _picard_self_relaxation_factor
Relaxation factor outside of Picard iteration (used as a subapp)
Definition: PicardSolve.h:123

◆ setMultiAppRelaxationVariables()

void PicardSolve::setMultiAppRelaxationVariables ( const std::vector< std::string > &  vars)
inline

Set relaxation variables for the current solve as a MultiApp.

Definition at line 73 of file PicardSolve.h.

74  {
76  }
std::vector< std::string > _picard_self_relaxed_variables
Variables to be relaxed outside of Picard iteration (used as a subapp)
Definition: PicardSolve.h:125

◆ solve()

bool PicardSolve::solve ( )
overridevirtual

Picard solve the FEProblem.

Returns
True if solver is converged.

Implements SolveObject.

Definition at line 114 of file PicardSolve.C.

Referenced by Steady::execute(), and TimeStepper::step().

115 {
116  TIME_SECTION(_picard_timer);
117 
118  Real current_dt = _problem.dt();
119 
124 
125  bool converged = true;
126 
127  // need to back up multi-apps even when not doing Picard iteration for recovering from failed
128  // multiapp solve
131 
132  // Prepare to relax variables as a master
133  std::set<dof_id_type> relaxed_dofs;
134  if (_relax_factor != 1.0)
135  {
136  // Snag all of the local dof indices for all of these variables
137  System & libmesh_nl_system = _nl.system();
138  AllLocalDofIndicesThread aldit(libmesh_nl_system, _relaxed_vars);
139  ConstElemRange & elem_range = *_problem.mesh().getActiveLocalElementRange();
140  Threads::parallel_reduce(elem_range, aldit);
141 
142  relaxed_dofs = aldit._all_dof_indices;
143  }
144 
145  // Prepare to relax variables as a subapp
146  std::set<dof_id_type> self_relaxed_dofs;
148  {
149  // Snag all of the local dof indices for all of these variables
150  System & libmesh_nl_system = _nl.system();
152  ConstElemRange & elem_range = *_problem.mesh().getActiveLocalElementRange();
153  Threads::parallel_reduce(elem_range, aldit);
154 
155  self_relaxed_dofs = aldit._all_dof_indices;
156 
158  {
159  NumericVector<Number> & solution = _nl.solution();
160  NumericVector<Number> & relax_previous = _nl.getVector("self_relax_previous");
161  relax_previous = solution;
162  }
163  }
164 
166  {
167  if (_has_picard_its)
168  {
169  if (_picard_it == 0)
170  {
171  if (_has_picard_norm)
172  {
173  // First Picard iteration - need to save off the initial nonlinear residual
175  _console << COLOR_MAGENTA << "Initial Picard Norm: " << COLOR_DEFAULT;
176  if (_picard_initial_norm == std::numeric_limits<Real>::max())
177  _console << " MAX ";
178  else
179  _console << std::scientific << _picard_initial_norm;
180  _console << COLOR_DEFAULT << "\n\n";
181  }
182  }
183  else
184  {
185  // For every iteration other than the first, we need to restore the state of the MultiApps
188  }
189 
190  _console << COLOR_MAGENTA << "Beginning Picard Iteration " << _picard_it << COLOR_DEFAULT
191  << '\n';
192  }
193 
194  Real begin_norm_old = (_picard_it > 0 ? _picard_timestep_begin_norm[_picard_it - 1]
195  : std::numeric_limits<Real>::max());
196  Real end_norm_old = (_picard_it > 0 ? _picard_timestep_end_norm[_picard_it - 1]
197  : std::numeric_limits<Real>::max());
198  bool relax = (_relax_factor != 1) && (_picard_it > 0);
199  bool solve_converged = solveStep(begin_norm_old,
201  end_norm_old,
203  relax,
204  relaxed_dofs);
205 
206  if (solve_converged)
207  {
208  if (_has_picard_its)
209  {
210  if (_has_picard_norm)
211  {
212  _console << "\n 0 Picard |R| = "
213  << Console::outputNorm(std::numeric_limits<Real>::max(), _picard_initial_norm)
214  << '\n';
215 
216  for (unsigned int i = 0; i <= _picard_it; ++i)
217  {
218  Real max_norm = std::max(_picard_timestep_begin_norm[i], _picard_timestep_end_norm[i]);
219  _console << std::setw(2) << i + 1
220  << " Picard |R| = " << Console::outputNorm(_picard_initial_norm, max_norm)
221  << '\n';
222  }
223 
224  Real max_norm = std::max(_picard_timestep_begin_norm[_picard_it],
226 
227  Real max_relative_drop = max_norm / _picard_initial_norm;
228 
229  if (max_norm < _picard_abs_tol)
230  {
232  break;
233  }
234  if (max_relative_drop < _picard_rel_tol)
235  {
237  break;
238  }
239  }
241  {
243  break;
244  }
245  if (_picard_it + 1 == _picard_max_its)
246  {
247  if (_accept_max_it)
248  {
250  converged = true;
251  }
252  else
253  {
255  converged = false;
256  }
257  break;
258  }
259  }
260  }
261  else
262  {
263  // If the last solve didn't converge then we need to exit this step completely (even in the
264  // case of Picard). So we can retry...
265  converged = false;
266  break;
267  }
268 
269  _problem.dt() =
270  current_dt; // _dt might be smaller than this at this point for multistep methods
271  }
272 
273  if (converged && _picard_self_relaxation_factor != 1.0)
274  {
276  {
277  NumericVector<Number> & solution = _nl.solution();
278  NumericVector<Number> & relax_previous = _nl.getVector("self_relax_previous");
279  Real factor = _picard_self_relaxation_factor;
280  for (const auto & dof : self_relaxed_dofs)
281  solution.set(dof, (relax_previous(dof) * (1.0 - factor)) + (solution(dof) * factor));
282  solution.close();
283  _nl.update();
284  }
286  }
287 
288  if (_has_picard_its)
289  {
290  _console << "Picard converged reason: ";
291  switch (_picard_status)
292  {
294  _console << "CONVERGED_ABS";
295  break;
297  _console << "CONVERGED_RELATIVE";
298  break;
300  _console << "CONVERGED_CUSTOM";
301  break;
303  _console << "REACH_MAX_ITS";
304  break;
306  _console << "DIVERGED_MAX_ITS";
307  break;
309  _console << "DIVERGED_NONLINEAR";
310  break;
312  _console << "DIVERGED_FAILED_MULTIAPP";
313  break;
314  default:
315  // UNSOLVED and CONVERGED_NONLINEAR should not be hit when Picard
316  // iteration is not on here
317  mooseError("Internal error: wrong Picard status!");
318  break;
319  }
320  _console << std::endl;
321  }
322  return converged;
323 }
FEProblemBase & _problem
Reference to FEProblem.
Definition: SolveObject.h:42
Real _picard_self_relaxation_factor
Relaxation factor outside of Picard iteration (used as a subapp)
Definition: PicardSolve.h:123
ConstElemRange * getActiveLocalElementRange()
Return pointers to range objects for various types of ranges (local nodes, boundary elems...
Definition: MooseMesh.C:739
unsigned int _picard_max_its
Maximum Picard iterations.
Definition: PicardSolve.h:104
bool solveStep(Real begin_norm_old, Real &begin_norm, Real end_norm_old, Real &end_norm, bool relax, const std::set< dof_id_type > &relaxed_dofs)
Perform one Picard iteration or a full solve.
Definition: PicardSolve.C:326
virtual Real & time() const
std::vector< std::string > _relaxed_vars
The transferred variables that are going to be relaxed.
Definition: PicardSolve.h:120
const PerfID _picard_timer
Timer for Picard iteration.
Definition: PicardSolve.h:134
std::vector< Real > _picard_timestep_end_norm
Full history of residual norm after evaluation of timestep_end.
Definition: PicardSolve.h:144
unsigned int _picard_it
Definition: PicardSolve.h:138
virtual bool augmentedPicardConvergenceCheck() const
Augmented Picard convergence check that to be called by PicardSolve and can be overridden by derived ...
Definition: Executioner.h:115
bool _accept_max_it
Whether or not to treat reaching maximum number of Picard iteration as converged. ...
Definition: PicardSolve.h:108
const ExecFlagType EXEC_TIMESTEP_END
void mooseError(Args &&... args) const
Definition: MooseObject.h:144
MoosePicardConvergenceReason _picard_status
Status of Picard solve.
Definition: PicardSolve.h:146
virtual void update()
Update the system (doing libMesh magic)
Definition: SystemBase.C:981
std::vector< std::string > _picard_self_relaxed_variables
Variables to be relaxed outside of Picard iteration (used as a subapp)
Definition: PicardSolve.h:125
virtual NumericVector< Number > & solution() override
Grab all the local dof indices for the variables passed in, in the system passed in.
Executioner & _executioner
Executioner used to construct this.
Definition: SolveObject.h:40
bool _has_picard_its
Whether or not we activate Picard iteration.
Definition: PicardSolve.h:106
const ExecFlagType EXEC_TIMESTEP_BEGIN
bool _has_picard_norm
Whether or not to use residual norm to check the Picard convergence.
Definition: PicardSolve.h:110
Real _picard_initial_norm
Initial residual norm.
Definition: PicardSolve.h:140
Real _relax_factor
Relaxation factor for Picard Iteration.
Definition: PicardSolve.h:118
Real _picard_abs_tol
Absolute tolerance on residual norm.
Definition: PicardSolve.h:114
void backupMultiApps(ExecFlagType type)
Backup the MultiApps associated with the ExecFlagType.
virtual System & system() override
Get the reference to the libMesh system.
std::vector< Real > _picard_timestep_begin_norm
Full history of residual norm after evaluation of timestep_begin.
Definition: PicardSolve.h:142
void restoreMultiApps(ExecFlagType type, bool force=false)
Restore the MultiApps associated with the ExecFlagType.
virtual Real computeResidualL2Norm()
Computes the residual using whatever is sitting in the current solution vector then returns the L2 no...
virtual MooseMesh & mesh() override
const ConsoleStream _console
An instance of helper class to write streams to the Console objects.
Real _picard_rel_tol
Relative tolerance on residual norm.
Definition: PicardSolve.h:112
NonlinearSystemBase & _nl
Reference to nonlinear system base for faster access.
Definition: SolveObject.h:50
virtual NumericVector< Number > & getVector(const std::string &name)
Get a raw NumericVector.
Definition: SystemBase.C:735
virtual Real & dt() const
Real _previous_entering_time
Time of previous Picard solve as a subapp.
Definition: PicardSolve.h:155
static std::string outputNorm(const Real &old_norm, const Real &norm)
A helper function for outputting norms in color.
Definition: Console.C:523

◆ solveStep()

bool PicardSolve::solveStep ( Real  begin_norm_old,
Real &  begin_norm,
Real  end_norm_old,
Real &  end_norm,
bool  relax,
const std::set< dof_id_type > &  relaxed_dofs 
)
protected

Perform one Picard iteration or a full solve.

Parameters
begin_norm_oldResidual norm after timestep_begin execution of previous Picard iteration
begin_normResidual norm after timestep_begin execution
end_norm_oldResidual norm after timestep_end execution of previous Picard iteration
end_normResidual norm after timestep_end execution
relaxWhether or not we do relaxation in this iteration
relaxed_dofsDoFs to be relaxed
Returns
True if both nonlinear solve and the execution of multiapps are successful.

Note: this function also set _xfem_repeat_step flag for XFEM. It tracks _xfem_update_count state. FIXME: The proper design will be to let XFEM use Picard iteration to control the execution.

Definition at line 326 of file PicardSolve.C.

Referenced by solve().

332 {
333  bool auto_advance = !(_has_picard_its && _problem.isTransient());
334 
335  if (dynamic_cast<EigenExecutionerBase *>(&_executioner) && _has_picard_its)
336  auto_advance = true;
337 
339 
341  if (!_problem.execMultiApps(EXEC_TIMESTEP_BEGIN, auto_advance))
342  {
344  return false;
345  }
346 
349 
351 
354  {
355  begin_norm = _problem.computeResidualL2Norm();
356 
357  _console << COLOR_MAGENTA << "Picard Norm after TIMESTEP_BEGIN MultiApps: "
358  << Console::outputNorm(begin_norm_old, begin_norm) << '\n';
359  }
360 
361  // Perform output for timestep begin
363 
364  // Update warehouse active objects
366 
367  if (relax)
368  {
369  NumericVector<Number> & solution = _nl.solution();
370  NumericVector<Number> & relax_previous = _nl.getVector("relax_previous");
371 
372  // Save off the current solution
373  relax_previous = solution;
374  }
375 
376  if (_has_picard_its)
377  _console << COLOR_MAGENTA << "\nMaster solve:\n" << COLOR_DEFAULT;
378  if (!_inner_solve->solve())
379  {
381 
382  _console << COLOR_RED << " Solve Did NOT Converge!" << COLOR_DEFAULT << std::endl;
383  // Perform the output of the current, failed time step (this only occurs if desired)
385  return false;
386  }
387  else
389 
390  _console << COLOR_GREEN << ' ' << _solve_message << COLOR_DEFAULT << std::endl;
391 
392  // Relax the "relaxed_variables"
393  if (relax)
394  {
395  NumericVector<Number> & solution = _nl.solution();
396  NumericVector<Number> & relax_previous = _nl.getVector("relax_previous");
397  Real factor = _relax_factor;
398  for (const auto & dof : relaxed_dofs)
399  solution.set(dof, (relax_previous(dof) * (1.0 - factor)) + (solution(dof) * factor));
400  solution.close();
401  _nl.update();
402  }
403 
405  {
406  _console << "XFEM modifying mesh, repeating step" << std::endl;
407  _xfem_repeat_step = true;
409  }
410  else
411  {
412  if (_problem.haveXFEM())
413  {
414  _xfem_repeat_step = false;
415  _xfem_update_count = 0;
416  _console << "XFEM not modifying mesh, continuing" << std::endl;
417  }
418 
421 
423  if (!_problem.execMultiApps(EXEC_TIMESTEP_END, auto_advance))
424  {
426  return false;
427  }
428  }
429 
431 
434  {
435  end_norm = _problem.computeResidualL2Norm();
436 
437  _console << COLOR_MAGENTA << "Picard Norm after TIMESTEP_END MultiApps: "
438  << Console::outputNorm(end_norm_old, end_norm) << '\n';
439  }
440 
441  return true;
442 }
const std::string _solve_message
Definition: PicardSolve.h:157
FEProblemBase & _problem
Reference to FEProblem.
Definition: SolveObject.h:42
const ExecFlagType EXEC_FAILED
unsigned int _max_xfem_update
Maximum number of xfem updates per step.
Definition: PicardSolve.h:128
virtual void preSolve()
Override this for actions that should take place before execution, called by PicardSolve.
Definition: Executioner.h:73
virtual void updateActiveObjects()
Update the active objects in the warehouses.
bool _xfem_repeat_step
Whether step should be repeated due to xfem modifying the mesh.
Definition: PicardSolve.h:152
bool _update_xfem_at_timestep_begin
Controls whether xfem should update the mesh at the beginning of the time step.
Definition: PicardSolve.h:130
virtual void onTimestepEnd() override
bool haveXFEM()
Find out whether the current analysis is using XFEM.
const ExecFlagType EXEC_TIMESTEP_END
MoosePicardConvergenceReason _picard_status
Status of Picard solve.
Definition: PicardSolve.h:146
virtual void update()
Update the system (doing libMesh magic)
Definition: SystemBase.C:981
virtual NumericVector< Number > & solution() override
virtual void execute(const ExecFlagType &exec_type)
Convenience function for performing execution of MOOSE systems.
Executioner & _executioner
Executioner used to construct this.
Definition: SolveObject.h:40
bool _has_picard_its
Whether or not we activate Picard iteration.
Definition: PicardSolve.h:106
const ExecFlagType EXEC_TIMESTEP_BEGIN
bool _has_picard_norm
Whether or not to use residual norm to check the Picard convergence.
Definition: PicardSolve.h:110
SolveObject * _inner_solve
SolveObject wrapped by this solve object.
Definition: SolveObject.h:54
virtual bool updateMeshXFEM()
Update the mesh due to changing XFEM cuts.
Real _relax_factor
Relaxation factor for Picard Iteration.
Definition: PicardSolve.h:118
unsigned int _xfem_update_count
Counter for number of xfem updates that have been performed in the current step.
Definition: PicardSolve.h:150
virtual void postSolve()
Override this for actions that should take place after execution, called by PicardSolve.
Definition: Executioner.h:78
virtual Real computeResidualL2Norm()
Computes the residual using whatever is sitting in the current solution vector then returns the L2 no...
const ConsoleStream _console
An instance of helper class to write streams to the Console objects.
bool execMultiApps(ExecFlagType type, bool auto_advance=true)
Execute the MultiApps associated with the ExecFlagType.
virtual bool isTransient() const override
bool hasMultiApps() const
Returns whether or not the current simulation has any multiapps.
bool _picard_force_norms
Whether or not we force evaluation of residual norms even without multiapps.
Definition: PicardSolve.h:116
NonlinearSystemBase & _nl
Reference to nonlinear system base for faster access.
Definition: SolveObject.h:50
virtual bool solve()=0
Solve routine provided by this object.
virtual NumericVector< Number > & getVector(const std::string &name)
Get a raw NumericVector.
Definition: SystemBase.C:735
virtual void outputStep(ExecFlagType type)
Output the current step.
void execTransfers(ExecFlagType type)
Execute the Transfers associated with the ExecFlagType.
static std::string outputNorm(const Real &old_norm, const Real &norm)
A helper function for outputting norms in color.
Definition: Console.C:523

◆ type()

const std::string& MooseObject::type ( ) const
inlineinherited

Get the type of this object.

Returns
the name of the type of this object

Definition at line 50 of file MooseObject.h.

Referenced by DumpObjectsProblem::addAuxKernel(), DumpObjectsProblem::addAuxScalarKernel(), FEProblemBase::addAuxScalarVariable(), DumpObjectsProblem::addAuxVariable(), DisplacedProblem::addAuxVariable(), FEProblemBase::addAuxVariable(), DumpObjectsProblem::addBoundaryCondition(), DumpObjectsProblem::addConstraint(), DumpObjectsProblem::addDGKernel(), DumpObjectsProblem::addDiracKernel(), FEProblemBase::addDistribution(), DumpObjectsProblem::addFunction(), FEProblemBase::addFunction(), DumpObjectsProblem::addInitialCondition(), DumpObjectsProblem::addInterfaceKernel(), DumpObjectsProblem::addKernel(), DumpObjectsProblem::addMaterial(), DumpObjectsProblem::addNodalKernel(), FEProblemBase::addPredictor(), FEProblemBase::addSampler(), DumpObjectsProblem::addScalarKernel(), FEProblemBase::addScalarVariable(), PhysicsBasedPreconditioner::addSystem(), FEProblemBase::addTimeIntegrator(), DumpObjectsProblem::addVariable(), DisplacedProblem::addVariable(), FEProblemBase::addVariable(), FEProblemBase::advanceMultiApps(), FEProblemBase::backupMultiApps(), MooseMesh::buildRefinementAndCoarseningMaps(), FEProblemBase::computeAuxiliaryKernels(), DGKernel::computeElemNeighJacobian(), ElemElemConstraint::computeElemNeighJacobian(), InterfaceKernel::computeElemNeighJacobian(), DGKernel::computeElemNeighResidual(), ElemElemConstraint::computeElemNeighResidual(), InterfaceKernel::computeElemNeighResidual(), FEProblemBase::computeMultiAppsDT(), DGKernel::computeOffDiagElemNeighJacobian(), InterfaceKernel::computeOffDiagElemNeighJacobian(), DGConvection::computeQpJacobian(), CoupledTiedValueConstraint::computeQpJacobian(), TiedValueConstraint::computeQpJacobian(), DGDiffusion::computeQpJacobian(), LinearNodalConstraint::computeQpJacobian(), EqualValueBoundaryConstraint::computeQpJacobian(), EqualValueEmbeddedConstraint::computeQpJacobian(), CoupledTiedValueConstraint::computeQpOffDiagJacobian(), EqualValueEmbeddedConstraint::computeQpOffDiagJacobian(), DGConvection::computeQpResidual(), CoupledTiedValueConstraint::computeQpResidual(), TiedValueConstraint::computeQpResidual(), LinearNodalConstraint::computeQpResidual(), DGDiffusion::computeQpResidual(), EqualValueBoundaryConstraint::computeQpResidual(), EqualValueEmbeddedConstraint::computeQpResidual(), FEProblemBase::computeUserObjects(), DisplacedProblem::createQRules(), FEProblemBase::createQRules(), DumpObjectsProblem::deduceNecessaryParameters(), DumpObjectsProblem::dumpObjectHelper(), FEProblemBase::duplicateVariableCheck(), FEProblemBase::execMultiApps(), FEProblemBase::execMultiAppTransfers(), FEProblemBase::execTransfers(), FEProblemBase::finishMultiAppStep(), ElementSubdomainIDGenerator::generate(), ElementGenerator::getElemType(), FEProblemBase::getMaterial(), FEProblemBase::getMaterialData(), FEProblemBase::getTransfers(), FEProblemBase::hasMultiApps(), AdvancedOutput::hasOutput(), FEProblemBase::incrementMultiAppTStep(), AdvancedOutput::initAvailableLists(), SolutionUserObject::initialSetup(), AdvancedOutput::initShowHideLists(), RelationshipManager::isType(), AssignElementSubdomainID::modify(), ControlOutput::output(), Gnuplot::output(), CSV::output(), Exodus::output(), Console::output(), Nemesis::output(), AdvancedOutput::output(), OversampleOutput::outputStep(), Output::outputStep(), FEProblemBase::outputStep(), FEProblemBase::restoreMultiApps(), FEProblemBase::setCoupling(), PerfGraphOutput::shouldOutput(), FileOutput::shouldOutput(), Output::shouldOutput(), AdvancedOutput::shouldOutput(), DisplacedProblem::updateGeomSearch(), FEProblemBase::updateGeomSearch(), and AdvancedOutput::wantOutput().

50 { return _type; }
const std::string & _type
The type of this object (the Class name)
Definition: MooseObject.h:177

◆ XFEMRepeatStep()

bool PicardSolve::XFEMRepeatStep ( ) const
inline

This function checks the _xfem_repeat_step flag set by solve.

Definition at line 61 of file PicardSolve.h.

Referenced by Transient::takeStep().

61 { return _xfem_repeat_step; }
bool _xfem_repeat_step
Whether step should be repeated due to xfem modifying the mesh.
Definition: PicardSolve.h:152

Member Data Documentation

◆ _accept_max_it

bool PicardSolve::_accept_max_it
protected

Whether or not to treat reaching maximum number of Picard iteration as converged.

Definition at line 108 of file PicardSolve.h.

Referenced by solve().

◆ _app

MooseApp& MooseObject::_app
protectedinherited

The MooseApp this object is associated with.

Definition at line 174 of file MooseObject.h.

Referenced by GridPartitioner::_do_partition(), AB2PredictorCorrector::AB2PredictorCorrector(), Executioner::addAttributeReporter(), FEProblemBase::addMaterialHelper(), FEProblemBase::addMultiApp(), FEProblemBase::addOutput(), FEProblemBase::allowOutput(), AStableDirk4::AStableDirk4(), FileMesh::buildMesh(), MeshGeneratorMesh::buildMesh(), MooseMesh::buildMeshBaseObject(), FEProblemBase::checkNonlinearConvergence(), OversampleOutput::cloneMesh(), FEProblemBase::computeJacobianTags(), FEProblemBase::computeResidualTags(), Console::Console(), TimeStepper::constrainStep(), MultiApp::createApp(), DumpObjectsProblem::dumpObjectHelper(), DumpObjectsProblem::dumpVariableHelper(), EigenExecutionerBase::EigenExecutionerBase(), EigenKernel::EigenKernel(), NonlinearEigen::execute(), InversePowerMethod::execute(), Transient::execute(), Steady::execute(), FileOutput::FileOutput(), FEProblemBase::forceOutput(), MeshGenerator::getMesh(), MeshGenerator::getMeshByName(), MooseObject::getMooseApp(), GhostingUserObject::GhostingUserObject(), InversePowerMethod::init(), NonlinearEigen::init(), Transient::init(), Steady::init(), MooseMesh::init(), NumPicardIterations::initialize(), TimePeriod::initialSetup(), Console::initialSetup(), MultiApp::initialSetup(), FEProblemBase::initialSetup(), AdvancedOutput::initOutputList(), FEProblemBase::initPetscOutput(), AdvancedOutput::initPostprocessorOrVectorPostprocessorLists(), ElementSideNeighborLayers::internalInit(), InversePowerMethod::InversePowerMethod(), MooseObject::mooseError(), NonlinearEigen::NonlinearEigen(), EigenExecutionerBase::normalizeSolution(), PerfGraphOutput::output(), Tecplot::output(), Exodus::output(), Nemesis::output(), ControlOutput::outputActiveObjects(), ControlOutput::outputChangedControls(), ControlOutput::outputControls(), Exodus::outputEmptyTimestep(), Console::outputInput(), Exodus::outputInput(), Exodus::outputNodalVariables(), OversampleOutput::outputStep(), Output::outputStep(), FEProblemBase::outputStep(), Console::outputSystemInformation(), MultiApp::parentOutputPositionChanged(), PerformanceData::PerformanceData(), PetscOutput::petscLinearOutput(), PetscOutput::petscNonlinearOutput(), Transient::preExecute(), FEProblemBase::projectSolution(), FEProblemBase::setRestartFile(), TransientMultiApp::setupApp(), TimeSequenceStepperBase::setupSequence(), Transient::setupTimeIntegrator(), TransientMultiApp::solveStep(), FEProblemBase::subdomainSetup(), FEProblemBase::theWarehouse(), TimeExtremeValue::TimeExtremeValue(), TimePeriod::TimePeriod(), FEProblemBase::timestepSetup(), Transient::Transient(), and Console::write().

◆ _aux

AuxiliarySystem& SolveObject::_aux
protectedinherited

Reference to auxiliary system for faster access.

Definition at line 52 of file SolveObject.h.

◆ _console

const ConsoleStream ConsoleStreamInterface::_console
inherited

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

Definition at line 32 of file ConsoleStreamInterface.h.

Referenced by IterationAdaptiveDT::acceptStep(), SetupRecoverFileBaseAction::act(), Adaptivity::adaptMesh(), FEProblemBase::adaptMesh(), SimplePredictor::apply(), MultiApp::backup(), FEProblemBase::backupMultiApps(), FEProblemBase::checkProblemIntegrity(), IterationAdaptiveDT::computeAdaptiveDT(), Transient::computeConstrainedDT(), NonlinearSystemBase::computeDamping(), IterationAdaptiveDT::computeDT(), IterationAdaptiveDT::computeFailedDT(), IterationAdaptiveDT::computeInterpolationDT(), FEProblemBase::computeResidualTags(), IterationAdaptiveDT::constrainStep(), TimeStepper::constrainStep(), MultiApp::createApp(), FEProblemBase::execMultiApps(), FEProblemBase::execMultiAppTransfers(), MultiAppPostprocessorTransfer::execute(), MultiAppPostprocessorInterpolationTransfer::execute(), MultiAppVariableValueSamplePostprocessorTransfer::execute(), MultiAppPostprocessorToAuxScalarTransfer::execute(), MultiAppScalarToAuxScalarTransfer::execute(), MultiAppVariableValueSampleTransfer::execute(), MultiAppInterpolationTransfer::execute(), MultiAppMeshFunctionTransfer::execute(), MultiAppUserObjectTransfer::execute(), MultiAppProjectionTransfer::execute(), MultiAppVectorPostprocessorTransfer::execute(), MultiAppNearestNodeTransfer::execute(), MultiAppCopyTransfer::execute(), Steady::execute(), MultiAppDTKUserObjectTransfer::execute(), ActionWarehouse::executeActionsWithAction(), ActionWarehouse::executeAllActions(), FEProblemBase::FEProblemBase(), ElementQualityChecker::finalize(), FEProblemBase::finishMultiAppStep(), 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(), PerfGraphOutput::output(), DOFMapOutput::output(), VariableResidualNormsDebugOutput::output(), Console::output(), ControlOutput::outputActiveObjects(), ControlOutput::outputChangedControls(), ControlOutput::outputControls(), Console::outputInput(), Console::outputPostprocessors(), Console::outputScalarVariables(), Console::outputSystemInformation(), FEProblemBase::possiblyRebuildGeomSearchPatches(), EigenExecutionerBase::postExecute(), AB2PredictorCorrector::postSolve(), ActionWarehouse::printActionDependencySets(), EigenExecutionerBase::printEigenvalue(), MaterialPropertyDebugOutput::printMaterialMap(), SolutionTimeAdaptiveDT::rejectStep(), DT2::rejectStep(), MultiApp::restore(), FEProblemBase::restoreMultiApps(), SimplePredictor::shouldApply(), NonlinearSystem::solve(), solve(), LStableDirk2::solve(), LStableDirk3::solve(), ImplicitMidpoint::solve(), ExplicitTVDRK2::solve(), AStableDirk4::solve(), LStableDirk4::solve(), ExplicitRK2::solve(), TransientMultiApp::solveStep(), solveStep(), DT2::step(), AB2PredictorCorrector::step(), NonlinearEigen::takeStep(), Console::writeTimestepInformation(), Console::writeVariableNorms(), and FEProblemBase::~FEProblemBase().

◆ _displaced_mesh

MooseMesh* SolveObject::_displaced_mesh
protectedinherited

Displaced mesh.

Definition at line 48 of file SolveObject.h.

◆ _displaced_problem

std::shared_ptr<DisplacedProblem> SolveObject::_displaced_problem
protectedinherited

Displaced problem.

Definition at line 44 of file SolveObject.h.

◆ _enabled

const bool& MooseObject::_enabled
protectedinherited

Reference to the "enable" InputParaemters, used by Controls for toggling on/off MooseObjects.

Definition at line 183 of file MooseObject.h.

Referenced by MooseObject::enabled().

◆ _executioner

Executioner& SolveObject::_executioner
protectedinherited

Executioner used to construct this.

Definition at line 40 of file SolveObject.h.

Referenced by solve(), and solveStep().

◆ _has_picard_its

bool PicardSolve::_has_picard_its
protected

Whether or not we activate Picard iteration.

Definition at line 106 of file PicardSolve.h.

Referenced by hasPicardIteration(), solve(), and solveStep().

◆ _has_picard_norm

bool PicardSolve::_has_picard_norm
protected

Whether or not to use residual norm to check the Picard convergence.

Definition at line 110 of file PicardSolve.h.

Referenced by solve(), and solveStep().

◆ _inner_solve

SolveObject* SolveObject::_inner_solve
protectedinherited

SolveObject wrapped by this solve object.

Definition at line 54 of file SolveObject.h.

Referenced by SolveObject::setInnerSolve(), and solveStep().

◆ _max_xfem_update

unsigned int PicardSolve::_max_xfem_update
protected

Maximum number of xfem updates per step.

Definition at line 128 of file PicardSolve.h.

Referenced by solveStep().

◆ _mesh

MooseMesh& SolveObject::_mesh
protectedinherited

Mesh.

Definition at line 46 of file SolveObject.h.

◆ _name

const std::string& MooseObject::_name
protectedinherited

◆ _nl

NonlinearSystemBase& SolveObject::_nl
protectedinherited

Reference to nonlinear system base for faster access.

Definition at line 50 of file SolveObject.h.

Referenced by FEProblemSolve::FEProblemSolve(), solve(), and solveStep().

◆ _pars

const InputParameters& MooseObject::_pars
protectedinherited

◆ _perf_graph

PerfGraph& PerfGraphInterface::_perf_graph
protectedinherited

The performance graph to add to.

Definition at line 66 of file PerfGraphInterface.h.

Referenced by PerfGraphData::getValue(), and PerfGraphInterface::registerTimedSection().

◆ _pg_params

const InputParameters* PerfGraphInterface::_pg_params
protectedinherited

Params.

Definition at line 63 of file PerfGraphInterface.h.

◆ _picard_abs_tol

Real PicardSolve::_picard_abs_tol
protected

Absolute tolerance on residual norm.

Definition at line 114 of file PicardSolve.h.

Referenced by solve().

◆ _picard_force_norms

bool PicardSolve::_picard_force_norms
protected

Whether or not we force evaluation of residual norms even without multiapps.

Definition at line 116 of file PicardSolve.h.

Referenced by solveStep().

◆ _picard_initial_norm

Real PicardSolve::_picard_initial_norm
private

Initial residual norm.

Definition at line 140 of file PicardSolve.h.

Referenced by solve().

◆ _picard_it

unsigned int PicardSolve::_picard_it
private

Variables used by the Picard iteration Picard iteration counter

Definition at line 138 of file PicardSolve.h.

Referenced by numPicardIts(), and solve().

◆ _picard_max_its

unsigned int PicardSolve::_picard_max_its
protected

Maximum Picard iterations.

Definition at line 104 of file PicardSolve.h.

Referenced by solve().

◆ _picard_rel_tol

Real PicardSolve::_picard_rel_tol
protected

Relative tolerance on residual norm.

Definition at line 112 of file PicardSolve.h.

Referenced by solve().

◆ _picard_self_relaxation_factor

Real PicardSolve::_picard_self_relaxation_factor
protected

Relaxation factor outside of Picard iteration (used as a subapp)

Definition at line 123 of file PicardSolve.h.

Referenced by setMultiAppRelaxationFactor(), and solve().

◆ _picard_self_relaxed_variables

std::vector<std::string> PicardSolve::_picard_self_relaxed_variables
protected

Variables to be relaxed outside of Picard iteration (used as a subapp)

Definition at line 125 of file PicardSolve.h.

Referenced by setMultiAppRelaxationVariables(), and solve().

◆ _picard_status

MoosePicardConvergenceReason PicardSolve::_picard_status
private

Status of Picard solve.

Definition at line 146 of file PicardSolve.h.

Referenced by checkConvergence(), clearPicardStatus(), solve(), and solveStep().

◆ _picard_timer

const PerfID PicardSolve::_picard_timer
private

Timer for Picard iteration.

Definition at line 134 of file PicardSolve.h.

Referenced by solve().

◆ _picard_timestep_begin_norm

std::vector<Real> PicardSolve::_picard_timestep_begin_norm
private

Full history of residual norm after evaluation of timestep_begin.

Definition at line 142 of file PicardSolve.h.

Referenced by solve().

◆ _picard_timestep_end_norm

std::vector<Real> PicardSolve::_picard_timestep_end_norm
private

Full history of residual norm after evaluation of timestep_end.

Definition at line 144 of file PicardSolve.h.

Referenced by solve().

◆ _prefix

std::string PerfGraphInterface::_prefix
protectedinherited

A prefix to use for all sections.

Definition at line 69 of file PerfGraphInterface.h.

Referenced by PerfGraphInterface::registerTimedSection().

◆ _previous_entering_time

Real PicardSolve::_previous_entering_time
private

Time of previous Picard solve as a subapp.

Definition at line 155 of file PicardSolve.h.

Referenced by solve().

◆ _problem

FEProblemBase& SolveObject::_problem
protectedinherited

Reference to FEProblem.

Definition at line 42 of file SolveObject.h.

Referenced by FEProblemSolve::FEProblemSolve(), PicardSolve(), FEProblemSolve::solve(), solve(), and solveStep().

◆ _relax_factor

Real PicardSolve::_relax_factor
protected

Relaxation factor for Picard Iteration.

Definition at line 118 of file PicardSolve.h.

Referenced by PicardSolve(), solve(), and solveStep().

◆ _relaxed_vars

std::vector<std::string> PicardSolve::_relaxed_vars
protected

The transferred variables that are going to be relaxed.

Definition at line 120 of file PicardSolve.h.

Referenced by solve().

◆ _solve_message

const std::string PicardSolve::_solve_message
private

Definition at line 157 of file PicardSolve.h.

Referenced by solveStep().

◆ _type

const std::string& MooseObject::_type
protectedinherited

The type of this object (the Class name)

Definition at line 177 of file MooseObject.h.

Referenced by FEProblemBase::init(), and MooseObject::type().

◆ _update_xfem_at_timestep_begin

bool PicardSolve::_update_xfem_at_timestep_begin
protected

Controls whether xfem should update the mesh at the beginning of the time step.

Definition at line 130 of file PicardSolve.h.

Referenced by solveStep().

◆ _xfem_repeat_step

bool PicardSolve::_xfem_repeat_step
private

Whether step should be repeated due to xfem modifying the mesh.

Definition at line 152 of file PicardSolve.h.

Referenced by solveStep(), and XFEMRepeatStep().

◆ _xfem_update_count

unsigned int PicardSolve::_xfem_update_count
private

Counter for number of xfem updates that have been performed in the current step.

Definition at line 150 of file PicardSolve.h.

Referenced by solveStep().


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