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

A system that holds auxiliary variables. More...

#include <AuxiliarySystem.h>

Inheritance diagram for AuxiliarySystem:
[legend]

Public Member Functions

 AuxiliarySystem (FEProblemBase &subproblem, const std::string &name)
 
virtual ~AuxiliarySystem ()
 
virtual void init () override
 Initialize the system. More...
 
virtual void addExtraVectors () override
 Method called during initialSetup to add extra system vector if they are required by the simulation. More...
 
virtual void initialSetup ()
 
virtual void timestepSetup ()
 
virtual void subdomainSetup ()
 
virtual void residualSetup ()
 
virtual void jacobianSetup ()
 
virtual void updateActive (THREAD_ID tid)
 
virtual void addVariable (const std::string &var_name, const FEType &type, Real scale_factor, const std::set< SubdomainID > *const active_subdomains=NULL) override
 Adds a variable to the system. More...
 
void addTimeIntegrator (const std::string &type, const std::string &name, InputParameters parameters)
 Add a time integrator. More...
 
void addDotVectors ()
 Adds u_dot, u_dotdot, u_dot_old and u_dotdot_old vectors if requested by the time integrator. More...
 
void addKernel (const std::string &kernel_name, const std::string &name, InputParameters parameters)
 Adds an auxiliary kernel. More...
 
void addScalarKernel (const std::string &kernel_name, const std::string &name, InputParameters parameters)
 Adds a scalar kernel. More...
 
virtual void reinitElem (const Elem *elem, THREAD_ID tid) override
 Reinit an element assembly info. More...
 
virtual void reinitElemFace (const Elem *elem, unsigned int side, BoundaryID bnd_id, THREAD_ID tid) override
 Reinit assembly info for a side of an element. More...
 
virtual const NumericVector< Number > *& currentSolution () override
 The solution vector that is currently being operated on. More...
 
virtual NumericVector< Number > * solutionUDot () override
 
virtual NumericVector< Number > * solutionUDotDot () override
 
virtual void serializeSolution ()
 
virtual NumericVector< Number > & serializedSolution () override
 Returns a reference to a serialized version of the solution vector for this subproblem. More...
 
virtual void augmentSparsity (SparsityPattern::Graph &, std::vector< dof_id_type > &, std::vector< dof_id_type > &) override
 Will modify the sparsity pattern to add logical geometric connections. More...
 
virtual void compute (ExecFlagType type)
 Compute auxiliary variables. More...
 
std::set< std::string > getDependObjects (ExecFlagType type)
 Get a list of dependent UserObjects for this exec type. More...
 
std::set< std::string > getDependObjects ()
 
NumericVector< Number > & addVector (const std::string &vector_name, const bool project, const ParallelType type) override
 Adds a solution length vector to the system. More...
 
virtual Order getMinQuadratureOrder () override
 Get the minimum quadrature order for evaluating elemental auxiliary variables. More...
 
bool needMaterialOnSide (BoundaryID bnd_id)
 Indicated whether this system needs material properties on boundaries. More...
 
virtual NumericVector< Number > & solution () override
 
virtual NumericVector< Number > & solutionOld () override
 
virtual NumericVector< Number > & solutionOlder () override
 
virtual TransientExplicitSystem & sys ()
 
virtual System & system () override
 Get the reference to the libMesh system. More...
 
virtual const System & system () const override
 
virtual NumericVector< Number > * solutionUDotOld () override
 
virtual NumericVector< Number > * solutionUDotDotOld () override
 
virtual NumericVector< Number > * solutionPreviousNewton () override
 
virtual void setPreviousNewtonSolution ()
 
void setScalarVariableCoupleableTags (ExecFlagType type)
 
void clearScalarVariableCoupleableTags ()
 
virtual unsigned int number () const
 Gets the number of this system. More...
 
virtual MooseMeshmesh ()
 
virtual SubProblemsubproblem ()
 
virtual DofMap & dofMap ()
 Gets the dof map. More...
 
virtual void initializeObjects ()
 Called only once, just before the solve begins so objects can do some precalculations. More...
 
virtual void update ()
 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...
 
virtual Number & duDotDu ()
 
virtual Number & duDotDotDu ()
 
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 bool hasVector (TagID tag_id)
 Check if the tagged vector exists in the system. More...
 
virtual TagID timeVectorTag ()
 Ideally, we should not need this API. More...
 
virtual TagID timeMatrixTag ()
 Return the Matrix Tag ID for Time. More...
 
virtual TagID systemMatrixTag ()
 Return the Matrix Tag ID for System. More...
 
virtual TagID nonTimeVectorTag ()
 
virtual TagID residualVectorTag ()
 
virtual NumericVector< Number > & getVector (const std::string &name)
 Get a raw NumericVector. More...
 
virtual NumericVector< Number > & getVector (TagID tag)
 Get a raw NumericVector. More...
 
virtual void associateVectorToTag (NumericVector< Number > &vec, TagID tag)
 Associate a vector for a given tag. More...
 
virtual void disassociateVectorFromTag (NumericVector< Number > &vec, TagID tag)
 Associate a vector for a given tag. More...
 
virtual void disassociateAllTaggedVectors ()
 Disassociate all vectors, and then hasVector() will return false. More...
 
virtual bool hasMatrix (TagID tag)
 Check if the tagged matrix exists in the system. More...
 
virtual SparseMatrix< Number > & getMatrix (TagID tag)
 Get a raw SparseMatrix. 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)
 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...
 
virtual void associateMatrixToTag (SparseMatrix< Number > &matrix, TagID tag)
 associate a matirx to a tag More...
 
virtual void disassociateMatrixFromTag (SparseMatrix< Number > &matrix, TagID tag)
 disassociate a matirx from a tag More...
 
virtual void disassociateAllTaggedMatrices ()
 Clear all tagged matrices. More...
 
virtual NumericVector< Number > & residualCopy ()
 
virtual NumericVector< Number > & residualGhosted ()
 
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. More...
 
virtual bool isScalarVariable (unsigned int var_name) const
 
MooseVariableFEBasegetVariable (THREAD_ID tid, const std::string &var_name)
 Gets a reference to a variable of with specified name. More...
 
MooseVariableFEBasegetVariable (THREAD_ID tid, unsigned int var_number)
 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...
 
virtual MooseVariableScalargetScalarVariable (THREAD_ID tid, const std::string &var_name)
 Gets a reference to a scalar variable with specified number. More...
 
virtual MooseVariableScalargetScalarVariable (THREAD_ID tid, unsigned int var_number)
 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...
 
size_t getMaxVarNDofsPerElem ()
 Gets the maximum number of dofs used by any one variable on any one element. More...
 
virtual void addVariableToZeroOnResidual (std::string var_name)
 Adds this variable to the list of variables to be zeroed during each residual evaluation. More...
 
virtual void addVariableToZeroOnJacobian (std::string var_name)
 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)
 Zero out the solution for the list of variables passed in. 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 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 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 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)
 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< MooseVariableFEBase * > & getVariables (THREAD_ID tid)
 
const std::vector< MooseVariableScalar * > & getScalarVariables (THREAD_ID tid)
 
const std::set< SubdomainID > & getSubdomainsForVar (unsigned int var_number) const
 
virtual void removeVector (const std::string &name)
 Remove a vector from the system with the given name. More...
 
virtual void removeVector (TagID tag_id)
 Remove a solution length vector from the system with the specified TagID. 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...
 
virtual void closeTaggedVectors (const std::set< TagID > &tags)
 Close all vectors for given tags. More...
 
virtual void zeroTaggedVectors (const std::set< TagID > &tags)
 Zero all vectors for given tags. More...
 
virtual SparseMatrix< Number > & addMatrix (TagID)
 Adds a jacobian sized vector. More...
 
virtual void removeMatrix (TagID)
 Removes a jacobian sized vector. More...
 
virtual const std::string & name () const
 
virtual void addScalarVariable (const std::string &var_name, Order order, Real scale_factor, const std::set< SubdomainID > *const active_subdomains=NULL)
 Adds a scalar variable. More...
 
const std::vector< VariableName > & getVariableNames () const
 
virtual void computeVariables (const NumericVector< Number > &)
 
void copyVars (ExodusII_IO &io)
 
virtual void copySolutionsBackwards ()
 Copy current solution into old and older. More...
 
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
 

Protected Member Functions

void computeScalarVars (ExecFlagType type)
 
void computeNodalVars (ExecFlagType type)
 
void computeElementalVars (ExecFlagType type)
 
PerfID registerTimedSection (const std::string &section_name, const unsigned int level)
 Call to register a named section for timing. More...
 

Protected Attributes

FEProblemBase_fe_problem
 
TransientExplicitSystem & _sys
 
const NumericVector< Number > * _current_solution
 solution vector from nonlinear solver More...
 
NumericVector< Number > & _serialized_solution
 Serialized version of the solution vector. More...
 
NumericVector< Number > * _solution_previous_nl
 Solution vector of the previous nonlinear iterate. More...
 
std::shared_ptr< TimeIntegrator_time_integrator
 Time integrator. More...
 
NumericVector< Number > * _u_dot
 solution vector for u^dot More...
 
NumericVector< Number > * _u_dotdot
 solution vector for u^dotdot More...
 
NumericVector< Number > * _u_dot_old
 Old solution vector for u^dot. More...
 
NumericVector< Number > * _u_dotdot_old
 Old solution vector for u^dotdot. More...
 
bool _need_serialized_solution
 Whether or not a copy of the residual needs to be made. More...
 
std::vector< std::map< std::string, MooseVariable * > > _nodal_vars
 
std::vector< std::map< std::string, MooseVariable * > > _elem_vars
 
ExecuteMooseObjectWarehouse< AuxScalarKernel_aux_scalar_storage
 
ExecuteMooseObjectWarehouse< AuxKernel_nodal_aux_storage
 
ExecuteMooseObjectWarehouse< AuxKernel_elemental_aux_storage
 
PerfID _compute_scalar_vars_timer
 Timers. More...
 
PerfID _compute_nodal_vars_timer
 
PerfID _compute_elemental_vars_timer
 
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...
 
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...
 
const InputParameters_pg_params
 Params. More...
 
PerfGraph_perf_graph
 The performance graph to add to. More...
 
std::string _prefix
 A prefix to use for all sections. More...
 

Friends

class AuxKernel
 
class ComputeNodalAuxVarsThread
 
class ComputeNodalAuxBcsThread
 
class ComputeElemAuxVarsThread
 
class ComputeElemAuxBcsThread
 
class ComputeIndicatorThread
 
class ComputeMarkerThread
 
class FlagElementsThread
 
class ComputeNodalKernelsThread
 
class ComputeNodalKernelBcsThread
 
class ComputeNodalKernelJacobiansThread
 
class ComputeNodalKernelBCJacobiansThread
 

Detailed Description

A system that holds auxiliary variables.

Definition at line 39 of file AuxiliarySystem.h.

Constructor & Destructor Documentation

◆ AuxiliarySystem()

AuxiliarySystem::AuxiliarySystem ( FEProblemBase subproblem,
const std::string &  name 
)

Definition at line 32 of file AuxiliarySystem.C.

34  PerfGraphInterface(subproblem.getMooseApp().perfGraph(), "AuxiliarySystem"),
36  _sys(subproblem.es().add_system<TransientExplicitSystem>(name)),
37  _current_solution(NULL),
38  _serialized_solution(*NumericVector<Number>::build(_fe_problem.comm()).release()),
40  _u_dot(NULL),
41  _u_dotdot(NULL),
42  _u_dot_old(NULL),
43  _u_dotdot_old(NULL),
48  _compute_scalar_vars_timer(registerTimedSection("computeScalarVars", 1)),
49  _compute_nodal_vars_timer(registerTimedSection("computeNodalVars", 1)),
50  _compute_elemental_vars_timer(registerTimedSection("computeElementalVars", 1))
51 {
52  _nodal_vars.resize(libMesh::n_threads());
53  _elem_vars.resize(libMesh::n_threads());
54 }
PerfID registerTimedSection(const std::string &section_name, const unsigned int level)
Call to register a named section for timing.
ExecuteMooseObjectWarehouse< AuxKernel > _nodal_aux_storage
virtual const std::string & name() const
Definition: SystemBase.h:638
NumericVector< Number > & _serialized_solution
Serialized version of the solution vector.
NumericVector< Number > * _u_dotdot
solution vector for u^dotdot
PerfID _compute_nodal_vars_timer
std::vector< std::map< std::string, MooseVariable * > > _nodal_vars
PerfID _compute_elemental_vars_timer
NumericVector< Number > * _u_dot
solution vector for u^dot
const ExecFlagEnum & getExecuteOnEnum() const
Return the app level ExecFlagEnum, this contains all the available flags for the app.
Definition: MooseApp.h:647
const NumericVector< Number > * _current_solution
solution vector from nonlinear solver
ExecuteMooseObjectWarehouse< AuxScalarKernel > _aux_scalar_storage
virtual EquationSystems & es()=0
std::vector< std::map< std::string, MooseVariable * > > _elem_vars
FEProblemBase & _fe_problem
virtual SubProblem & subproblem()
Definition: SystemBase.h:103
TransientExplicitSystem & _sys
bool _need_serialized_solution
Whether or not a copy of the residual needs to be made.
MooseApp & _app
Definition: SystemBase.h:665
NumericVector< Number > * _u_dot_old
Old solution vector for u^dot.
SystemBase(SubProblem &subproblem, const std::string &name, Moose::VarKindType var_kind)
Definition: SystemBase.C:80
PerfID _compute_scalar_vars_timer
Timers.
ExecuteMooseObjectWarehouse< AuxKernel > _elemental_aux_storage
MooseApp & getMooseApp() const
Get the MooseApp this object is associated with.
Definition: MooseObject.h:86
PerfGraphInterface(const MooseObject *moose_object)
For objects that are MooseObjects with a default prefix of type()
NumericVector< Number > * _u_dotdot_old
Old solution vector for u^dotdot.
NumericVector< Number > * _solution_previous_nl
Solution vector of the previous nonlinear iterate.
PerfGraph & perfGraph()
Get the PerfGraph for this app.
Definition: MooseApp.h:97

◆ ~AuxiliarySystem()

AuxiliarySystem::~AuxiliarySystem ( )
virtual

Definition at line 56 of file AuxiliarySystem.C.

56 { delete &_serialized_solution; }
NumericVector< Number > & _serialized_solution
Serialized version of the solution vector.

Member Function Documentation

◆ activeAllMatrixTags()

void SystemBase::activeAllMatrixTags ( )
virtualinherited

Make all exsiting matrices ative.

Definition at line 850 of file SystemBase.C.

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

851 {
852  auto num_matrix_tags = _subproblem.numMatrixTags();
853 
854  _matrix_tag_active_flags.resize(num_matrix_tags);
855 
856  for (decltype(num_matrix_tags) tag = 0; tag < num_matrix_tags; tag++)
857  if (hasMatrix(tag))
858  _matrix_tag_active_flags[tag] = true;
859  else
860  _matrix_tag_active_flags[tag] = false;
861 }
virtual bool hasMatrix(TagID tag)
Check if the tagged matrix exists in the system.
Definition: SystemBase.C:766
std::vector< bool > _matrix_tag_active_flags
Active flags for tagged matrices.
Definition: SystemBase.h:688
SubProblem & _subproblem
Definition: SystemBase.h:663
virtual unsigned int numMatrixTags()
The total number of tags.
Definition: SubProblem.h:145

◆ activeMatrixTag()

void SystemBase::activeMatrixTag ( TagID  tag)
virtualinherited

Active a matrix for tag.

Definition at line 815 of file SystemBase.C.

816 {
817  mooseAssert(_subproblem.matrixTagExists(tag),
818  "Cannot active Matrix with matrix_tag : " << tag << "that does not exist");
819 
820  if (_matrix_tag_active_flags.size() < tag + 1)
821  _matrix_tag_active_flags.resize(tag + 1);
822 
823  _matrix_tag_active_flags[tag] = true;
824 }
virtual bool matrixTagExists(const TagName &tag_name)
Check to see if a particular Tag exists.
Definition: SubProblem.C:118
std::vector< bool > _matrix_tag_active_flags
Active flags for tagged matrices.
Definition: SystemBase.h:688
SubProblem & _subproblem
Definition: SystemBase.h:663

◆ addDotVectors()

void AuxiliarySystem::addDotVectors ( )

Adds u_dot, u_dotdot, u_dot_old and u_dotdot_old vectors if requested by the time integrator.

Definition at line 64 of file AuxiliarySystem.C.

65 {
67  _u_dot = &addVector("u_dot", true, GHOSTED);
69  _u_dotdot = &addVector("u_dotdot", true, GHOSTED);
71  _u_dot_old = &addVector("u_dot_old", true, GHOSTED);
73  _u_dotdot_old = &addVector("u_dotdot_old", true, GHOSTED);
74 }
virtual bool uDotDotOldRequested()
Get boolean flag to check whether old solution second time derivative needs to be stored...
NumericVector< Number > * _u_dotdot
solution vector for u^dotdot
NumericVector< Number > * _u_dot
solution vector for u^dot
virtual bool uDotRequested()
Get boolean flag to check whether solution time derivative needs to be stored.
virtual bool uDotDotRequested()
Get boolean flag to check whether solution second time derivative needs to be stored.
NumericVector< Number > & addVector(const std::string &vector_name, const bool project, const ParallelType type) override
Adds a solution length vector to the system.
FEProblemBase & _fe_problem
virtual bool uDotOldRequested()
Get boolean flag to check whether old solution time derivative needs to be stored.
NumericVector< Number > * _u_dot_old
Old solution vector for u^dot.
NumericVector< Number > * _u_dotdot_old
Old solution vector for u^dotdot.

◆ addExtraVectors()

void AuxiliarySystem::addExtraVectors ( )
overridevirtual

Method called during initialSetup to add extra system vector if they are required by the simulation.

Reimplemented from SystemBase.

Definition at line 77 of file AuxiliarySystem.C.

78 {
80  _solution_previous_nl = &addVector("u_previous_newton", true, GHOSTED);
81 }
NumericVector< Number > & addVector(const std::string &vector_name, const bool project, const ParallelType type) override
Adds a solution length vector to the system.
FEProblemBase & _fe_problem
void needsPreviousNewtonIteration(bool state)
Set a flag that indicated that user required values for the previous Newton iterate.
NumericVector< Number > * _solution_previous_nl
Solution vector of the previous nonlinear iterate.

◆ addKernel()

void AuxiliarySystem::addKernel ( const std::string &  kernel_name,
const std::string &  name,
InputParameters  parameters 
)

Adds an auxiliary kernel.

Parameters
kernel_nameThe type of the kernel
nameThe name of the kernel
parametersParameters for this kernel

Definition at line 181 of file AuxiliarySystem.C.

184 {
185  parameters.set<AuxiliarySystem *>("_aux_sys") = this;
186 
187  for (THREAD_ID tid = 0; tid < libMesh::n_threads(); tid++)
188  {
189  std::shared_ptr<AuxKernel> kernel =
190  _factory.create<AuxKernel>(kernel_name, name, parameters, tid);
191  if (kernel->isNodal())
192  _nodal_aux_storage.addObject(kernel, tid);
193  else
194  _elemental_aux_storage.addObject(kernel, tid);
195  }
196 }
ExecuteMooseObjectWarehouse< AuxKernel > _nodal_aux_storage
std::shared_ptr< MooseObject > create(const std::string &obj_name, const std::string &name, InputParameters parameters, THREAD_ID tid=0, bool print_deprecated=true)
Build an object (must be registered) - THIS METHOD IS DEPRECATED (Use create<T>()) ...
Definition: Factory.C:87
virtual const std::string & name() const
Definition: SystemBase.h:638
T & set(const std::string &name, bool quiet_mode=false)
Returns a writable reference to the named parameters.
Factory & _factory
Definition: SystemBase.h:666
Base class for creating new auxiliary kernels and auxiliary boundary conditions.
Definition: AuxKernel.h:46
virtual void addObject(std::shared_ptr< T > object, THREAD_ID tid=0, bool recurse=true)
Adds an object to the storage structure.
ExecuteMooseObjectWarehouse< AuxKernel > _elemental_aux_storage
A system that holds auxiliary variables.
unsigned int THREAD_ID
Definition: MooseTypes.h:97

◆ addMatrix()

virtual SparseMatrix<Number>& SystemBase::addMatrix ( TagID  )
inlinevirtualinherited

Adds a jacobian sized vector.

Parameters
tag_nameThe name of the tag

Reimplemented in NonlinearSystem.

Definition at line 623 of file SystemBase.h.

624  {
625  mooseError("Adding a matrix is not supported for this type of system!");
626  }
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:208

◆ addScalarKernel()

void AuxiliarySystem::addScalarKernel ( const std::string &  kernel_name,
const std::string &  name,
InputParameters  parameters 
)

Adds a scalar kernel.

Parameters
kernel_nameThe type of the kernel
nameThe name of the kernel
parametersKernel parameters

Definition at line 199 of file AuxiliarySystem.C.

202 {
203  for (THREAD_ID tid = 0; tid < libMesh::n_threads(); tid++)
204  {
205  std::shared_ptr<AuxScalarKernel> kernel =
206  _factory.create<AuxScalarKernel>(kernel_name, name, parameters, tid);
207  _aux_scalar_storage.addObject(kernel, tid);
208  }
209 }
std::shared_ptr< MooseObject > create(const std::string &obj_name, const std::string &name, InputParameters parameters, THREAD_ID tid=0, bool print_deprecated=true)
Build an object (must be registered) - THIS METHOD IS DEPRECATED (Use create<T>()) ...
Definition: Factory.C:87
virtual const std::string & name() const
Definition: SystemBase.h:638
Factory & _factory
Definition: SystemBase.h:666
ExecuteMooseObjectWarehouse< AuxScalarKernel > _aux_scalar_storage
Base class for making kernels that work on auxiliary scalar variables.
virtual void addObject(std::shared_ptr< T > object, THREAD_ID tid=0, bool recurse=true)
Adds an object to the storage structure.
unsigned int THREAD_ID
Definition: MooseTypes.h:97

◆ addScalarVariable()

void SystemBase::addScalarVariable ( const std::string &  var_name,
Order  order,
Real  scale_factor,
const std::set< SubdomainID > *const  active_subdomains = NULL 
)
virtualinherited

Adds a scalar variable.

Parameters
var_nameThe name of the variable
orderThe order of the variable
scale_factorThe scaling factor to be used with this scalar variable

Definition at line 613 of file SystemBase.C.

Referenced by DisplacedProblem::addAuxScalarVariable(), and DisplacedProblem::addScalarVariable().

617 {
618  FEType type(order, SCALAR);
619  unsigned int var_num = system().add_variable(var_name, type, active_subdomains);
620  for (THREAD_ID tid = 0; tid < libMesh::n_threads(); tid++)
621  {
622  // FIXME: we cannot refer fetype in libMesh at this point, so we will just make a copy in
623  // MooseVariableBase.
624  MooseVariableScalar * var =
625  new MooseVariableScalar(var_num, type, *this, _subproblem.assembly(tid), _var_kind, tid);
626  var->scalingFactor(scale_factor);
627  _vars[tid].add(var_name, var);
628  }
629  if (active_subdomains == nullptr)
630  _var_map[var_num] = std::set<SubdomainID>();
631  else
632  for (const auto subdomain_id : *active_subdomains)
633  _var_map[var_num].insert(subdomain_id);
634 }
virtual Assembly & assembly(THREAD_ID tid)=0
SubProblem & _subproblem
Definition: SystemBase.h:663
Moose::VarKindType _var_kind
default kind of variables in this system
Definition: SystemBase.h:699
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:675
std::vector< VariableWarehouse > _vars
Variable warehouses (one for each thread)
Definition: SystemBase.h:673
MatType type
Class for scalar variables (they are different).
unsigned int THREAD_ID
Definition: MooseTypes.h:97
void scalingFactor(Real factor)
Set the scaling factor for this variable.

◆ addTimeIntegrator()

void AuxiliarySystem::addTimeIntegrator ( const std::string &  type,
const std::string &  name,
InputParameters  parameters 
)

Add a time integrator.

Parameters
typeType of the integrator
nameThe name of the integrator
parametersIntegrator params

Definition at line 172 of file AuxiliarySystem.C.

175 {
176  parameters.set<SystemBase *>("_sys") = this;
178 }
std::shared_ptr< MooseObject > create(const std::string &obj_name, const std::string &name, InputParameters parameters, THREAD_ID tid=0, bool print_deprecated=true)
Build an object (must be registered) - THIS METHOD IS DEPRECATED (Use create<T>()) ...
Definition: Factory.C:87
virtual const std::string & name() const
Definition: SystemBase.h:638
T & set(const std::string &name, bool quiet_mode=false)
Returns a writable reference to the named parameters.
Factory & _factory
Definition: SystemBase.h:666
Base class for a system (of equations)
Definition: SystemBase.h:91
MatType type
Base class for time integrators.
std::shared_ptr< TimeIntegrator > _time_integrator
Time integrator.

◆ addVariable()

void AuxiliarySystem::addVariable ( const std::string &  var_name,
const FEType &  type,
Real  scale_factor,
const std::set< SubdomainID > *const  active_subdomains = NULL 
)
overridevirtual

Adds a variable to the system.

Parameters
var_namename of the variable
typeFE type of the variable
scale_factorthe scaling factor for the variable
active_subdomainsa list of subdomain ids this variable is active on

Reimplemented from SystemBase.

Definition at line 152 of file AuxiliarySystem.C.

156 {
157  SystemBase::addVariable(var_name, type, scale_factor, active_subdomains);
158  for (THREAD_ID tid = 0; tid < libMesh::n_threads(); tid++)
159  {
160  MooseVariable * var = _vars[tid].getFieldVariable<Real>(var_name);
161  if (var != NULL)
162  {
163  if (var->feType().family == LAGRANGE)
164  _nodal_vars[tid][var_name] = var;
165  else
166  _elem_vars[tid][var_name] = var;
167  }
168  }
169 }
std::vector< std::map< std::string, MooseVariable * > > _nodal_vars
virtual void addVariable(const std::string &var_name, const FEType &type, Real scale_factor, const std::set< SubdomainID > *const active_subdomains=NULL)
Adds a variable to the system.
Definition: SystemBase.C:582
const FEType & feType() const
Get the type of finite element object.
std::vector< std::map< std::string, MooseVariable * > > _elem_vars
std::vector< VariableWarehouse > _vars
Variable warehouses (one for each thread)
Definition: SystemBase.h:673
MatType type
unsigned int THREAD_ID
Definition: MooseTypes.h:97

◆ 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 891 of file SystemBase.C.

894 {
895  _var_to_copy.push_back(VarCopyInfo(dest_name, source_name, timestep));
896 }
std::vector< VarCopyInfo > _var_to_copy
Definition: SystemBase.h:701
Information about variables that will be copied.
Definition: SystemBase.h:73

◆ addVariableToZeroOnJacobian()

void SystemBase::addVariableToZeroOnJacobian ( std::string  var_name)
virtualinherited

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 in DisplacedSystem.

Definition at line 169 of file SystemBase.C.

Referenced by DisplacedSystem::addVariableToZeroOnJacobian(), ADKernel< compute_stage >::ADKernel(), DGKernel::DGKernel(), IntegratedBC::IntegratedBC(), InterfaceKernel::InterfaceKernel(), Kernel::Kernel(), NodalBC::NodalBC(), and NodalKernel::NodalKernel().

170 {
171  _vars_to_be_zeroed_on_jacobian.push_back(var_name);
172 }
std::vector< std::string > _vars_to_be_zeroed_on_jacobian
Definition: SystemBase.h:678

◆ addVariableToZeroOnResidual()

void SystemBase::addVariableToZeroOnResidual ( std::string  var_name)
virtualinherited

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 in DisplacedSystem.

Definition at line 163 of file SystemBase.C.

Referenced by DisplacedSystem::addVariableToZeroOnResidual(), ADKernel< compute_stage >::ADKernel(), DGKernel::DGKernel(), IntegratedBC::IntegratedBC(), InterfaceKernel::InterfaceKernel(), Kernel::Kernel(), NodalBC::NodalBC(), and NodalKernel::NodalKernel().

164 {
165  _vars_to_be_zeroed_on_residual.push_back(var_name);
166 }
std::vector< std::string > _vars_to_be_zeroed_on_residual
Definition: SystemBase.h:677

◆ addVector() [1/2]

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

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.

Reimplemented from SystemBase.

Definition at line 375 of file AuxiliarySystem.C.

Referenced by addDotVectors(), and addExtraVectors().

378 {
379  if (hasVector(vector_name))
380  return getVector(vector_name);
381 
382  NumericVector<Number> * vec = &_sys.add_vector(vector_name, project, type);
383 
384  return *vec;
385 }
bool hasVector(const std::string &tag_name) const
Check if the named vector exists in the system.
Definition: SystemBase.C:670
TransientExplicitSystem & _sys
MatType type
virtual NumericVector< Number > & getVector(const std::string &name)
Get a raw NumericVector.
Definition: SystemBase.C:720

◆ 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 521 of file SystemBase.C.

522 {
523  if (!_subproblem.vectorTagExists(tag))
524  mooseError("Cannot add a tagged vector with vector_tag, ",
525  tag,
526  ", that tag does not exist in System ",
527  name());
528 
529  if (hasVector(tag))
530  return getVector(tag);
531 
532  auto vector_name = _subproblem.vectorTagName(tag);
533 
534  NumericVector<Number> & vec = system().add_vector(vector_name, project, type);
535 
536  if (_tagged_vectors.size() < tag + 1)
537  _tagged_vectors.resize(tag + 1);
538 
539  _tagged_vectors[tag] = &vec;
540 
541  return vec;
542 }
virtual const std::string & name() const
Definition: SystemBase.h:638
virtual TagName vectorTagName(TagID tag)
Retrieve the name associated with a TagID.
Definition: SubProblem.C:95
bool hasVector(const std::string &tag_name) const
Check if the named vector exists in the system.
Definition: SystemBase.C:670
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:208
SubProblem & _subproblem
Definition: SystemBase.h:663
virtual bool vectorTagExists(TagID tag)
Check to see if a particular Tag exists.
Definition: SubProblem.h:100
virtual System & system()=0
Get the reference to the libMesh system.
MatType type
std::vector< NumericVector< Number > * > _tagged_vectors
Tagged vectors (pointer)
Definition: SystemBase.h:684
virtual NumericVector< Number > & getVector(const std::string &name)
Get a raw NumericVector.
Definition: SystemBase.C:720

◆ associateMatrixToTag()

void SystemBase::associateMatrixToTag ( SparseMatrix< Number > &  matrix,
TagID  tag 
)
virtualinherited

associate a matirx to a tag

Reimplemented in DisplacedSystem.

Definition at line 788 of file SystemBase.C.

Referenced by DisplacedSystem::associateMatrixToTag(), and NonlinearSystemBase::computeJacobian().

789 {
790  mooseAssert(_subproblem.matrixTagExists(tag),
791  "Cannot associate Matrix with matrix_tag : " << tag << "that does not exist");
792 
793  if (_tagged_matrices.size() < tag + 1)
794  _tagged_matrices.resize(tag + 1);
795 
796  _tagged_matrices[tag] = &matrix;
797 }
std::vector< SparseMatrix< Number > * > _tagged_matrices
Tagged matrices (pointer)
Definition: SystemBase.h:686
virtual bool matrixTagExists(const TagName &tag_name)
Check to see if a particular Tag exists.
Definition: SubProblem.C:118
SubProblem & _subproblem
Definition: SystemBase.h:663

◆ associateVectorToTag()

void SystemBase::associateVectorToTag ( NumericVector< Number > &  vec,
TagID  tag 
)
virtualinherited

Associate a vector for a given tag.

Reimplemented in DisplacedSystem.

Definition at line 734 of file SystemBase.C.

Referenced by DisplacedSystem::associateVectorToTag(), NonlinearSystemBase::computeNodalBCs(), and NonlinearSystemBase::computeResidualTag().

735 {
736  mooseAssert(_subproblem.vectorTagExists(tag),
737  "You can't associate a tag that does not exist " << tag);
738  if (_tagged_vectors.size() < tag + 1)
739  _tagged_vectors.resize(tag + 1);
740 
741  _tagged_vectors[tag] = &vec;
742 }
SubProblem & _subproblem
Definition: SystemBase.h:663
virtual bool vectorTagExists(TagID tag)
Check to see if a particular Tag exists.
Definition: SubProblem.h:100
std::vector< NumericVector< Number > * > _tagged_vectors
Tagged vectors (pointer)
Definition: SystemBase.h:684

◆ augmentSendList()

void SystemBase::augmentSendList ( std::vector< dof_id_type > &  send_list)
virtualinherited

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

Reimplemented in DisplacedSystem.

Definition at line 399 of file SystemBase.C.

Referenced by DisplacedSystem::augmentSendList(), and extraSendList().

400 {
401  std::set<dof_id_type> & ghosted_elems = _subproblem.ghostedElems();
402 
403  DofMap & dof_map = dofMap();
404 
405  std::vector<dof_id_type> dof_indices;
406 
407  System & sys = system();
408 
409  unsigned int sys_num = sys.number();
410 
411  unsigned int n_vars = sys.n_vars();
412 
413  for (const auto & elem_id : ghosted_elems)
414  {
415  Elem * elem = _mesh.elemPtr(elem_id);
416 
417  if (elem->active())
418  {
419  dof_map.dof_indices(elem, dof_indices);
420 
421  // Only need to ghost it if it's actually not on this processor
422  for (const auto & dof : dof_indices)
423  if (dof < dof_map.first_dof() || dof >= dof_map.end_dof())
424  send_list.push_back(dof);
425 
426  // Now add the DoFs from all of the nodes. This is necessary because of block
427  // restricted variables. A variable might not live _on_ this element but it
428  // might live on nodes connected to this element.
429  for (unsigned int n = 0; n < elem->n_nodes(); n++)
430  {
431  Node * node = elem->node_ptr(n);
432 
433  // Have to get each variable's dofs
434  for (unsigned int v = 0; v < n_vars; v++)
435  {
436  const Variable & var = sys.variable(v);
437  unsigned int var_num = var.number();
438  unsigned int n_comp = var.n_components();
439 
440  // See if this variable has any dofs at this node
441  if (node->n_dofs(sys_num, var_num) > 0)
442  {
443  // Loop over components of the variable
444  for (unsigned int c = 0; c < n_comp; c++)
445  send_list.push_back(node->dof_number(sys_num, var_num, c));
446  }
447  }
448  }
449  }
450  }
451 }
virtual Elem * elemPtr(const dof_id_type i)
Definition: MooseMesh.C:2219
virtual DofMap & dofMap()
Gets the dof map.
Definition: SystemBase.C:885
DofMap & dof_map
SubProblem & _subproblem
Definition: SystemBase.h:663
virtual std::set< dof_id_type > & ghostedElems()
Return the list of elements that should have their DoFs ghosted to this processor.
Definition: SubProblem.h:493
virtual System & system()=0
Get the reference to the libMesh system.
MooseMesh & _mesh
Definition: SystemBase.h:668
PetscInt n

◆ augmentSparsity()

void AuxiliarySystem::augmentSparsity ( SparsityPattern::Graph &  sparsity,
std::vector< dof_id_type > &  n_nz,
std::vector< dof_id_type > &  n_oz 
)
overridevirtual

Will modify the sparsity pattern to add logical geometric connections.

Implements SystemBase.

Definition at line 538 of file AuxiliarySystem.C.

541 {
542 }

◆ clearScalarVariableCoupleableTags()

void AuxiliarySystem::clearScalarVariableCoupleableTags ( )

Definition at line 409 of file AuxiliarySystem.C.

Referenced by computeScalarVars().

410 {
413 }
virtual void clearActiveScalarVariableCoupleableMatrixTags(THREAD_ID tid) override
virtual void clearActiveScalarVariableCoupleableVectorTags(THREAD_ID tid) override
FEProblemBase & _fe_problem

◆ closeTaggedMatrices()

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

Close all matrices associated the tags.

Definition at line 780 of file SystemBase.C.

Referenced by NonlinearSystemBase::computeJacobianInternal().

781 {
782  for (auto tag : tags)
783  if (hasMatrix(tag))
784  getMatrix(tag).close();
785 }
virtual bool hasMatrix(TagID tag)
Check if the tagged matrix exists in the system.
Definition: SystemBase.C:766
virtual SparseMatrix< Number > & getMatrix(TagID tag)
Get a raw SparseMatrix.
Definition: SystemBase.C:772

◆ closeTaggedVectors()

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

Close all vectors for given tags.

Definition at line 545 of file SystemBase.C.

Referenced by NonlinearSystemBase::computeResidualTags().

546 {
547  for (auto & tag : tags)
548  {
549  mooseAssert(_subproblem.vectorTagExists(tag), "Tag: " << tag << " does not exsit");
550  getVector(tag).close();
551  }
552 }
SubProblem & _subproblem
Definition: SystemBase.h:663
virtual bool vectorTagExists(TagID tag)
Check to see if a particular Tag exists.
Definition: SubProblem.h:100
virtual NumericVector< Number > & getVector(const std::string &name)
Get a raw NumericVector.
Definition: SystemBase.C:720

◆ compute()

void AuxiliarySystem::compute ( ExecFlagType  type)
virtual

Compute auxiliary variables.

Parameters
typeTime flag of which variables should be computed

Definition at line 273 of file AuxiliarySystem.C.

Referenced by setPreviousNewtonSolution().

274 {
275  // avoid division by dt which might be zero.
276  if (_fe_problem.dt() > 0. && _time_integrator)
277  _time_integrator->preStep();
278 
279  // We need to compute time derivatives every time each kind of the variables is finished, because:
280  //
281  // a) the user might want to use the aux variable value somewhere, thus we need to provide the
282  // up-to-date value
283  // b) time integration system works with the whole vectors of solutions, thus we cannot update
284  // only a part of the vector
285  //
286 
287  if (_vars[0].scalars().size() > 0)
288  {
290  // compute time derivatives of scalar aux variables _after_ the values were updated
291  if (_fe_problem.dt() > 0. && _time_integrator)
292  _time_integrator->computeTimeDerivatives();
293  }
294 
295  if (_vars[0].fieldVariables().size() > 0)
296  {
298  // compute time derivatives of nodal aux variables _after_ the values were updated
299  if (_fe_problem.dt() > 0. && _time_integrator)
300  _time_integrator->computeTimeDerivatives();
301  }
302 
303  if (_vars[0].fieldVariables().size() > 0)
304  {
306  // compute time derivatives of elemental aux variables _after_ the values were updated
307  if (_fe_problem.dt() > 0. && _time_integrator)
308  _time_integrator->computeTimeDerivatives();
309  }
310 
313 }
void computeScalarVars(ExecFlagType type)
void computeElementalVars(ExecFlagType type)
FEProblemBase & _fe_problem
bool _need_serialized_solution
Whether or not a copy of the residual needs to be made.
std::vector< VariableWarehouse > _vars
Variable warehouses (one for each thread)
Definition: SystemBase.h:673
MatType type
void computeNodalVars(ExecFlagType type)
virtual void serializeSolution()
virtual Real & dt() const
std::shared_ptr< TimeIntegrator > _time_integrator
Time integrator.

◆ computeElementalVars()

void AuxiliarySystem::computeElementalVars ( ExecFlagType  type)
protected

Definition at line 497 of file AuxiliarySystem.C.

Referenced by compute().

498 {
499  // Reference to the Nodal AuxKernel storage
501 
502  if (elemental.hasActiveBlockObjects())
503  {
504  TIME_SECTION(_compute_elemental_vars_timer);
505 
506  // Block Elemental AuxKernels
507  PARALLEL_TRY
508  {
509  ConstElemRange & range = *_mesh.getActiveLocalElementRange();
510  ComputeElemAuxVarsThread eavt(_fe_problem, elemental, true);
511  Threads::parallel_reduce(range, eavt);
512 
513  solution().close();
514  _sys.update();
515  }
516  PARALLEL_CATCH;
517  }
518 
519  // Boundary Elemental AuxKernels
520  if (elemental.hasActiveBoundaryObjects())
521  {
522  TIME_SECTION(_compute_elemental_vars_timer);
523 
524  PARALLEL_TRY
525  {
527  ComputeElemAuxBcsThread eabt(_fe_problem, elemental, true);
528  Threads::parallel_reduce(bnd_elems, eabt);
529 
530  solution().close();
531  _sys.update();
532  }
533  PARALLEL_CATCH;
534  }
535 }
ConstElemRange * getActiveLocalElementRange()
Return pointers to range objects for various types of ranges (local nodes, boundary elems...
Definition: MooseMesh.C:779
bool hasActiveBlockObjects(THREAD_ID tid=0) const
PerfID _compute_elemental_vars_timer
StoredRange< MooseMesh::const_bnd_elem_iterator, const BndElement * > ConstBndElemRange
Definition: MooseMesh.h:1244
bool hasActiveBoundaryObjects(THREAD_ID tid=0) const
FEProblemBase & _fe_problem
TransientExplicitSystem & _sys
virtual NumericVector< Number > & solution() override
MatType type
MooseMesh & _mesh
Definition: SystemBase.h:668
ExecuteMooseObjectWarehouse< AuxKernel > _elemental_aux_storage
StoredRange< MooseMesh::const_bnd_elem_iterator, const BndElement * > * getBoundaryElementRange()
Definition: MooseMesh.C:843

◆ computeNodalVars()

void AuxiliarySystem::computeNodalVars ( ExecFlagType  type)
protected

Definition at line 456 of file AuxiliarySystem.C.

Referenced by compute().

457 {
458  // Reference to the Nodal AuxKernel storage
460 
461  if (nodal.hasActiveBlockObjects())
462  {
463  TIME_SECTION(_compute_nodal_vars_timer);
464 
465  // Block Nodal AuxKernels
466  PARALLEL_TRY
467  {
468  ConstNodeRange & range = *_mesh.getLocalNodeRange();
470  Threads::parallel_reduce(range, navt);
471 
472  solution().close();
473  _sys.update();
474  }
475  PARALLEL_CATCH;
476  }
477 
478  if (nodal.hasActiveBoundaryObjects())
479  {
480  TIME_SECTION(_compute_nodal_vars_timer);
481 
482  // Boundary Nodal AuxKernels
483  PARALLEL_TRY
484  {
487  Threads::parallel_reduce(bnd_nodes, nabt);
488 
489  solution().close();
490  _sys.update();
491  }
492  PARALLEL_CATCH;
493  }
494 }
ExecuteMooseObjectWarehouse< AuxKernel > _nodal_aux_storage
bool hasActiveBlockObjects(THREAD_ID tid=0) const
PerfID _compute_nodal_vars_timer
ConstNodeRange * getLocalNodeRange()
Definition: MooseMesh.C:816
bool hasActiveBoundaryObjects(THREAD_ID tid=0) const
FEProblemBase & _fe_problem
TransientExplicitSystem & _sys
virtual NumericVector< Number > & solution() override
MatType type
MooseMesh & _mesh
Definition: SystemBase.h:668
StoredRange< MooseMesh::const_bnd_node_iterator, const BndNode * > ConstBndNodeRange
Some useful StoredRange typedefs.
Definition: MooseMesh.h:1243
StoredRange< MooseMesh::const_bnd_node_iterator, const BndNode * > * getBoundaryNodeRange()
Definition: MooseMesh.C:830

◆ computeScalarVars()

void AuxiliarySystem::computeScalarVars ( ExecFlagType  type)
protected

Definition at line 416 of file AuxiliarySystem.C.

Referenced by compute().

417 {
419 
420  // Reference to the current storage container
422 
423  if (storage.hasActiveObjects())
424  {
425  TIME_SECTION(_compute_scalar_vars_timer);
426 
427  PARALLEL_TRY
428  {
429  // FIXME: run multi-threaded
430  THREAD_ID tid = 0;
431  if (storage.hasActiveObjects())
432  {
434 
435  // Call compute() method on all active AuxScalarKernel objects
436  const std::vector<std::shared_ptr<AuxScalarKernel>> & objects =
437  storage.getActiveObjects(tid);
438  for (const auto & obj : objects)
439  obj->compute();
440 
441  const std::vector<MooseVariableScalar *> & scalar_vars = getScalarVariables(tid);
442  for (const auto & var : scalar_vars)
443  var->insert(solution());
444  }
445  }
446  PARALLEL_CATCH;
447 
448  solution().close();
449  _sys.update();
450  }
451 
453 }
const std::vector< MooseVariableScalar * > & getScalarVariables(THREAD_ID tid)
Definition: SystemBase.h:555
ExecuteMooseObjectWarehouse< AuxScalarKernel > _aux_scalar_storage
void setScalarVariableCoupleableTags(ExecFlagType type)
void clearScalarVariableCoupleableTags()
const std::vector< std::shared_ptr< T > > & getActiveObjects(THREAD_ID tid=0) const
Retrieve complete vector to the active all/block/boundary restricted objects for a given thread...
FEProblemBase & _fe_problem
TransientExplicitSystem & _sys
virtual NumericVector< Number > & solution() override
MatType type
virtual void reinitScalars(THREAD_ID tid) override
bool hasActiveObjects(THREAD_ID tid=0) const
Convenience functions for determining if objects exist.
PerfID _compute_scalar_vars_timer
Timers.
unsigned int THREAD_ID
Definition: MooseTypes.h:97

◆ computeVariables()

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

Definition at line 653 of file SystemBase.h.

653 {};

◆ copyOldSolutions()

void SystemBase::copyOldSolutions ( )
virtualinherited

Shifts the solutions backwards in time.

Definition at line 971 of file SystemBase.C.

Referenced by EigenExecutionerBase::inversePowerIteration().

972 {
975  if (solutionUDotOld())
977  if (solutionUDotDotOld())
981 }
virtual NumericVector< Number > * solutionUDot()=0
virtual NumericVector< Number > & solutionOld()=0
virtual NumericVector< Number > * solutionUDotDotOld()=0
virtual NumericVector< Number > * solutionPreviousNewton()=0
virtual NumericVector< Number > & solutionOlder()=0
virtual NumericVector< Number > * solutionUDotOld()=0
virtual NumericVector< Number > * solutionUDotDot()=0
virtual const NumericVector< Number > *& currentSolution()=0
The solution vector that is currently being operated on.

◆ copySolutionsBackwards()

void SystemBase::copySolutionsBackwards ( )
virtualinherited

Copy current solution into old and older.

Definition at line 954 of file SystemBase.C.

955 {
956  system().update();
959  if (solutionUDotOld())
961  if (solutionUDotDotOld())
965 }
virtual NumericVector< Number > * solutionUDot()=0
virtual NumericVector< Number > & solutionOld()=0
virtual NumericVector< Number > * solutionUDotDotOld()=0
virtual NumericVector< Number > * solutionPreviousNewton()=0
virtual System & system()=0
Get the reference to the libMesh system.
virtual NumericVector< Number > & solutionOlder()=0
virtual NumericVector< Number > * solutionUDotOld()=0
virtual NumericVector< Number > * solutionUDotDot()=0
virtual const NumericVector< Number > *& currentSolution()=0
The solution vector that is currently being operated on.

◆ copyVars()

void SystemBase::copyVars ( ExodusII_IO &  io)
inherited

Definition at line 899 of file SystemBase.C.

900 {
901  int n_steps = io.get_num_time_steps();
902 
903  bool did_copy = false;
904  for (const auto & vci : _var_to_copy)
905  {
906  int timestep = -1;
907 
908  if (vci._timestep == "LATEST")
909  // Use the last time step in the file from which to retrieve the solution
910  timestep = n_steps;
911  else
912  {
913  timestep = MooseUtils::convert<int>(vci._timestep);
914  if (timestep > n_steps)
915  mooseError("Invalid value passed as \"initial_from_file_timestep\". Expected \"LATEST\" or "
916  "a valid integer between 1 and ",
917  n_steps,
918  " inclusive, received ",
919  vci._timestep);
920  }
921 
922  did_copy = true;
923  if (getVariable(0, vci._dest_name).isNodal())
924  io.copy_nodal_solution(system(), vci._dest_name, vci._source_name, timestep);
925  else
926  io.copy_elemental_solution(system(), vci._dest_name, vci._source_name, timestep);
927  }
928 
929  if (did_copy)
930  solution().close();
931 }
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:208
MooseVariableFEBase & getVariable(THREAD_ID tid, const std::string &var_name)
Gets a reference to a variable of with specified name.
Definition: SystemBase.C:101
virtual bool isNodal() const =0
Is this variable nodal.
std::vector< VarCopyInfo > _var_to_copy
Definition: SystemBase.h:701
int convert< int >(const std::string &str, bool throw_on_failure)
Definition: MooseUtils.C:667
virtual System & system()=0
Get the reference to the libMesh system.
virtual NumericVector< Number > & solution()=0

◆ currentSolution()

virtual const NumericVector<Number>*& AuxiliarySystem::currentSolution ( )
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 98 of file AuxiliarySystem.h.

Referenced by AB2PredictorCorrector::step(), DisplacedProblem::syncSolutions(), and DisplacedProblem::updateMesh().

99  {
100  _current_solution = _sys.current_local_solution.get();
101  return _current_solution;
102  }
const NumericVector< Number > * _current_solution
solution vector from nonlinear solver
TransientExplicitSystem & _sys

◆ deactiveAllMatrixTags()

void SystemBase::deactiveAllMatrixTags ( )
virtualinherited

Make matrices inactive.

Definition at line 839 of file SystemBase.C.

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

840 {
841  auto num_matrix_tags = _subproblem.numMatrixTags();
842 
843  _matrix_tag_active_flags.resize(num_matrix_tags);
844 
845  for (decltype(num_matrix_tags) tag = 0; tag < num_matrix_tags; tag++)
846  _matrix_tag_active_flags[tag] = false;
847 }
std::vector< bool > _matrix_tag_active_flags
Active flags for tagged matrices.
Definition: SystemBase.h:688
SubProblem & _subproblem
Definition: SystemBase.h:663
virtual unsigned int numMatrixTags()
The total number of tags.
Definition: SubProblem.h:145

◆ deactiveMatrixTag()

void SystemBase::deactiveMatrixTag ( TagID  tag)
virtualinherited

deactive a matrix for tag

Definition at line 827 of file SystemBase.C.

828 {
829  mooseAssert(_subproblem.matrixTagExists(tag),
830  "Cannot deactivate Matrix with matrix_tag : " << tag << "that does not exist");
831 
832  if (_matrix_tag_active_flags.size() < tag + 1)
833  _matrix_tag_active_flags.resize(tag + 1);
834 
835  _matrix_tag_active_flags[tag] = false;
836 }
virtual bool matrixTagExists(const TagName &tag_name)
Check to see if a particular Tag exists.
Definition: SubProblem.C:118
std::vector< bool > _matrix_tag_active_flags
Active flags for tagged matrices.
Definition: SystemBase.h:688
SubProblem & _subproblem
Definition: SystemBase.h:663

◆ disassociateAllTaggedMatrices()

void SystemBase::disassociateAllTaggedMatrices ( )
virtualinherited

Clear all tagged matrices.

Reimplemented in DisplacedSystem.

Definition at line 872 of file SystemBase.C.

Referenced by DisplacedSystem::disassociateAllTaggedMatrices().

873 {
874  for (auto & matrix : _tagged_matrices)
875  matrix = nullptr;
876 }
std::vector< SparseMatrix< Number > * > _tagged_matrices
Tagged matrices (pointer)
Definition: SystemBase.h:686

◆ disassociateAllTaggedVectors()

void SystemBase::disassociateAllTaggedVectors ( )
virtualinherited

Disassociate all vectors, and then hasVector() will return false.

Reimplemented in DisplacedSystem.

Definition at line 759 of file SystemBase.C.

Referenced by DisplacedSystem::disassociateAllTaggedVectors().

760 {
761  for (auto & tagged_vector : _tagged_vectors)
762  tagged_vector = nullptr;
763 }
std::vector< NumericVector< Number > * > _tagged_vectors
Tagged vectors (pointer)
Definition: SystemBase.h:684

◆ disassociateMatrixFromTag()

void SystemBase::disassociateMatrixFromTag ( SparseMatrix< Number > &  matrix,
TagID  tag 
)
virtualinherited

disassociate a matirx from a tag

Reimplemented in DisplacedSystem.

Definition at line 800 of file SystemBase.C.

Referenced by NonlinearSystemBase::computeJacobian(), and DisplacedSystem::disassociateMatrixFromTag().

801 {
802  mooseAssert(_subproblem.matrixTagExists(tag),
803  "Cannot disassociate Matrix with matrix_tag : " << tag << "that does not exist");
804 
805  if (_tagged_matrices.size() < tag + 1)
806  _tagged_matrices.resize(tag + 1);
807 
808  if (_tagged_matrices[tag] != &matrix)
809  mooseError("You can not disassociate a matrix from a tag which it was not associated to");
810 
811  _tagged_matrices[tag] = nullptr;
812 }
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:208
std::vector< SparseMatrix< Number > * > _tagged_matrices
Tagged matrices (pointer)
Definition: SystemBase.h:686
virtual bool matrixTagExists(const TagName &tag_name)
Check to see if a particular Tag exists.
Definition: SubProblem.C:118
SubProblem & _subproblem
Definition: SystemBase.h:663

◆ disassociateVectorFromTag()

void SystemBase::disassociateVectorFromTag ( NumericVector< Number > &  vec,
TagID  tag 
)
virtualinherited

Associate a vector for a given tag.

Reimplemented in DisplacedSystem.

Definition at line 745 of file SystemBase.C.

Referenced by NonlinearSystemBase::computeNodalBCs(), NonlinearSystemBase::computeResidualTag(), and DisplacedSystem::disassociateVectorFromTag().

746 {
747  mooseAssert(_subproblem.vectorTagExists(tag),
748  "You can't associate a tag that does not exist " << tag);
749  if (_tagged_vectors.size() < tag + 1)
750  _tagged_vectors.resize(tag + 1);
751 
752  if (_tagged_vectors[tag] != &vec)
753  mooseError("You can not disassociate a vector from a tag which it was not associated to");
754 
755  _tagged_vectors[tag] = nullptr;
756 }
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:208
SubProblem & _subproblem
Definition: SystemBase.h:663
virtual bool vectorTagExists(TagID tag)
Check to see if a particular Tag exists.
Definition: SubProblem.h:100
std::vector< NumericVector< Number > * > _tagged_vectors
Tagged vectors (pointer)
Definition: SystemBase.h:684

◆ dofMap()

DofMap & SystemBase::dofMap ( )
virtualinherited

◆ duDotDotDu()

virtual Number& SystemBase::duDotDotDu ( )
inlinevirtualinherited

◆ duDotDu()

virtual Number& SystemBase::duDotDu ( )
inlinevirtualinherited

◆ getDependObjects() [1/2]

std::set< std::string > AuxiliarySystem::getDependObjects ( ExecFlagType  type)

Get a list of dependent UserObjects for this exec type.

Parameters
typeExecution flag type
Returns
a set of dependent user objects

Definition at line 316 of file AuxiliarySystem.C.

317 {
318  std::set<std::string> depend_objects;
319 
320  // Elemental AuxKernels
321  {
322  const std::vector<std::shared_ptr<AuxKernel>> & auxs =
324  for (const auto & aux : auxs)
325  {
326  const std::set<std::string> & uo = aux->getDependObjects();
327  depend_objects.insert(uo.begin(), uo.end());
328  }
329  }
330 
331  // Nodal AuxKernels
332  {
333  const std::vector<std::shared_ptr<AuxKernel>> & auxs =
335  for (const auto & aux : auxs)
336  {
337  const std::set<std::string> & uo = aux->getDependObjects();
338  depend_objects.insert(uo.begin(), uo.end());
339  }
340  }
341 
342  return depend_objects;
343 }
ExecuteMooseObjectWarehouse< AuxKernel > _nodal_aux_storage
const std::vector< std::shared_ptr< T > > & getActiveObjects(THREAD_ID tid=0) const
Retrieve complete vector to the active all/block/boundary restricted objects for a given thread...
MatType type
ExecuteMooseObjectWarehouse< AuxKernel > _elemental_aux_storage

◆ getDependObjects() [2/2]

std::set< std::string > AuxiliarySystem::getDependObjects ( )

Definition at line 346 of file AuxiliarySystem.C.

347 {
348  std::set<std::string> depend_objects;
349 
350  // Elemental AuxKernels
351  {
352  const std::vector<std::shared_ptr<AuxKernel>> & auxs =
354  for (const auto & aux : auxs)
355  {
356  const std::set<std::string> & uo = aux->getDependObjects();
357  depend_objects.insert(uo.begin(), uo.end());
358  }
359  }
360 
361  // Nodal AuxKernels
362  {
363  const std::vector<std::shared_ptr<AuxKernel>> & auxs = _nodal_aux_storage.getActiveObjects();
364  for (const auto & aux : auxs)
365  {
366  const std::set<std::string> & uo = aux->getDependObjects();
367  depend_objects.insert(uo.begin(), uo.end());
368  }
369  }
370 
371  return depend_objects;
372 }
ExecuteMooseObjectWarehouse< AuxKernel > _nodal_aux_storage
const std::vector< std::shared_ptr< T > > & getActiveObjects(THREAD_ID tid=0) const
Retrieve complete vector to the active all/block/boundary restricted objects for a given thread...
ExecuteMooseObjectWarehouse< AuxKernel > _elemental_aux_storage

◆ 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.

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

Definition at line 121 of file SystemBase.C.

Referenced by Assembly::copyFaceShapes(), Assembly::copyNeighborShapes(), Assembly::copyShapes(), DisplacedProblem::getStandardVariable(), and DisplacedProblem::getVectorVariable().

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

◆ 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.

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

Definition at line 128 of file SystemBase.C.

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

◆ getMatrix()

SparseMatrix< Number > & SystemBase::getMatrix ( TagID  tag)
virtualinherited

◆ getMaxVarNDofsPerElem()

size_t SystemBase::getMaxVarNDofsPerElem ( )
inlineinherited

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

Returns
The max

Definition at line 411 of file SystemBase.h.

411 { 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:704

◆ getMinQuadratureOrder()

Order AuxiliarySystem::getMinQuadratureOrder ( )
overridevirtual

Get the minimum quadrature order for evaluating elemental auxiliary variables.

Reimplemented from SystemBase.

Definition at line 545 of file AuxiliarySystem.C.

546 {
547  Order order = CONSTANT;
548  std::vector<MooseVariableFEBase *> vars = _vars[0].fieldVariables();
549  for (const auto & var : vars)
550  {
551  if (!var->isNodal()) // nodal aux variables do not need quadrature
552  {
553  FEType fe_type = var->feType();
554  if (fe_type.default_quadrature_order() > order)
555  order = fe_type.default_quadrature_order();
556  }
557  }
558 
559  return order;
560 }
std::vector< VariableWarehouse > _vars
Variable warehouses (one for each thread)
Definition: SystemBase.h:673

◆ getScalarVariable() [1/2]

MooseVariableScalar & SystemBase::getScalarVariable ( THREAD_ID  tid,
const std::string &  var_name 
)
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(), IntegratedBC::computeJacobianBlockScalar(), VectorIntegratedBC::computeJacobianBlockScalar(), ODEKernel::computeOffDiagJacobian(), Kernel::computeOffDiagJacobianScalar(), VectorKernel::computeOffDiagJacobianScalar(), DisplacedProblem::getScalarVariable(), and Assembly::init().

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:208
std::vector< VariableWarehouse > _vars
Variable warehouses (one for each thread)
Definition: SystemBase.h:673
Class for scalar variables (they are different).

◆ getScalarVariable() [2/2]

MooseVariableScalar & SystemBase::getScalarVariable ( THREAD_ID  tid,
unsigned int  var_number 
)
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:208
std::string stringify(const T &t)
conversion to string
Definition: Conversion.h:58
std::vector< VariableWarehouse > _vars
Variable warehouses (one for each thread)
Definition: SystemBase.h:673
Class for scalar variables (they are different).

◆ getScalarVariables()

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

◆ getSubdomainsForVar()

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

Definition at line 560 of file SystemBase.h.

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

◆ getVariable() [1/2]

MooseVariableFEBase & SystemBase::getVariable ( THREAD_ID  tid,
const std::string &  var_name 
)
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 101 of file SystemBase.C.

Referenced by Assembly::addJacobianBlock(), Assembly::addJacobianBlockNonlocal(), Assembly::addJacobianNeighbor(), NonlocalIntegratedBC::computeJacobianBlock(), NonlocalIntegratedBC::computeNonlocalOffDiagJacobian(), NonlocalKernel::computeNonlocalOffDiagJacobian(), SystemBase::copyVars(), FieldSplitPreconditioner::FieldSplitPreconditioner(), FiniteDifferencePreconditioner::FiniteDifferencePreconditioner(), EqualValueEmbeddedConstraint::getConnectedDofIndices(), NodeElemConstraint::getConnectedDofIndices(), NodeFaceConstraint::getConnectedDofIndices(), Marker::getMarkerValue(), SubProblem::getVariableHelper(), Assembly::init(), NodalNormalsPreprocessor::initialize(), Assembly::initNonlocalCoupling(), PhysicsBasedPreconditioner::PhysicsBasedPreconditioner(), AddPeriodicBCAction::setPeriodicVars(), SingleMatrixPreconditioner::SingleMatrixPreconditioner(), and UpdateErrorVectorsThread::UpdateErrorVectorsThread().

102 {
103  MooseVariableFEBase * var = dynamic_cast<MooseVariableFEBase *>(_vars[tid].getVariable(var_name));
104  if (!var)
105  mooseError("Variable '" + var_name + "' does not exist in this system");
106  return *var;
107 }
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:208
std::vector< VariableWarehouse > _vars
Variable warehouses (one for each thread)
Definition: SystemBase.h:673

◆ getVariable() [2/2]

MooseVariableFEBase & SystemBase::getVariable ( THREAD_ID  tid,
unsigned int  var_number 
)
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 110 of file SystemBase.C.

111 {
112  MooseVariableFEBase * var =
113  dynamic_cast<MooseVariableFEBase *>(_vars[tid].getVariable(var_number));
114  if (!var)
115  mooseError("variable #" + Moose::stringify(var_number) + " does not exist in this system");
116  return *var;
117 }
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:208
std::string stringify(const T &t)
conversion to string
Definition: Conversion.h:58
std::vector< VariableWarehouse > _vars
Variable warehouses (one for each thread)
Definition: SystemBase.h:673

◆ 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:675

◆ getVariableNames()

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

Definition at line 651 of file SystemBase.h.

Referenced by MooseEigenSystem::buildSystemDoFIndices(), NonlinearSystemBase::checkKernelCoverage(), and AddPeriodicBCAction::setPeriodicVars().

651 { return _vars[0].names(); };
std::vector< VariableWarehouse > _vars
Variable warehouses (one for each thread)
Definition: SystemBase.h:673

◆ getVariables()

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

◆ getVector() [1/2]

NumericVector< Number > & SystemBase::getVector ( const std::string &  name)
virtualinherited

Get a raw NumericVector.

Get a raw NumericVector with the given name.

Reimplemented in DisplacedSystem.

Definition at line 720 of file SystemBase.C.

Referenced by Assembly::addCachedResiduals(), Assembly::addResidual(), Assembly::addResidualNeighbor(), Assembly::addResidualScalar(), addVector(), SystemBase::addVector(), SystemBase::closeTaggedVectors(), VectorNodalBC::computeResidual(), NodalBC::computeResidual(), NonlinearSystemBase::computeResidualTags(), DisplacedSystem::getVector(), MooseVariableScalar::reinit(), Transient::solveStep(), and SystemBase::zeroTaggedVectors().

721 {
722  return system().get_vector(name);
723 }
virtual const std::string & name() const
Definition: SystemBase.h:638
virtual System & system()=0
Get the reference to the libMesh system.

◆ getVector() [2/2]

NumericVector< Number > & SystemBase::getVector ( TagID  tag)
virtualinherited

Get a raw NumericVector.

Reimplemented in DisplacedSystem.

Definition at line 726 of file SystemBase.C.

727 {
728  mooseAssert(hasVector(tag), "Cannot retrieve vector with residual_tag: " << tag);
729 
730  return *_tagged_vectors[tag];
731 }
bool hasVector(const std::string &tag_name) const
Check if the named vector exists in the system.
Definition: SystemBase.C:670
std::vector< NumericVector< Number > * > _tagged_vectors
Tagged vectors (pointer)
Definition: SystemBase.h:684

◆ hasMatrix()

bool SystemBase::hasMatrix ( TagID  tag)
virtualinherited

◆ hasScalarVariable()

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

Definition at line 646 of file SystemBase.C.

Referenced by ComputeFullJacobianThread::computeFaceJacobian(), ComputeFullJacobianThread::computeJacobian(), DisplacedProblem::getScalarVariable(), DisplacedProblem::hasScalarVariable(), and AddPeriodicBCAction::setPeriodicVars().

647 {
648  if (system().has_variable(var_name))
649  return system().variable_type(var_name).family == SCALAR;
650  else
651  return false;
652 }
virtual System & system()=0
Get the reference to the libMesh system.

◆ 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 637 of file SystemBase.C.

Referenced by ADKernel< compute_stage >::ADKernel(), DGKernel::DGKernel(), FEProblemBase::duplicateVariableCheck(), DisplacedProblem::getStandardVariable(), DisplacedProblem::getSystem(), SubProblem::getVariableHelper(), DisplacedProblem::getVectorVariable(), DisplacedProblem::hasVariable(), InterfaceKernel::InterfaceKernel(), and Kernel::Kernel().

638 {
639  if (system().has_variable(var_name))
640  return system().variable_type(var_name).family != SCALAR;
641  else
642  return false;
643 }
virtual System & system()=0
Get the reference to the libMesh system.

◆ hasVector() [1/2]

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

◆ hasVector() [2/2]

bool SystemBase::hasVector ( TagID  tag_id)
virtualinherited

Check if the tagged vector exists in the system.

Reimplemented in DisplacedSystem.

Definition at line 711 of file SystemBase.C.

712 {
713  return tag < _tagged_vectors.size() && _tagged_vectors[tag];
714 }
std::vector< NumericVector< Number > * > _tagged_vectors
Tagged vectors (pointer)
Definition: SystemBase.h:684

◆ init()

void AuxiliarySystem::init ( )
overridevirtual

Initialize the system.

Reimplemented from SystemBase.

Definition at line 59 of file AuxiliarySystem.C.

60 {
61 }

◆ initializeObjects()

virtual void SystemBase::initializeObjects ( )
inlinevirtualinherited

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

Definition at line 124 of file SystemBase.h.

124 {};

◆ initialSetup()

void AuxiliarySystem::initialSetup ( )
virtual

Definition at line 84 of file AuxiliarySystem.C.

85 {
86  for (unsigned int tid = 0; tid < libMesh::n_threads(); tid++)
87  {
90 
93 
96  }
97 }
ExecuteMooseObjectWarehouse< AuxKernel > _nodal_aux_storage
void sort(THREAD_ID tid=0)
Performs a sort using the DependencyResolver.
ExecuteMooseObjectWarehouse< AuxScalarKernel > _aux_scalar_storage
virtual void initialSetup(THREAD_ID tid=0) const
Convenience methods for calling object setup methods.
ExecuteMooseObjectWarehouse< AuxKernel > _elemental_aux_storage

◆ isScalarVariable()

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

Definition at line 655 of file SystemBase.C.

Referenced by ODEKernel::computeOffDiagJacobian(), Assembly::init(), and Assembly::initNonlocalCoupling().

656 {
657  return (system().variable(var_num).type().family == SCALAR);
658 }
virtual System & system()=0
Get the reference to the libMesh system.
MatType type

◆ jacobianSetup()

void AuxiliarySystem::jacobianSetup ( )
virtual

Definition at line 122 of file AuxiliarySystem.C.

123 {
124  for (unsigned int tid = 0; tid < libMesh::n_threads(); tid++)
125  {
129  }
130 }
ExecuteMooseObjectWarehouse< AuxKernel > _nodal_aux_storage
ExecuteMooseObjectWarehouse< AuxScalarKernel > _aux_scalar_storage
void jacobianSetup(THREAD_ID tid=0) const
Convenience methods for calling object setup methods.
ExecuteMooseObjectWarehouse< AuxKernel > _elemental_aux_storage

◆ matrixTagActive()

bool SystemBase::matrixTagActive ( TagID  tag)
virtualinherited

If or not a matrix tag is active.

Definition at line 864 of file SystemBase.C.

865 {
866  mooseAssert(_subproblem.matrixTagExists(tag), "Matrix tag " << tag << " does not exist");
867 
868  return tag < _matrix_tag_active_flags.size() && _matrix_tag_active_flags[tag];
869 }
virtual bool matrixTagExists(const TagName &tag_name)
Check to see if a particular Tag exists.
Definition: SubProblem.C:118
std::vector< bool > _matrix_tag_active_flags
Active flags for tagged matrices.
Definition: SystemBase.h:688
SubProblem & _subproblem
Definition: SystemBase.h:663

◆ mesh()

virtual MooseMesh& SystemBase::mesh ( )
inlinevirtualinherited

◆ name()

virtual const std::string& SystemBase::name ( ) const
inlinevirtualinherited

◆ needMaterialOnSide()

bool AuxiliarySystem::needMaterialOnSide ( BoundaryID  bnd_id)

Indicated whether this system needs material properties on boundaries.

Returns
Boolean if IntegratedBCs are active

Definition at line 563 of file AuxiliarySystem.C.

564 {
566 }
bool hasActiveBoundaryObjects(THREAD_ID tid=0) const
ExecuteMooseObjectWarehouse< AuxKernel > _elemental_aux_storage

◆ nonTimeVectorTag()

TagID SystemBase::nonTimeVectorTag ( )
virtualinherited

Reimplemented in NonlinearSystemBase, and DisplacedSystem.

Definition at line 697 of file SystemBase.C.

Referenced by DisplacedSystem::nonTimeVectorTag().

698 {
699  mooseError("Not implemented yet");
700  return 0;
701 }
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:208

◆ number()

unsigned int SystemBase::number ( ) const
virtualinherited

◆ nVariables()

unsigned int SystemBase::nVariables ( ) const
virtualinherited

Get the number of variables in this system.

Returns
the number of variables

Definition at line 661 of file SystemBase.C.

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

662 {
663  return _vars[0].names().size();
664 }
std::vector< VariableWarehouse > _vars
Variable warehouses (one for each thread)
Definition: SystemBase.h:673

◆ prepare()

void SystemBase::prepare ( THREAD_ID  tid)
virtualinherited

Prepare the system for use.

Parameters
tidID of the thread

Definition at line 227 of file SystemBase.C.

Referenced by DisplacedProblem::prepare(), DisplacedProblem::reinitDirac(), and DisplacedProblem::reinitElemPhys().

228 {
230  {
231  const std::set<MooseVariableFEBase *> & active_elemental_moose_variables =
233  const std::vector<MooseVariableFEBase *> & vars = _vars[tid].fieldVariables();
234  for (const auto & var : vars)
235  var->clearDofIndices();
236 
237  for (const auto & var : active_elemental_moose_variables)
238  if (&(var->sys()) == this)
239  var->prepare();
240  }
241  else
242  {
243  const std::vector<MooseVariableFEBase *> & vars = _vars[tid].fieldVariables();
244  for (const auto & var : vars)
245  var->prepare();
246  }
247 }
virtual bool hasActiveElementalMooseVariables(THREAD_ID tid) const
Whether or not a list of active elemental moose variables has been set.
Definition: SubProblem.C:242
virtual const std::set< MooseVariableFEBase * > & getActiveElementalMooseVariables(THREAD_ID tid) const
Get the MOOSE variables to be reinited on each element.
Definition: SubProblem.C:236
SubProblem & _subproblem
Definition: SystemBase.h:663
std::vector< VariableWarehouse > _vars
Variable warehouses (one for each thread)
Definition: SystemBase.h:673

◆ 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 250 of file SystemBase.C.

Referenced by DisplacedProblem::prepareFace().

251 {
252  // We only need to do something if the element prepare was restricted
254  {
255  const std::set<MooseVariableFEBase *> & active_elemental_moose_variables =
257 
258  std::vector<MooseVariableFEBase *> newly_prepared_vars;
259 
260  const std::vector<MooseVariableFEBase *> & vars = _vars[tid].fieldVariables();
261  for (const auto & var : vars)
262  {
263  // If it wasn't in the active list, we need to prepare it
264  if (&(var->sys()) == this && !active_elemental_moose_variables.count(var))
265  {
266  var->prepare();
267  newly_prepared_vars.push_back(var);
268  }
269  }
270 
271  // Make sure to resize the residual and jacobian datastructures for all the new variables
272  if (resize_data)
273  for (const auto var_ptr : newly_prepared_vars)
274  {
275  _subproblem.assembly(tid).prepareVariable(var_ptr);
278  }
279  }
280 }
virtual bool hasActiveElementalMooseVariables(THREAD_ID tid) const
Whether or not a list of active elemental moose variables has been set.
Definition: SubProblem.C:242
virtual Assembly & assembly(THREAD_ID tid)=0
virtual const std::set< MooseVariableFEBase * > & getActiveElementalMooseVariables(THREAD_ID tid) const
Get the MOOSE variables to be reinited on each element.
Definition: SubProblem.C:236
void prepareVariableNonlocal(MooseVariableFEBase *var)
Definition: Assembly.C:1224
SubProblem & _subproblem
Definition: SystemBase.h:663
virtual bool checkNonlocalCouplingRequirement()
Definition: SubProblem.h:62
void prepareVariable(MooseVariableFEBase *var)
Used for preparing the dense residual and jacobian blocks for one particular variable.
Definition: Assembly.C:1195
std::vector< VariableWarehouse > _vars
Variable warehouses (one for each thread)
Definition: SystemBase.h:673

◆ prepareNeighbor()

void SystemBase::prepareNeighbor ( THREAD_ID  tid)
virtualinherited

Prepare the system for use.

Parameters
tidID of the thread

Definition at line 283 of file SystemBase.C.

Referenced by DisplacedProblem::reinitNeighbor(), and DisplacedProblem::reinitNeighborPhys().

284 {
285  const std::vector<MooseVariableFEBase *> & vars = _vars[tid].fieldVariables();
286  for (const auto & var : vars)
287  var->prepareNeighbor();
288 }
std::vector< VariableWarehouse > _vars
Variable warehouses (one for each thread)
Definition: SystemBase.h:673

◆ registerTimedSection()

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

Call to register a named section for timing.

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

Definition at line 50 of file PerfGraphInterface.C.

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

◆ reinitElem()

void AuxiliarySystem::reinitElem ( const Elem *  elem,
THREAD_ID  tid 
)
overridevirtual

Reinit an element assembly info.

Parameters
elemWhich element we are reinitializing for
tidID of the thread

Reimplemented from SystemBase.

Definition at line 212 of file AuxiliarySystem.C.

213 {
214  for (const auto & it : _nodal_vars[tid])
215  {
216  MooseVariable * var = it.second;
217  var->computeElemValues();
218  }
219 
220  for (const auto & it : _elem_vars[tid])
221  {
222  MooseVariable * var = it.second;
223  var->reinitAux();
224  var->computeElemValues();
225  }
226 }
std::vector< std::map< std::string, MooseVariable * > > _nodal_vars
void reinitAux() override
std::vector< std::map< std::string, MooseVariable * > > _elem_vars
virtual void computeElemValues() override
Compute values at interior quadrature points.

◆ reinitElemFace()

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

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 from SystemBase.

Definition at line 229 of file AuxiliarySystem.C.

233 {
234  for (const auto & it : _nodal_vars[tid])
235  {
236  MooseVariable * var = it.second;
237  var->computeElemValuesFace();
238  }
239 
240  for (const auto & it : _elem_vars[tid])
241  {
242  MooseVariable * var = it.second;
243  var->reinitAux();
244  var->reinitAuxNeighbor();
245  var->computeElemValuesFace();
246  }
247 }
std::vector< std::map< std::string, MooseVariable * > > _nodal_vars
void reinitAux() override
std::vector< std::map< std::string, MooseVariable * > > _elem_vars
void reinitAuxNeighbor() override
virtual void computeElemValuesFace() override
Compute values at facial quadrature points.

◆ 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 333 of file SystemBase.C.

Referenced by DisplacedProblem::reinitNeighborPhys().

334 {
335  const std::vector<MooseVariableFEBase *> & vars = _vars[tid].fieldVariables();
336  for (const auto & var : vars)
337  var->computeNeighborValues();
338 }
std::vector< VariableWarehouse > _vars
Variable warehouses (one for each thread)
Definition: SystemBase.h:673

◆ 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 322 of file SystemBase.C.

Referenced by DisplacedProblem::reinitNeighbor(), and DisplacedProblem::reinitNeighborPhys().

326 {
327  const std::vector<MooseVariableFEBase *> & vars = _vars[tid].fieldVariables();
328  for (const auto & var : vars)
329  var->computeNeighborValuesFace();
330 }
std::vector< VariableWarehouse > _vars
Variable warehouses (one for each thread)
Definition: SystemBase.h:673

◆ 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 341 of file SystemBase.C.

Referenced by DisplacedProblem::reinitNode().

342 {
343  const std::vector<MooseVariableFEBase *> & vars = _vars[tid].fieldVariables();
344  for (const auto & var : vars)
345  {
346  if (var->isNodal())
347  {
348  var->reinitNode();
349  var->computeNodalValues();
350  }
351  }
352 }
std::vector< VariableWarehouse > _vars
Variable warehouses (one for each thread)
Definition: SystemBase.h:673

◆ 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 355 of file SystemBase.C.

Referenced by DisplacedProblem::reinitNodeFace().

356 {
357  const std::vector<MooseVariableFEBase *> & vars = _vars[tid].fieldVariables();
358  for (const auto & var : vars)
359  {
360  if (var->isNodal())
361  {
362  var->reinitNode();
363  var->computeNodalValues();
364  }
365  }
366 }
std::vector< VariableWarehouse > _vars
Variable warehouses (one for each thread)
Definition: SystemBase.h:673

◆ 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 369 of file SystemBase.C.

Referenced by DisplacedProblem::reinitNodes().

370 {
371  const std::vector<MooseVariableFEBase *> & vars = _vars[tid].fieldVariables();
372  for (const auto & var : vars)
373  {
374  var->reinitNodes(nodes);
375  var->computeNodalValues();
376  }
377 }
std::vector< VariableWarehouse > _vars
Variable warehouses (one for each thread)
Definition: SystemBase.h:673

◆ 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 380 of file SystemBase.C.

Referenced by DisplacedProblem::reinitNodesNeighbor().

381 {
382  const std::vector<MooseVariableFEBase *> & vars = _vars[tid].fieldVariables();
383  for (const auto & var : vars)
384  {
385  var->reinitNodesNeighbor(nodes);
386  var->computeNodalNeighborValues();
387  }
388 }
std::vector< VariableWarehouse > _vars
Variable warehouses (one for each thread)
Definition: SystemBase.h:673

◆ reinitScalars()

void SystemBase::reinitScalars ( THREAD_ID  tid)
virtualinherited

Reinit scalar varaibles.

Parameters
tidThread ID

Definition at line 391 of file SystemBase.C.

Referenced by DisplacedProblem::reinitScalars().

392 {
393  const std::vector<MooseVariableScalar *> & vars = _vars[tid].scalars();
394  for (const auto & var : vars)
395  var->reinit();
396 }
std::vector< VariableWarehouse > _vars
Variable warehouses (one for each thread)
Definition: SystemBase.h:673

◆ removeMatrix()

virtual void SystemBase::removeMatrix ( TagID  )
inlinevirtualinherited

Removes a jacobian sized vector.

Parameters
tag_nameThe name of the tag

Definition at line 633 of file SystemBase.h.

634  {
635  mooseError("Removing a matrix is not supported for this type of system!");
636  }
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:208

◆ removeVector() [1/2]

virtual void SystemBase::removeVector ( const std::string &  name)
inlinevirtualinherited

Remove a vector from the system with the given name.

Definition at line 568 of file SystemBase.h.

Referenced by SystemBase::restoreOldSolutions().

568 { system().remove_vector(name); }
virtual const std::string & name() const
Definition: SystemBase.h:638
virtual System & system()=0
Get the reference to the libMesh system.

◆ removeVector() [2/2]

void SystemBase::removeVector ( TagID  tag_id)
virtualinherited

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

Parameters
tag_idTag ID

Definition at line 565 of file SystemBase.C.

566 {
567  if (!_subproblem.vectorTagExists(tag_id))
568  mooseError("Cannot remove an unexisting tag or its associated vector, ",
569  tag_id,
570  ", that tag does not exist in System ",
571  name());
572 
573  if (hasVector(tag_id))
574  {
575  auto vector_name = _subproblem.vectorTagName(tag_id);
576  system().remove_vector(vector_name);
577  _tagged_vectors[tag_id] = nullptr;
578  }
579 }
virtual const std::string & name() const
Definition: SystemBase.h:638
virtual TagName vectorTagName(TagID tag)
Retrieve the name associated with a TagID.
Definition: SubProblem.C:95
bool hasVector(const std::string &tag_name) const
Check if the named vector exists in the system.
Definition: SystemBase.C:670
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:208
SubProblem & _subproblem
Definition: SystemBase.h:663
virtual bool vectorTagExists(TagID tag)
Check to see if a particular Tag exists.
Definition: SubProblem.h:100
virtual System & system()=0
Get the reference to the libMesh system.
std::vector< NumericVector< Number > * > _tagged_vectors
Tagged vectors (pointer)
Definition: SystemBase.h:684

◆ residualCopy()

virtual NumericVector<Number>& SystemBase::residualCopy ( )
inlinevirtualinherited

Reimplemented in NonlinearSystemBase, and DisplacedSystem.

Definition at line 289 of file SystemBase.h.

Referenced by DisplacedSystem::residualCopy().

290  {
291  mooseError("This system does not support getting a copy of the residual");
292  }
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:208

◆ residualGhosted()

virtual NumericVector<Number>& SystemBase::residualGhosted ( )
inlinevirtualinherited

Reimplemented in NonlinearSystemBase, and DisplacedSystem.

Definition at line 293 of file SystemBase.h.

Referenced by DisplacedSystem::residualGhosted().

294  {
295  mooseError("This system does not support getting a ghosted copy of the residual");
296  }
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:208

◆ residualSetup()

void AuxiliarySystem::residualSetup ( )
virtual

Definition at line 133 of file AuxiliarySystem.C.

134 {
135  for (unsigned int tid = 0; tid < libMesh::n_threads(); tid++)
136  {
140  }
141 }
ExecuteMooseObjectWarehouse< AuxKernel > _nodal_aux_storage
void residualSetup(THREAD_ID tid=0) const
ExecuteMooseObjectWarehouse< AuxScalarKernel > _aux_scalar_storage
ExecuteMooseObjectWarehouse< AuxKernel > _elemental_aux_storage

◆ residualVectorTag()

TagID SystemBase::residualVectorTag ( )
virtualinherited

Reimplemented in NonlinearSystemBase.

Definition at line 704 of file SystemBase.C.

705 {
706  mooseError("Not implemented yet");
707  return 0;
708 }
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:208

◆ restoreOldSolutions()

void SystemBase::restoreOldSolutions ( )
virtualinherited

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

Definition at line 482 of file SystemBase.C.

Referenced by DisplacedProblem::restoreOldSolutions().

483 {
484  if (_saved_old)
485  {
486  solutionOld() = *_saved_old;
487  removeVector("save_solution_old");
488  _saved_old = nullptr;
489  }
490  if (_saved_older)
491  {
493  removeVector("save_solution_older");
494  _saved_older = nullptr;
495  }
497  {
499  removeVector("save_solution_dot_old");
500  _saved_dot_old = NULL;
501  }
503  {
505  removeVector("save_solution_dotdot_old");
506  _saved_dotdot_old = NULL;
507  }
508 }
virtual NumericVector< Number > & solutionOld()=0
virtual NumericVector< Number > * solutionUDotDotOld()=0
virtual void removeVector(const std::string &name)
Remove a vector from the system with the given name.
Definition: SystemBase.h:568
NumericVector< Real > * _saved_older
Definition: SystemBase.h:692
NumericVector< Real > * _saved_dot_old
Definition: SystemBase.h:695
NumericVector< Real > * _saved_old
Definition: SystemBase.h:691
virtual NumericVector< Number > & solutionOlder()=0
NumericVector< Real > * _saved_dotdot_old
Definition: SystemBase.h:696
virtual NumericVector< Number > * solutionUDotOld()=0

◆ restoreSolutions()

void SystemBase::restoreSolutions ( )
virtualinherited

Restore current solutions (call after your solve failed)

Reimplemented in NonlinearSystemBase.

Definition at line 987 of file SystemBase.C.

Referenced by NonlinearSystemBase::restoreSolutions().

988 {
989  *(const_cast<NumericVector<Number> *&>(currentSolution())) = solutionOld();
990  solution() = solutionOld();
991  if (solutionUDotOld())
993  if (solutionUDotDotOld())
997  system().update();
998 }
virtual NumericVector< Number > * solutionUDot()=0
virtual NumericVector< Number > & solutionOld()=0
virtual NumericVector< Number > * solutionUDotDotOld()=0
virtual NumericVector< Number > * solutionPreviousNewton()=0
virtual System & system()=0
Get the reference to the libMesh system.
virtual NumericVector< Number > & solution()=0
virtual NumericVector< Number > * solutionUDotOld()=0
virtual NumericVector< Number > * solutionUDotDot()=0
virtual const NumericVector< Number > *& currentSolution()=0
The solution vector that is currently being operated on.

◆ saveOldSolutions()

void SystemBase::saveOldSolutions ( )
virtualinherited

Save the old and older solutions.

Definition at line 457 of file SystemBase.C.

Referenced by DisplacedProblem::saveOldSolutions().

458 {
459  if (!_saved_old)
460  _saved_old = &addVector("save_solution_old", false, PARALLEL);
461  if (!_saved_older)
462  _saved_older = &addVector("save_solution_older", false, PARALLEL);
464  _saved_dot_old = &addVector("save_solution_dot_old", false, PARALLEL);
466  _saved_dotdot_old = &addVector("save_solution_dotdot_old", false, PARALLEL);
467 
468  *_saved_old = solutionOld();
470 
471  if (solutionUDotOld())
473 
474  if (solutionUDotDotOld())
476 }
virtual NumericVector< Number > & addVector(const std::string &vector_name, const bool project, const ParallelType type)
Adds a solution length vector to the system.
Definition: SystemBase.C:511
virtual NumericVector< Number > & solutionOld()=0
virtual NumericVector< Number > * solutionUDotDotOld()=0
NumericVector< Real > * _saved_older
Definition: SystemBase.h:692
NumericVector< Real > * _saved_dot_old
Definition: SystemBase.h:695
NumericVector< Real > * _saved_old
Definition: SystemBase.h:691
virtual NumericVector< Number > & solutionOlder()=0
NumericVector< Real > * _saved_dotdot_old
Definition: SystemBase.h:696
virtual NumericVector< Number > * solutionUDotOld()=0

◆ serializedSolution()

NumericVector< Number > & AuxiliarySystem::serializedSolution ( )
overridevirtual

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

Implements SystemBase.

Definition at line 250 of file AuxiliarySystem.C.

251 {
253  return _serialized_solution;
254 }
NumericVector< Number > & _serialized_solution
Serialized version of the solution vector.
bool _need_serialized_solution
Whether or not a copy of the residual needs to be made.

◆ serializeSolution()

void AuxiliarySystem::serializeSolution ( )
virtual

Definition at line 257 of file AuxiliarySystem.C.

Referenced by compute().

258 {
260  _sys.n_dofs() > 0) // libMesh does not like serializing of empty vectors
261  {
262  if (!_serialized_solution.initialized() || _serialized_solution.size() != _sys.n_dofs())
263  {
264  _serialized_solution.clear();
265  _serialized_solution.init(_sys.n_dofs(), false, SERIAL);
266  }
267 
268  solution().localize(_serialized_solution);
269  }
270 }
NumericVector< Number > & _serialized_solution
Serialized version of the solution vector.
TransientExplicitSystem & _sys
bool _need_serialized_solution
Whether or not a copy of the residual needs to be made.
virtual NumericVector< Number > & solution() override

◆ setPreviousNewtonSolution()

void AuxiliarySystem::setPreviousNewtonSolution ( )
virtual

Definition at line 569 of file AuxiliarySystem.C.

570 {
571  // Evaluate aux variables to get the solution vector
573 }
const ExecFlagType EXEC_LINEAR
virtual void compute(ExecFlagType type)
Compute auxiliary variables.

◆ setScalarVariableCoupleableTags()

void AuxiliarySystem::setScalarVariableCoupleableTags ( ExecFlagType  type)

Definition at line 388 of file AuxiliarySystem.C.

Referenced by computeScalarVars().

389 {
391  const std::vector<std::shared_ptr<AuxScalarKernel>> & objects = storage.getActiveObjects(0);
392 
393  std::set<TagID> needed_sc_var_matrix_tags;
394  std::set<TagID> needed_sc_var_vector_tags;
395  for (const auto & obj : objects)
396  {
397  auto & sc_var_coup_vtags = obj->getScalarVariableCoupleableVectorTags();
398  needed_sc_var_vector_tags.insert(sc_var_coup_vtags.begin(), sc_var_coup_vtags.end());
399 
400  auto & sc_var_coup_mtags = obj->getScalarVariableCoupleableMatrixTags();
401  needed_sc_var_matrix_tags.insert(sc_var_coup_mtags.begin(), sc_var_coup_mtags.end());
402  }
403 
404  _fe_problem.setActiveScalarVariableCoupleableMatrixTags(needed_sc_var_matrix_tags, 0);
405  _fe_problem.setActiveScalarVariableCoupleableVectorTags(needed_sc_var_vector_tags, 0);
406 }
virtual void setActiveScalarVariableCoupleableMatrixTags(std::set< TagID > &mtags, THREAD_ID tid) override
ExecuteMooseObjectWarehouse< AuxScalarKernel > _aux_scalar_storage
const std::vector< std::shared_ptr< T > > & getActiveObjects(THREAD_ID tid=0) const
Retrieve complete vector to the active all/block/boundary restricted objects for a given thread...
FEProblemBase & _fe_problem
MatType type
virtual void setActiveScalarVariableCoupleableVectorTags(std::set< TagID > &vtags, THREAD_ID tid) override

◆ solution()

virtual NumericVector<Number>& AuxiliarySystem::solution ( )
inlineoverridevirtual

◆ solutionOld()

virtual NumericVector<Number>& AuxiliarySystem::solutionOld ( )
inlineoverridevirtual

Implements SystemBase.

Definition at line 156 of file AuxiliarySystem.h.

156 { return *_sys.old_local_solution; }
TransientExplicitSystem & _sys

◆ solutionOlder()

virtual NumericVector<Number>& AuxiliarySystem::solutionOlder ( )
inlineoverridevirtual

Implements SystemBase.

Definition at line 158 of file AuxiliarySystem.h.

158 { return *_sys.older_local_solution; }
TransientExplicitSystem & _sys

◆ solutionPreviousNewton()

virtual NumericVector<Number>* AuxiliarySystem::solutionPreviousNewton ( )
inlineoverridevirtual

Implements SystemBase.

Definition at line 167 of file AuxiliarySystem.h.

168  {
169  return _solution_previous_nl;
170  }
NumericVector< Number > * _solution_previous_nl
Solution vector of the previous nonlinear iterate.

◆ solutionUDot()

virtual NumericVector<Number>* AuxiliarySystem::solutionUDot ( )
inlineoverridevirtual

Implements SystemBase.

Definition at line 104 of file AuxiliarySystem.h.

104 { return _u_dot; }
NumericVector< Number > * _u_dot
solution vector for u^dot

◆ solutionUDotDot()

virtual NumericVector<Number>* AuxiliarySystem::solutionUDotDot ( )
inlineoverridevirtual

Implements SystemBase.

Definition at line 106 of file AuxiliarySystem.h.

106 { return _u_dotdot; }
NumericVector< Number > * _u_dotdot
solution vector for u^dotdot

◆ solutionUDotDotOld()

virtual NumericVector<Number>* AuxiliarySystem::solutionUDotDotOld ( )
inlineoverridevirtual

Implements SystemBase.

Definition at line 166 of file AuxiliarySystem.h.

166 { return _u_dotdot_old; }
NumericVector< Number > * _u_dotdot_old
Old solution vector for u^dotdot.

◆ solutionUDotOld()

virtual NumericVector<Number>* AuxiliarySystem::solutionUDotOld ( )
inlineoverridevirtual

Implements SystemBase.

Definition at line 165 of file AuxiliarySystem.h.

165 { return _u_dot_old; }
NumericVector< Number > * _u_dot_old
Old solution vector for u^dot.

◆ solve()

void SystemBase::solve ( )
virtualinherited

Solve the system (using libMesh magic)

Reimplemented in NonlinearSystemBase, NonlinearEigenSystem, DumpObjectsNonlinearSystem, and NonlinearSystem.

Definition at line 945 of file SystemBase.C.

946 {
947  system().solve();
948 }
virtual System & system()=0
Get the reference to the libMesh system.

◆ subdomainSetup()

void AuxiliarySystem::subdomainSetup ( )
virtual

Definition at line 111 of file AuxiliarySystem.C.

112 {
113  for (unsigned int tid = 0; tid < libMesh::n_threads(); tid++)
114  {
118  }
119 }
ExecuteMooseObjectWarehouse< AuxKernel > _nodal_aux_storage
ExecuteMooseObjectWarehouse< AuxScalarKernel > _aux_scalar_storage
ExecuteMooseObjectWarehouse< AuxKernel > _elemental_aux_storage
virtual void subdomainSetup(THREAD_ID tid=0) const

◆ subproblem()

virtual SubProblem& SystemBase::subproblem ( )
inlinevirtualinherited

◆ sys()

virtual TransientExplicitSystem& AuxiliarySystem::sys ( )
inlinevirtual

Definition at line 160 of file AuxiliarySystem.h.

Referenced by DT2::preExecute(), DT2::preSolve(), DT2::rejectStep(), and DT2::step().

160 { return _sys; }
TransientExplicitSystem & _sys

◆ system() [1/2]

virtual System& AuxiliarySystem::system ( )
inlineoverridevirtual

◆ system() [2/2]

virtual const System& AuxiliarySystem::system ( ) const
inlineoverridevirtual

Implements SystemBase.

Definition at line 163 of file AuxiliarySystem.h.

163 { return _sys; }
TransientExplicitSystem & _sys

◆ systemMatrixTag()

TagID SystemBase::systemMatrixTag ( )
virtualinherited

Return the Matrix Tag ID for System.

Reimplemented in NonlinearSystemBase.

Definition at line 690 of file SystemBase.C.

691 {
692  mooseError("Not implemented yet");
693  return 0;
694 }
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:208

◆ timeMatrixTag()

TagID SystemBase::timeMatrixTag ( )
virtualinherited

Return the Matrix Tag ID for Time.

Definition at line 683 of file SystemBase.C.

684 {
685  mooseError("Not implemented yet");
686  return 0;
687 }
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:208

◆ timestepSetup()

void AuxiliarySystem::timestepSetup ( )
virtual

Definition at line 100 of file AuxiliarySystem.C.

101 {
102  for (unsigned int tid = 0; tid < libMesh::n_threads(); tid++)
103  {
107  }
108 }
ExecuteMooseObjectWarehouse< AuxKernel > _nodal_aux_storage
ExecuteMooseObjectWarehouse< AuxScalarKernel > _aux_scalar_storage
virtual void timestepSetup(THREAD_ID tid=0) const
ExecuteMooseObjectWarehouse< AuxKernel > _elemental_aux_storage

◆ timeVectorTag()

TagID SystemBase::timeVectorTag ( )
virtualinherited

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 in NonlinearSystemBase, and DisplacedSystem.

Definition at line 676 of file SystemBase.C.

Referenced by DisplacedSystem::timeVectorTag().

677 {
678  mooseError("Not implemented yet");
679  return 0;
680 }
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:208

◆ update()

void SystemBase::update ( )
virtualinherited

◆ updateActive()

void AuxiliarySystem::updateActive ( THREAD_ID  tid)
virtual

Definition at line 144 of file AuxiliarySystem.C.

145 {
149 }
ExecuteMooseObjectWarehouse< AuxKernel > _nodal_aux_storage
ExecuteMooseObjectWarehouse< AuxScalarKernel > _aux_scalar_storage
ExecuteMooseObjectWarehouse< AuxKernel > _elemental_aux_storage
virtual void updateActive(THREAD_ID tid=0)
Updates the active objects storage.

◆ zeroTaggedVectors()

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

Zero all vectors for given tags.

Definition at line 555 of file SystemBase.C.

Referenced by NonlinearSystemBase::computeResidualTags().

556 {
557  for (auto & tag : tags)
558  {
559  mooseAssert(_subproblem.vectorTagExists(tag), "Tag: " << tag << " does not exsit");
560  getVector(tag).zero();
561  }
562 }
SubProblem & _subproblem
Definition: SystemBase.h:663
virtual bool vectorTagExists(TagID tag)
Check to see if a particular Tag exists.
Definition: SubProblem.h:100
virtual NumericVector< Number > & getVector(const std::string &name)
Get a raw NumericVector.
Definition: SystemBase.C:720

◆ zeroVariables()

void SystemBase::zeroVariables ( std::vector< std::string > &  vars_to_be_zeroed)
virtualinherited

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

@ param vars_to_be_zeroed The variable names in this vector will have their solutions set to zero after this call

Reimplemented in DisplacedSystem.

Definition at line 175 of file SystemBase.C.

Referenced by DisplacedSystem::zeroVariables(), SystemBase::zeroVariablesForJacobian(), and SystemBase::zeroVariablesForResidual().

176 {
177  if (vars_to_be_zeroed.size() > 0)
178  {
179  NumericVector<Number> & solution = this->solution();
180 
181  AllLocalDofIndicesThread aldit(system(), vars_to_be_zeroed);
182  ConstElemRange & elem_range = *_mesh.getActiveLocalElementRange();
183  Threads::parallel_reduce(elem_range, aldit);
184 
185  const std::set<dof_id_type> & dof_indices_to_zero = aldit._all_dof_indices;
186 
187  solution.close();
188 
189  for (const auto & dof : dof_indices_to_zero)
190  solution.set(dof, 0);
191 
192  solution.close();
193 
194  // Call update to update the current_local_solution for this system
195  system().update();
196  }
197 }
ConstElemRange * getActiveLocalElementRange()
Return pointers to range objects for various types of ranges (local nodes, boundary elems...
Definition: MooseMesh.C:779
Grab all the local dof indices for the variables passed in, in the system passed in.
virtual System & system()=0
Get the reference to the libMesh system.
MooseMesh & _mesh
Definition: SystemBase.h:668
virtual NumericVector< Number > & solution()=0

◆ 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 206 of file SystemBase.C.

207 {
209 }
std::vector< std::string > _vars_to_be_zeroed_on_jacobian
Definition: SystemBase.h:678
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:175

◆ 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 200 of file SystemBase.C.

201 {
203 }
std::vector< std::string > _vars_to_be_zeroed_on_residual
Definition: SystemBase.h:677
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:175

Friends And Related Function Documentation

◆ AuxKernel

friend class AuxKernel
friend

Definition at line 226 of file AuxiliarySystem.h.

◆ ComputeElemAuxBcsThread

friend class ComputeElemAuxBcsThread
friend

Definition at line 230 of file AuxiliarySystem.h.

◆ ComputeElemAuxVarsThread

friend class ComputeElemAuxVarsThread
friend

Definition at line 229 of file AuxiliarySystem.h.

◆ ComputeIndicatorThread

friend class ComputeIndicatorThread
friend

Definition at line 231 of file AuxiliarySystem.h.

◆ ComputeMarkerThread

friend class ComputeMarkerThread
friend

Definition at line 232 of file AuxiliarySystem.h.

◆ ComputeNodalAuxBcsThread

friend class ComputeNodalAuxBcsThread
friend

Definition at line 228 of file AuxiliarySystem.h.

◆ ComputeNodalAuxVarsThread

friend class ComputeNodalAuxVarsThread
friend

Definition at line 227 of file AuxiliarySystem.h.

◆ ComputeNodalKernelBCJacobiansThread

Definition at line 237 of file AuxiliarySystem.h.

◆ ComputeNodalKernelBcsThread

friend class ComputeNodalKernelBcsThread
friend

Definition at line 235 of file AuxiliarySystem.h.

◆ ComputeNodalKernelJacobiansThread

friend class ComputeNodalKernelJacobiansThread
friend

Definition at line 236 of file AuxiliarySystem.h.

◆ ComputeNodalKernelsThread

friend class ComputeNodalKernelsThread
friend

Definition at line 234 of file AuxiliarySystem.h.

◆ FlagElementsThread

friend class FlagElementsThread
friend

Definition at line 233 of file AuxiliarySystem.h.

Member Data Documentation

◆ _app

MooseApp& SystemBase::_app
protectedinherited

◆ _aux_scalar_storage

ExecuteMooseObjectWarehouse<AuxScalarKernel> AuxiliarySystem::_aux_scalar_storage
protected

◆ _compute_elemental_vars_timer

PerfID AuxiliarySystem::_compute_elemental_vars_timer
protected

Definition at line 224 of file AuxiliarySystem.h.

Referenced by computeElementalVars().

◆ _compute_nodal_vars_timer

PerfID AuxiliarySystem::_compute_nodal_vars_timer
protected

Definition at line 223 of file AuxiliarySystem.h.

Referenced by computeNodalVars().

◆ _compute_scalar_vars_timer

PerfID AuxiliarySystem::_compute_scalar_vars_timer
protected

Timers.

Definition at line 222 of file AuxiliarySystem.h.

Referenced by computeScalarVars().

◆ _current_solution

const NumericVector<Number>* AuxiliarySystem::_current_solution
protected

solution vector from nonlinear solver

Definition at line 188 of file AuxiliarySystem.h.

Referenced by currentSolution().

◆ _du_dot_du

Real SystemBase::_du_dot_du
protectedinherited

Definition at line 680 of file SystemBase.h.

Referenced by SystemBase::duDotDu().

◆ _du_dotdot_du

Real SystemBase::_du_dotdot_du
protectedinherited

Definition at line 681 of file SystemBase.h.

Referenced by SystemBase::duDotDotDu().

◆ _elem_vars

std::vector<std::map<std::string, MooseVariable *> > AuxiliarySystem::_elem_vars
protected

◆ _elemental_aux_storage

ExecuteMooseObjectWarehouse<AuxKernel> AuxiliarySystem::_elemental_aux_storage
protected

◆ _factory

Factory& SystemBase::_factory
protectedinherited

◆ _fe_problem

FEProblemBase& AuxiliarySystem::_fe_problem
protected

◆ _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 704 of file SystemBase.h.

Referenced by SystemBase::getMaxVarNDofsPerElem(), and NonlinearSystemBase::init().

◆ _mesh

MooseMesh& SystemBase::_mesh
protectedinherited

◆ _name

std::string SystemBase::_name
protectedinherited

The name of this system.

Definition at line 670 of file SystemBase.h.

◆ _need_serialized_solution

bool AuxiliarySystem::_need_serialized_solution
protected

Whether or not a copy of the residual needs to be made.

Definition at line 206 of file AuxiliarySystem.h.

Referenced by compute(), serializedSolution(), and serializeSolution().

◆ _nodal_aux_storage

ExecuteMooseObjectWarehouse<AuxKernel> AuxiliarySystem::_nodal_aux_storage
protected

◆ _nodal_vars

std::vector<std::map<std::string, MooseVariable *> > AuxiliarySystem::_nodal_vars
protected

◆ _perf_graph

PerfGraph& PerfGraphInterface::_perf_graph
protectedinherited

The performance graph to add to.

Definition at line 66 of file PerfGraphInterface.h.

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

◆ _pg_params

const InputParameters* PerfGraphInterface::_pg_params
protectedinherited

Params.

Definition at line 63 of file PerfGraphInterface.h.

◆ _prefix

std::string PerfGraphInterface::_prefix
protectedinherited

A prefix to use for all sections.

Definition at line 69 of file PerfGraphInterface.h.

Referenced by PerfGraphInterface::registerTimedSection().

◆ _saved_dot_old

NumericVector<Real>* SystemBase::_saved_dot_old
protectedinherited

Definition at line 695 of file SystemBase.h.

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

◆ _saved_dotdot_old

NumericVector<Real>* SystemBase::_saved_dotdot_old
protectedinherited

Definition at line 696 of file SystemBase.h.

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

◆ _saved_old

NumericVector<Real>* SystemBase::_saved_old
protectedinherited

Definition at line 691 of file SystemBase.h.

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

◆ _saved_older

NumericVector<Real>* SystemBase::_saved_older
protectedinherited

Definition at line 692 of file SystemBase.h.

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

◆ _serialized_solution

NumericVector<Number>& AuxiliarySystem::_serialized_solution
protected

Serialized version of the solution vector.

Definition at line 190 of file AuxiliarySystem.h.

Referenced by serializedSolution(), serializeSolution(), and ~AuxiliarySystem().

◆ _solution_previous_nl

NumericVector<Number>* AuxiliarySystem::_solution_previous_nl
protected

Solution vector of the previous nonlinear iterate.

Definition at line 192 of file AuxiliarySystem.h.

Referenced by addExtraVectors(), and solutionPreviousNewton().

◆ _subproblem

SubProblem& SystemBase::_subproblem
protectedinherited

◆ _sys

TransientExplicitSystem& AuxiliarySystem::_sys
protected

◆ _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> AuxiliarySystem::_time_integrator
protected

Time integrator.

Definition at line 194 of file AuxiliarySystem.h.

Referenced by addTimeIntegrator(), and compute().

◆ _u_dot

NumericVector<Number>* AuxiliarySystem::_u_dot
protected

solution vector for u^dot

Definition at line 196 of file AuxiliarySystem.h.

Referenced by addDotVectors(), and solutionUDot().

◆ _u_dot_old

NumericVector<Number>* AuxiliarySystem::_u_dot_old
protected

Old solution vector for u^dot.

Definition at line 201 of file AuxiliarySystem.h.

Referenced by addDotVectors(), and solutionUDotOld().

◆ _u_dotdot

NumericVector<Number>* AuxiliarySystem::_u_dotdot
protected

solution vector for u^dotdot

Definition at line 198 of file AuxiliarySystem.h.

Referenced by addDotVectors(), and solutionUDotDot().

◆ _u_dotdot_old

NumericVector<Number>* AuxiliarySystem::_u_dotdot_old
protected

Old solution vector for u^dotdot.

Definition at line 203 of file AuxiliarySystem.h.

Referenced by addDotVectors(), and solutionUDotDotOld().

◆ _var_kind

Moose::VarKindType SystemBase::_var_kind
protectedinherited

default kind of variables in this system

Definition at line 699 of file SystemBase.h.

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

◆ _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 675 of file SystemBase.h.

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

◆ _var_to_copy

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

Definition at line 701 of file SystemBase.h.

Referenced by SystemBase::addVariableToCopy(), and SystemBase::copyVars().

◆ _vars

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

◆ _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

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