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

#include <DisplacedSystem.h>

Inheritance diagram for DisplacedSystem:
[legend]

Public Member Functions

 DisplacedSystem (DisplacedSystem &&)=delete
 
DisplacedSystemoperator= (DisplacedSystem &&)=delete
 
 DisplacedSystem (DisplacedProblem &problem, SystemBase &undisplaced_system, const std::string &name, Moose::VarKindType var_kind)
 
virtual ~DisplacedSystem ()
 
virtual NumericVector< Number > & getVector (TagID tag_id) override
 Get a raw NumericVector by tag. More...
 
virtual const NumericVector< Number > & getVector (TagID tag_id) const override
 
virtual TagID residualVectorTag () const override
 
virtual TagID systemMatrixTag () const override
 Return the Matrix Tag ID for System. More...
 
virtual TagID timeVectorTag () const override
 Ideally, we should not need this API. More...
 
virtual TagID nonTimeVectorTag () const override
 
virtual std::set< TagIDdefaultVectorTags () const override
 Get the default vector tags associated with this system. More...
 
virtual std::set< TagIDdefaultMatrixTags () const override
 Get the default matrix tags associted with this system. More...
 
virtual void associateVectorToTag (NumericVector< Number > &vec, TagID tag) override
 Associate a vector for a given tag. More...
 
virtual void disassociateVectorFromTag (NumericVector< Number > &vec, TagID tag) override
 Disassociate a given vector from a given tag. More...
 
virtual void disassociateVectorFromTag (TagID tag) override
 Disassociate any vector that is associated with a given tag. More...
 
virtual void disassociateDefaultVectorTags () override
 Disassociate the vectors associated with the default vector tags of this system. More...
 
virtual void associateMatrixToTag (SparseMatrix< Number > &matrix, TagID tag) override
 Associate a matrix to a tag. More...
 
virtual void disassociateMatrixFromTag (SparseMatrix< Number > &matrix, TagID tag) override
 Disassociate a matrix from a tag. More...
 
virtual void disassociateMatrixFromTag (TagID tag) override
 Disassociate any matrix that is associated with a given tag. More...
 
virtual void disassociateDefaultMatrixTags () override
 Disassociate the matrices associated with the default matrix tags of this system. More...
 
virtual NumericVector< Number > & getVector (const std::string &name) override
 Get a raw NumericVector by name. More...
 
virtual const NumericVector< Number > & getVector (const std::string &name) const override
 
virtual NumericVector< Number > & serializedSolution () override
 Returns a reference to a serialized version of the solution vector for this subproblem. More...
 
const NumericVector< Number > *const & currentSolution () const override
 The solution vector that is currently being operated on. More...
 
NumericVector< Number > * solutionPreviousNewton () override
 
const NumericVector< Number > * solutionPreviousNewton () const override
 
NumericVector< Number > * solutionUDot () override
 
NumericVector< Number > * solutionUDotDot () override
 
NumericVector< Number > * solutionUDotOld () override
 
NumericVector< Number > * solutionUDotDotOld () override
 
const NumericVector< Number > * solutionUDot () const override
 
const NumericVector< Number > * solutionUDotDot () const override
 
const NumericVector< Number > * solutionUDotOld () const override
 
const NumericVector< Number > * solutionUDotDotOld () const override
 
virtual NumberduDotDu () override
 
virtual NumberduDotDotDu () override
 
virtual const NumberduDotDu () const override
 
virtual const NumberduDotDotDu () const override
 
virtual NumericVector< Number > & residualCopy () override
 Return the residual copy from the NonlinearSystem. More...
 
virtual NumericVector< Number > & residualGhosted () override
 
virtual void augmentSendList (std::vector< dof_id_type > &send_list) override
 Will modify the send_list to add all of the extra ghosted dofs for this system. More...
 
virtual void augmentSparsity (SparsityPattern::Graph &, std::vector< dof_id_type > &, std::vector< dof_id_type > &) override
 This is an empty function since the displaced system doesn't have a matrix! All sparsity pattern modification will be taken care of by the undisplaced system directly. More...
 
virtual void addVariableToZeroOnResidual (std::string var_name) override
 Adds this variable to the list of variables to be zeroed during each residual evaluation. More...
 
virtual void addVariableToZeroOnJacobian (std::string var_name) override
 Adds this variable to the list of variables to be zeroed during each jacobian evaluation. More...
 
virtual void zeroVariables (std::vector< std::string > &vars_to_be_zeroed) override
 Zero out the solution for the list of variables passed in. More...
 
virtual bool hasVector (TagID tag_id) const override
 Check if the tagged vector exists in the system. More...
 
virtual bool hasMatrix (TagID tag_id) const override
 Check if the tagged matrix exists in the system. More...
 
virtual void initSolutionState () override
 Initializes the solution state. More...
 
virtual NumericVector< Number > & solutionState (const unsigned int state, Moose::SolutionIterationType iteration_type=Moose::SolutionIterationType::Time) override
 Get a state of the solution (0 = current, 1 = old, 2 = older, etc). More...
 
virtual const NumericVector< Number > & solutionState (const unsigned int state, Moose::SolutionIterationType iteration_type=Moose::SolutionIterationType::Time) const override
 Get a state of the solution (0 = current, 1 = old, 2 = older, etc). More...
 
virtual void needSolutionState (const unsigned int state, Moose::SolutionIterationType iteration_type=Moose::SolutionIterationType::Time) override
 Registers that the solution state state is needed. More...
 
virtual bool hasSolutionState (const unsigned int state, Moose::SolutionIterationType iteration_type=Moose::SolutionIterationType::Time) const override
 Whether or not the system has the solution state (0 = current, 1 = old, 2 = older, etc). More...
 
virtual SparseMatrix< Number > & getMatrix (TagID tag) override
 Get a raw SparseMatrix. More...
 
virtual const SparseMatrix< Number > & getMatrix (TagID tag) const override
 Get a raw SparseMatrix. More...
 
virtual TransientExplicitSystemsys ()
 
virtual System & system () override
 Get the reference to the libMesh system. More...
 
virtual const System & system () const override
 
void addTimeIntegrator (std::shared_ptr< TimeIntegrator > ti) override
 
virtual void addTimeIntegrator (const std::string &, const std::string &, InputParameters &)
 
virtual void addTimeIntegrator (std::shared_ptr< TimeIntegrator >)
 
unsigned int number () const
 Gets the number of this system. More...
 
virtual MooseMeshmesh ()
 
virtual const MooseMeshmesh () const
 
virtual SubProblemsubproblem ()
 
virtual const SubProblemsubproblem () const
 
void applyScalingFactors (const std::vector< Real > &inverse_scaling_factors)
 Applies scaling factors to the system's variables. More...
 
bool computingScalingJacobian () const
 Whether we are computing an initial Jacobian for automatic variable scaling. More...
 
bool automaticScaling () const
 Getter for whether we are performing automatic scaling. More...
 
void automaticScaling (bool automatic_scaling)
 Setter for whether we are performing automatic scaling. More...
 
void setVerboseFlag (const bool &verbose)
 Sets the verbose flag. More...
 
virtual DofMap & dofMap ()
 Gets writeable reference to the dof map. More...
 
virtual const DofMap & dofMap () const
 Gets const reference to the dof map. More...
 
virtual void init ()
 Initialize the system. More...
 
virtual void initializeObjects ()
 Called only once, just before the solve begins so objects can do some precalculations. More...
 
virtual void update (bool update_libmesh_system=true)
 Update the system (doing libMesh magic) More...
 
virtual void solve ()
 Solve the system (using libMesh magic) More...
 
virtual void copyOldSolutions ()
 Shifts the solutions backwards in time. More...
 
virtual void restoreSolutions ()
 Restore current solutions (call after your solve failed) More...
 
NumericVector< Number > & solution ()
 
const NumericVector< Number > & solution () const
 
NumericVector< Number > & solutionOld ()
 
const NumericVector< Number > & solutionOld () const
 
NumericVector< Number > & solutionOlder ()
 
const NumericVector< Number > & solutionOlder () const
 
virtual void saveOldSolutions ()
 Save the old and older solutions. More...
 
virtual void restoreOldSolutions ()
 Restore the old and older solutions when the saved solutions present. More...
 
bool hasVector (const std::string &tag_name) const
 Check if the named vector exists in the system. More...
 
virtual void activeAllMatrixTags ()
 Make all exsiting matrices ative. More...
 
virtual void activeMatrixTag (TagID tag)
 Active a matrix for tag. More...
 
virtual bool matrixTagActive (TagID tag) const
 If or not a matrix tag is active. More...
 
virtual void deactiveMatrixTag (TagID tag)
 deactive a matrix for tag More...
 
virtual void deactiveAllMatrixTags ()
 Make matrices inactive. More...
 
void closeTaggedMatrices (const std::set< TagID > &tags)
 Close all matrices associated the tags. More...
 
void flushTaggedMatrices (const std::set< TagID > &tags)
 flushes all matrices associated to tags. More...
 
virtual void addVariable (const std::string &var_type, const std::string &var_name, InputParameters &parameters)
 Canonical method for adding a variable. More...
 
virtual bool isArrayVariable (const std::string &var_name) const
 If a variable is an array variable. More...
 
virtual bool isScalarVariable (unsigned int var_name) const
 
MooseVariableFieldBasegetVariable (THREAD_ID tid, const std::string &var_name) const
 Gets a reference to a variable of with specified name. More...
 
MooseVariableFieldBasegetVariable (THREAD_ID tid, unsigned int var_number) const
 Gets a reference to a variable with specified number. More...
 
template<typename T >
MooseVariableFE< T > & getFieldVariable (THREAD_ID tid, const std::string &var_name)
 Gets a reference to a variable of with specified name. More...
 
template<typename T >
MooseVariableFE< T > & getFieldVariable (THREAD_ID tid, unsigned int var_number)
 Gets a reference to a variable with specified number. More...
 
template<typename T >
MooseVariableField< T > & getActualFieldVariable (THREAD_ID tid, const std::string &var_name)
 Returns a field variable pointer - this includes finite volume variables. More...
 
template<typename T >
MooseVariableField< T > & getActualFieldVariable (THREAD_ID tid, unsigned int var_number)
 Returns a field variable pointer - this includes finite volume variables. More...
 
template<typename T >
MooseVariableFV< T > & getFVVariable (THREAD_ID tid, const std::string &var_name)
 Return a finite volume variable. More...
 
virtual MooseVariableScalargetScalarVariable (THREAD_ID tid, const std::string &var_name) const
 Gets a reference to a scalar variable with specified number. More...
 
virtual MooseVariableScalargetScalarVariable (THREAD_ID tid, unsigned int var_number) const
 Gets a reference to a variable with specified number. More...
 
virtual const std::set< SubdomainID > * getVariableBlocks (unsigned int var_number)
 Get the block where a variable of this system is defined. More...
 
virtual unsigned int nVariables () const
 Get the number of variables in this system. More...
 
unsigned int nFieldVariables () const
 Get the number of field variables in this system. More...
 
unsigned int nFVVariables () const
 Get the number of finite volume variables in this system. More...
 
std::size_t getMaxVarNDofsPerElem () const
 Gets the maximum number of dofs used by any one variable on any one element. More...
 
std::size_t getMaxVarNDofsPerNode () const
 Gets the maximum number of dofs used by any one variable on any one node. More...
 
void assignMaxVarNDofsPerElem (std::size_t max_dofs)
 assign the maximum element dofs More...
 
void assignMaxVarNDofsPerNode (std::size_t max_dofs)
 assign the maximum node dofs More...
 
virtual void zeroVariablesForResidual ()
 Zero out the solution for the variables that were registered as needing to have their solutions zeroed on out on residual evaluation by a call to addVariableToZeroOnResidual() More...
 
virtual void zeroVariablesForJacobian ()
 Zero out the solution for the variables that were registered as needing to have their solutions zeroed on out on Jacobian evaluation by a call to addVariableToZeroOnResidual() More...
 
virtual Order getMinQuadratureOrder ()
 Get minimal quadrature order needed for integrating variables in this system. More...
 
virtual void prepare (THREAD_ID tid)
 Prepare the system for use. More...
 
virtual void prepareFace (THREAD_ID tid, bool resize_data)
 Prepare the system for use on sides. More...
 
virtual void prepareNeighbor (THREAD_ID tid)
 Prepare the system for use. More...
 
virtual void prepareLowerD (THREAD_ID tid)
 Prepare the system for use for lower dimensional elements. More...
 
virtual void reinitElem (const Elem *elem, THREAD_ID tid)
 Reinit an element assembly info. More...
 
virtual void reinitElemFace (const Elem *elem, unsigned int side, BoundaryID bnd_id, THREAD_ID tid)
 Reinit assembly info for a side of an element. More...
 
virtual void reinitNeighborFace (const Elem *elem, unsigned int side, BoundaryID bnd_id, THREAD_ID tid)
 Compute the values of the variables at all the current points. More...
 
virtual void reinitNeighbor (const Elem *elem, THREAD_ID tid)
 Compute the values of the variables at all the current points. More...
 
virtual void reinitLowerD (THREAD_ID tid)
 Compute the values of the variables on the lower dimensional element. More...
 
virtual void reinitNode (const Node *node, THREAD_ID tid)
 Reinit nodal assembly info. More...
 
virtual void reinitNodeFace (const Node *node, BoundaryID bnd_id, THREAD_ID tid)
 Reinit nodal assembly info on a face. More...
 
virtual void reinitNodes (const std::vector< dof_id_type > &nodes, THREAD_ID tid)
 Reinit variables at a set of nodes. More...
 
virtual void reinitNodesNeighbor (const std::vector< dof_id_type > &nodes, THREAD_ID tid)
 Reinit variables at a set of neighbor nodes. More...
 
virtual void reinitScalars (THREAD_ID tid, bool reinit_for_derivative_reordering=false)
 Reinit scalar varaibles. More...
 
virtual void addVariableToCopy (const std::string &dest_name, const std::string &source_name, const std::string &timestep)
 Add info about variable that will be copied. More...
 
const std::vector< MooseVariableFieldBase * > & getVariables (THREAD_ID tid)
 
const std::vector< MooseVariableScalar * > & getScalarVariables (THREAD_ID tid)
 
const std::set< SubdomainID > & getSubdomainsForVar (unsigned int var_number) const
 
const std::set< SubdomainID > & getSubdomainsForVar (const std::string &var_name) const
 Get the block where a variable of this system is defined. More...
 
void removeVector (const std::string &name)
 Remove a vector from the system with the given name. More...
 
void removeVector (TagID tag_id)
 Remove a solution length vector from the system with the specified TagID. More...
 
NumericVector< Number > & addVector (const std::string &vector_name, const bool project, const ParallelType type)
 Adds a solution length vector to the system. More...
 
NumericVector< Number > & addVector (TagID tag, const bool project, const ParallelType type)
 Adds a solution length vector to the system with the specified TagID. More...
 
void closeTaggedVector (const TagID tag)
 Close vector with the given tag. More...
 
void closeTaggedVectors (const std::set< TagID > &tags)
 Close all vectors for given tags. More...
 
void zeroTaggedVector (const TagID tag)
 Zero vector with the given tag. More...
 
void zeroTaggedVectors (const std::set< TagID > &tags)
 Zero all vectors for given tags. More...
 
void setVariableGlobalDoFs (const std::string &var_name)
 set all the global dof indices for a variable More...
 
const std::vector< dof_id_type > & getVariableGlobalDoFs ()
 Get the global dof indices of a variable, this needs to be called after the indices have been set by setVariableGlobalDoFs More...
 
SparseMatrix< Number > & addMatrix (TagID tag)
 Adds a matrix with a given tag. More...
 
void removeMatrix (TagID tag)
 Removes a matrix with a given tag. More...
 
virtual const std::string & name () const
 
const std::vector< VariableName > & getVariableNames () const
 
void getStandardFieldVariableNames (std::vector< VariableName > &std_field_variables) const
 
unsigned int getMaxVariableNumber () const
 Returns the maximum number of all variables on the system. More...
 
virtual void computeVariables (const NumericVector< Number > &)
 
void copyVars (ExodusII_IO &io)
 
virtual void copySolutionsBackwards ()
 Copy current solution into old and older. More...
 
virtual void addTimeIntegrator (const std::string &, const std::string &, InputParameters &)
 
TimeIntegratorgetTimeIntegrator ()
 
const TimeIntegratorgetTimeIntegrator () const
 
std::shared_ptr< TimeIntegratorgetSharedTimeIntegrator ()
 
bool hasVarCopy () const
 Whether or not there are variables to be restarted from an Exodus mesh file. More...
 
void addScalingVector ()
 Add the scaling factor vector to the system. More...
 
bool solutionStatesInitialized () const
 Whether or not the solution states have been initialized via initSolutionState() More...
 
virtual void initialSetup ()
 Setup Functions. More...
 
virtual void timestepSetup ()
 
virtual void customSetup (const ExecFlagType &exec_type)
 
virtual void subdomainSetup ()
 
virtual void residualSetup ()
 
virtual void jacobianSetup ()
 
void clearAllDofIndices ()
 Clear all dof indices from moose variables. More...
 
void setActiveVariableCoupleableVectorTags (const std::set< TagID > &vtags, THREAD_ID tid)
 Set the active vector tags for the variables. More...
 
void setActiveScalarVariableCoupleableVectorTags (const std::set< TagID > &vtags, THREAD_ID tid)
 Set the active vector tags for the scalar variables. More...
 
Moose::VarKindType varKind () const
 
const Parallel::Communicator & comm () const
 
processor_id_type n_processors () const
 
processor_id_type processor_id () const
 
virtual bool hasVariable (const std::string &var_name) const
 Query a system for a variable. More...
 
virtual bool hasScalarVariable (const std::string &var_name) const
 

Public Attributes

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

Protected Member Functions

NumericVector< Number > & solutionInternal () const override
 Internal getter for solution owned by libMesh. More...
 

Protected Attributes

SystemBase_undisplaced_system
 
TransientExplicitSystem_sys
 
SubProblem_subproblem
 
MooseApp_app
 
Factory_factory
 
MooseMesh_mesh
 
std::string _name
 The name of this system. More...
 
std::vector< VariableWarehouse_vars
 Variable warehouses (one for each thread) More...
 
std::map< unsigned int, std::set< SubdomainID > > _var_map
 Map of variables (variable id -> array of subdomains where it lives) More...
 
unsigned int _max_var_number
 Maximum variable number. More...
 
std::vector< std::string > _vars_to_be_zeroed_on_residual
 
std::vector< std::string > _vars_to_be_zeroed_on_jacobian
 
Real _du_dot_du
 
Real _du_dotdot_du
 
std::vector< NumericVector< Number > * > _tagged_vectors
 Tagged vectors (pointer) More...
 
std::vector< SparseMatrix< Number > * > _tagged_matrices
 Tagged matrices (pointer) More...
 
std::vector< bool > _matrix_tag_active_flags
 Active flags for tagged matrices. More...
 
NumericVector< Real > * _saved_old
 
NumericVector< Real > * _saved_older
 
NumericVector< Real > * _saved_dot_old
 
NumericVector< Real > * _saved_dotdot_old
 
Moose::VarKindType _var_kind
 default kind of variables in this system More...
 
std::vector< VarCopyInfo_var_to_copy
 
size_t _max_var_n_dofs_per_elem
 Maximum number of dofs for any one variable on any one element. More...
 
size_t _max_var_n_dofs_per_node
 Maximum number of dofs for any one variable on any one node. More...
 
std::shared_ptr< TimeIntegrator_time_integrator
 Time integrator. More...
 
std::vector< std::vector< MooseVariableFieldBase * > > _numbered_vars
 Map variable number to its pointer. More...
 
bool _automatic_scaling
 Whether to automatically scale the variables. More...
 
bool _verbose
 True if printing out additional information. More...
 
bool _solution_states_initialized
 Whether or not the solution states have been initialized. More...
 
std::vector< dof_id_type_var_all_dof_indices
 Container for the dof indices of a given variable. More...
 
const Parallel::Communicator & _communicator
 

Detailed Description

Definition at line 24 of file DisplacedSystem.h.

Constructor & Destructor Documentation

◆ DisplacedSystem() [1/2]

DisplacedSystem::DisplacedSystem ( DisplacedSystem &&  )
delete

◆ DisplacedSystem() [2/2]

DisplacedSystem::DisplacedSystem ( DisplacedProblem problem,
SystemBase undisplaced_system,
const std::string &  name,
Moose::VarKindType  var_kind 
)

Definition at line 18 of file DisplacedSystem.C.

22  : SystemBase(problem, name, var_kind),
23  _undisplaced_system(undisplaced_system),
24  _sys(problem.es().add_system<TransientExplicitSystem>(name))
25 {
26  if (!problem.defaultGhosting())
27  {
28  auto & dof_map = _sys.get_dof_map();
29  dof_map.remove_algebraic_ghosting_functor(dof_map.default_algebraic_ghosting());
30  dof_map.set_implicit_neighbor_dofs(false);
31  }
32 }
TransientExplicitSystem & _sys
virtual EquationSystems & es() override
virtual const std::string & name() const
Definition: SystemBase.C:1297
SystemBase & _undisplaced_system
TransientSystem< ExplicitSystem > TransientExplicitSystem
SystemBase(SubProblem &subproblem, const std::string &name, Moose::VarKindType var_kind)
Definition: SystemBase.C:51
bool defaultGhosting()
Whether or not the user has requested default ghosting ot be on.
Definition: SubProblem.h:122

◆ ~DisplacedSystem()

DisplacedSystem::~DisplacedSystem ( )
virtual

Definition at line 34 of file DisplacedSystem.C.

34 {}

Member Function Documentation

◆ activeAllMatrixTags()

void SystemBase::activeAllMatrixTags ( )
virtualinherited

Make all exsiting matrices ative.

Definition at line 1103 of file SystemBase.C.

Referenced by NonlinearSystemBase::computeJacobianInternal(), NonlinearSystemBase::computeResidualAndJacobianInternal(), and NonlinearSystemBase::computeResidualTags().

1104 {
1105  auto num_matrix_tags = _subproblem.numMatrixTags();
1106 
1107  _matrix_tag_active_flags.resize(num_matrix_tags);
1108 
1109  for (decltype(num_matrix_tags) tag = 0; tag < num_matrix_tags; tag++)
1110  if (hasMatrix(tag))
1111  _matrix_tag_active_flags[tag] = true;
1112  else
1113  _matrix_tag_active_flags[tag] = false;
1114 }
virtual bool hasMatrix(TagID tag) const
Check if the tagged matrix exists in the system.
Definition: SystemBase.h:328
std::vector< bool > _matrix_tag_active_flags
Active flags for tagged matrices.
Definition: SystemBase.h:951
SubProblem & _subproblem
Definition: SystemBase.h:924
virtual unsigned int numMatrixTags() const
The total number of tags.
Definition: SubProblem.h:210

◆ activeMatrixTag()

void SystemBase::activeMatrixTag ( TagID  tag)
virtualinherited

Active a matrix for tag.

Definition at line 1068 of file SystemBase.C.

1069 {
1070  mooseAssert(_subproblem.matrixTagExists(tag),
1071  "Cannot active Matrix with matrix_tag : " << tag << "that does not exist");
1072 
1073  if (_matrix_tag_active_flags.size() < tag + 1)
1074  _matrix_tag_active_flags.resize(tag + 1);
1075 
1076  _matrix_tag_active_flags[tag] = true;
1077 }
std::vector< bool > _matrix_tag_active_flags
Active flags for tagged matrices.
Definition: SystemBase.h:951
SubProblem & _subproblem
Definition: SystemBase.h:924
virtual bool matrixTagExists(const TagName &tag_name) const
Check to see if a particular Tag exists.
Definition: SubProblem.C:294

◆ addMatrix()

SparseMatrix< Number > & SystemBase::addMatrix ( TagID  tag)
inherited

Adds a matrix with a given tag.

Parameters
tag_nameThe name of the tag

Definition at line 559 of file SystemBase.C.

560 {
561  if (!_subproblem.matrixTagExists(tag))
562  mooseError("Cannot add tagged matrix with TagID ",
563  tag,
564  " in system '",
565  name(),
566  "' because the tag does not exist in the problem");
567 
568  if (hasMatrix(tag))
569  return getMatrix(tag);
570 
571  const auto matrix_name = _subproblem.matrixTagName(tag);
572  SparseMatrix<Number> & mat = system().add_matrix(matrix_name);
573  associateMatrixToTag(mat, tag);
574 
575  return mat;
576 }
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:284
virtual bool hasMatrix(TagID tag) const
Check if the tagged matrix exists in the system.
Definition: SystemBase.h:328
virtual const std::string & name() const
Definition: SystemBase.C:1297
virtual void associateMatrixToTag(SparseMatrix< Number > &matrix, TagID tag)
Associate a matrix to a tag.
Definition: SystemBase.C:1025
SubProblem & _subproblem
Definition: SystemBase.h:924
virtual System & system()=0
Get the reference to the libMesh system.
virtual SparseMatrix< Number > & getMatrix(TagID tag)
Get a raw SparseMatrix.
Definition: SystemBase.C:973
virtual bool matrixTagExists(const TagName &tag_name) const
Check to see if a particular Tag exists.
Definition: SubProblem.C:294
virtual TagName matrixTagName(TagID tag)
Retrieve the name associated with a TagID.
Definition: SubProblem.C:323

◆ addScalingVector()

void SystemBase::addScalingVector ( )
inherited

Add the scaling factor vector to the system.

Definition at line 1474 of file SystemBase.C.

Referenced by MooseVariableBase::initialSetup().

1475 {
1476  addVector("scaling_factors", /*project=*/false, libMesh::ParallelType::GHOSTED);
1478 }
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:597
void hasScalingVector(const unsigned int nl_sys_num)
Tells this problem that the assembly associated with the given nonlinear system number involves a sca...
Definition: SubProblem.C:1115
SubProblem & _subproblem
Definition: SystemBase.h:924
unsigned int number() const
Gets the number of this system.
Definition: SystemBase.C:1125

◆ addTimeIntegrator() [1/4]

virtual void SystemBase::addTimeIntegrator
inline

Definition at line 861 of file SystemBase.h.

864  {
865  }

◆ addTimeIntegrator() [2/4]

virtual void SystemBase::addTimeIntegrator
inline

Definition at line 867 of file SystemBase.h.

867 {}

◆ addTimeIntegrator() [3/4]

void DisplacedSystem::addTimeIntegrator ( std::shared_ptr< TimeIntegrator ti)
overridevirtual

Reimplemented from SystemBase.

Definition at line 55 of file DisplacedSystem.C.

56 {
57  _time_integrator = ti;
58 }
std::shared_ptr< TimeIntegrator > _time_integrator
Time integrator.
Definition: SystemBase.h:973

◆ addTimeIntegrator() [4/4]

virtual void SystemBase::addTimeIntegrator ( const std::string &  ,
const std::string &  ,
InputParameters  
)
inlinevirtualinherited

Reimplemented in NonlinearSystemBase, and AuxiliarySystem.

Definition at line 861 of file SystemBase.h.

864  {
865  }

◆ addVariable()

void SystemBase::addVariable ( const std::string &  var_type,
const std::string &  var_name,
InputParameters parameters 
)
virtualinherited

Canonical method for adding a variable.

Parameters
var_typethe type of the variable, e.g. MooseVariableScalar
var_namethe variable name, e.g. 'u'
paramsthe InputParameters from which to construct the variable

Reimplemented in AuxiliarySystem.

Definition at line 708 of file SystemBase.C.

Referenced by AuxiliarySystem::addVariable().

711 {
713 
714  auto components = parameters.get<unsigned int>("components");
715 
716  // Convert the std::vector parameter provided by the user into a std::set for use by libMesh's
717  // System::add_variable method
718  std::set<SubdomainID> blocks;
719  const auto & block_param = parameters.get<std::vector<SubdomainName>>("block");
720  for (const auto & subdomain_name : block_param)
721  {
722  SubdomainID blk_id = _mesh.getSubdomainID(subdomain_name);
723  blocks.insert(blk_id);
724  }
725 
726  auto fe_type = FEType(Utility::string_to_enum<Order>(parameters.get<MooseEnum>("order")),
727  Utility::string_to_enum<FEFamily>(parameters.get<MooseEnum>("family")));
728 
729  unsigned int var_num;
730 
731  if (var_type == "ArrayMooseVariable")
732  {
733  if (fe_type.family == NEDELEC_ONE || fe_type.family == LAGRANGE_VEC ||
734  fe_type.family == MONOMIAL_VEC || fe_type.family == RAVIART_THOMAS)
735  mooseError("Vector family type cannot be used in an array variable");
736 
737  // Build up the variable names
738  std::vector<std::string> var_names;
739  for (unsigned int i = 0; i < components; i++)
740  var_names.push_back(SubProblem::arrayVariableComponent(name, i));
741 
742  // The number returned by libMesh is the _last_ variable number... we want to hold onto the
743  // _first_
744  var_num = system().add_variables(var_names, fe_type, &blocks) - (components - 1);
745 
746  // Set as array variable
747  if (parameters.isParamSetByUser("array") && !parameters.get<bool>("array"))
748  mooseError("Variable '",
749  name,
750  "' is an array variable ('components' > 1) but 'array' is set to false.");
751  parameters.set<bool>("array") = true;
752  }
753  else
754  var_num = system().add_variable(name, fe_type, &blocks);
755 
756  parameters.set<unsigned int>("_var_num") = var_num;
757  parameters.set<SystemBase *>("_system_base") = this;
758 
759  for (THREAD_ID tid = 0; tid < libMesh::n_threads(); tid++)
760  {
761  parameters.set<THREAD_ID>("tid") = tid;
762  std::shared_ptr<MooseVariableBase> var =
763  _factory.create<MooseVariableBase>(var_type, name, parameters, tid);
764 
765  _vars[tid].add(name, var);
766 
767  if (auto fe_var = dynamic_cast<MooseVariableFieldBase *>(var.get()))
768  {
769  auto required_size = var_num + components;
770  if (required_size > _numbered_vars[tid].size())
771  _numbered_vars[tid].resize(required_size);
772  for (MooseIndex(components) component = 0; component < components; ++component)
773  _numbered_vars[tid][var_num + component] = fe_var;
774 
775  if (auto * const functor = dynamic_cast<Moose::FunctorBase<ADReal> *>(fe_var))
776  _subproblem.addFunctor(name, *functor, tid);
777  else if (auto * const functor = dynamic_cast<Moose::FunctorBase<ADRealVectorValue> *>(fe_var))
778  _subproblem.addFunctor(name, *functor, tid);
779  else if (auto * const functor = dynamic_cast<Moose::FunctorBase<RealEigenVector> *>(fe_var))
780  _subproblem.addFunctor(name, *functor, tid);
781  else
782  mooseError("This should be a functor");
783  }
784 
785  if (var->blockRestricted())
786  for (const SubdomainID & id : var->blockIDs())
787  for (MooseIndex(components) component = 0; component < components; ++component)
788  _var_map[var_num + component].insert(id);
789  else
790  for (MooseIndex(components) component = 0; component < components; ++component)
791  _var_map[var_num + component] = std::set<SubdomainID>();
792  }
793 
794  // getMaxVariableNumber is an API method used in Rattlesnake
795  if (var_num > _max_var_number)
796  _max_var_number = var_num;
797 }
std::vector< std::vector< MooseVariableFieldBase * > > _numbered_vars
Map variable number to its pointer.
Definition: SystemBase.h:976
unsigned int n_threads()
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:284
std::vector< std::pair< R1, R2 > > get(const std::string &param1, const std::string &param2) const
Combine two vector parameters into a single vector of pairs.
T & set(const std::string &name, bool quiet_mode=false)
Returns a writable reference to the named parameters.
std::shared_ptr< MooseObject > create(const std::string &obj_name, const std::string &name, const InputParameters &parameters, THREAD_ID tid=0, bool print_deprecated=true)
Definition: Factory.C:110
void addFunctor(const std::string &name, const Moose::FunctorBase< T > &functor, const THREAD_ID tid)
add a functor to the problem functor container
Definition: SubProblem.h:1289
Factory & _factory
Definition: SystemBase.h:927
Base class for a system (of equations)
Definition: SystemBase.h:84
virtual const std::string & name() const
Definition: SystemBase.C:1297
SubProblem & _subproblem
Definition: SystemBase.h:924
This is a "smart" enum class intended to replace many of the shortcomings in the C++ enum type It sho...
Definition: MooseEnum.h:31
subdomain_id_type SubdomainID
virtual System & system()=0
Get the reference to the libMesh system.
std::map< unsigned int, std::set< SubdomainID > > _var_map
Map of variables (variable id -> array of subdomains where it lives)
Definition: SystemBase.h:936
bool isParamSetByUser(const std::string &name) const
Method returns true if the parameter was by the user.
static std::string arrayVariableComponent(const std::string &var_name, unsigned int i)
Returns the variable name of a component of an array variable.
Definition: SubProblem.h:261
std::vector< VariableWarehouse > _vars
Variable warehouses (one for each thread)
Definition: SystemBase.h:934
MooseMesh & _mesh
Definition: SystemBase.h:929
unsigned int _max_var_number
Maximum variable number.
Definition: SystemBase.h:938
unsigned int THREAD_ID
Definition: MooseTypes.h:198
SubdomainID getSubdomainID(const SubdomainName &subdomain_name) const
Get the associated subdomain ID for the subdomain name.
Definition: MooseMesh.C:1513

◆ addVariableToCopy()

void SystemBase::addVariableToCopy ( const std::string &  dest_name,
const std::string &  source_name,
const std::string &  timestep 
)
virtualinherited

Add info about variable that will be copied.

Parameters
dest_nameName of the nodal variable being used for copying into (name is from the exodusII file)
source_nameName of the nodal variable being used for copying from (name is from the exodusII file)
timestepTimestep in the file being used

Definition at line 1143 of file SystemBase.C.

Referenced by CopyNodalVarsAction::act(), and PhysicsBase::copyVariablesFromMesh().

1146 {
1147  _var_to_copy.push_back(VarCopyInfo(dest_name, source_name, timestep));
1148 }
std::vector< VarCopyInfo > _var_to_copy
Definition: SystemBase.h:964
Information about variables that will be copied.
Definition: SystemBase.h:66

◆ addVariableToZeroOnJacobian()

virtual void DisplacedSystem::addVariableToZeroOnJacobian ( std::string  var_name)
inlineoverridevirtual

Adds this variable to the list of variables to be zeroed during each jacobian evaluation.

Parameters
var_nameThe name of the variable to be zeroed.

Reimplemented from SystemBase.

Definition at line 197 of file DisplacedSystem.h.

198  {
200  }
SystemBase & _undisplaced_system
virtual void addVariableToZeroOnJacobian(std::string var_name)
Adds this variable to the list of variables to be zeroed during each Jacobian evaluation.
Definition: SystemBase.C:169

◆ addVariableToZeroOnResidual()

virtual void DisplacedSystem::addVariableToZeroOnResidual ( std::string  var_name)
inlineoverridevirtual

Adds this variable to the list of variables to be zeroed during each residual evaluation.

Parameters
var_nameThe name of the variable to be zeroed.

Reimplemented from SystemBase.

Definition at line 188 of file DisplacedSystem.h.

189  {
191  }
SystemBase & _undisplaced_system
virtual void addVariableToZeroOnResidual(std::string var_name)
Adds this variable to the list of variables to be zeroed during each residual evaluation.
Definition: SystemBase.C:163

◆ addVector() [1/2]

NumericVector< Number > & SystemBase::addVector ( const std::string &  vector_name,
const bool  project,
const ParallelType  type 
)
inherited

Adds a solution length vector to the system.

Parameters
vector_nameThe name of the vector.
projectWhether or not to project this vector when doing mesh refinement. If the vector is just going to be recomputed then there is no need to project it.
typeWhat type of parallel vector. This is usually either PARALLEL or GHOSTED. GHOSTED is needed if you are going to be accessing off-processor entries. The ghosting pattern is the same as the solution vector.

Definition at line 597 of file SystemBase.C.

Referenced by AuxiliarySystem::addDotVectors(), NonlinearSystemBase::addDotVectors(), SystemBase::addScalingVector(), SecantSolve::allocateStorage(), SteffensenSolve::allocateStorage(), PicardSolve::allocateStorage(), AStableDirk4::AStableDirk4(), ExplicitTimeIntegrator::ExplicitTimeIntegrator(), NonlinearSystemBase::getResidualNonTimeVector(), NonlinearSystemBase::getResidualTimeVector(), CentralDifference::initialSetup(), LStableDirk3::LStableDirk3(), LStableDirk4::LStableDirk4(), SystemBase::needSolutionState(), NonlinearSystemBase::residualGhosted(), and SystemBase::saveOldSolutions().

598 {
599  if (hasVector(vector_name))
600  return getVector(vector_name);
601 
602  NumericVector<Number> & vec = system().add_vector(vector_name, project, type);
603  return vec;
604 }
bool hasVector(const std::string &tag_name) const
Check if the named vector exists in the system.
Definition: SystemBase.C:873
virtual System & system()=0
Get the reference to the libMesh system.
virtual NumericVector< Number > & getVector(const std::string &name)
Get a raw NumericVector by name.
Definition: SystemBase.C:882

◆ addVector() [2/2]

NumericVector< Number > & SystemBase::addVector ( TagID  tag,
const bool  project,
const ParallelType  type 
)
inherited

Adds a solution length vector to the system with the specified TagID.

Parameters
tag_nameThe name of the tag
projectWhether or not to project this vector when doing mesh refinement. If the vector is just going to be recomputed then there is no need to project it.
typeWhat type of parallel vector. This is usually either PARALLEL or GHOSTED. GHOSTED is needed if you are going to be accessing off-processor entries. The ghosting pattern is the same as the solution vector.

Definition at line 607 of file SystemBase.C.

608 {
609  if (!_subproblem.vectorTagExists(tag))
610  mooseError("Cannot add tagged vector with TagID ",
611  tag,
612  " in system '",
613  name(),
614  "' because the tag does not exist in the problem");
615 
616  if (hasVector(tag))
617  {
618  auto & vec = getVector(tag);
619 
620  if (type != ParallelType::AUTOMATIC && vec.type() != type)
621  mooseError("Cannot add tagged vector '",
623  "', in system '",
624  name(),
625  "' because a vector with the same name was found with a different parallel type");
626 
627  return vec;
628  }
629 
630  const auto vector_name = _subproblem.vectorTagName(tag);
631  NumericVector<Number> & vec = system().add_vector(vector_name, project, type);
632  associateVectorToTag(vec, tag);
633 
634  return vec;
635 }
bool hasVector(const std::string &tag_name) const
Check if the named vector exists in the system.
Definition: SystemBase.C:873
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:284
virtual void associateVectorToTag(NumericVector< Number > &vec, TagID tag)
Associate a vector for a given tag.
Definition: SystemBase.C:930
virtual const std::string & name() const
Definition: SystemBase.C:1297
SubProblem & _subproblem
Definition: SystemBase.h:924
virtual bool vectorTagExists(const TagID tag_id) const
Check to see if a particular Tag exists.
Definition: SubProblem.h:163
virtual System & system()=0
Get the reference to the libMesh system.
virtual TagName vectorTagName(const TagID tag) const
Retrieve the name associated with a TagID.
Definition: SubProblem.C:198
virtual NumericVector< Number > & getVector(const std::string &name)
Get a raw NumericVector by name.
Definition: SystemBase.C:882

◆ applyScalingFactors()

void SystemBase::applyScalingFactors ( const std::vector< Real > &  inverse_scaling_factors)
inherited

Applies scaling factors to the system's variables.

Parameters
inverse_scaling_factorsA vector containing the inverse of each variable's scaling factor, e.g. 1 / scaling_factor

Definition at line 1424 of file SystemBase.C.

Referenced by NonlinearSystemBase::computeScaling().

1425 {
1426  for (MooseIndex(_vars) thread = 0; thread < _vars.size(); ++thread)
1427  {
1428  auto & field_variables = _vars[thread].fieldVariables();
1429  for (MooseIndex(field_variables) i = 0, p = 0; i < field_variables.size(); ++i)
1430  {
1431  auto factors = field_variables[i]->arrayScalingFactor();
1432  for (unsigned int j = 0; j < field_variables[i]->count(); ++j, ++p)
1433  factors[j] /= inverse_scaling_factors[p];
1434 
1435  field_variables[i]->scalingFactor(factors);
1436  }
1437 
1438  auto offset = field_variables.size();
1439 
1440  auto & scalar_variables = _vars[thread].scalars();
1441  for (MooseIndex(scalar_variables) i = 0; i < scalar_variables.size(); ++i)
1442  scalar_variables[i]->scalingFactor(
1443  {1. / inverse_scaling_factors[offset + i] * scalar_variables[i]->scalingFactor()});
1444 
1445  if (thread == 0 && _verbose)
1446  {
1447  _console << "Automatic scaling factors:\n";
1448  auto original_flags = _console.flags();
1449  auto original_precision = _console.precision();
1450  _console.unsetf(std::ios_base::floatfield);
1451  _console.precision(6);
1452 
1453  for (const auto & field_variable : field_variables)
1454  {
1455  const auto & factors = field_variable->arrayScalingFactor();
1456  _console << " " << field_variable->name() << ":";
1457  for (const auto i : make_range(field_variable->count()))
1458  _console << " " << factors[i];
1459  _console << "\n";
1460  }
1461  for (const auto & scalar_variable : scalar_variables)
1462  _console << " " << scalar_variable->name() << ": " << scalar_variable->scalingFactor()
1463  << "\n";
1464  _console << "\n" << std::endl;
1465 
1466  // restore state
1467  _console.flags(original_flags);
1468  _console.precision(original_precision);
1469  }
1470  }
1471 }
std::ios_base::fmtflags flags() const
Return the current flags.
Definition: ConsoleStream.C:58
void unsetf(std::ios_base::fmtflags mask) const
Unset format flags.
Definition: ConsoleStream.C:40
std::streamsize precision() const
Return the current precision.
Definition: ConsoleStream.C:46
std::vector< VariableWarehouse > _vars
Variable warehouses (one for each thread)
Definition: SystemBase.h:934
bool _verbose
True if printing out additional information.
Definition: SystemBase.h:982
IntRange< T > make_range(T beg, T end)
const ConsoleStream _console
An instance of helper class to write streams to the Console objects.

◆ assignMaxVarNDofsPerElem()

void SystemBase::assignMaxVarNDofsPerElem ( std::size_t  max_dofs)
inlineinherited

assign the maximum element dofs

Definition at line 575 of file SystemBase.h.

575 { _max_var_n_dofs_per_elem = max_dofs; }
size_t _max_var_n_dofs_per_elem
Maximum number of dofs for any one variable on any one element.
Definition: SystemBase.h:967

◆ assignMaxVarNDofsPerNode()

void SystemBase::assignMaxVarNDofsPerNode ( std::size_t  max_dofs)
inlineinherited

assign the maximum node dofs

Definition at line 580 of file SystemBase.h.

580 { _max_var_n_dofs_per_node = max_dofs; }
size_t _max_var_n_dofs_per_node
Maximum number of dofs for any one variable on any one node.
Definition: SystemBase.h:970

◆ associateMatrixToTag()

virtual void DisplacedSystem::associateMatrixToTag ( SparseMatrix< Number > &  matrix,
TagID  tag 
)
inlineoverridevirtual

Associate a matrix to a tag.

Reimplemented from SystemBase.

Definition at line 85 of file DisplacedSystem.h.

86  {
88  }
SystemBase & _undisplaced_system
virtual void associateMatrixToTag(SparseMatrix< Number > &matrix, TagID tag)
Associate a matrix to a tag.
Definition: SystemBase.C:1025

◆ associateVectorToTag()

virtual void DisplacedSystem::associateVectorToTag ( NumericVector< Number > &  vec,
TagID  tag 
)
inlineoverridevirtual

Associate a vector for a given tag.

Reimplemented from SystemBase.

Definition at line 65 of file DisplacedSystem.h.

66  {
68  }
virtual void associateVectorToTag(NumericVector< Number > &vec, TagID tag)
Associate a vector for a given tag.
Definition: SystemBase.C:930
SystemBase & _undisplaced_system

◆ augmentSendList()

virtual void DisplacedSystem::augmentSendList ( std::vector< dof_id_type > &  send_list)
inlineoverridevirtual

Will modify the send_list to add all of the extra ghosted dofs for this system.

Reimplemented from SystemBase.

Definition at line 169 of file DisplacedSystem.h.

170  {
172  }
SystemBase & _undisplaced_system
virtual void augmentSendList(std::vector< dof_id_type > &send_list)
Will modify the send_list to add all of the extra ghosted dofs for this system.
Definition: SystemBase.C:441

◆ augmentSparsity()

virtual void DisplacedSystem::augmentSparsity ( SparsityPattern::Graph &  ,
std::vector< dof_id_type > &  ,
std::vector< dof_id_type > &   
)
inlineoverridevirtual

This is an empty function since the displaced system doesn't have a matrix! All sparsity pattern modification will be taken care of by the undisplaced system directly.

Implements SystemBase.

Definition at line 178 of file DisplacedSystem.h.

181  {
182  }

◆ automaticScaling() [1/2]

bool SystemBase::automaticScaling ( ) const
inlineinherited

Getter for whether we are performing automatic scaling.

Returns
whether we are performing automatic scaling

Definition at line 117 of file SystemBase.h.

Referenced by SubProblem::automaticScaling().

117 { return _automatic_scaling; }
bool _automatic_scaling
Whether to automatically scale the variables.
Definition: SystemBase.h:979

◆ automaticScaling() [2/2]

void SystemBase::automaticScaling ( bool  automatic_scaling)
inlineinherited

Setter for whether we are performing automatic scaling.

Parameters
automatic_scalingA boolean representing whether we are performing automatic scaling

Definition at line 123 of file SystemBase.h.

123 { _automatic_scaling = automatic_scaling; }
bool _automatic_scaling
Whether to automatically scale the variables.
Definition: SystemBase.h:979

◆ clearAllDofIndices()

void SystemBase::clearAllDofIndices ( )
inherited

Clear all dof indices from moose variables.

Definition at line 1529 of file SystemBase.C.

Referenced by SubProblem::clearAllDofIndices().

1530 {
1531  for (auto & var_warehouse : _vars)
1532  var_warehouse.clearAllDofIndices();
1533 }
std::vector< VariableWarehouse > _vars
Variable warehouses (one for each thread)
Definition: SystemBase.h:934

◆ closeTaggedMatrices()

void SystemBase::closeTaggedMatrices ( const std::set< TagID > &  tags)
inherited

Close all matrices associated the tags.

Definition at line 1009 of file SystemBase.C.

Referenced by NonlinearSystemBase::computeJacobianInternal(), and NonlinearSystemBase::computeResidualAndJacobianTags().

1010 {
1011  for (auto tag : tags)
1012  if (hasMatrix(tag))
1013  getMatrix(tag).close();
1014 }
virtual bool hasMatrix(TagID tag) const
Check if the tagged matrix exists in the system.
Definition: SystemBase.h:328
virtual void close()=0
virtual SparseMatrix< Number > & getMatrix(TagID tag)
Get a raw SparseMatrix.
Definition: SystemBase.C:973

◆ closeTaggedVector()

void SystemBase::closeTaggedVector ( const TagID  tag)
inherited

Close vector with the given tag.

Definition at line 638 of file SystemBase.C.

Referenced by SystemBase::closeTaggedVectors().

639 {
640  if (!_subproblem.vectorTagExists(tag))
641  mooseError("Cannot close vector with TagID ",
642  tag,
643  " in system '",
644  name(),
645  "' because that tag does not exist in the problem");
646  else if (!hasVector(tag))
647  mooseError("Cannot close vector tag with name '",
649  "' in system '",
650  name(),
651  "' because there is no vector associated with that tag");
652 
653  getVector(tag).close();
654 }
bool hasVector(const std::string &tag_name) const
Check if the named vector exists in the system.
Definition: SystemBase.C:873
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:284
virtual const std::string & name() const
Definition: SystemBase.C:1297
SubProblem & _subproblem
Definition: SystemBase.h:924
virtual bool vectorTagExists(const TagID tag_id) const
Check to see if a particular Tag exists.
Definition: SubProblem.h:163
virtual void close()=0
virtual TagName vectorTagName(const TagID tag) const
Retrieve the name associated with a TagID.
Definition: SubProblem.C:198
virtual NumericVector< Number > & getVector(const std::string &name)
Get a raw NumericVector by name.
Definition: SystemBase.C:882

◆ closeTaggedVectors()

void SystemBase::closeTaggedVectors ( const std::set< TagID > &  tags)
inherited

Close all vectors for given tags.

Definition at line 657 of file SystemBase.C.

Referenced by NonlinearSystemBase::computeResidualAndJacobianTags(), and NonlinearSystemBase::computeResidualTags().

658 {
659  for (const auto tag : tags)
660  closeTaggedVector(tag);
661 }
void closeTaggedVector(const TagID tag)
Close vector with the given tag.
Definition: SystemBase.C:638

◆ computeVariables()

virtual void SystemBase::computeVariables ( const NumericVector< Number > &  )
inlinevirtualinherited

Definition at line 852 of file SystemBase.h.

852 {}

◆ computingScalingJacobian()

bool SystemBase::computingScalingJacobian ( ) const
inherited

Whether we are computing an initial Jacobian for automatic variable scaling.

Definition at line 1481 of file SystemBase.C.

Referenced by Assembly::addJacobianBlock(), Assembly::addJacobianBlockNonlocal(), Assembly::addJacobianNeighbor(), Assembly::cacheJacobianBlock(), VectorKernel::computeJacobian(), Kernel::computeJacobian(), EigenKernel::computeJacobian(), and FEProblemBase::computeJacobianTags().

1482 {
1484 }
virtual bool computingScalingJacobian() const =0
Getter for whether we&#39;re computing the scaling jacobian.
SubProblem & _subproblem
Definition: SystemBase.h:924

◆ copyOldSolutions()

void SystemBase::copyOldSolutions ( )
virtualinherited

Shifts the solutions backwards in time.

Definition at line 1254 of file SystemBase.C.

Referenced by EigenExecutionerBase::inversePowerIteration().

1255 {
1256  const auto states =
1257  _solution_states[static_cast<unsigned short>(Moose::SolutionIterationType::Time)].size();
1258  if (states > 1)
1259  for (unsigned int i = states - 1; i > 0; --i)
1260  solutionState(i) = solutionState(i - 1);
1261 
1262  if (solutionUDotOld())
1263  *solutionUDotOld() = *solutionUDot();
1264  if (solutionUDotDotOld())
1266  if (solutionPreviousNewton())
1268 }
virtual const NumericVector< Number > *const & currentSolution() const =0
The solution vector that is currently being operated on.
virtual NumericVector< Number > * solutionUDot()=0
virtual NumericVector< Number > & solutionState(const unsigned int state, Moose::SolutionIterationType iteration_type=Moose::SolutionIterationType::Time)
Get a state of the solution (0 = current, 1 = old, 2 = older, etc).
Definition: SystemBase.C:1384
virtual NumericVector< Number > * solutionUDotDotOld()=0
std::array< std::vector< NumericVector< Number > * >, 2 > _solution_states
The solution states (0 = current, 1 = old, 2 = older, etc)
Definition: SystemBase.h:998
virtual const NumericVector< Number > * solutionPreviousNewton() const
Definition: SystemBase.C:1312
virtual NumericVector< Number > * solutionUDotOld()=0
virtual NumericVector< Number > * solutionUDotDot()=0

◆ copySolutionsBackwards()

void SystemBase::copySolutionsBackwards ( )
virtualinherited

Copy current solution into old and older.

Definition at line 1227 of file SystemBase.C.

1228 {
1229  system().update();
1230 
1231  // Copying the solutions backward so the current solution will become the old, and the old will
1232  // become older. The same applies to the nonlinear iterates.
1233  for (const auto iteration_index : index_range(_solution_states))
1234  {
1235  const auto states = _solution_states[iteration_index].size();
1236  if (states > 1)
1237  for (unsigned int i = states - 1; i > 0; --i)
1238  solutionState(i, Moose::SolutionIterationType(iteration_index)) =
1239  solutionState(i - 1, Moose::SolutionIterationType(iteration_index));
1240  }
1241 
1242  if (solutionUDotOld())
1243  *solutionUDotOld() = *solutionUDot();
1244  if (solutionUDotDotOld())
1246  if (solutionPreviousNewton())
1248 }
virtual const NumericVector< Number > *const & currentSolution() const =0
The solution vector that is currently being operated on.
virtual NumericVector< Number > * solutionUDot()=0
virtual NumericVector< Number > & solutionState(const unsigned int state, Moose::SolutionIterationType iteration_type=Moose::SolutionIterationType::Time)
Get a state of the solution (0 = current, 1 = old, 2 = older, etc).
Definition: SystemBase.C:1384
virtual NumericVector< Number > * solutionUDotDotOld()=0
virtual System & system()=0
Get the reference to the libMesh system.
std::array< std::vector< NumericVector< Number > * >, 2 > _solution_states
The solution states (0 = current, 1 = old, 2 = older, etc)
Definition: SystemBase.h:998
virtual const NumericVector< Number > * solutionPreviousNewton() const
Definition: SystemBase.C:1312
virtual NumericVector< Number > * solutionUDotOld()=0
virtual NumericVector< Number > * solutionUDotDot()=0
auto index_range(const T &sizable)
SolutionIterationType
Definition: MooseTypes.h:229

◆ copyVars()

void SystemBase::copyVars ( ExodusII_IO &  io)
inherited

Definition at line 1151 of file SystemBase.C.

1152 {
1153  int n_steps = io.get_num_time_steps();
1154 
1155  bool did_copy = false;
1156  for (const auto & vci : _var_to_copy)
1157  {
1158  int timestep = -1;
1159 
1160  if (vci._timestep == "LATEST")
1161  // Use the last time step in the file from which to retrieve the solution
1162  timestep = n_steps;
1163  else
1164  {
1165  timestep = MooseUtils::convert<int>(vci._timestep);
1166  if (timestep > n_steps)
1167  mooseError("Invalid value passed as \"initial_from_file_timestep\". Expected \"LATEST\" or "
1168  "a valid integer between 1 and ",
1169  n_steps,
1170  " inclusive, received ",
1171  vci._timestep);
1172  }
1173 
1174  did_copy = true;
1175 
1176  if (hasVariable(vci._dest_name))
1177  {
1178  const auto & var = getVariable(0, vci._dest_name);
1179  if (var.isArray())
1180  {
1181  const auto & array_var = getFieldVariable<RealEigenVector>(0, vci._dest_name);
1182  for (MooseIndex(var.count()) i = 0; i < var.count(); ++i)
1183  {
1184  const auto exodus_var = _subproblem.arrayVariableComponent(vci._source_name, i);
1185  const auto system_var = array_var.componentName(i);
1186  if (var.isNodal())
1187  io.copy_nodal_solution(system(), exodus_var, system_var, timestep);
1188  else
1189  io.copy_elemental_solution(system(), exodus_var, system_var, timestep);
1190  }
1191  }
1192  else
1193  {
1194  if (var.isNodal())
1195  io.copy_nodal_solution(system(), vci._dest_name, vci._source_name, timestep);
1196  else
1197  io.copy_elemental_solution(system(), vci._dest_name, vci._source_name, timestep);
1198  }
1199  }
1200  else if (hasScalarVariable(vci._dest_name))
1201  io.copy_scalar_solution(system(), {vci._dest_name}, {vci._source_name}, timestep);
1202  else
1203  mooseError("Unrecognized variable ", vci._dest_name, " in variables to copy.");
1204  }
1205 
1206  if (did_copy)
1207  solution().close();
1208 }
NumericVector< Number > & solution()
Definition: SystemBase.h:176
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:284
std::vector< VarCopyInfo > _var_to_copy
Definition: SystemBase.h:964
int convert< int >(const std::string &str, bool throw_on_failure)
Definition: MooseUtils.C:999
SubProblem & _subproblem
Definition: SystemBase.h:924
virtual System & system()=0
Get the reference to the libMesh system.
virtual bool hasVariable(const std::string &var_name) const
Query a system for a variable.
Definition: SystemBase.C:800
virtual void close()=0
static std::string arrayVariableComponent(const std::string &var_name, unsigned int i)
Returns the variable name of a component of an array variable.
Definition: SubProblem.h:261
MooseVariableFieldBase & getVariable(THREAD_ID tid, const std::string &var_name) const
Gets a reference to a variable of with specified name.
Definition: SystemBase.C:79
virtual bool hasScalarVariable(const std::string &var_name) const
Definition: SystemBase.C:825

◆ currentSolution()

const NumericVector<Number>* const& DisplacedSystem::currentSolution ( ) const
inlineoverridevirtual

The solution vector that is currently being operated on.

This is typically a ghosted vector that comes in from the Nonlinear solver.

Implements SystemBase.

Definition at line 113 of file DisplacedSystem.h.

114  {
116  }
virtual const NumericVector< Number > *const & currentSolution() const =0
The solution vector that is currently being operated on.
SystemBase & _undisplaced_system

◆ customSetup()

void SystemBase::customSetup ( const ExecFlagType exec_type)
virtualinherited

Reimplemented in NonlinearSystemBase, and AuxiliarySystem.

Definition at line 1501 of file SystemBase.C.

Referenced by AuxiliarySystem::customSetup(), and NonlinearSystemBase::customSetup().

1502 {
1503  for (THREAD_ID tid = 0; tid < libMesh::n_threads(); tid++)
1504  _vars[tid].customSetup(exec_type);
1505 }
unsigned int n_threads()
std::vector< VariableWarehouse > _vars
Variable warehouses (one for each thread)
Definition: SystemBase.h:934
virtual void customSetup(const ExecFlagType &exec_type)
Definition: SystemBase.C:1501
unsigned int THREAD_ID
Definition: MooseTypes.h:198

◆ deactiveAllMatrixTags()

void SystemBase::deactiveAllMatrixTags ( )
virtualinherited

Make matrices inactive.

Definition at line 1092 of file SystemBase.C.

Referenced by NonlinearSystemBase::computeResidualTags(), and NonlinearSystemBase::setInitialSolution().

1093 {
1094  auto num_matrix_tags = _subproblem.numMatrixTags();
1095 
1096  _matrix_tag_active_flags.resize(num_matrix_tags);
1097 
1098  for (decltype(num_matrix_tags) tag = 0; tag < num_matrix_tags; tag++)
1099  _matrix_tag_active_flags[tag] = false;
1100 }
std::vector< bool > _matrix_tag_active_flags
Active flags for tagged matrices.
Definition: SystemBase.h:951
SubProblem & _subproblem
Definition: SystemBase.h:924
virtual unsigned int numMatrixTags() const
The total number of tags.
Definition: SubProblem.h:210

◆ deactiveMatrixTag()

void SystemBase::deactiveMatrixTag ( TagID  tag)
virtualinherited

deactive a matrix for tag

Definition at line 1080 of file SystemBase.C.

1081 {
1082  mooseAssert(_subproblem.matrixTagExists(tag),
1083  "Cannot deactivate Matrix with matrix_tag : " << tag << "that does not exist");
1084 
1085  if (_matrix_tag_active_flags.size() < tag + 1)
1086  _matrix_tag_active_flags.resize(tag + 1);
1087 
1088  _matrix_tag_active_flags[tag] = false;
1089 }
std::vector< bool > _matrix_tag_active_flags
Active flags for tagged matrices.
Definition: SystemBase.h:951
SubProblem & _subproblem
Definition: SystemBase.h:924
virtual bool matrixTagExists(const TagName &tag_name) const
Check to see if a particular Tag exists.
Definition: SubProblem.C:294

◆ defaultMatrixTags()

virtual std::set<TagID> DisplacedSystem::defaultMatrixTags ( ) const
inlineoverridevirtual

Get the default matrix tags associted with this system.

Reimplemented from SystemBase.

Definition at line 60 of file DisplacedSystem.h.

61  {
63  }
SystemBase & _undisplaced_system
virtual std::set< TagID > defaultMatrixTags() const
Get the default matrix tags associted with this system.
Definition: SystemBase.h:287

◆ defaultVectorTags()

virtual std::set<TagID> DisplacedSystem::defaultVectorTags ( ) const
inlineoverridevirtual

Get the default vector tags associated with this system.

Reimplemented from SystemBase.

Definition at line 56 of file DisplacedSystem.h.

57  {
59  }
SystemBase & _undisplaced_system
virtual std::set< TagID > defaultVectorTags() const
Get the default vector tags associated with this system.
Definition: SystemBase.h:280

◆ disassociateDefaultMatrixTags()

virtual void DisplacedSystem::disassociateDefaultMatrixTags ( )
inlineoverridevirtual

Disassociate the matrices associated with the default matrix tags of this system.

Reimplemented from SystemBase.

Definition at line 100 of file DisplacedSystem.h.

101  {
103  }
SystemBase & _undisplaced_system
virtual void disassociateDefaultMatrixTags()
Disassociate the matrices associated with the default matrix tags of this system. ...
Definition: SystemBase.C:1059

◆ disassociateDefaultVectorTags()

virtual void DisplacedSystem::disassociateDefaultVectorTags ( )
inlineoverridevirtual

Disassociate the vectors associated with the default vector tags of this system.

Reimplemented from SystemBase.

Definition at line 80 of file DisplacedSystem.h.

81  {
83  }
virtual void disassociateDefaultVectorTags()
Disassociate the vectors associated with the default vector tags of this system.
Definition: SystemBase.C:964
SystemBase & _undisplaced_system

◆ disassociateMatrixFromTag() [1/2]

virtual void DisplacedSystem::disassociateMatrixFromTag ( SparseMatrix< Number > &  matrix,
TagID  tag 
)
inlineoverridevirtual

Disassociate a matrix from a tag.

Reimplemented from SystemBase.

Definition at line 90 of file DisplacedSystem.h.

91  {
93  }
SystemBase & _undisplaced_system
virtual void disassociateMatrixFromTag(SparseMatrix< Number > &matrix, TagID tag)
Disassociate a matrix from a tag.
Definition: SystemBase.C:1037

◆ disassociateMatrixFromTag() [2/2]

virtual void DisplacedSystem::disassociateMatrixFromTag ( TagID  tag)
inlineoverridevirtual

Disassociate any matrix that is associated with a given tag.

Reimplemented from SystemBase.

Definition at line 95 of file DisplacedSystem.h.

96  {
98  }
SystemBase & _undisplaced_system
virtual void disassociateMatrixFromTag(SparseMatrix< Number > &matrix, TagID tag)
Disassociate a matrix from a tag.
Definition: SystemBase.C:1037

◆ disassociateVectorFromTag() [1/2]

virtual void DisplacedSystem::disassociateVectorFromTag ( NumericVector< Number > &  vec,
TagID  tag 
)
inlineoverridevirtual

Disassociate a given vector from a given tag.

Reimplemented from SystemBase.

Definition at line 70 of file DisplacedSystem.h.

71  {
73  }
virtual void disassociateVectorFromTag(NumericVector< Number > &vec, TagID tag)
Disassociate a given vector from a given tag.
Definition: SystemBase.C:942
SystemBase & _undisplaced_system

◆ disassociateVectorFromTag() [2/2]

virtual void DisplacedSystem::disassociateVectorFromTag ( TagID  tag)
inlineoverridevirtual

Disassociate any vector that is associated with a given tag.

Reimplemented from SystemBase.

Definition at line 75 of file DisplacedSystem.h.

76  {
78  }
virtual void disassociateVectorFromTag(NumericVector< Number > &vec, TagID tag)
Disassociate a given vector from a given tag.
Definition: SystemBase.C:942
SystemBase & _undisplaced_system

◆ dofMap() [1/2]

DofMap & SystemBase::dofMap ( )
virtualinherited

◆ dofMap() [2/2]

const DofMap & SystemBase::dofMap ( ) const
virtualinherited

Gets const reference to the dof map.

Definition at line 1137 of file SystemBase.C.

1138 {
1139  return system().get_dof_map();
1140 }
virtual System & system()=0
Get the reference to the libMesh system.

◆ duDotDotDu() [1/2]

virtual Number& DisplacedSystem::duDotDotDu ( )
inlineoverridevirtual

Reimplemented from SystemBase.

Definition at line 152 of file DisplacedSystem.h.

152 { return _undisplaced_system.duDotDotDu(); }
virtual Number & duDotDotDu()
Definition: SystemBase.h:223
SystemBase & _undisplaced_system

◆ duDotDotDu() [2/2]

virtual const Number& DisplacedSystem::duDotDotDu ( ) const
inlineoverridevirtual

Reimplemented from SystemBase.

Definition at line 154 of file DisplacedSystem.h.

154 { return _undisplaced_system.duDotDotDu(); }
virtual Number & duDotDotDu()
Definition: SystemBase.h:223
SystemBase & _undisplaced_system

◆ duDotDu() [1/2]

virtual Number& DisplacedSystem::duDotDu ( )
inlineoverridevirtual

Reimplemented from SystemBase.

Definition at line 151 of file DisplacedSystem.h.

151 { return _undisplaced_system.duDotDu(); }
virtual Number & duDotDu()
Definition: SystemBase.h:222
SystemBase & _undisplaced_system

◆ duDotDu() [2/2]

virtual const Number& DisplacedSystem::duDotDu ( ) const
inlineoverridevirtual

Reimplemented from SystemBase.

Definition at line 153 of file DisplacedSystem.h.

153 { return _undisplaced_system.duDotDu(); }
virtual Number & duDotDu()
Definition: SystemBase.h:222
SystemBase & _undisplaced_system

◆ flushTaggedMatrices()

void SystemBase::flushTaggedMatrices ( const std::set< TagID > &  tags)
inherited

flushes all matrices associated to tags.

Flush assembles the matrix but doesn't shrink memory allocation

Definition at line 1017 of file SystemBase.C.

1018 {
1019  for (auto tag : tags)
1020  if (hasMatrix(tag))
1021  getMatrix(tag).flush();
1022 }
virtual bool hasMatrix(TagID tag) const
Check if the tagged matrix exists in the system.
Definition: SystemBase.h:328
virtual void flush()
virtual SparseMatrix< Number > & getMatrix(TagID tag)
Get a raw SparseMatrix.
Definition: SystemBase.C:973

◆ getActualFieldVariable() [1/2]

template<typename T >
MooseVariableField< T > & SystemBase::getActualFieldVariable ( THREAD_ID  tid,
const std::string &  var_name 
)
inherited

Returns a field variable pointer - this includes finite volume variables.

Definition at line 107 of file SystemBase.C.

Referenced by BoundsBase::BoundsBase(), Assembly::copyFaceShapes(), Assembly::copyNeighborShapes(), and Assembly::copyShapes().

108 {
109  return *_vars[tid].getActualFieldVariable<T>(var_name);
110 }
std::vector< VariableWarehouse > _vars
Variable warehouses (one for each thread)
Definition: SystemBase.h:934

◆ getActualFieldVariable() [2/2]

template<typename T >
MooseVariableField< T > & SystemBase::getActualFieldVariable ( THREAD_ID  tid,
unsigned int  var_number 
)
inherited

Returns a field variable pointer - this includes finite volume variables.

Definition at line 128 of file SystemBase.C.

129 {
130  return *_vars[tid].getActualFieldVariable<T>(var_number);
131 }
std::vector< VariableWarehouse > _vars
Variable warehouses (one for each thread)
Definition: SystemBase.h:934

◆ getFieldVariable() [1/2]

template<typename T >
MooseVariableFE< T > & SystemBase::getFieldVariable ( THREAD_ID  tid,
const std::string &  var_name 
)
inherited

Gets a reference to a variable of with specified name.

This excludes and cannot return finite volume variables.

Parameters
tidThread id
var_namevariable name
Returns
reference the variable (class)

Definition at line 100 of file SystemBase.C.

Referenced by Marker::getMarkerValue().

101 {
102  return *_vars[tid].getFieldVariable<T>(var_name);
103 }
std::vector< VariableWarehouse > _vars
Variable warehouses (one for each thread)
Definition: SystemBase.h:934

◆ getFieldVariable() [2/2]

template<typename T >
MooseVariableFE< T > & SystemBase::getFieldVariable ( THREAD_ID  tid,
unsigned int  var_number 
)
inherited

Gets a reference to a variable with specified number.

This excludes and cannot return finite volume variables.

Parameters
tidThread id
var_numberlibMesh variable number
Returns
reference the variable (class)

Definition at line 121 of file SystemBase.C.

122 {
123  return *_vars[tid].getFieldVariable<T>(var_number);
124 }
std::vector< VariableWarehouse > _vars
Variable warehouses (one for each thread)
Definition: SystemBase.h:934

◆ getFVVariable()

template<typename T >
template MooseVariableFV< Real > & SystemBase::getFVVariable< Real > ( THREAD_ID  tid,
const std::string &  var_name 
)
inherited

Return a finite volume variable.

Definition at line 114 of file SystemBase.C.

115 {
116  return *_vars[tid].getFVVariable<T>(var_name);
117 }
std::vector< VariableWarehouse > _vars
Variable warehouses (one for each thread)
Definition: SystemBase.h:934

◆ getMatrix() [1/2]

virtual SparseMatrix<Number>& DisplacedSystem::getMatrix ( TagID  tag)
inlineoverridevirtual

Get a raw SparseMatrix.

Reimplemented from SystemBase.

Definition at line 235 of file DisplacedSystem.h.

236  {
237  return _undisplaced_system.getMatrix(tag);
238  }
SystemBase & _undisplaced_system
virtual SparseMatrix< Number > & getMatrix(TagID tag)
Get a raw SparseMatrix.
Definition: SystemBase.C:973

◆ getMatrix() [2/2]

virtual const SparseMatrix<Number>& DisplacedSystem::getMatrix ( TagID  tag) const
inlineoverridevirtual

Get a raw SparseMatrix.

Reimplemented from SystemBase.

Definition at line 239 of file DisplacedSystem.h.

240  {
241  return _undisplaced_system.getMatrix(tag);
242  }
SystemBase & _undisplaced_system
virtual SparseMatrix< Number > & getMatrix(TagID tag)
Get a raw SparseMatrix.
Definition: SystemBase.C:973

◆ getMaxVariableNumber()

unsigned int SystemBase::getMaxVariableNumber ( ) const
inlineinherited

Returns the maximum number of all variables on the system.

Definition at line 850 of file SystemBase.h.

850 { return _max_var_number; }
unsigned int _max_var_number
Maximum variable number.
Definition: SystemBase.h:938

◆ getMaxVarNDofsPerElem()

std::size_t SystemBase::getMaxVarNDofsPerElem ( ) const
inlineinherited

Gets the maximum number of dofs used by any one variable on any one element.

Returns
The max

Definition at line 563 of file SystemBase.h.

Referenced by Moose::globalDofIndexToDerivative().

563 { return _max_var_n_dofs_per_elem; }
size_t _max_var_n_dofs_per_elem
Maximum number of dofs for any one variable on any one element.
Definition: SystemBase.h:967

◆ getMaxVarNDofsPerNode()

std::size_t SystemBase::getMaxVarNDofsPerNode ( ) const
inlineinherited

Gets the maximum number of dofs used by any one variable on any one node.

Returns
The max

Definition at line 570 of file SystemBase.h.

570 { return _max_var_n_dofs_per_node; }
size_t _max_var_n_dofs_per_node
Maximum number of dofs for any one variable on any one node.
Definition: SystemBase.h:970

◆ getMinQuadratureOrder()

Order SystemBase::getMinQuadratureOrder ( )
virtualinherited

Get minimal quadrature order needed for integrating variables in this system.

Returns
The minimal order of quadrature

Reimplemented in AuxiliarySystem.

Definition at line 230 of file SystemBase.C.

231 {
232  Order order = CONSTANT;
233  const std::vector<MooseVariableFieldBase *> & vars = _vars[0].fieldVariables();
234  for (const auto & var : vars)
235  {
236  FEType fe_type = var->feType();
237  if (fe_type.default_quadrature_order() > order)
238  order = fe_type.default_quadrature_order();
239  }
240 
241  return order;
242 }
Order
CONSTANT
std::vector< VariableWarehouse > _vars
Variable warehouses (one for each thread)
Definition: SystemBase.h:934

◆ getScalarVariable() [1/2]

MooseVariableScalar & SystemBase::getScalarVariable ( THREAD_ID  tid,
const std::string &  var_name 
) const
virtualinherited

Gets a reference to a scalar variable with specified number.

Parameters
tidThread id
var_nameA string which is the name of the variable to get.
Returns
reference the variable (class)

Definition at line 134 of file SystemBase.C.

Referenced by Assembly::addJacobianOffDiagScalar(), ODEKernel::computeOffDiagJacobianScalar(), VectorKernel::computeOffDiagJacobianScalar(), ArrayKernel::computeOffDiagJacobianScalar(), IntegratedBC::computeOffDiagJacobianScalar(), VectorIntegratedBC::computeOffDiagJacobianScalar(), ArrayIntegratedBC::computeOffDiagJacobianScalar(), Kernel::computeOffDiagJacobianScalar(), ScalarLagrangeMultiplier::computeOffDiagJacobianScalar(), MortarScalarBase::computeOffDiagJacobianScalar(), KernelScalarBase::computeOffDiagJacobianScalarLocal(), KernelScalarBase::computeScalarOffDiagJacobianScalar(), MortarScalarBase::computeScalarOffDiagJacobianScalar(), DMMooseSetVariables(), Assembly::init(), ReferenceResidualProblem::initialSetup(), and NonlinearSystemBase::setupScalingData().

135 {
136  MooseVariableScalar * var = dynamic_cast<MooseVariableScalar *>(_vars[tid].getVariable(var_name));
137  if (!var)
138  mooseError("Scalar variable '" + var_name + "' does not exist in this system");
139  return *var;
140 }
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:284
std::vector< VariableWarehouse > _vars
Variable warehouses (one for each thread)
Definition: SystemBase.h:934
Class for scalar variables (they are different).

◆ getScalarVariable() [2/2]

MooseVariableScalar & SystemBase::getScalarVariable ( THREAD_ID  tid,
unsigned int  var_number 
) const
virtualinherited

Gets a reference to a variable with specified number.

Parameters
tidThread id
var_numberlibMesh variable number
Returns
reference the variable (class)

Definition at line 143 of file SystemBase.C.

144 {
145  MooseVariableScalar * var =
146  dynamic_cast<MooseVariableScalar *>(_vars[tid].getVariable(var_number));
147  if (!var)
148  mooseError("variable #" + Moose::stringify(var_number) + " does not exist in this system");
149  return *var;
150 }
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:284
std::string stringify(const T &t)
conversion to string
Definition: Conversion.h:62
std::vector< VariableWarehouse > _vars
Variable warehouses (one for each thread)
Definition: SystemBase.h:934
Class for scalar variables (they are different).

◆ getScalarVariables()

const std::vector<MooseVariableScalar *>& SystemBase::getScalarVariables ( THREAD_ID  tid)
inlineinherited

◆ getSharedTimeIntegrator()

std::shared_ptr<TimeIntegrator> SystemBase::getSharedTimeIntegrator ( )
inlineinherited

Definition at line 872 of file SystemBase.h.

Referenced by DisplacedProblem::DisplacedProblem().

872 { return _time_integrator; }
std::shared_ptr< TimeIntegrator > _time_integrator
Time integrator.
Definition: SystemBase.h:973

◆ getStandardFieldVariableNames()

void SystemBase::getStandardFieldVariableNames ( std::vector< VariableName > &  std_field_variables) const
inherited

◆ getSubdomainsForVar() [1/2]

const std::set<SubdomainID>& SystemBase::getSubdomainsForVar ( unsigned int  var_number) const
inlineinherited

Definition at line 742 of file SystemBase.h.

Referenced by NonlinearSystemBase::checkKernelCoverage(), and SystemBase::getSubdomainsForVar().

743  {
744  return _var_map.at(var_number);
745  }
std::map< unsigned int, std::set< SubdomainID > > _var_map
Map of variables (variable id -> array of subdomains where it lives)
Definition: SystemBase.h:936

◆ getSubdomainsForVar() [2/2]

const std::set<SubdomainID>& SystemBase::getSubdomainsForVar ( const std::string &  var_name) const
inlineinherited

Get the block where a variable of this system is defined.

Parameters
var_nameThe name of the variable
Returns
the set of subdomain ids where the variable is active (defined)

Definition at line 753 of file SystemBase.h.

754  {
755  return getSubdomainsForVar(getVariable(0, var_name).number());
756  }
unsigned int number() const
Gets the number of this system.
Definition: SystemBase.C:1125
const std::set< SubdomainID > & getSubdomainsForVar(unsigned int var_number) const
Definition: SystemBase.h:742
MooseVariableFieldBase & getVariable(THREAD_ID tid, const std::string &var_name) const
Gets a reference to a variable of with specified name.
Definition: SystemBase.C:79

◆ getTimeIntegrator() [1/2]

TimeIntegrator* SystemBase::getTimeIntegrator ( )
inlineinherited

◆ getTimeIntegrator() [2/2]

const TimeIntegrator* SystemBase::getTimeIntegrator ( ) const
inlineinherited

Definition at line 870 of file SystemBase.h.

870 { return _time_integrator.get(); }
std::shared_ptr< TimeIntegrator > _time_integrator
Time integrator.
Definition: SystemBase.h:973

◆ getVariable() [1/2]

MooseVariableFieldBase & SystemBase::getVariable ( THREAD_ID  tid,
const std::string &  var_name 
) const
inherited

Gets a reference to a variable of with specified name.

Parameters
tidThread id
var_namevariable name
Returns
reference the variable (class)

Definition at line 79 of file SystemBase.C.

Referenced by AdaptivityAction::act(), Assembly::addJacobianBlock(), Assembly::addJacobianBlockNonlocal(), FEProblemBase::addJacobianBlockTags(), Assembly::addJacobianNeighbor(), NonlocalKernel::computeNonlocalOffDiagJacobian(), NonlocalIntegratedBC::computeNonlocalOffDiagJacobian(), Assembly::copyFaceShapes(), Assembly::copyNeighborShapes(), Assembly::copyShapes(), SystemBase::copyVars(), DMMooseSetVariables(), FieldSplitPreconditioner::FieldSplitPreconditioner(), FiniteDifferencePreconditioner::FiniteDifferencePreconditioner(), NodeElemConstraint::getConnectedDofIndices(), NodeFaceConstraint::getConnectedDofIndices(), SystemBase::getSubdomainsForVar(), ResidualObject::getVariable(), SubProblem::getVariableHelper(), Assembly::init(), NodalNormalsPreprocessor::initialize(), ReferenceResidualProblem::initialSetup(), Assembly::initNonlocalCoupling(), PNGOutput::makeMeshFunc(), FEProblemBase::prepare(), Assembly::prepareBlock(), Assembly::prepareBlockNonlocal(), AddPeriodicBCAction::setPeriodicVars(), NonlinearSystemBase::setupScalingData(), UpdateErrorVectorsThread::UpdateErrorVectorsThread(), and VariableCondensationPreconditioner::VariableCondensationPreconditioner().

80 {
82  dynamic_cast<MooseVariableFieldBase *>(_vars[tid].getVariable(var_name));
83  if (!var)
84  mooseError("Variable '", var_name, "' does not exist in this system");
85  return *var;
86 }
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:284
This class provides an interface for common operations on field variables of both FE and FV types wit...
std::vector< VariableWarehouse > _vars
Variable warehouses (one for each thread)
Definition: SystemBase.h:934

◆ getVariable() [2/2]

MooseVariableFieldBase & SystemBase::getVariable ( THREAD_ID  tid,
unsigned int  var_number 
) const
inherited

Gets a reference to a variable with specified number.

Parameters
tidThread id
var_numberlibMesh variable number
Returns
reference the variable (class)

Definition at line 89 of file SystemBase.C.

90 {
91  if (var_number < _numbered_vars[tid].size())
92  if (_numbered_vars[tid][var_number])
93  return *_numbered_vars[tid][var_number];
94 
95  mooseError("Variable #", Moose::stringify(var_number), " does not exist in this system");
96 }
std::vector< std::vector< MooseVariableFieldBase * > > _numbered_vars
Map variable number to its pointer.
Definition: SystemBase.h:976
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:284
std::string stringify(const T &t)
conversion to string
Definition: Conversion.h:62

◆ getVariableBlocks()

const std::set< SubdomainID > * SystemBase::getVariableBlocks ( unsigned int  var_number)
virtualinherited

Get the block where a variable of this system is defined.

Parameters
var_numberThe number of the variable
Returns
the set of subdomain ids where the variable is active (defined)

Definition at line 153 of file SystemBase.C.

Referenced by PhysicsBasedPreconditioner::addSystem().

154 {
155  mooseAssert(_var_map.find(var_number) != _var_map.end(), "Variable does not exist.");
156  if (_var_map[var_number].empty())
157  return nullptr;
158  else
159  return &_var_map[var_number];
160 }
std::map< unsigned int, std::set< SubdomainID > > _var_map
Map of variables (variable id -> array of subdomains where it lives)
Definition: SystemBase.h:936

◆ getVariableGlobalDoFs()

const std::vector<dof_id_type>& SystemBase::getVariableGlobalDoFs ( )
inlineinherited

Get the global dof indices of a variable, this needs to be called after the indices have been set by setVariableGlobalDoFs

Definition at line 825 of file SystemBase.h.

825 { return _var_all_dof_indices; }
std::vector< dof_id_type > _var_all_dof_indices
Container for the dof indices of a given variable.
Definition: SystemBase.h:988

◆ getVariableNames()

const std::vector<VariableName>& SystemBase::getVariableNames ( ) const
inlineinherited

◆ getVariables()

const std::vector<MooseVariableFieldBase *>& SystemBase::getVariables ( THREAD_ID  tid)
inlineinherited

◆ getVector() [1/4]

virtual NumericVector<Number>& DisplacedSystem::getVector ( TagID  tag)
inlineoverridevirtual

Get a raw NumericVector by tag.

Reimplemented from SystemBase.

Definition at line 36 of file DisplacedSystem.h.

37  {
38  return _undisplaced_system.getVector(tag_id);
39  }
SystemBase & _undisplaced_system
virtual NumericVector< Number > & getVector(const std::string &name)
Get a raw NumericVector by name.
Definition: SystemBase.C:882

◆ getVector() [2/4]

virtual const NumericVector<Number>& DisplacedSystem::getVector ( TagID  tag_id) const
inlineoverridevirtual

Reimplemented from SystemBase.

Definition at line 40 of file DisplacedSystem.h.

41  {
42  return _undisplaced_system.getVector(tag_id);
43  }
SystemBase & _undisplaced_system
virtual NumericVector< Number > & getVector(const std::string &name)
Get a raw NumericVector by name.
Definition: SystemBase.C:882

◆ getVector() [3/4]

NumericVector< Number > & DisplacedSystem::getVector ( const std::string &  name)
overridevirtual

Get a raw NumericVector by name.

Get a raw NumericVector with the given name.

Reimplemented from SystemBase.

Definition at line 37 of file DisplacedSystem.C.

38 {
39  if (_sys.have_vector(name))
40  return _sys.get_vector(name);
41  else
43 }
TransientExplicitSystem & _sys
virtual const std::string & name() const
Definition: SystemBase.C:1297
SystemBase & _undisplaced_system
virtual NumericVector< Number > & getVector(const std::string &name)
Get a raw NumericVector by name.
Definition: SystemBase.C:882

◆ getVector() [4/4]

const NumericVector< Number > & DisplacedSystem::getVector ( const std::string &  name) const
overridevirtual

Reimplemented from SystemBase.

Definition at line 46 of file DisplacedSystem.C.

47 {
48  if (_sys.have_vector(name))
49  return _sys.get_vector(name);
50  else
52 }
TransientExplicitSystem & _sys
virtual const std::string & name() const
Definition: SystemBase.C:1297
SystemBase & _undisplaced_system
virtual NumericVector< Number > & getVector(const std::string &name)
Get a raw NumericVector by name.
Definition: SystemBase.C:882

◆ hasMatrix()

virtual bool DisplacedSystem::hasMatrix ( TagID  tag) const
inlineoverridevirtual

Check if the tagged matrix exists in the system.

Reimplemented from SystemBase.

Definition at line 215 of file DisplacedSystem.h.

216  {
217  return _undisplaced_system.hasMatrix(tag_id);
218  }
virtual bool hasMatrix(TagID tag) const
Check if the tagged matrix exists in the system.
Definition: SystemBase.h:328
SystemBase & _undisplaced_system

◆ hasScalarVariable()

bool SystemBase::hasScalarVariable ( const std::string &  var_name) const
virtualinherited

Definition at line 825 of file SystemBase.C.

Referenced by MortarScalarBase::computeJacobian(), NonlinearSystemBase::computeJacobianInternal(), ComputeFullJacobianThread::computeOnBoundary(), ComputeFullJacobianThread::computeOnElement(), SystemBase::copyVars(), NonlinearEigenSystem::postAddResidualObject(), AddPeriodicBCAction::setPeriodicVars(), and NonlinearSystemBase::setupScalingData().

826 {
827  if (system().has_variable(var_name))
828  return system().variable_type(var_name).family == SCALAR;
829  else
830  return false;
831 }
SCALAR
virtual System & system()=0
Get the reference to the libMesh system.

◆ hasSolutionState()

bool DisplacedSystem::hasSolutionState ( const unsigned int  state,
Moose::SolutionIterationType  iteration_type = Moose::SolutionIterationType::Time 
) const
inlineoverridevirtual

Whether or not the system has the solution state (0 = current, 1 = old, 2 = older, etc).

Reimplemented from SystemBase.

Definition at line 290 of file DisplacedSystem.h.

292 {
293  return _undisplaced_system.hasSolutionState(state, iteration_type);
294 }
SystemBase & _undisplaced_system
virtual bool hasSolutionState(const unsigned int state, Moose::SolutionIterationType iteration_type=Moose::SolutionIterationType::Time) const
Whether or not the system has the solution state (0 = current, 1 = old, 2 = older, etc).
Definition: SystemBase.h:1004

◆ hasVarCopy()

bool SystemBase::hasVarCopy ( ) const
inlineinherited

Whether or not there are variables to be restarted from an Exodus mesh file.

Definition at line 875 of file SystemBase.h.

875 { return _var_to_copy.size() > 0; }
std::vector< VarCopyInfo > _var_to_copy
Definition: SystemBase.h:964

◆ hasVariable()

bool SystemBase::hasVariable ( const std::string &  var_name) const
virtualinherited

Query a system for a variable.

Parameters
var_namename of the variable
Returns
true if the variable exists

Definition at line 800 of file SystemBase.C.

Referenced by ADDGKernel::ADDGKernel(), ArrayDGKernel::ArrayDGKernel(), SystemBase::copyVars(), DGKernel::DGKernel(), DMMooseSetVariables(), FEProblemBase::duplicateVariableCheck(), SubProblem::getVariableHelper(), InterfaceKernelTempl< T >::InterfaceKernelTempl(), PNGOutput::makeMeshFunc(), MultiAppVariableValueSamplePostprocessorTransfer::MultiAppVariableValueSamplePostprocessorTransfer(), NonlinearSystemBase::setupScalingData(), and Coupleable::writableCoupledValue().

801 {
802  auto & names = getVariableNames();
803  if (system().has_variable(var_name))
804  return system().variable_type(var_name).family != SCALAR;
805  if (std::find(names.begin(), names.end(), var_name) != names.end())
806  // array variable
807  return true;
808  else
809  return false;
810 }
SCALAR
virtual System & system()=0
Get the reference to the libMesh system.
const std::vector< VariableName > & getVariableNames() const
Definition: SystemBase.h:843

◆ hasVector() [1/2]

virtual bool DisplacedSystem::hasVector ( TagID  tag_id) const
inlineoverridevirtual

Check if the tagged vector exists in the system.

Reimplemented from SystemBase.

Definition at line 210 of file DisplacedSystem.h.

211  {
212  return _undisplaced_system.hasVector(tag_id);
213  }
bool hasVector(const std::string &tag_name) const
Check if the named vector exists in the system.
Definition: SystemBase.C:873
SystemBase & _undisplaced_system

◆ hasVector() [2/2]

bool SystemBase::hasVector ( const std::string &  tag_name) const
inherited

◆ init()

virtual void SystemBase::init ( )
inlinevirtualinherited

Initialize the system.

Reimplemented in NonlinearSystemBase, and NonlinearSystem.

Definition at line 150 of file SystemBase.h.

Referenced by NonlinearSystemBase::init().

150 {};

◆ initializeObjects()

virtual void SystemBase::initializeObjects ( )
inlinevirtualinherited

Called only once, just before the solve begins so objects can do some precalculations.

Definition at line 155 of file SystemBase.h.

155 {};

◆ initialSetup()

void SystemBase::initialSetup ( )
virtualinherited

Setup Functions.

Reimplemented in NonlinearSystemBase, and AuxiliarySystem.

Definition at line 1487 of file SystemBase.C.

Referenced by AuxiliarySystem::initialSetup(), and NonlinearSystemBase::initialSetup().

1488 {
1489  for (THREAD_ID tid = 0; tid < libMesh::n_threads(); tid++)
1490  _vars[tid].initialSetup();
1491 }
unsigned int n_threads()
std::vector< VariableWarehouse > _vars
Variable warehouses (one for each thread)
Definition: SystemBase.h:934
virtual void initialSetup()
Setup Functions.
Definition: SystemBase.C:1487
unsigned int THREAD_ID
Definition: MooseTypes.h:198

◆ initSolutionState()

void DisplacedSystem::initSolutionState ( )
inlineoverridevirtual

Initializes the solution state.

Reimplemented from SystemBase.

Definition at line 263 of file DisplacedSystem.h.

264 {
266 }
virtual void initSolutionState()
Initializes the solution state.
Definition: SystemBase.C:1321
SystemBase & _undisplaced_system

◆ isArrayVariable()

bool SystemBase::isArrayVariable ( const std::string &  var_name) const
virtualinherited

If a variable is an array variable.

Definition at line 813 of file SystemBase.C.

814 {
815  auto & names = getVariableNames();
816  if (!system().has_variable(var_name) &&
817  std::find(names.begin(), names.end(), var_name) != names.end())
818  // array variable
819  return true;
820  else
821  return false;
822 }
virtual System & system()=0
Get the reference to the libMesh system.
const std::vector< VariableName > & getVariableNames() const
Definition: SystemBase.h:843

◆ isScalarVariable()

bool SystemBase::isScalarVariable ( unsigned int  var_name) const
virtualinherited

Definition at line 834 of file SystemBase.C.

Referenced by Assembly::init(), ReferenceResidualProblem::initialSetup(), and Assembly::initNonlocalCoupling().

835 {
836  return (system().variable(var_num).type().family == SCALAR);
837 }
virtual System & system()=0
Get the reference to the libMesh system.

◆ jacobianSetup()

void SystemBase::jacobianSetup ( )
virtualinherited

Reimplemented in NonlinearSystemBase, and AuxiliarySystem.

Definition at line 1522 of file SystemBase.C.

Referenced by AuxiliarySystem::jacobianSetup(), and NonlinearSystemBase::jacobianSetup().

1523 {
1524  for (THREAD_ID tid = 0; tid < libMesh::n_threads(); tid++)
1525  _vars[tid].jacobianSetup();
1526 }
unsigned int n_threads()
virtual void jacobianSetup()
Definition: SystemBase.C:1522
std::vector< VariableWarehouse > _vars
Variable warehouses (one for each thread)
Definition: SystemBase.h:934
unsigned int THREAD_ID
Definition: MooseTypes.h:198

◆ matrixTagActive()

bool SystemBase::matrixTagActive ( TagID  tag) const
virtualinherited

If or not a matrix tag is active.

Definition at line 1117 of file SystemBase.C.

1118 {
1119  mooseAssert(_subproblem.matrixTagExists(tag), "Matrix tag " << tag << " does not exist");
1120 
1121  return tag < _matrix_tag_active_flags.size() && _matrix_tag_active_flags[tag];
1122 }
std::vector< bool > _matrix_tag_active_flags
Active flags for tagged matrices.
Definition: SystemBase.h:951
SubProblem & _subproblem
Definition: SystemBase.h:924
virtual bool matrixTagExists(const TagName &tag_name) const
Check to see if a particular Tag exists.
Definition: SubProblem.C:294

◆ mesh() [1/2]

virtual MooseMesh& SystemBase::mesh ( )
inlinevirtualinherited

◆ mesh() [2/2]

virtual const MooseMesh& SystemBase::mesh ( ) const
inlinevirtualinherited

Definition at line 97 of file SystemBase.h.

97 { return _mesh; }
MooseMesh & _mesh
Definition: SystemBase.h:929

◆ name()

const std::string & SystemBase::name ( ) const
virtualinherited

◆ needSolutionState()

void DisplacedSystem::needSolutionState ( const unsigned int  state,
Moose::SolutionIterationType  iteration_type = Moose::SolutionIterationType::Time 
)
inlineoverridevirtual

Registers that the solution state state is needed.

Reimplemented from SystemBase.

Definition at line 283 of file DisplacedSystem.h.

285 {
286  _undisplaced_system.needSolutionState(state, iteration_type);
287 }
virtual void needSolutionState(const unsigned int state, Moose::SolutionIterationType iteration_type=Moose::SolutionIterationType::Time)
Registers that the solution state state is needed.
Definition: SystemBase.C:1393
SystemBase & _undisplaced_system

◆ nFieldVariables()

unsigned int SystemBase::nFieldVariables ( ) const
inherited

Get the number of field variables in this system.

Returns
the number of field variables

Definition at line 849 of file SystemBase.C.

Referenced by SystemBase::nVariables().

850 {
851  unsigned int n = 0;
852  for (auto & var : _vars[0].fieldVariables())
853  n += var->count();
854 
855  return n;
856 }
std::vector< VariableWarehouse > _vars
Variable warehouses (one for each thread)
Definition: SystemBase.h:934

◆ nFVVariables()

unsigned int SystemBase::nFVVariables ( ) const
inherited

Get the number of finite volume variables in this system.

Returns
the number of finite volume variables

Definition at line 859 of file SystemBase.C.

Referenced by MooseMesh::cacheFVElementalDoFs().

860 {
861  unsigned int n = 0;
862  for (auto & var : _vars[0].fieldVariables())
863  if (var->isFV())
864  n += var->count();
865 
866  return n;
867 }
std::vector< VariableWarehouse > _vars
Variable warehouses (one for each thread)
Definition: SystemBase.h:934

◆ nonTimeVectorTag()

virtual TagID DisplacedSystem::nonTimeVectorTag ( ) const
inlineoverridevirtual

Reimplemented from SystemBase.

Definition at line 54 of file DisplacedSystem.h.

SystemBase & _undisplaced_system
virtual TagID nonTimeVectorTag() const
Definition: SystemBase.h:270

◆ number()

unsigned int SystemBase::number ( ) const
inherited

Gets the number of this system.

Returns
The number of this system

Definition at line 1125 of file SystemBase.C.

Referenced by FEProblemBase::addCachedResidualDirectly(), FEProblemBase::addJacobian(), FEProblemBase::addJacobianBlockTags(), FEProblemBase::addJacobianLowerD(), FEProblemBase::addJacobianNeighbor(), FEProblemBase::addJacobianNeighborLowerD(), FEProblemBase::addJacobianOffDiagScalar(), FEProblemBase::addJacobianScalar(), FEProblemBase::addResidual(), FEProblemBase::addResidualLower(), FEProblemBase::addResidualNeighbor(), FEProblemBase::addResidualScalar(), SystemBase::addScalingVector(), ADKernelTempl< T >::ADKernelTempl(), ArrayKernel::ArrayKernel(), NonlinearSystemBase::assembleScalingVector(), MooseMesh::cacheFaceInfoVariableOwnership(), MooseVariableScalar::computeAD(), FEProblemBase::computeBounds(), Assembly::computeFaceMap(), VectorNodalBC::computeJacobian(), ArrayNodalBC::computeJacobian(), NodalBC::computeJacobian(), FVBoundaryScalarLagrangeMultiplierConstraint::computeJacobian(), FVFluxBC::computeJacobian(), FVFluxKernel::computeJacobian(), FVInterfaceKernel::computeJacobian(), FEProblemBase::computeJacobianBlock(), NonlinearSystemBase::computeJacobianInternal(), FEProblemBase::computeNearNullSpace(), NonlinearSystemBase::computeNodalBCsResidualAndJacobian(), FEProblemBase::computeNullSpace(), VectorNodalBC::computeOffDiagJacobian(), ArrayNodalBC::computeOffDiagJacobian(), NodalBC::computeOffDiagJacobian(), NodalKernel::computeOffDiagJacobian(), ComputeFullJacobianThread::computeOnBoundary(), ComputeFullJacobianThread::computeOnElement(), ComputeFullJacobianThread::computeOnInterface(), ComputeFullJacobianThread::computeOnInternalFace(), FEProblemBase::computePostCheck(), EqualValueEmbeddedConstraint::computeQpJacobian(), EqualValueEmbeddedConstraint::computeQpOffDiagJacobian(), FVOrthogonalBoundaryDiffusion::computeQpResidual(), FVBoundaryScalarLagrangeMultiplierConstraint::computeResidual(), FVFluxBC::computeResidual(), FVFluxKernel::computeResidual(), FVInterfaceKernel::computeResidual(), Kernel::computeResidualAndJacobian(), NodalBC::computeResidualAndJacobian(), IntegratedBC::computeResidualAndJacobian(), NonlinearSystemBase::computeResidualAndJacobianInternal(), NonlinearSystemBase::computeResidualInternal(), NonlinearSystemBase::computeResidualTags(), NonlinearSystemBase::computeScaling(), Assembly::computeSinglePointMapAD(), FEProblemBase::computeTransposeNullSpace(), DebugResidualAux::computeValue(), NearestNodeValueAux::computeValue(), NonlinearSystemBase::constraintJacobians(), Coupleable::coupled(), FEProblemBase::currentNlSysNum(), PseudoTimestep::currentResidualNorm(), Moose::FV::determineElemOneAndTwo(), ComputeResidualThread::determineObjectWarehouses(), ComputeResidualAndJacobianThread::determineObjectWarehouses(), Moose::doDerivatives(), VariableResidual::execute(), GreaterThanLessThanPostprocessor::execute(), NodalNormalsCorner::execute(), NodalNormalsEvaluator::execute(), NodalNormalsPreprocessor::execute(), ElementSubdomainModifier::finalize(), NumNonlinearIterations::finalize(), BoundsBase::getDoFIndex(), NonlinearSystemBase::getNodeDofs(), SystemBase::getSubdomainsForVar(), NumLinearIterations::getValue(), Residual::getValue(), NumResidualEvaluations::getValue(), Moose::globalDofIndexToDerivative(), FVBoundaryCondition::hasFaceSide(), NonlinearSystemBase::initialSetup(), ActivateElementsUserObjectBase::initSolutions(), EigenExecutionerBase::inversePowerIteration(), Kernel::Kernel(), MooseVariableInterface< Real >::MooseVariableInterface(), EigenExecutionerBase::nonlinearSolve(), ComputeDiracThread::onElement(), ComputeNodalKernelBCJacobiansThread::onNode(), ComputeNodalKernelJacobiansThread::onNode(), PointwiseRenormalizeVector::PointwiseRenormalizeVector(), FEProblemBase::prepare(), FEProblemBase::prepareAssembly(), SystemBase::prepareFace(), FEProblemBase::prepareFaceShapes(), FEProblemBase::prepareNeighborShapes(), FEProblemBase::prepareShapes(), EqualValueEmbeddedConstraint::reinitConstraint(), FEProblemBase::reinitDirac(), FEProblemBase::reinitNeighborPhys(), FEProblemBase::reinitOffDiagScalars(), FEProblemBase::setResidual(), FEProblemBase::setResidualNeighbor(), PhysicsBasedPreconditioner::setup(), FVInterfaceKernel::setupData(), FEProblemSolve::solve(), ActuallyExplicitEuler::solve(), LStableDirk2::solve(), LStableDirk3::solve(), ImplicitMidpoint::solve(), ExplicitTVDRK2::solve(), LStableDirk4::solve(), AStableDirk4::solve(), ExplicitRK2::solve(), ExplicitSSPRungeKutta::solveStage(), NonlinearThread::subdomainChanged(), UserObject::systemNumber(), MultiAppDofCopyTransfer::transferDofObject(), FVFluxBC::uOnGhost(), FVFluxBC::uOnUSub(), and MortarConstraintBase::zeroInactiveLMDofs().

1126 {
1127  return system().number();
1128 }
virtual System & system()=0
Get the reference to the libMesh system.

◆ nVariables()

unsigned int SystemBase::nVariables ( ) const
virtualinherited

Get the number of variables in this system.

Returns
the number of variables

Definition at line 840 of file SystemBase.C.

Referenced by AdaptivityAction::act(), FieldSplitPreconditioner::FieldSplitPreconditioner(), FiniteDifferencePreconditioner::FiniteDifferencePreconditioner(), NonlinearSystemBase::getNodeDofs(), Assembly::init(), MaxVarNDofsPerElem::onElement(), MaxVarNDofsPerNode::onNode(), PhysicsBasedPreconditioner::PhysicsBasedPreconditioner(), and SingleMatrixPreconditioner::SingleMatrixPreconditioner().

841 {
842  unsigned int n = nFieldVariables();
843  n += _vars[0].scalars().size();
844 
845  return n;
846 }
std::vector< VariableWarehouse > _vars
Variable warehouses (one for each thread)
Definition: SystemBase.h:934
unsigned int nFieldVariables() const
Get the number of field variables in this system.
Definition: SystemBase.C:849

◆ operator=()

DisplacedSystem& DisplacedSystem::operator= ( DisplacedSystem &&  )
delete

◆ prepare()

void SystemBase::prepare ( THREAD_ID  tid)
virtualinherited

Prepare the system for use.

Parameters
tidID of the thread

Definition at line 245 of file SystemBase.C.

Referenced by SubProblem::reinitElemFaceRef().

246 {
248  {
249  const std::set<MooseVariableFieldBase *> & active_elemental_moose_variables =
251  const std::vector<MooseVariableFieldBase *> & vars = _vars[tid].fieldVariables();
252  for (const auto & var : vars)
253  var->clearDofIndices();
254 
255  for (const auto & var : active_elemental_moose_variables)
256  if (&(var->sys()) == this)
257  var->prepare();
258  }
259  else
260  {
261  const std::vector<MooseVariableFieldBase *> & vars = _vars[tid].fieldVariables();
262  for (const auto & var : vars)
263  var->prepare();
264  }
265 }
virtual const std::set< MooseVariableFieldBase * > & getActiveElementalMooseVariables(const THREAD_ID tid) const
Get the MOOSE variables to be reinited on each element.
Definition: SubProblem.C:420
SubProblem & _subproblem
Definition: SystemBase.h:924
std::vector< VariableWarehouse > _vars
Variable warehouses (one for each thread)
Definition: SystemBase.h:934
virtual bool hasActiveElementalMooseVariables(const THREAD_ID tid) const
Whether or not a list of active elemental moose variables has been set.
Definition: SubProblem.C:426

◆ prepareFace()

void SystemBase::prepareFace ( THREAD_ID  tid,
bool  resize_data 
)
virtualinherited

Prepare the system for use on sides.

This will try to reuse the preparation done on the element.

Parameters
tidID of the thread
resize_dataPass True if this system needs to resize residual and jacobian datastructures based on preparing this face

Definition at line 268 of file SystemBase.C.

269 {
270  // We only need to do something if the element prepare was restricted
272  {
273  const std::set<MooseVariableFieldBase *> & active_elemental_moose_variables =
275 
276  std::vector<MooseVariableFieldBase *> newly_prepared_vars;
277 
278  const std::vector<MooseVariableFieldBase *> & vars = _vars[tid].fieldVariables();
279  for (const auto & var : vars)
280  {
281  mooseAssert(&var->sys() == this,
282  "I will cry if we store variables in our warehouse that don't belong to us");
283 
284  // If it wasn't in the active list, we need to prepare it. This has the potential to duplicate
285  // prepare if we have these conditions:
286  //
287  // 1. We have a displaced problem
288  // 2. We are using AD
289  // 3. We are not using global AD indexing
290  //
291  // But I think I would rather risk duplicate prepare than introduce an additional member set
292  // variable for tracking prepared variables. Set insertion is slow and some simulations have a
293  // ton of variables
294  if (!active_elemental_moose_variables.count(var))
295  {
296  var->prepare();
297  newly_prepared_vars.push_back(var);
298  }
299  }
300 
301  // Make sure to resize the residual and jacobian datastructures for all the new variables
302  if (resize_data)
303  for (const auto var_ptr : newly_prepared_vars)
304  {
305  _subproblem.assembly(tid, number()).prepareVariable(var_ptr);
308  }
309  }
310 }
virtual const std::set< MooseVariableFieldBase * > & getActiveElementalMooseVariables(const THREAD_ID tid) const
Get the MOOSE variables to be reinited on each element.
Definition: SubProblem.C:420
SubProblem & _subproblem
Definition: SystemBase.h:924
virtual bool checkNonlocalCouplingRequirement()
Definition: SubProblem.h:88
unsigned int number() const
Gets the number of this system.
Definition: SystemBase.C:1125
std::vector< VariableWarehouse > _vars
Variable warehouses (one for each thread)
Definition: SystemBase.h:934
void prepareVariableNonlocal(MooseVariableFieldBase *var)
Definition: Assembly.C:2768
void prepareVariable(MooseVariableFieldBase *var)
Used for preparing the dense residual and jacobian blocks for one particular variable.
Definition: Assembly.C:2740
virtual bool hasActiveElementalMooseVariables(const THREAD_ID tid) const
Whether or not a list of active elemental moose variables has been set.
Definition: SubProblem.C:426
virtual Assembly & assembly(const THREAD_ID tid, const unsigned int nl_sys_num)=0

◆ prepareLowerD()

void SystemBase::prepareLowerD ( THREAD_ID  tid)
virtualinherited

Prepare the system for use for lower dimensional elements.

Parameters
tidID of the thread

Definition at line 321 of file SystemBase.C.

Referenced by SubProblem::reinitLowerDElem().

322 {
323  const std::vector<MooseVariableFieldBase *> & vars = _vars[tid].fieldVariables();
324  for (const auto & var : vars)
325  var->prepareLowerD();
326 }
std::vector< VariableWarehouse > _vars
Variable warehouses (one for each thread)
Definition: SystemBase.h:934

◆ prepareNeighbor()

void SystemBase::prepareNeighbor ( THREAD_ID  tid)
virtualinherited

Prepare the system for use.

Parameters
tidID of the thread

Definition at line 313 of file SystemBase.C.

Referenced by SubProblem::reinitNeighborFaceRef().

314 {
315  const std::vector<MooseVariableFieldBase *> & vars = _vars[tid].fieldVariables();
316  for (const auto & var : vars)
317  var->prepareNeighbor();
318 }
std::vector< VariableWarehouse > _vars
Variable warehouses (one for each thread)
Definition: SystemBase.h:934

◆ reinitElem()

void SystemBase::reinitElem ( const Elem *  elem,
THREAD_ID  tid 
)
virtualinherited

Reinit an element assembly info.

Parameters
elemWhich element we are reinitializing for
tidID of the thread

Reimplemented in AuxiliarySystem.

Definition at line 329 of file SystemBase.C.

330 {
331 
333  {
334  const std::set<MooseVariableFieldBase *> & active_elemental_moose_variables =
336  for (const auto & var : active_elemental_moose_variables)
337  if (&(var->sys()) == this)
338  var->computeElemValues();
339  }
340  else
341  {
342  const std::vector<MooseVariableFieldBase *> & vars = _vars[tid].fieldVariables();
343  for (const auto & var : vars)
344  var->computeElemValues();
345  }
346 }
virtual const std::set< MooseVariableFieldBase * > & getActiveElementalMooseVariables(const THREAD_ID tid) const
Get the MOOSE variables to be reinited on each element.
Definition: SubProblem.C:420
SubProblem & _subproblem
Definition: SystemBase.h:924
std::vector< VariableWarehouse > _vars
Variable warehouses (one for each thread)
Definition: SystemBase.h:934
virtual bool hasActiveElementalMooseVariables(const THREAD_ID tid) const
Whether or not a list of active elemental moose variables has been set.
Definition: SubProblem.C:426

◆ reinitElemFace()

void SystemBase::reinitElemFace ( const Elem *  elem,
unsigned int  side,
BoundaryID  bnd_id,
THREAD_ID  tid 
)
virtualinherited

Reinit assembly info for a side of an element.

Parameters
elemThe element
sideSide of of the element
bnd_idBoundary id on that side
tidThread ID

Reimplemented in AuxiliarySystem.

Definition at line 349 of file SystemBase.C.

Referenced by SubProblem::reinitElemFaceRef().

353 {
354  const std::vector<MooseVariableFieldBase *> & vars = _vars[tid].fieldVariables();
355  for (const auto & var : vars)
356  var->computeElemValuesFace();
357 }
std::vector< VariableWarehouse > _vars
Variable warehouses (one for each thread)
Definition: SystemBase.h:934

◆ reinitLowerD()

void SystemBase::reinitLowerD ( THREAD_ID  tid)
virtualinherited

Compute the values of the variables on the lower dimensional element.

Definition at line 379 of file SystemBase.C.

Referenced by SubProblem::reinitLowerDElem().

380 {
381  const std::vector<MooseVariableFieldBase *> & vars = _vars[tid].fieldVariables();
382  for (const auto & var : vars)
383  var->computeLowerDValues();
384 }
std::vector< VariableWarehouse > _vars
Variable warehouses (one for each thread)
Definition: SystemBase.h:934

◆ reinitNeighbor()

void SystemBase::reinitNeighbor ( const Elem *  elem,
THREAD_ID  tid 
)
virtualinherited

Compute the values of the variables at all the current points.

Definition at line 371 of file SystemBase.C.

372 {
373  const std::vector<MooseVariableFieldBase *> & vars = _vars[tid].fieldVariables();
374  for (const auto & var : vars)
375  var->computeNeighborValues();
376 }
std::vector< VariableWarehouse > _vars
Variable warehouses (one for each thread)
Definition: SystemBase.h:934

◆ reinitNeighborFace()

void SystemBase::reinitNeighborFace ( const Elem *  elem,
unsigned int  side,
BoundaryID  bnd_id,
THREAD_ID  tid 
)
virtualinherited

Compute the values of the variables at all the current points.

Definition at line 360 of file SystemBase.C.

Referenced by SubProblem::reinitNeighborFaceRef().

364 {
365  const std::vector<MooseVariableFieldBase *> & vars = _vars[tid].fieldVariables();
366  for (const auto & var : vars)
367  var->computeNeighborValuesFace();
368 }
std::vector< VariableWarehouse > _vars
Variable warehouses (one for each thread)
Definition: SystemBase.h:934

◆ reinitNode()

void SystemBase::reinitNode ( const Node *  node,
THREAD_ID  tid 
)
virtualinherited

Reinit nodal assembly info.

Parameters
nodeNode to reinit for
tidThread ID

Definition at line 387 of file SystemBase.C.

388 {
389  const std::vector<MooseVariableFieldBase *> & vars = _vars[tid].fieldVariables();
390  for (const auto & var : vars)
391  {
392  var->reinitNode();
393  if (var->isNodalDefined())
394  var->computeNodalValues();
395  }
396 }
std::vector< VariableWarehouse > _vars
Variable warehouses (one for each thread)
Definition: SystemBase.h:934

◆ reinitNodeFace()

void SystemBase::reinitNodeFace ( const Node *  node,
BoundaryID  bnd_id,
THREAD_ID  tid 
)
virtualinherited

Reinit nodal assembly info on a face.

Parameters
nodeNode to reinit
bnd_idBoundary ID
tidThread ID

Definition at line 399 of file SystemBase.C.

400 {
401  const std::vector<MooseVariableFieldBase *> & vars = _vars[tid].fieldVariables();
402  for (const auto & var : vars)
403  {
404  var->reinitNode();
405  if (var->isNodalDefined())
406  var->computeNodalValues();
407  }
408 }
std::vector< VariableWarehouse > _vars
Variable warehouses (one for each thread)
Definition: SystemBase.h:934

◆ reinitNodes()

void SystemBase::reinitNodes ( const std::vector< dof_id_type > &  nodes,
THREAD_ID  tid 
)
virtualinherited

Reinit variables at a set of nodes.

Parameters
nodesList of node ids to reinit
tidThread ID

Definition at line 411 of file SystemBase.C.

412 {
413  const std::vector<MooseVariableFieldBase *> & vars = _vars[tid].fieldVariables();
414  for (const auto & var : vars)
415  {
416  var->reinitNodes(nodes);
417  var->computeNodalValues();
418  }
419 }
std::vector< VariableWarehouse > _vars
Variable warehouses (one for each thread)
Definition: SystemBase.h:934

◆ reinitNodesNeighbor()

void SystemBase::reinitNodesNeighbor ( const std::vector< dof_id_type > &  nodes,
THREAD_ID  tid 
)
virtualinherited

Reinit variables at a set of neighbor nodes.

Parameters
nodesList of node ids to reinit
tidThread ID

Definition at line 422 of file SystemBase.C.

423 {
424  const std::vector<MooseVariableFieldBase *> & vars = _vars[tid].fieldVariables();
425  for (const auto & var : vars)
426  {
427  var->reinitNodesNeighbor(nodes);
428  var->computeNodalNeighborValues();
429  }
430 }
std::vector< VariableWarehouse > _vars
Variable warehouses (one for each thread)
Definition: SystemBase.h:934

◆ reinitScalars()

void SystemBase::reinitScalars ( THREAD_ID  tid,
bool  reinit_for_derivative_reordering = false 
)
virtualinherited

Reinit scalar varaibles.

Parameters
tidThread ID
reinit_for_derivative_reorderingA flag indicating whether we are reinitializing for the purpose of re-ordering derivative information for ADNodalBCs

Definition at line 433 of file SystemBase.C.

434 {
435  const std::vector<MooseVariableScalar *> & vars = _vars[tid].scalars();
436  for (const auto & var : vars)
437  var->reinit(reinit_for_derivative_reordering);
438 }
std::vector< VariableWarehouse > _vars
Variable warehouses (one for each thread)
Definition: SystemBase.h:934

◆ removeMatrix()

void SystemBase::removeMatrix ( TagID  tag)
inherited

Removes a matrix with a given tag.

Parameters
tag_nameThe name of the tag

Definition at line 579 of file SystemBase.C.

580 {
581  if (!_subproblem.matrixTagExists(tag_id))
582  mooseError("Cannot remove the matrix with TagID ",
583  tag_id,
584  "\nin system '",
585  name(),
586  "', because that tag does not exist in the problem");
587 
588  if (hasMatrix(tag_id))
589  {
590  const auto matrix_name = _subproblem.matrixTagName(tag_id);
591  system().remove_matrix(matrix_name);
592  _tagged_matrices[tag_id] = nullptr;
593  }
594 }
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:284
std::vector< SparseMatrix< Number > * > _tagged_matrices
Tagged matrices (pointer)
Definition: SystemBase.h:949
virtual bool hasMatrix(TagID tag) const
Check if the tagged matrix exists in the system.
Definition: SystemBase.h:328
virtual const std::string & name() const
Definition: SystemBase.C:1297
SubProblem & _subproblem
Definition: SystemBase.h:924
virtual System & system()=0
Get the reference to the libMesh system.
virtual bool matrixTagExists(const TagName &tag_name) const
Check to see if a particular Tag exists.
Definition: SubProblem.C:294
virtual TagName matrixTagName(TagID tag)
Retrieve the name associated with a TagID.
Definition: SubProblem.C:323

◆ removeVector() [1/2]

void SystemBase::removeVector ( const std::string &  name)
inherited

Remove a vector from the system with the given name.

Definition at line 1291 of file SystemBase.C.

Referenced by SystemBase::restoreOldSolutions().

1292 {
1293  system().remove_vector(name);
1294 }
virtual const std::string & name() const
Definition: SystemBase.C:1297
virtual System & system()=0
Get the reference to the libMesh system.

◆ removeVector() [2/2]

void SystemBase::removeVector ( TagID  tag_id)
inherited

Remove a solution length vector from the system with the specified TagID.

Parameters
tag_idTag ID

Definition at line 690 of file SystemBase.C.

691 {
692  if (!_subproblem.vectorTagExists(tag_id))
693  mooseError("Cannot remove the vector with TagID ",
694  tag_id,
695  "\nin system '",
696  name(),
697  "', because that tag does not exist in the problem");
698 
699  if (hasVector(tag_id))
700  {
701  auto vector_name = _subproblem.vectorTagName(tag_id);
702  system().remove_vector(vector_name);
703  _tagged_vectors[tag_id] = nullptr;
704  }
705 }
bool hasVector(const std::string &tag_name) const
Check if the named vector exists in the system.
Definition: SystemBase.C:873
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:284
virtual const std::string & name() const
Definition: SystemBase.C:1297
SubProblem & _subproblem
Definition: SystemBase.h:924
virtual bool vectorTagExists(const TagID tag_id) const
Check to see if a particular Tag exists.
Definition: SubProblem.h:163
virtual System & system()=0
Get the reference to the libMesh system.
virtual TagName vectorTagName(const TagID tag) const
Retrieve the name associated with a TagID.
Definition: SubProblem.C:198
std::vector< NumericVector< Number > * > _tagged_vectors
Tagged vectors (pointer)
Definition: SystemBase.h:947

◆ residualCopy()

virtual NumericVector<Number>& DisplacedSystem::residualCopy ( )
inlineoverridevirtual

Return the residual copy from the NonlinearSystem.

Returns
Residual copy

Reimplemented from SystemBase.

Definition at line 160 of file DisplacedSystem.h.

161  {
163  }
virtual NumericVector< Number > & residualCopy()
Definition: SystemBase.h:404
SystemBase & _undisplaced_system

◆ residualGhosted()

virtual NumericVector<Number>& DisplacedSystem::residualGhosted ( )
inlineoverridevirtual

Reimplemented from SystemBase.

Definition at line 164 of file DisplacedSystem.h.

165  {
167  }
SystemBase & _undisplaced_system
virtual NumericVector< Number > & residualGhosted()
Definition: SystemBase.h:408

◆ residualSetup()

void SystemBase::residualSetup ( )
virtualinherited

Reimplemented in NonlinearSystemBase, and AuxiliarySystem.

Definition at line 1515 of file SystemBase.C.

Referenced by AuxiliarySystem::residualSetup(), and NonlinearSystemBase::residualSetup().

1516 {
1517  for (THREAD_ID tid = 0; tid < libMesh::n_threads(); tid++)
1518  _vars[tid].residualSetup();
1519 }
unsigned int n_threads()
std::vector< VariableWarehouse > _vars
Variable warehouses (one for each thread)
Definition: SystemBase.h:934
virtual void residualSetup()
Definition: SystemBase.C:1515
unsigned int THREAD_ID
Definition: MooseTypes.h:198

◆ residualVectorTag()

virtual TagID DisplacedSystem::residualVectorTag ( ) const
inlineoverridevirtual

Reimplemented from SystemBase.

Definition at line 45 of file DisplacedSystem.h.

46  {
48  }
SystemBase & _undisplaced_system
virtual TagID residualVectorTag() const
Definition: SystemBase.h:275

◆ restoreOldSolutions()

void SystemBase::restoreOldSolutions ( )
virtualinherited

Restore the old and older solutions when the saved solutions present.

Definition at line 531 of file SystemBase.C.

532 {
533  const auto states =
534  _solution_states[static_cast<unsigned short>(Moose::SolutionIterationType::Time)].size();
535  if (states > 1)
536  for (unsigned int i = 1; i <= states - 1; ++i)
537  if (_saved_solution_states[i])
538  {
540  removeVector("save_solution_state_" + std::to_string(i));
541  _saved_solution_states[i] = nullptr;
542  }
543 
545  {
547  removeVector("save_solution_dot_old");
548  _saved_dot_old = nullptr;
549  }
551  {
553  removeVector("save_solution_dotdot_old");
554  _saved_dotdot_old = nullptr;
555  }
556 }
virtual NumericVector< Number > & solutionState(const unsigned int state, Moose::SolutionIterationType iteration_type=Moose::SolutionIterationType::Time)
Get a state of the solution (0 = current, 1 = old, 2 = older, etc).
Definition: SystemBase.C:1384
virtual NumericVector< Number > * solutionUDotDotOld()=0
NumericVector< Real > * _saved_dot_old
Definition: SystemBase.h:958
void removeVector(const std::string &name)
Remove a vector from the system with the given name.
Definition: SystemBase.C:1291
std::array< std::vector< NumericVector< Number > * >, 2 > _solution_states
The solution states (0 = current, 1 = old, 2 = older, etc)
Definition: SystemBase.h:998
NumericVector< Real > * _saved_dotdot_old
Definition: SystemBase.h:959
virtual NumericVector< Number > * solutionUDotOld()=0
std::vector< NumericVector< Number > * > _saved_solution_states
The saved solution states (0 = current, 1 = old, 2 = older, etc)
Definition: SystemBase.h:1000

◆ restoreSolutions()

void SystemBase::restoreSolutions ( )
virtualinherited

Restore current solutions (call after your solve failed)

Reimplemented in NonlinearSystemBase.

Definition at line 1274 of file SystemBase.C.

Referenced by NonlinearSystemBase::restoreSolutions().

1275 {
1276  if (!hasSolutionState(1))
1277  mooseError("Cannot restore solutions without old solution");
1278 
1279  *(const_cast<NumericVector<Number> *&>(currentSolution())) = solutionOld();
1280  solution() = solutionOld();
1281  if (solutionUDotOld())
1282  *solutionUDot() = *solutionUDotOld();
1283  if (solutionUDotDotOld())
1285  if (solutionPreviousNewton())
1287  system().update();
1288 }
virtual const NumericVector< Number > *const & currentSolution() const =0
The solution vector that is currently being operated on.
virtual NumericVector< Number > * solutionUDot()=0
NumericVector< Number > & solution()
Definition: SystemBase.h:176
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:284
virtual NumericVector< Number > * solutionUDotDotOld()=0
virtual bool hasSolutionState(const unsigned int state, Moose::SolutionIterationType iteration_type=Moose::SolutionIterationType::Time) const
Whether or not the system has the solution state (0 = current, 1 = old, 2 = older, etc).
Definition: SystemBase.h:1004
virtual System & system()=0
Get the reference to the libMesh system.
virtual const NumericVector< Number > * solutionPreviousNewton() const
Definition: SystemBase.C:1312
virtual NumericVector< Number > * solutionUDotOld()=0
virtual NumericVector< Number > * solutionUDotDot()=0
NumericVector< Number > & solutionOld()
Definition: SystemBase.h:177

◆ saveOldSolutions()

void SystemBase::saveOldSolutions ( )
virtualinherited

Save the old and older solutions.

Definition at line 499 of file SystemBase.C.

500 {
501  const auto states =
502  _solution_states[static_cast<unsigned short>(Moose::SolutionIterationType::Time)].size();
503  if (states > 1)
504  {
505  _saved_solution_states.resize(states);
506  for (unsigned int i = 1; i <= states - 1; ++i)
507  if (!_saved_solution_states[i])
509  &addVector("save_solution_state_" + std::to_string(i), false, PARALLEL);
510 
511  for (unsigned int i = 1; i <= states - 1; ++i)
513  }
514 
516  _saved_dot_old = &addVector("save_solution_dot_old", false, PARALLEL);
518  _saved_dotdot_old = &addVector("save_solution_dotdot_old", false, PARALLEL);
519 
520  if (solutionUDotOld())
522 
523  if (solutionUDotDotOld())
525 }
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:597
virtual NumericVector< Number > & solutionState(const unsigned int state, Moose::SolutionIterationType iteration_type=Moose::SolutionIterationType::Time)
Get a state of the solution (0 = current, 1 = old, 2 = older, etc).
Definition: SystemBase.C:1384
virtual NumericVector< Number > * solutionUDotDotOld()=0
NumericVector< Real > * _saved_dot_old
Definition: SystemBase.h:958
std::array< std::vector< NumericVector< Number > * >, 2 > _solution_states
The solution states (0 = current, 1 = old, 2 = older, etc)
Definition: SystemBase.h:998
NumericVector< Real > * _saved_dotdot_old
Definition: SystemBase.h:959
virtual NumericVector< Number > * solutionUDotOld()=0
std::vector< NumericVector< Number > * > _saved_solution_states
The saved solution states (0 = current, 1 = old, 2 = older, etc)
Definition: SystemBase.h:1000

◆ serializedSolution()

virtual NumericVector<Number>& DisplacedSystem::serializedSolution ( )
inlineoverridevirtual

Returns a reference to a serialized version of the solution vector for this subproblem.

Implements SystemBase.

Definition at line 108 of file DisplacedSystem.h.

109  {
111  }
SystemBase & _undisplaced_system
virtual NumericVector< Number > & serializedSolution()=0
Returns a reference to a serialized version of the solution vector for this subproblem.

◆ setActiveScalarVariableCoupleableVectorTags()

void SystemBase::setActiveScalarVariableCoupleableVectorTags ( const std::set< TagID > &  vtags,
THREAD_ID  tid 
)
inherited

Set the active vector tags for the scalar variables.

Definition at line 1542 of file SystemBase.C.

Referenced by SubProblem::setActiveScalarVariableCoupleableVectorTags().

1544 {
1545  _vars[tid].setActiveScalarVariableCoupleableVectorTags(vtags);
1546 }
std::vector< VariableWarehouse > _vars
Variable warehouses (one for each thread)
Definition: SystemBase.h:934

◆ setActiveVariableCoupleableVectorTags()

void SystemBase::setActiveVariableCoupleableVectorTags ( const std::set< TagID > &  vtags,
THREAD_ID  tid 
)
inherited

Set the active vector tags for the variables.

Definition at line 1536 of file SystemBase.C.

Referenced by SubProblem::setActiveFEVariableCoupleableVectorTags().

1537 {
1538  _vars[tid].setActiveVariableCoupleableVectorTags(vtags);
1539 }
std::vector< VariableWarehouse > _vars
Variable warehouses (one for each thread)
Definition: SystemBase.h:934

◆ setVariableGlobalDoFs()

void SystemBase::setVariableGlobalDoFs ( const std::string &  var_name)
inherited

set all the global dof indices for a variable

Parameters
var_nameThe name of the variable

Definition at line 175 of file SystemBase.C.

176 {
177  AllLocalDofIndicesThread aldit(_subproblem, {var_name});
179  Threads::parallel_reduce(elem_range, aldit);
180 
181  // Gather the dof indices across procs to get all the dof indices for var_name
182  aldit.dofIndicesSetUnion();
183 
184  const auto & all_dof_indices = aldit.getDofIndices();
185  _var_all_dof_indices.assign(all_dof_indices.begin(), all_dof_indices.end());
186 }
ConstElemRange * getActiveLocalElementRange()
Return pointers to range objects for various types of ranges (local nodes, boundary elems...
Definition: MooseMesh.C:1040
std::vector< dof_id_type > _var_all_dof_indices
Container for the dof indices of a given variable.
Definition: SystemBase.h:988
Grab all the (possibly semi)local dof indices for the variables passed in, in the system passed in...
SubProblem & _subproblem
Definition: SystemBase.h:924
MooseMesh & _mesh
Definition: SystemBase.h:929

◆ setVerboseFlag()

void SystemBase::setVerboseFlag ( const bool &  verbose)
inlineinherited

Sets the verbose flag.

Parameters
[in]verboseVerbose flag

Definition at line 129 of file SystemBase.h.

Referenced by Executioner::Executioner().

129 { _verbose = verbose; }
bool _verbose
True if printing out additional information.
Definition: SystemBase.h:982

◆ solution() [1/2]

NumericVector<Number>& SystemBase::solution ( )
inlineinherited

Definition at line 176 of file SystemBase.h.

Referenced by Adaptivity::adaptMesh(), TransientMultiApp::appTransferVector(), MooseEigenSystem::combineSystemSolution(), NonlinearSystemBase::computeDamping(), AuxiliarySystem::computeElementalVarsHelper(), NonlinearSystemBase::computeJacobianInternal(), AuxiliarySystem::computeMortarNodalVars(), NonlinearSystemBase::computeNodalBCs(), AuxiliarySystem::computeNodalVarsHelper(), NonlinearSystemBase::computeResidualTags(), AuxiliarySystem::computeScalarVars(), NonlinearSystemBase::constraintResiduals(), SystemBase::copyVars(), MultiAppPostprocessorToAuxScalarTransfer::execute(), MultiAppScalarToAuxScalarTransfer::execute(), NodalNormalsCorner::execute(), NodalNormalsEvaluator::execute(), MultiAppVariableValueSamplePostprocessorTransfer::execute(), NodalNormalsPreprocessor::execute(), NodalNormalsCorner::finalize(), NodalNormalsEvaluator::finalize(), NodalNormalsPreprocessor::finalize(), NodalNormalsCorner::initialize(), NodalNormalsEvaluator::initialize(), NodalNormalsPreprocessor::initialize(), MooseEigenSystem::initSystemSolution(), ComputeMarkerThread::onElement(), ComputeIndicatorThread::onElement(), ComputeUserObjectsThread::onElement(), ComputeNodalUserObjectsThread::onNode(), FEProblemBase::projectInitialConditionOnCustomRange(), FEProblemBase::projectSolution(), Transient::relativeSolutionDifferenceNorm(), SystemBase::restoreSolutions(), SteffensenSolve::saveVariableValues(), SecantSolve::saveVariableValues(), PicardSolve::saveVariableValues(), MooseEigenSystem::scaleSystemSolution(), AuxiliarySystem::serializeSolution(), NonlinearSystemBase::setConstraintSecondaryValues(), NonlinearSystemBase::setInitialSolution(), solutionInternal(), NonlinearEigenSystem::solve(), MultiAppDofCopyTransfer::transfer(), SteffensenSolve::transformVariables(), SecantSolve::transformVariables(), PicardSolve::transformVariables(), and SystemBase::zeroVariables().

176 { return solutionState(0); }
virtual NumericVector< Number > & solutionState(const unsigned int state, Moose::SolutionIterationType iteration_type=Moose::SolutionIterationType::Time)
Get a state of the solution (0 = current, 1 = old, 2 = older, etc).
Definition: SystemBase.C:1384

◆ solution() [2/2]

const NumericVector<Number>& SystemBase::solution ( ) const
inlineinherited

Definition at line 179 of file SystemBase.h.

179 { return solutionState(0); }
virtual NumericVector< Number > & solutionState(const unsigned int state, Moose::SolutionIterationType iteration_type=Moose::SolutionIterationType::Time)
Get a state of the solution (0 = current, 1 = old, 2 = older, etc).
Definition: SystemBase.C:1384

◆ solutionInternal()

NumericVector<Number>& DisplacedSystem::solutionInternal ( ) const
inlineoverrideprotectedvirtual

Internal getter for solution owned by libMesh.

Implements SystemBase.

Definition at line 253 of file DisplacedSystem.h.

254  {
255  return _undisplaced_system.solution();
256  }
NumericVector< Number > & solution()
Definition: SystemBase.h:176
SystemBase & _undisplaced_system

◆ solutionOld() [1/2]

NumericVector<Number>& SystemBase::solutionOld ( )
inlineinherited

◆ solutionOld() [2/2]

const NumericVector<Number>& SystemBase::solutionOld ( ) const
inlineinherited

Definition at line 180 of file SystemBase.h.

180 { return solutionState(1); }
virtual NumericVector< Number > & solutionState(const unsigned int state, Moose::SolutionIterationType iteration_type=Moose::SolutionIterationType::Time)
Get a state of the solution (0 = current, 1 = old, 2 = older, etc).
Definition: SystemBase.C:1384

◆ solutionOlder() [1/2]

NumericVector<Number>& SystemBase::solutionOlder ( )
inlineinherited

Definition at line 178 of file SystemBase.h.

Referenced by MooseEigenSystem::combineSystemSolution(), CentralDifference::computeTimeDerivatives(), ActivateElementsUserObjectBase::initSolutions(), MooseVariableScalar::reinit(), and ElementSubdomainModifier::setOldAndOlderSolutionsForMovedNodes().

178 { return solutionState(2); }
virtual NumericVector< Number > & solutionState(const unsigned int state, Moose::SolutionIterationType iteration_type=Moose::SolutionIterationType::Time)
Get a state of the solution (0 = current, 1 = old, 2 = older, etc).
Definition: SystemBase.C:1384

◆ solutionOlder() [2/2]

const NumericVector<Number>& SystemBase::solutionOlder ( ) const
inlineinherited

Definition at line 181 of file SystemBase.h.

181 { return solutionState(2); }
virtual NumericVector< Number > & solutionState(const unsigned int state, Moose::SolutionIterationType iteration_type=Moose::SolutionIterationType::Time)
Get a state of the solution (0 = current, 1 = old, 2 = older, etc).
Definition: SystemBase.C:1384

◆ solutionPreviousNewton() [1/2]

NumericVector<Number>* DisplacedSystem::solutionPreviousNewton ( )
inlineoverridevirtual

Reimplemented from SystemBase.

Definition at line 118 of file DisplacedSystem.h.

118 { return nullptr; }

◆ solutionPreviousNewton() [2/2]

const NumericVector<Number>* DisplacedSystem::solutionPreviousNewton ( ) const
inlineoverridevirtual

Reimplemented from SystemBase.

Definition at line 119 of file DisplacedSystem.h.

119 { return nullptr; }

◆ solutionState() [1/2]

NumericVector< Number > & DisplacedSystem::solutionState ( const unsigned int  state,
Moose::SolutionIterationType  iteration_type = Moose::SolutionIterationType::Time 
)
inlineoverridevirtual

Get a state of the solution (0 = current, 1 = old, 2 = older, etc).

If the state does not exist, it will be initialized in addition to any newer states before it that have not been initialized.

Reimplemented from SystemBase.

Definition at line 269 of file DisplacedSystem.h.

271 {
272  return _undisplaced_system.solutionState(state, iteration_type);
273 }
virtual NumericVector< Number > & solutionState(const unsigned int state, Moose::SolutionIterationType iteration_type=Moose::SolutionIterationType::Time)
Get a state of the solution (0 = current, 1 = old, 2 = older, etc).
Definition: SystemBase.C:1384
SystemBase & _undisplaced_system

◆ solutionState() [2/2]

const NumericVector< Number > & DisplacedSystem::solutionState ( const unsigned int  state,
Moose::SolutionIterationType  iteration_type = Moose::SolutionIterationType::Time 
) const
inlineoverridevirtual

Get a state of the solution (0 = current, 1 = old, 2 = older, etc).

Reimplemented from SystemBase.

Definition at line 276 of file DisplacedSystem.h.

278 {
279  return _undisplaced_system.solutionState(state, iteration_type);
280 }
virtual NumericVector< Number > & solutionState(const unsigned int state, Moose::SolutionIterationType iteration_type=Moose::SolutionIterationType::Time)
Get a state of the solution (0 = current, 1 = old, 2 = older, etc).
Definition: SystemBase.C:1384
SystemBase & _undisplaced_system

◆ solutionStatesInitialized()

bool SystemBase::solutionStatesInitialized ( ) const
inlineinherited

Whether or not the solution states have been initialized via initSolutionState()

After the solution states have been initialized, additional solution states cannot be added.

Definition at line 888 of file SystemBase.h.

Referenced by ScalarKernelBase::uOld(), and AuxScalarKernel::uOld().

bool _solution_states_initialized
Whether or not the solution states have been initialized.
Definition: SystemBase.h:985

◆ solutionUDot() [1/2]

NumericVector<Number>* DisplacedSystem::solutionUDot ( )
inlineoverridevirtual

Implements SystemBase.

Definition at line 121 of file DisplacedSystem.h.

121 { return _undisplaced_system.solutionUDot(); }
virtual NumericVector< Number > * solutionUDot()=0
SystemBase & _undisplaced_system

◆ solutionUDot() [2/2]

const NumericVector<Number>* DisplacedSystem::solutionUDot ( ) const
inlineoverridevirtual

Implements SystemBase.

Definition at line 134 of file DisplacedSystem.h.

135  {
137  }
virtual NumericVector< Number > * solutionUDot()=0
SystemBase & _undisplaced_system

◆ solutionUDotDot() [1/2]

NumericVector<Number>* DisplacedSystem::solutionUDotDot ( )
inlineoverridevirtual

Implements SystemBase.

Definition at line 122 of file DisplacedSystem.h.

123  {
125  }
SystemBase & _undisplaced_system
virtual NumericVector< Number > * solutionUDotDot()=0

◆ solutionUDotDot() [2/2]

const NumericVector<Number>* DisplacedSystem::solutionUDotDot ( ) const
inlineoverridevirtual

Implements SystemBase.

Definition at line 138 of file DisplacedSystem.h.

139  {
141  }
SystemBase & _undisplaced_system
virtual NumericVector< Number > * solutionUDotDot()=0

◆ solutionUDotDotOld() [1/2]

NumericVector<Number>* DisplacedSystem::solutionUDotDotOld ( )
inlineoverridevirtual

Implements SystemBase.

Definition at line 130 of file DisplacedSystem.h.

131  {
133  }
virtual NumericVector< Number > * solutionUDotDotOld()=0
SystemBase & _undisplaced_system

◆ solutionUDotDotOld() [2/2]

const NumericVector<Number>* DisplacedSystem::solutionUDotDotOld ( ) const
inlineoverridevirtual

Implements SystemBase.

Definition at line 146 of file DisplacedSystem.h.

147  {
149  }
virtual NumericVector< Number > * solutionUDotDotOld()=0
SystemBase & _undisplaced_system

◆ solutionUDotOld() [1/2]

NumericVector<Number>* DisplacedSystem::solutionUDotOld ( )
inlineoverridevirtual

Implements SystemBase.

Definition at line 126 of file DisplacedSystem.h.

127  {
129  }
SystemBase & _undisplaced_system
virtual NumericVector< Number > * solutionUDotOld()=0

◆ solutionUDotOld() [2/2]

const NumericVector<Number>* DisplacedSystem::solutionUDotOld ( ) const
inlineoverridevirtual

Implements SystemBase.

Definition at line 142 of file DisplacedSystem.h.

143  {
145  }
SystemBase & _undisplaced_system
virtual NumericVector< Number > * solutionUDotOld()=0

◆ solve()

void SystemBase::solve ( )
virtualinherited

Solve the system (using libMesh magic)

Reimplemented in NonlinearSystemBase, NonlinearEigenSystem, NonlinearSystem, and DumpObjectsNonlinearSystem.

Definition at line 1218 of file SystemBase.C.

1219 {
1220  system().solve();
1221 }
virtual System & system()=0
Get the reference to the libMesh system.

◆ subdomainSetup()

void SystemBase::subdomainSetup ( )
virtualinherited

Reimplemented in AuxiliarySystem.

Definition at line 1508 of file SystemBase.C.

Referenced by AuxiliarySystem::subdomainSetup(), and NonlinearSystemBase::subdomainSetup().

1509 {
1510  for (THREAD_ID tid = 0; tid < libMesh::n_threads(); tid++)
1511  _vars[tid].subdomainSetup();
1512 }
unsigned int n_threads()
std::vector< VariableWarehouse > _vars
Variable warehouses (one for each thread)
Definition: SystemBase.h:934
virtual void subdomainSetup()
Definition: SystemBase.C:1508
unsigned int THREAD_ID
Definition: MooseTypes.h:198

◆ subproblem() [1/2]

virtual SubProblem& SystemBase::subproblem ( )
inlinevirtualinherited

◆ subproblem() [2/2]

virtual const SubProblem& SystemBase::subproblem ( ) const
inlinevirtualinherited

Definition at line 99 of file SystemBase.h.

99 { return _subproblem; }
SubProblem & _subproblem
Definition: SystemBase.h:924

◆ sys()

virtual TransientExplicitSystem& DisplacedSystem::sys ( )
inlinevirtual

Definition at line 244 of file DisplacedSystem.h.

244 { return _sys; }
TransientExplicitSystem & _sys

◆ system() [1/2]

System & DisplacedSystem::system ( )
overridevirtual

Get the reference to the libMesh system.

Implements SystemBase.

Definition at line 61 of file DisplacedSystem.C.

62 {
63  return _sys;
64 }
TransientExplicitSystem & _sys

◆ system() [2/2]

const System & DisplacedSystem::system ( ) const
overridevirtual

Implements SystemBase.

Definition at line 67 of file DisplacedSystem.C.

68 {
69  return _sys;
70 }
TransientExplicitSystem & _sys

◆ systemMatrixTag()

virtual TagID DisplacedSystem::systemMatrixTag ( ) const
inlineoverridevirtual

Return the Matrix Tag ID for System.

Reimplemented from SystemBase.

Definition at line 50 of file DisplacedSystem.h.

SystemBase & _undisplaced_system
virtual TagID systemMatrixTag() const
Return the Matrix Tag ID for System.
Definition: SystemBase.h:265

◆ timestepSetup()

void SystemBase::timestepSetup ( )
virtualinherited

Reimplemented in NonlinearSystemBase, and AuxiliarySystem.

Definition at line 1494 of file SystemBase.C.

Referenced by AuxiliarySystem::timestepSetup(), and NonlinearSystemBase::timestepSetup().

1495 {
1496  for (THREAD_ID tid = 0; tid < libMesh::n_threads(); tid++)
1497  _vars[tid].timestepSetup();
1498 }
unsigned int n_threads()
std::vector< VariableWarehouse > _vars
Variable warehouses (one for each thread)
Definition: SystemBase.h:934
unsigned int THREAD_ID
Definition: MooseTypes.h:198
virtual void timestepSetup()
Definition: SystemBase.C:1494

◆ timeVectorTag()

virtual TagID DisplacedSystem::timeVectorTag ( ) const
inlineoverridevirtual

Ideally, we should not need this API.

There exists a really bad API "addCachedResidualDirectly " in FEProblem and DisplacedProblem This API should go away once addCachedResidualDirectly is removed in the future Return Tag ID for Time

Reimplemented from SystemBase.

Definition at line 52 of file DisplacedSystem.h.

SystemBase & _undisplaced_system
virtual TagID timeVectorTag() const
Ideally, we should not need this API.
Definition: SystemBase.h:260

◆ update()

void SystemBase::update ( bool  update_libmesh_system = true)
virtualinherited

◆ varKind()

Moose::VarKindType SystemBase::varKind ( ) const
inlineinherited
Returns
the type of variables this system holds, e.g. nonlinear or auxiliary

Definition at line 916 of file SystemBase.h.

Referenced by Coupleable::coupled(), and UserObject::UserObject().

916 { return _var_kind; }
Moose::VarKindType _var_kind
default kind of variables in this system
Definition: SystemBase.h:962

◆ zeroTaggedVector()

void SystemBase::zeroTaggedVector ( const TagID  tag)
inherited

Zero vector with the given tag.

Definition at line 664 of file SystemBase.C.

Referenced by SystemBase::zeroTaggedVectors().

665 {
666  if (!_subproblem.vectorTagExists(tag))
667  mooseError("Cannot zero vector with TagID ",
668  tag,
669  " in system '",
670  name(),
671  "' because that tag does not exist in the problem");
672  else if (!hasVector(tag))
673  mooseError("Cannot zero vector tag with name '",
675  "' in system '",
676  name(),
677  "' because there is no vector associated with that tag");
678 
679  getVector(tag).zero();
680 }
bool hasVector(const std::string &tag_name) const
Check if the named vector exists in the system.
Definition: SystemBase.C:873
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:284
virtual void zero()=0
virtual const std::string & name() const
Definition: SystemBase.C:1297
SubProblem & _subproblem
Definition: SystemBase.h:924
virtual bool vectorTagExists(const TagID tag_id) const
Check to see if a particular Tag exists.
Definition: SubProblem.h:163
virtual TagName vectorTagName(const TagID tag) const
Retrieve the name associated with a TagID.
Definition: SubProblem.C:198
virtual NumericVector< Number > & getVector(const std::string &name)
Get a raw NumericVector by name.
Definition: SystemBase.C:882

◆ zeroTaggedVectors()

void SystemBase::zeroTaggedVectors ( const std::set< TagID > &  tags)
inherited

Zero all vectors for given tags.

Definition at line 683 of file SystemBase.C.

Referenced by NonlinearSystemBase::computeResidualAndJacobianTags(), and NonlinearSystemBase::computeResidualTags().

684 {
685  for (const auto tag : tags)
686  zeroTaggedVector(tag);
687 }
void zeroTaggedVector(const TagID tag)
Zero vector with the given tag.
Definition: SystemBase.C:664

◆ zeroVariables()

virtual void DisplacedSystem::zeroVariables ( std::vector< std::string > &  vars_to_be_zeroed)
inlineoverridevirtual

Zero out the solution for the list of variables passed in.

Reimplemented from SystemBase.

Definition at line 205 of file DisplacedSystem.h.

206  {
207  _undisplaced_system.zeroVariables(vars_to_be_zeroed);
208  }
SystemBase & _undisplaced_system
virtual void zeroVariables(std::vector< std::string > &vars_to_be_zeroed)
Zero out the solution for the list of variables passed in.
Definition: SystemBase.C:189

◆ zeroVariablesForJacobian()

void SystemBase::zeroVariablesForJacobian ( )
virtualinherited

Zero out the solution for the variables that were registered as needing to have their solutions zeroed on out on Jacobian evaluation by a call to addVariableToZeroOnResidual()

Definition at line 224 of file SystemBase.C.

225 {
227 }
std::vector< std::string > _vars_to_be_zeroed_on_jacobian
Definition: SystemBase.h:941
virtual void zeroVariables(std::vector< std::string > &vars_to_be_zeroed)
Zero out the solution for the list of variables passed in.
Definition: SystemBase.C:189

◆ zeroVariablesForResidual()

void SystemBase::zeroVariablesForResidual ( )
virtualinherited

Zero out the solution for the variables that were registered as needing to have their solutions zeroed on out on residual evaluation by a call to addVariableToZeroOnResidual()

Definition at line 218 of file SystemBase.C.

219 {
221 }
std::vector< std::string > _vars_to_be_zeroed_on_residual
Definition: SystemBase.h:940
virtual void zeroVariables(std::vector< std::string > &vars_to_be_zeroed)
Zero out the solution for the list of variables passed in.
Definition: SystemBase.C:189

Member Data Documentation

◆ _app

MooseApp& SystemBase::_app
protectedinherited

◆ _automatic_scaling

bool SystemBase::_automatic_scaling
protectedinherited

Whether to automatically scale the variables.

Definition at line 979 of file SystemBase.h.

Referenced by SystemBase::automaticScaling(), NonlinearSystem::init(), NonlinearSystemBase::initialSetup(), and NonlinearSystemBase::preSolve().

◆ _console

const ConsoleStream ConsoleStreamInterface::_console
inherited

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

Definition at line 31 of file ConsoleStreamInterface.h.

Referenced by IterationAdaptiveDT::acceptStep(), MeshOnlyAction::act(), SetupDebugAction::act(), MaterialOutputAction::act(), Adaptivity::adaptMesh(), FEProblemBase::adaptMesh(), PerfGraph::addToExecutionList(), SimplePredictor::apply(), SystemBase::applyScalingFactors(), MultiApp::backup(), FEProblemBase::backupMultiApps(), CoarsenedPiecewiseLinear::buildCoarsenedGrid(), MeshDiagnosticsGenerator::checkElementOverlap(), MeshDiagnosticsGenerator::checkElementTypes(), MeshDiagnosticsGenerator::checkElementVolumes(), FEProblemBase::checkExceptionAndStopSolve(), MeshDiagnosticsGenerator::checkLocalJacobians(), MeshDiagnosticsGenerator::checkNonConformalMesh(), MeshDiagnosticsGenerator::checkNonConformalMeshFromAdaptivity(), MeshDiagnosticsGenerator::checkNonPlanarSides(), FEProblemBase::checkProblemIntegrity(), ReferenceResidualProblem::checkRelativeConvergence(), MeshDiagnosticsGenerator::checkSidesetsOrientation(), IterationAdaptiveDT::computeAdaptiveDT(), Transient::computeConstrainedDT(), FixedPointSolve::computeCustomConvergencePostprocessor(), NonlinearSystemBase::computeDamping(), IterationAdaptiveDT::computeDT(), IterationAdaptiveDT::computeFailedDT(), IterationAdaptiveDT::computeInitialDT(), IterationAdaptiveDT::computeInterpolationDT(), NonlinearSystemBase::computeScaling(), Problem::console(), IterationAdaptiveDT::constrainStep(), TimeStepper::constrainStep(), MultiApp::createApp(), FEProblemBase::execMultiApps(), FEProblemBase::execMultiAppTransfers(), MessageFromInput::execute(), Steady::execute(), Eigenvalue::execute(), ActionWarehouse::executeActionsWithAction(), ActionWarehouse::executeAllActions(), ElementQualityChecker::finalize(), FEProblemBase::finishMultiAppStep(), MeshRepairGenerator::fixOverlappingNodes(), CoarsenBlockGenerator::generate(), MeshGenerator::generateInternal(), VariableCondensationPreconditioner::getDofToCondense(), InversePowerMethod::init(), NonlinearEigen::init(), FEProblemBase::initialAdaptMesh(), EigenExecutionerBase::inversePowerIteration(), FEProblemBase::joinAndFinalize(), Transient::keepGoing(), IterationAdaptiveDT::limitDTByFunction(), IterationAdaptiveDT::limitDTToPostprocessorValue(), FEProblemBase::logAdd(), EigenExecutionerBase::makeBXConsistent(), Console::meshChanged(), MooseBaseErrorInterface::mooseDeprecated(), MooseBaseErrorInterface::mooseInfo(), MooseBaseErrorInterface::mooseWarning(), MooseBaseErrorInterface::mooseWarningNonPrefixed(), ReferenceResidualProblem::nonlinearConvergenceSetup(), ReporterDebugOutput::output(), PerfGraphOutput::output(), MaterialPropertyDebugOutput::output(), DOFMapOutput::output(), VariableResidualNormsDebugOutput::output(), Console::output(), ControlOutput::outputActiveObjects(), ControlOutput::outputChangedControls(), ControlOutput::outputControls(), Console::outputInput(), Console::outputPostprocessors(), PseudoTimestep::outputPseudoTimestep(), Console::outputReporters(), Console::outputScalarVariables(), Console::outputSystemInformation(), FEProblemBase::possiblyRebuildGeomSearchPatches(), EigenExecutionerBase::postExecute(), AB2PredictorCorrector::postSolve(), ActionWarehouse::printActionDependencySets(), SolutionInvalidity::printDebug(), EigenExecutionerBase::printEigenvalue(), SecantSolve::printFixedPointConvergenceHistory(), SteffensenSolve::printFixedPointConvergenceHistory(), PicardSolve::printFixedPointConvergenceHistory(), FixedPointSolve::printFixedPointConvergenceReason(), PerfGraphLivePrint::printLiveMessage(), MaterialPropertyDebugOutput::printMaterialMap(), PerfGraphLivePrint::printStats(), AutomaticMortarGeneration::projectPrimaryNodesSinglePair(), AutomaticMortarGeneration::projectSecondaryNodesSinglePair(), CoarsenBlockGenerator::recursiveCoarsen(), SolutionTimeAdaptiveDT::rejectStep(), MultiApp::restore(), FEProblemBase::restoreMultiApps(), SimplePredictor::shouldApply(), Checkpoint::shouldOutput(), SubProblem::showFunctorRequestors(), SubProblem::showFunctors(), FullSolveMultiApp::showStatusMessage(), FEProblemSolve::solve(), FixedPointSolve::solve(), NonlinearSystem::solve(), EigenProblem::solve(), LStableDirk2::solve(), LStableDirk3::solve(), ImplicitMidpoint::solve(), ExplicitTVDRK2::solve(), LStableDirk4::solve(), AStableDirk4::solve(), ExplicitRK2::solve(), TransientMultiApp::solveStep(), FixedPointSolve::solveStep(), PerfGraphLivePrint::start(), AB2PredictorCorrector::step(), NonlinearEigen::takeStep(), Transient::takeStep(), Console::writeTimestepInformation(), Console::writeVariableNorms(), and FEProblemBase::~FEProblemBase().

◆ _du_dot_du

Real SystemBase::_du_dot_du
protectedinherited

Definition at line 943 of file SystemBase.h.

Referenced by SystemBase::duDotDu().

◆ _du_dotdot_du

Real SystemBase::_du_dotdot_du
protectedinherited

Definition at line 944 of file SystemBase.h.

Referenced by SystemBase::duDotDotDu().

◆ _factory

Factory& SystemBase::_factory
protectedinherited

◆ _matrix_tag_active_flags

std::vector<bool> SystemBase::_matrix_tag_active_flags
protectedinherited

◆ _max_var_n_dofs_per_elem

size_t SystemBase::_max_var_n_dofs_per_elem
protectedinherited

Maximum number of dofs for any one variable on any one element.

Definition at line 967 of file SystemBase.h.

Referenced by SystemBase::assignMaxVarNDofsPerElem(), and SystemBase::getMaxVarNDofsPerElem().

◆ _max_var_n_dofs_per_node

size_t SystemBase::_max_var_n_dofs_per_node
protectedinherited

Maximum number of dofs for any one variable on any one node.

Definition at line 970 of file SystemBase.h.

Referenced by SystemBase::assignMaxVarNDofsPerNode(), and SystemBase::getMaxVarNDofsPerNode().

◆ _max_var_number

unsigned int SystemBase::_max_var_number
protectedinherited

Maximum variable number.

Definition at line 938 of file SystemBase.h.

Referenced by SystemBase::addVariable(), and SystemBase::getMaxVariableNumber().

◆ _mesh

MooseMesh& SystemBase::_mesh
protectedinherited

◆ _name

std::string SystemBase::_name
protectedinherited

The name of this system.

Definition at line 931 of file SystemBase.h.

◆ _numbered_vars

std::vector<std::vector<MooseVariableFieldBase *> > SystemBase::_numbered_vars
protectedinherited

Map variable number to its pointer.

Definition at line 976 of file SystemBase.h.

Referenced by SystemBase::addVariable(), and SystemBase::getVariable().

◆ _saved_dot_old

NumericVector<Real>* SystemBase::_saved_dot_old
protectedinherited

Definition at line 958 of file SystemBase.h.

Referenced by SystemBase::restoreOldSolutions(), and SystemBase::saveOldSolutions().

◆ _saved_dotdot_old

NumericVector<Real>* SystemBase::_saved_dotdot_old
protectedinherited

Definition at line 959 of file SystemBase.h.

Referenced by SystemBase::restoreOldSolutions(), and SystemBase::saveOldSolutions().

◆ _saved_old

NumericVector<Real>* SystemBase::_saved_old
protectedinherited

Definition at line 954 of file SystemBase.h.

◆ _saved_older

NumericVector<Real>* SystemBase::_saved_older
protectedinherited

Definition at line 955 of file SystemBase.h.

◆ _solution_states_initialized

bool SystemBase::_solution_states_initialized
protectedinherited

Whether or not the solution states have been initialized.

Definition at line 985 of file SystemBase.h.

Referenced by SystemBase::initSolutionState(), and SystemBase::solutionStatesInitialized().

◆ _subproblem

SubProblem& SystemBase::_subproblem
protectedinherited

◆ _sys

TransientExplicitSystem& DisplacedSystem::_sys
protected

Definition at line 259 of file DisplacedSystem.h.

Referenced by DisplacedSystem(), getVector(), sys(), and system().

◆ _tagged_matrices

std::vector<SparseMatrix<Number> *> SystemBase::_tagged_matrices
protectedinherited

◆ _tagged_vectors

std::vector<NumericVector<Number> *> SystemBase::_tagged_vectors
protectedinherited

◆ _time_integrator

std::shared_ptr<TimeIntegrator> SystemBase::_time_integrator
protectedinherited

◆ _undisplaced_system

SystemBase& DisplacedSystem::_undisplaced_system
protected

◆ _var_all_dof_indices

std::vector<dof_id_type> SystemBase::_var_all_dof_indices
protectedinherited

Container for the dof indices of a given variable.

Definition at line 988 of file SystemBase.h.

Referenced by SystemBase::getVariableGlobalDoFs(), and SystemBase::setVariableGlobalDoFs().

◆ _var_kind

Moose::VarKindType SystemBase::_var_kind
protectedinherited

default kind of variables in this system

Definition at line 962 of file SystemBase.h.

Referenced by SystemBase::varKind().

◆ _var_map

std::map<unsigned int, std::set<SubdomainID> > SystemBase::_var_map
protectedinherited

Map of variables (variable id -> array of subdomains where it lives)

Definition at line 936 of file SystemBase.h.

Referenced by SystemBase::addVariable(), SystemBase::getSubdomainsForVar(), and SystemBase::getVariableBlocks().

◆ _var_to_copy

std::vector<VarCopyInfo> SystemBase::_var_to_copy
protectedinherited

◆ _vars

std::vector<VariableWarehouse> SystemBase::_vars
protectedinherited

Variable warehouses (one for each thread)

Definition at line 934 of file SystemBase.h.

Referenced by NonlinearSystemBase::addBoundaryCondition(), NonlinearSystemBase::addInterfaceKernel(), AuxiliarySystem::addVariable(), SystemBase::addVariable(), SystemBase::applyScalingFactors(), NonlinearSystemBase::assembleScalingVector(), SystemBase::clearAllDofIndices(), AuxiliarySystem::compute(), SystemBase::customSetup(), SystemBase::getActualFieldVariable(), SystemBase::getFieldVariable(), SystemBase::getFVVariable(), AuxiliarySystem::getMinQuadratureOrder(), SystemBase::getMinQuadratureOrder(), SystemBase::getScalarVariable(), SystemBase::getScalarVariables(), SystemBase::getVariable(), SystemBase::getVariableNames(), SystemBase::getVariables(), SystemBase::initialSetup(), SystemBase::jacobianSetup(), SystemBase::nFieldVariables(), SystemBase::nFVVariables(), SystemBase::nVariables(), SystemBase::prepare(), SystemBase::prepareFace(), SystemBase::prepareLowerD(), SystemBase::prepareNeighbor(), SystemBase::reinitElem(), SystemBase::reinitElemFace(), SystemBase::reinitLowerD(), SystemBase::reinitNeighbor(), SystemBase::reinitNeighborFace(), SystemBase::reinitNode(), SystemBase::reinitNodeFace(), SystemBase::reinitNodes(), SystemBase::reinitNodesNeighbor(), SystemBase::reinitScalars(), SystemBase::residualSetup(), SystemBase::setActiveScalarVariableCoupleableVectorTags(), SystemBase::setActiveVariableCoupleableVectorTags(), NonlinearSystemBase::setupScalingData(), SystemBase::subdomainSetup(), and SystemBase::timestepSetup().

◆ _vars_to_be_zeroed_on_jacobian

std::vector<std::string> SystemBase::_vars_to_be_zeroed_on_jacobian
protectedinherited

◆ _vars_to_be_zeroed_on_residual

std::vector<std::string> SystemBase::_vars_to_be_zeroed_on_residual
protectedinherited

◆ _verbose

bool SystemBase::_verbose
protectedinherited

True if printing out additional information.

Definition at line 982 of file SystemBase.h.

Referenced by SystemBase::applyScalingFactors(), and SystemBase::setVerboseFlag().


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