www.mooseframework.org
Public Member Functions | Protected Member Functions | Static Protected Member Functions | Protected Attributes | List of all members
MooseObjectTagWarehouse< T > Class Template Reference

A storage container for MooseObjects that inherit from SetupInterface. More...

#include <BoundaryElemIntegrityCheckThread.h>

Inheritance diagram for MooseObjectTagWarehouse< T >:
[legend]

Public Member Functions

 MooseObjectTagWarehouse (bool threaded=true)
 Constructor. More...
 
virtual void updateActive (THREAD_ID tid=0) override
 Update the active status of Kernels. More...
 
MooseObjectWarehouse< T > & getVectorTagObjectWarehouse (TagID tag_id, THREAD_ID tid)
 Retrieve a moose object warehouse in which every moose object has the given vector tag. More...
 
MooseObjectWarehouse< T > & getVectorTagsObjectWarehouse (const std::set< TagID > &tags, THREAD_ID tid)
 Retrieve a moose object warehouse in which every moose object at least has one of the given vector tags. More...
 
MooseObjectWarehouse< T > & getMatrixTagObjectWarehouse (TagID tag_id, THREAD_ID tid)
 Retrieve a moose object warehouse in which every moose object has the given matrix tag. More...
 
MooseObjectWarehouse< T > & getMatrixTagsObjectWarehouse (const std::set< TagID > &tags, THREAD_ID tid)
 Retrieve a moose object warehouse in which every moose object has one of the given matrix tags. More...
 
virtual void addObject (std::shared_ptr< T > object, THREAD_ID tid=0, bool recurse=true) override
 Adds an object to the storage structure. More...
 
unsigned int size (THREAD_ID tid=0) const
 Return how many kernels we store in the current warehouse. More...
 
std::set< SubdomainIDgetActiveBlocks (THREAD_ID tid=0) const
 Return a set of active SubdomainsIDs. More...
 
void sort (THREAD_ID tid=0)
 Sort the objects using the DependencyResolver. More...
 
void subdomainsCovered (std::set< SubdomainID > &subdomains_covered, std::set< std::string > &unique_variables, THREAD_ID tid=0) const
 Populates a set of covered subdomains and the associated variable names. More...
 
THREAD_ID numThreads () const
 Return the number of threads. More...
 
std::string activeObjectsToFormattedString (THREAD_ID tid=0, const std::string &prefix="[DBG]") const
 Output the active content of the warehouse to a string, meant to be output to the console. More...
 
virtual void initialSetup (THREAD_ID tid=0) const
 Convenience methods for calling object setup methods. More...
 
virtual void timestepSetup (THREAD_ID tid=0) const
 
virtual void customSetup (const ExecFlagType &exec_type, THREAD_ID tid=0) const
 
virtual void subdomainSetup (THREAD_ID tid=0) const
 
virtual void subdomainSetup (SubdomainID id, THREAD_ID tid=0) const
 
virtual void jacobianSetup (THREAD_ID tid=0) const
 
virtual void residualSetup (THREAD_ID tid=0) const
 
bool hasActiveVariableBlockObjects (unsigned int variable_id, SubdomainID block_id, THREAD_ID tid=0) const
 Methods for checking/getting variable kernels for a variable and SubdomainID. More...
 
const std::vector< std::shared_ptr< T > > & getActiveVariableBlockObjects (unsigned int variable_id, SubdomainID block_id, THREAD_ID tid=0) const
 
const std::vector< std::shared_ptr< T > > & getObjects (THREAD_ID tid=0) const
 Retrieve complete vector to the all/block/boundary restricted objects for a given thread. More...
 
const std::map< SubdomainID, std::vector< std::shared_ptr< T > > > & getBlockObjects (THREAD_ID tid=0) const
 
const std::vector< std::shared_ptr< T > > & getBlockObjects (SubdomainID id, THREAD_ID tid=0) const
 
const std::map< BoundaryID, std::vector< std::shared_ptr< T > > > & getBoundaryObjects (THREAD_ID tid=0) const
 
const std::vector< std::shared_ptr< T > > & getBoundaryObjects (BoundaryID id, THREAD_ID tid=0) const
 
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. More...
 
const std::map< SubdomainID, std::vector< std::shared_ptr< T > > > & getActiveBlockObjects (THREAD_ID tid=0) const
 
const std::vector< std::shared_ptr< T > > & getActiveBlockObjects (SubdomainID id, THREAD_ID tid=0) const
 
const std::map< BoundaryID, std::vector< std::shared_ptr< T > > > & getActiveBoundaryObjects (THREAD_ID tid=0) const
 
const std::vector< std::shared_ptr< T > > & getActiveBoundaryObjects (BoundaryID id, THREAD_ID tid=0) const
 
bool hasObjects (THREAD_ID tid=0) const
 Convenience functions for determining if objects exist. More...
 
bool hasActiveObjects (THREAD_ID tid=0) const
 
bool hasActiveBlockObjects (THREAD_ID tid=0) const
 
bool hasActiveBlockObjects (SubdomainID id, THREAD_ID tid=0) const
 
bool hasActiveBoundaryObjects (THREAD_ID tid=0) const
 
bool hasActiveBoundaryObjects (BoundaryID id, THREAD_ID tid=0) const
 
bool hasBoundaryObjects (BoundaryID id, THREAD_ID tid=0) const
 
bool hasActiveObject (const std::string &name, THREAD_ID tid=0) const
 Convenience functions for checking/getting specific objects. More...
 
std::shared_ptr< T > getObject (const std::string &name, THREAD_ID tid=0) const
 
std::shared_ptr< T > getActiveObject (const std::string &name, THREAD_ID tid=0) const
 
void updateVariableDependency (std::set< MooseVariableFieldBase *> &needed_moose_vars, THREAD_ID tid=0) const
 Update variable dependency vector. More...
 
void updateBlockVariableDependency (SubdomainID id, std::set< MooseVariableFieldBase *> &needed_moose_vars, THREAD_ID tid=0) const
 
void updateBoundaryVariableDependency (std::set< MooseVariableFieldBase *> &needed_moose_vars, THREAD_ID tid=0) const
 
void updateBoundaryVariableDependency (BoundaryID id, std::set< MooseVariableFieldBase *> &needed_moose_vars, THREAD_ID tid=0) const
 
void updateBlockFEVariableCoupledVectorTagDependency (SubdomainID id, std::set< TagID > &needed_fe_var_vector_tags, THREAD_ID tid=0) const
 Update FE variable coupleable vector tag vector. More...
 
void updateBoundaryFEVariableCoupledVectorTagDependency (BoundaryID id, std::set< TagID > &needed_fe_var_vector_tags, THREAD_ID tid=0) const
 
void updateMatPropDependency (std::unordered_set< unsigned int > &needed_mat_props, THREAD_ID tid=0) const
 Update material property dependency vector. More...
 
void updateBlockMatPropDependency (SubdomainID id, std::unordered_set< unsigned int > &needed_mat_props, THREAD_ID tid=0) const
 
void updateBoundaryMatPropDependency (std::unordered_set< unsigned int > &needed_mat_props, THREAD_ID tid=0) const
 
void updateBoundaryMatPropDependency (BoundaryID id, std::unordered_set< unsigned int > &needed_mat_props, THREAD_ID tid=0) const
 

Protected Member Functions

void checkThreadID (THREAD_ID tid) const
 Calls assert on thread id. More...
 

Static Protected Member Functions

static void updateActiveHelper (std::vector< std::shared_ptr< T >> &active, const std::vector< std::shared_ptr< T >> &all)
 Helper method for updating active vectors. More...
 
static void sortHelper (std::vector< std::shared_ptr< T >> &objects)
 Helper method for sorting vectors of objects. More...
 
static void updateVariableDependencyHelper (std::set< MooseVariableFieldBase *> &needed_moose_vars, const std::vector< std::shared_ptr< T >> &objects)
 Helper method for updating variable dependency vector. More...
 
static void updateFEVariableCoupledVectorTagDependencyHelper (std::set< TagID > &needed_fe_var_vector_tags, const std::vector< std::shared_ptr< T >> &objects)
 Helper method for updating FE variable coupleable vector tag vector. More...
 
static void updateMatPropDependencyHelper (std::unordered_set< unsigned int > &needed_mat_props, const std::vector< std::shared_ptr< T >> &objects)
 Helper method for updating material property dependency vector. More...
 

Protected Attributes

const THREAD_ID _num_threads
 
std::vector< std::map< TagID, MooseObjectWarehouse< T > > > _vector_tag_to_object_warehouse
 Tag based storage. Map from a tag to a moose object warehouse for vector tags. More...
 
std::vector< std::map< std::set< TagID >, MooseObjectWarehouse< T > > > _vector_tags_to_object_warehouse
 std::set<TagID> based storage. Map from a std::set of tags to a moose object warehouse for vector tags. More...
 
std::vector< std::map< TagID, MooseObjectWarehouse< T > > > _matrix_tag_to_object_warehouse
 Tag based storage. Map fro a tag to moose object warehouse for matrix tags. More...
 
std::vector< std::map< std::set< TagID >, MooseObjectWarehouse< T > > > _matrix_tags_to_object_warehouse
 std::set<TagID> based storage. Map from a std::set of tags to moose object warehouse for matrix tags. More...
 
std::map< unsigned int, MooseObjectWarehouse< T > > _variable_objects
 Variable based storage. More...
 
std::vector< std::vector< std::shared_ptr< T > > > _all_objects
 Storage container for the ALL pointers (THREAD_ID on outer vector) More...
 
std::vector< std::vector< std::shared_ptr< T > > > _active_objects
 All active objects (THREAD_ID on outer vector) More...
 
std::vector< std::map< SubdomainID, std::vector< std::shared_ptr< T > > > > _all_block_objects
 
std::vector< std::map< SubdomainID, std::vector< std::shared_ptr< T > > > > _active_block_objects
 Active block restricted objects (THREAD_ID on outer vector) More...
 
std::vector< std::map< BoundaryID, std::vector< std::shared_ptr< T > > > > _all_boundary_objects
 
std::vector< std::map< BoundaryID, std::vector< std::shared_ptr< T > > > > _active_boundary_objects
 Active boundary restricted objects (THREAD_ID on outer vector) More...
 

Detailed Description

template<typename T>
class MooseObjectTagWarehouse< T >

A storage container for MooseObjects that inherit from SetupInterface.

Objects that inherit from SetupInterface have various functions (e.g., initialSetup). This class provides convenience functions for looping over all active Objects stored in the warehouse and calling the setup methods.

Definition at line 19 of file BoundaryElemIntegrityCheckThread.h.

Constructor & Destructor Documentation

◆ MooseObjectTagWarehouse()

template<typename T >
MooseObjectTagWarehouse< T >::MooseObjectTagWarehouse ( bool  threaded = true)

Constructor.

Parameters
threadedWhen true (default) threaded storage is enabled.

Definition at line 88 of file MooseObjectTagWarehouse.h.

89  : MooseObjectWarehouse<T>(threaded),
90  _num_threads(threaded ? libMesh::n_threads() : 1),
95 {
96 }
unsigned int n_threads()
std::vector< std::map< std::set< TagID >, MooseObjectWarehouse< T > > > _vector_tags_to_object_warehouse
std::set<TagID> based storage. Map from a std::set of tags to a moose object warehouse for vector tag...
A storage container for MooseObjects that inherit from SetupInterface.
std::vector< std::map< std::set< TagID >, MooseObjectWarehouse< T > > > _matrix_tags_to_object_warehouse
std::set<TagID> based storage. Map from a std::set of tags to moose object warehouse for matrix tags...
std::vector< std::map< TagID, MooseObjectWarehouse< T > > > _matrix_tag_to_object_warehouse
Tag based storage. Map fro a tag to moose object warehouse for matrix tags.
std::vector< std::map< TagID, MooseObjectWarehouse< T > > > _vector_tag_to_object_warehouse
Tag based storage. Map from a tag to a moose object warehouse for vector tags.

Member Function Documentation

◆ activeObjectsToFormattedString()

template<typename T >
std::string MooseObjectWarehouseBase< T >::activeObjectsToFormattedString ( THREAD_ID  tid = 0,
const std::string &  prefix = "[DBG]" 
) const
inherited

Output the active content of the warehouse to a string, meant to be output to the console.

Parameters
tidthe thread id
prefixa string to prepend to the string

Definition at line 761 of file MooseObjectWarehouseBase.h.

Referenced by NonlinearThread::printBlockExecutionInformation(), NonlinearThread::printBoundaryExecutionInformation(), ComputeNodalKernelBcsThread::printGeneralExecutionInformation(), ComputeNodalKernelsThread::printGeneralExecutionInformation(), ComputeNodalKernelBCJacobiansThread::printGeneralExecutionInformation(), and ComputeNodalKernelJacobiansThread::printGeneralExecutionInformation().

763 {
764  std::vector<std::string> output;
765  for (const auto & object : _active_objects[tid])
766  output.push_back(object->name());
767  return ConsoleUtils::formatString(MooseUtils::join(output, " "), prefix);
768 }
std::string formatString(std::string message, const std::string &prefix)
Add new lines and prefixes to a string for pretty display in output NOTE: This makes a copy of the st...
Definition: ConsoleUtils.C:436
std::vector< std::vector< std::shared_ptr< T > > > _active_objects
All active objects (THREAD_ID on outer vector)
std::string join(const T &strings, const std::string &delimiter)
Python like join function for strings.
Definition: MooseUtils.h:130

◆ addObject()

template<typename T>
void MooseObjectWarehouse< T >::addObject ( std::shared_ptr< T >  object,
THREAD_ID  tid = 0,
bool  recurse = true 
)
overridevirtualinherited

Adds an object to the storage structure.

Parameters
objectA shared pointer to the object being added
tidThe thread ID (default is 0)
recurseWhether or not to build recusive warehouses (typically for Kernels)

Reimplemented from MooseObjectWarehouseBase< T >.

Reimplemented in ExecuteMooseObjectWarehouse< T >, ExecuteMooseObjectWarehouse< TransientMultiApp >, ExecuteMooseObjectWarehouse< AuxKernelTempl >, ExecuteMooseObjectWarehouse< UserObject >, ExecuteMooseObjectWarehouse< AuxScalarKernel >, ExecuteMooseObjectWarehouse< MultiApp >, ExecuteMooseObjectWarehouse< Control >, ExecuteMooseObjectWarehouse< Transfer >, and ConstraintWarehouse.

Definition at line 93 of file MooseObjectWarehouse.h.

Referenced by NonlinearSystemBase::addBoundaryCondition(), NonlinearSystemBase::addDamper(), NonlinearSystemBase::addDGKernel(), NonlinearSystemBase::addDiracKernel(), FEProblemBase::addFunction(), FEProblemBase::addFunctorMaterial(), FEProblemBase::addIndicator(), NonlinearSystemBase::addInterfaceKernel(), MooseEigenSystem::addKernel(), NonlinearSystemBase::addKernel(), FEProblemBase::addMarker(), FEProblemBase::addMaterialHelper(), FEProblemBase::addMeshDivision(), NonlinearSystemBase::addNodalKernel(), ConstraintWarehouse::addObject(), ExecuteMooseObjectWarehouse< Transfer >::addObject(), MaterialWarehouse::addObjects(), NonlinearSystemBase::addScalarKernel(), and FEProblemBase::checkNonlocalCoupling().

96 {
97  MooseObjectWarehouseBase<T>::addObject(object, tid, recurse);
98 
99  if (recurse)
100  {
101  {
103 
104  if (mvi)
105  _variable_objects[mvi->mooseVariableBase()->number()].addObject(object, tid, false);
106  }
107 
108  {
110 
111  if (mvi)
112  _variable_objects[mvi->mooseVariableBase()->number()].addObject(object, tid, false);
113  }
114 
115  {
117 
118  if (mvi)
119  _variable_objects[mvi->mooseVariableBase()->number()].addObject(object, tid, false);
120  }
121  }
122 }
std::unique_ptr< T_DEST, T_DELETER > dynamic_pointer_cast(std::unique_ptr< T_SRC, T_DELETER > &src)
These are reworked from https://stackoverflow.com/a/11003103.
std::map< unsigned int, MooseObjectWarehouse< T > > _variable_objects
Variable based storage.
virtual void addObject(std::shared_ptr< T > object, THREAD_ID tid=0, bool recurse=true)
Adds an object to the storage structure.

◆ checkThreadID()

template<typename T>
void MooseObjectWarehouseBase< T >::checkThreadID ( THREAD_ID  tid) const
inlineprotectedinherited

Calls assert on thread id.

Definition at line 792 of file MooseObjectWarehouseBase.h.

793 {
794  mooseAssert(tid < _num_threads,
795  "Attempting to access a thread id ("
796  << tid << ") greater than the number allowed by the storage item ("
797  << _num_threads << ")");
798 }
const THREAD_ID _num_threads
Convenience member storing the number of threads used for storage (1 or libMesh::n_threads) ...

◆ customSetup()

template<typename T >
void MooseObjectWarehouse< T >::customSetup ( const ExecFlagType exec_type,
THREAD_ID  tid = 0 
) const
virtualinherited

Definition at line 169 of file MooseObjectWarehouse.h.

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

170 {
171  checkThreadID(tid);
172  for (const auto & object : _active_objects[tid])
173  object->customSetup(exec_type);
174 }
void checkThreadID(THREAD_ID tid) const
Calls assert on thread id.
std::vector< std::vector< std::shared_ptr< T > > > _active_objects
All active objects (THREAD_ID on outer vector)

◆ getActiveBlockObjects() [1/2]

template<typename T >
const std::map< SubdomainID, std::vector< std::shared_ptr< T > > > & MooseObjectWarehouseBase< T >::getActiveBlockObjects ( THREAD_ID  tid = 0) const
inlineinherited

◆ getActiveBlockObjects() [2/2]

template<typename T >
const std::vector< std::shared_ptr< T > > & MooseObjectWarehouseBase< T >::getActiveBlockObjects ( SubdomainID  id,
THREAD_ID  tid = 0 
) const
inherited

Definition at line 435 of file MooseObjectWarehouseBase.h.

436 {
437  checkThreadID(tid);
438  const auto iter = _active_block_objects[tid].find(id);
439  mooseAssert(iter != _active_block_objects[tid].end(),
440  "Unable to located active block objects for the given id: " << id << ".");
441  return iter->second;
442 }
std::vector< std::map< SubdomainID, std::vector< std::shared_ptr< T > > > > _active_block_objects
Active block restricted objects (THREAD_ID on outer vector)
void checkThreadID(THREAD_ID tid) const
Calls assert on thread id.

◆ getActiveBlocks()

template<typename T >
std::set< SubdomainID > MooseObjectWarehouseBase< T >::getActiveBlocks ( THREAD_ID  tid = 0) const
inherited

Return a set of active SubdomainsIDs.

Definition at line 535 of file MooseObjectWarehouseBase.h.

Referenced by FEProblemBase::checkProblemIntegrity().

536 {
537  checkThreadID(tid);
538  std::set<SubdomainID> ids;
539  for (const auto & object_pair : _active_block_objects[tid])
540  ids.insert(object_pair.first);
541  return ids;
542 }
std::vector< std::map< SubdomainID, std::vector< std::shared_ptr< T > > > > _active_block_objects
Active block restricted objects (THREAD_ID on outer vector)
void checkThreadID(THREAD_ID tid) const
Calls assert on thread id.

◆ getActiveBoundaryObjects() [1/2]

template<typename T >
const std::map< BoundaryID, std::vector< std::shared_ptr< T > > > & MooseObjectWarehouseBase< T >::getActiveBoundaryObjects ( THREAD_ID  tid = 0) const
inlineinherited

◆ getActiveBoundaryObjects() [2/2]

template<typename T >
const std::vector< std::shared_ptr< T > > & MooseObjectWarehouseBase< T >::getActiveBoundaryObjects ( BoundaryID  id,
THREAD_ID  tid = 0 
) const
inherited

Definition at line 416 of file MooseObjectWarehouseBase.h.

417 {
418  checkThreadID(tid);
419  const auto iter = _active_boundary_objects[tid].find(id);
420  mooseAssert(iter != _active_boundary_objects[tid].end(),
421  "Unable to located active boundary objects for the given id: " << id << ".");
422  return iter->second;
423 }
void checkThreadID(THREAD_ID tid) const
Calls assert on thread id.
std::vector< std::map< BoundaryID, std::vector< std::shared_ptr< T > > > > _active_boundary_objects
Active boundary restricted objects (THREAD_ID on outer vector)

◆ getActiveObject()

template<typename T >
std::shared_ptr< T > MooseObjectWarehouseBase< T >::getActiveObject ( const std::string &  name,
THREAD_ID  tid = 0 
) const
inherited

Definition at line 524 of file MooseObjectWarehouseBase.h.

Referenced by DerivativeParsedMaterialHelperTempl< is_ad >::assembleDerivatives(), FEProblemBase::getFunction(), FEProblemBase::getMaterial(), FEProblemBase::getMeshDivision(), NonlinearSystemBase::getSplit(), LibtorchArtificialNeuralNetParameters::initialSetup(), and LibtorchControlValuePostprocessor::initialSetup().

525 {
526  checkThreadID(tid);
527  for (const auto & object : _active_objects[tid])
528  if (object->name() == name)
529  return object;
530  mooseError("Unable to locate active object: ", name, ".");
531 }
std::string name(const ElemQuality q)
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:299
void checkThreadID(THREAD_ID tid) const
Calls assert on thread id.
std::vector< std::vector< std::shared_ptr< T > > > _active_objects
All active objects (THREAD_ID on outer vector)

◆ getActiveObjects()

template<typename T >
const std::vector< std::shared_ptr< T > > & MooseObjectWarehouseBase< T >::getActiveObjects ( THREAD_ID  tid = 0) const
inlineinherited

Retrieve complete vector to the active all/block/boundary restricted objects for a given thread.

Parameters
tidThe thread id to retrieve objects from

Definition at line 400 of file MooseObjectWarehouseBase.h.

Referenced by FEProblemBase::backupMultiApps(), NonlinearEigenSystem::checkIntegrity(), FEProblemBase::checkProblemIntegrity(), NonlinearSystemBase::computeDamping(), NonlinearSystemBase::computeDiracContributions(), FEProblemBase::computeIndicators(), FEProblemBase::computeMarkers(), FEProblemBase::computeMultiAppsDT(), NonlinearSystemBase::computeResidualInternal(), NonlinearSystemBase::computeScalarKernelsJacobians(), AuxiliarySystem::computeScalarVars(), FEProblemBase::execMultiApps(), FEProblemBase::execMultiAppTransfers(), FEProblemBase::execTransfers(), FEProblemBase::finalizeMultiApps(), FEProblemBase::finishMultiAppStep(), ConstraintWarehouse::getActiveNodalConstraints(), FEProblemBase::getTransfers(), FEProblemBase::incrementMultiAppTStep(), FEProblemBase::initialSetup(), ComputeElemDampingThread::onElement(), ComputeDiracThread::onElement(), ComputeNodalDampingThread::onNode(), FEProblemBase::postExecute(), FEProblemBase::projectInitialConditionOnCustomRange(), FEProblemBase::projectSolution(), FEProblemBase::restoreMultiApps(), and AuxiliarySystem::setScalarVariableCoupleableTags().

401 {
402  checkThreadID(tid);
403  return _active_objects[tid];
404 }
void checkThreadID(THREAD_ID tid) const
Calls assert on thread id.
std::vector< std::vector< std::shared_ptr< T > > > _active_objects
All active objects (THREAD_ID on outer vector)

◆ getActiveVariableBlockObjects()

template<typename T >
const std::vector< std::shared_ptr< T > > & MooseObjectWarehouse< T >::getActiveVariableBlockObjects ( unsigned int  variable_id,
SubdomainID  block_id,
THREAD_ID  tid = 0 
) const
inherited

Definition at line 136 of file MooseObjectWarehouse.h.

Referenced by ComputeFullJacobianThread::computeOnElement().

139 {
140  checkThreadID(tid);
141  const auto iter = _variable_objects.find(variable_id);
142  mooseAssert(iter != _variable_objects.end(),
143  "Unable to locate variable kernels for the given variable id: " << variable_id
144  << ".");
145  return iter->second.getActiveBlockObjects(block_id, tid);
146 }
void checkThreadID(THREAD_ID tid) const
Calls assert on thread id.
std::map< unsigned int, MooseObjectWarehouse< T > > _variable_objects
Variable based storage.

◆ getBlockObjects() [1/2]

template<typename T >
const std::map< SubdomainID, std::vector< std::shared_ptr< T > > > & MooseObjectWarehouseBase< T >::getBlockObjects ( THREAD_ID  tid = 0) const
inlineinherited

Definition at line 381 of file MooseObjectWarehouseBase.h.

Referenced by MaterialPropertyDebugOutput::printMaterialMap().

382 {
383  checkThreadID(tid);
384  return _all_block_objects[tid];
385 }
std::vector< std::map< SubdomainID, std::vector< std::shared_ptr< T > > > > _all_block_objects
void checkThreadID(THREAD_ID tid) const
Calls assert on thread id.

◆ getBlockObjects() [2/2]

template<typename T >
const std::vector< std::shared_ptr< T > > & MooseObjectWarehouseBase< T >::getBlockObjects ( SubdomainID  id,
THREAD_ID  tid = 0 
) const
inherited

Definition at line 389 of file MooseObjectWarehouseBase.h.

390 {
391  checkThreadID(tid);
392  const auto iter = _all_block_objects[tid].find(id);
393  mooseAssert(iter != _all_block_objects[tid].end(),
394  "Unable to located active block objects for the given id: " << id << ".");
395  return iter->second;
396 }
std::vector< std::map< SubdomainID, std::vector< std::shared_ptr< T > > > > _all_block_objects
void checkThreadID(THREAD_ID tid) const
Calls assert on thread id.

◆ getBoundaryObjects() [1/2]

template<typename T >
const std::map< BoundaryID, std::vector< std::shared_ptr< T > > > & MooseObjectWarehouseBase< T >::getBoundaryObjects ( THREAD_ID  tid = 0) const
inlineinherited

Definition at line 354 of file MooseObjectWarehouseBase.h.

Referenced by ComputeFullJacobianThread::computeOnBoundary(), and MaterialPropertyDebugOutput::printMaterialMap().

355 {
356  checkThreadID(tid);
357  return _all_boundary_objects[tid];
358 }
void checkThreadID(THREAD_ID tid) const
Calls assert on thread id.
std::vector< std::map< BoundaryID, std::vector< std::shared_ptr< T > > > > _all_boundary_objects

◆ getBoundaryObjects() [2/2]

template<typename T >
const std::vector< std::shared_ptr< T > > & MooseObjectWarehouseBase< T >::getBoundaryObjects ( BoundaryID  id,
THREAD_ID  tid = 0 
) const
inherited

Definition at line 370 of file MooseObjectWarehouseBase.h.

371 {
372  checkThreadID(tid);
373  const auto iter = _all_boundary_objects[tid].find(id);
374  mooseAssert(iter != _all_boundary_objects[tid].end(),
375  "Unable to located active boundary objects for the given id: " << id << ".");
376  return iter->second;
377 }
void checkThreadID(THREAD_ID tid) const
Calls assert on thread id.
std::vector< std::map< BoundaryID, std::vector< std::shared_ptr< T > > > > _all_boundary_objects

◆ getMatrixTagObjectWarehouse()

template<typename T >
MooseObjectWarehouse< T > & MooseObjectTagWarehouse< T >::getMatrixTagObjectWarehouse ( TagID  tag_id,
THREAD_ID  tid 
)

Retrieve a moose object warehouse in which every moose object has the given matrix tag.

If the warehouse is not constructed yet, it will be constructed here and returned. If the warehouse is already cached (it was queried before), we just directly return the cached warehouse.

Definition at line 152 of file MooseObjectTagWarehouse.h.

Referenced by NonlinearSystemBase::computeJacobianInternal(), NonlinearSystemBase::computeScalarKernelsJacobians(), ComputeJacobianThread::determineObjectWarehouses(), ComputeNodalKernelBCJacobiansThread::pre(), ComputeNodalKernelJacobiansThread::pre(), and ComputeDiracThread::subdomainChanged().

153 {
154  auto & matrix_tag_to_object_warehouse = _matrix_tag_to_object_warehouse[tid];
155 
156  const auto & house_end = matrix_tag_to_object_warehouse.end();
157  const auto & tag_warehouse = matrix_tag_to_object_warehouse.find(tag_id);
158 
159  if (tag_warehouse != house_end)
160  return tag_warehouse->second;
161  else
162  matrix_tag_to_object_warehouse[tag_id];
163 
164  // Add moose objects to matrix-tag warehouse
165  const auto & objects = MooseObjectWarehouse<T>::getObjects(tid);
166  for (auto & object : objects)
167  {
168  auto & tags = object->getMatrixTags({});
169  for (auto & tag : tags)
170  {
171  if (tag == tag_id)
172  {
173  // Tag based storage
174  matrix_tag_to_object_warehouse[tag_id].addObject(object, tid);
175 
176  break;
177  }
178  }
179  }
180 
181  return matrix_tag_to_object_warehouse[tag_id];
182 }
const std::vector< std::shared_ptr< T > > & getObjects(THREAD_ID tid=0) const
Retrieve complete vector to the all/block/boundary restricted objects for a given thread...
std::vector< std::map< TagID, MooseObjectWarehouse< T > > > _matrix_tag_to_object_warehouse
Tag based storage. Map fro a tag to moose object warehouse for matrix tags.

◆ getMatrixTagsObjectWarehouse()

template<typename T >
MooseObjectWarehouse< T > & MooseObjectTagWarehouse< T >::getMatrixTagsObjectWarehouse ( const std::set< TagID > &  tags,
THREAD_ID  tid 
)

Retrieve a moose object warehouse in which every moose object has one of the given matrix tags.

If the warehouse is not constructed yet, it will be constructed here and returned. If the warehouse is already cached (it was queried before), we just directly return the cached warehouse.

Definition at line 225 of file MooseObjectTagWarehouse.h.

Referenced by NonlinearSystemBase::computeJacobianInternal(), NonlinearSystemBase::computeScalarKernelsJacobians(), ComputeJacobianThread::determineObjectWarehouses(), ComputeNodalKernelBCJacobiansThread::pre(), ComputeNodalKernelJacobiansThread::pre(), and ComputeDiracThread::subdomainChanged().

227 {
228  auto & matrix_tags_to_object_warehouse = _matrix_tags_to_object_warehouse[tid];
229 
230  const auto & house_end = matrix_tags_to_object_warehouse.end();
231  const auto & tags_warehouse = matrix_tags_to_object_warehouse.find(m_tags);
232 
233  if (tags_warehouse != house_end)
234  return tags_warehouse->second;
235  else
236  matrix_tags_to_object_warehouse[m_tags];
237 
238  const auto & objects = MooseObjectWarehouse<T>::getObjects(tid);
239  for (auto & object : objects)
240  {
241  auto & tags = object->getMatrixTags({});
242  const auto & tags_end = tags.end();
243  for (auto & m_tag : m_tags)
244  {
245  const auto & tag_found = tags.find(m_tag);
246  // Object contains at least one of required tags
247  if (tag_found != tags_end)
248  {
249  // std::vector<Tag> based storage
250  matrix_tags_to_object_warehouse[m_tags].addObject(object, tid);
251  // Then we should work for next object
252  break;
253  }
254  }
255  }
256 
257  return matrix_tags_to_object_warehouse[m_tags];
258 }
const std::vector< std::shared_ptr< T > > & getObjects(THREAD_ID tid=0) const
Retrieve complete vector to the all/block/boundary restricted objects for a given thread...
std::vector< std::map< std::set< TagID >, MooseObjectWarehouse< T > > > _matrix_tags_to_object_warehouse
std::set<TagID> based storage. Map from a std::set of tags to moose object warehouse for matrix tags...

◆ getObject()

template<typename T >
std::shared_ptr< T > MooseObjectWarehouseBase< T >::getObject ( const std::string &  name,
THREAD_ID  tid = 0 
) const
inherited

Definition at line 513 of file MooseObjectWarehouseBase.h.

Referenced by FEProblemBase::getMultiApp().

514 {
515  checkThreadID(tid);
516  for (const auto & object : _all_objects[tid])
517  if (object->name() == name)
518  return object;
519  mooseError("Unable to locate object: ", name, ".");
520 }
std::string name(const ElemQuality q)
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:299
std::vector< std::vector< std::shared_ptr< T > > > _all_objects
Storage container for the ALL pointers (THREAD_ID on outer vector)
void checkThreadID(THREAD_ID tid) const
Calls assert on thread id.

◆ getObjects()

template<typename T >
const std::vector< std::shared_ptr< T > > & MooseObjectWarehouseBase< T >::getObjects ( THREAD_ID  tid = 0) const
inlineinherited

Retrieve complete vector to the all/block/boundary restricted objects for a given thread.

Parameters
tidThe thread id to retrieve objects from

Definition at line 346 of file MooseObjectWarehouseBase.h.

Referenced by FEProblemBase::checkNonlocalCoupling(), MooseApp::errorCheck(), MooseObjectTagWarehouse< DiracKernelBase >::getMatrixTagObjectWarehouse(), MooseObjectTagWarehouse< DiracKernelBase >::getMatrixTagsObjectWarehouse(), MooseObjectTagWarehouse< DiracKernelBase >::getVectorTagObjectWarehouse(), MooseObjectTagWarehouse< DiracKernelBase >::getVectorTagsObjectWarehouse(), FEProblemBase::setActiveMaterialProperties(), and FEProblemBase::setNonlocalCouplingMatrix().

347 {
348  checkThreadID(tid);
349  return _all_objects[tid];
350 }
std::vector< std::vector< std::shared_ptr< T > > > _all_objects
Storage container for the ALL pointers (THREAD_ID on outer vector)
void checkThreadID(THREAD_ID tid) const
Calls assert on thread id.

◆ getVectorTagObjectWarehouse()

template<typename T >
MooseObjectWarehouse< T > & MooseObjectTagWarehouse< T >::getVectorTagObjectWarehouse ( TagID  tag_id,
THREAD_ID  tid 
)

Retrieve a moose object warehouse in which every moose object has the given vector tag.

If the warehouse is not constructed yet, it will be constructed here and returned. If the warehouse is already cached (it was queried before), we just directly return the cached warehouse.

Definition at line 119 of file MooseObjectTagWarehouse.h.

Referenced by NonlinearSystemBase::computeNodalBCs(), NonlinearSystemBase::computeResidualInternal(), NonlinearSystemBase::containsTimeKernel(), ComputeResidualThread::determineObjectWarehouses(), ComputeNodalKernelBcsThread::pre(), ComputeNodalKernelsThread::pre(), and ComputeDiracThread::subdomainChanged().

120 {
121  auto & vector_tag_to_object_warehouse = _vector_tag_to_object_warehouse[tid];
122 
123  const auto & house_end = vector_tag_to_object_warehouse.end();
124  const auto & tag_warehouse = vector_tag_to_object_warehouse.find(tag_id);
125 
126  if (tag_warehouse != house_end)
127  return tag_warehouse->second;
128  else
129  vector_tag_to_object_warehouse[tag_id];
130 
131  // Now add actual moose objects into warehouse
132  const auto & objects = MooseObjectWarehouse<T>::getObjects(tid);
133  for (auto & object : objects)
134  {
135  auto & tags = object->getVectorTags({});
136  for (auto & tag : tags)
137  {
138  if (tag == tag_id)
139  {
140  // Tag based storage
141  vector_tag_to_object_warehouse[tag_id].addObject(object, tid);
142  break;
143  }
144  }
145  }
146 
147  return vector_tag_to_object_warehouse[tag_id];
148 }
const std::vector< std::shared_ptr< T > > & getObjects(THREAD_ID tid=0) const
Retrieve complete vector to the all/block/boundary restricted objects for a given thread...
std::vector< std::map< TagID, MooseObjectWarehouse< T > > > _vector_tag_to_object_warehouse
Tag based storage. Map from a tag to a moose object warehouse for vector tags.

◆ getVectorTagsObjectWarehouse()

template<typename T >
MooseObjectWarehouse< T > & MooseObjectTagWarehouse< T >::getVectorTagsObjectWarehouse ( const std::set< TagID > &  tags,
THREAD_ID  tid 
)

Retrieve a moose object warehouse in which every moose object at least has one of the given vector tags.

If the warehouse is not constructed yet, it will be constructed here and returned. If the warehouse is already cached (it was queried before), we just directly return the cached warehouse.

Definition at line 186 of file MooseObjectTagWarehouse.h.

Referenced by NonlinearSystemBase::computeNodalBCs(), NonlinearSystemBase::computeResidualInternal(), ComputeResidualThread::determineObjectWarehouses(), ComputeNodalKernelBcsThread::pre(), ComputeNodalKernelsThread::pre(), and ComputeDiracThread::subdomainChanged().

188 {
189  // std::map is not thread-safe for writes
190  auto & vector_tags_to_object_warehouse = _vector_tags_to_object_warehouse[tid];
191 
192  const auto & house_end = vector_tags_to_object_warehouse.end();
193  const auto & tags_warehouse = vector_tags_to_object_warehouse.find(v_tags);
194 
195  if (tags_warehouse != house_end)
196  return tags_warehouse->second;
197  else
198  vector_tags_to_object_warehouse[v_tags];
199 
200  // Add moose objects to vector-tags warehouse
201  const auto & objects = MooseObjectWarehouse<T>::getObjects(tid);
202  for (auto & object : objects)
203  {
204  auto & tags = object->getVectorTags({});
205  const auto & tags_end = tags.end();
206  for (auto & v_tag : v_tags)
207  {
208  const auto & tag_found = tags.find(v_tag);
209  // Object contains at least one of required tags
210  if (tag_found != tags_end)
211  {
212  // std::vector<Tag> based storage
213  vector_tags_to_object_warehouse[v_tags].addObject(object, tid);
214  // Then we should work for next object
215  break;
216  }
217  }
218  }
219 
220  return vector_tags_to_object_warehouse[v_tags];
221 }
std::vector< std::map< std::set< TagID >, MooseObjectWarehouse< T > > > _vector_tags_to_object_warehouse
std::set<TagID> based storage. Map from a std::set of tags to a moose object warehouse for vector tag...
const std::vector< std::shared_ptr< T > > & getObjects(THREAD_ID tid=0) const
Retrieve complete vector to the all/block/boundary restricted objects for a given thread...

◆ hasActiveBlockObjects() [1/2]

template<typename T >
bool MooseObjectWarehouseBase< T >::hasActiveBlockObjects ( THREAD_ID  tid = 0) const
inherited

Definition at line 462 of file MooseObjectWarehouseBase.h.

Referenced by AuxiliarySystem::computeElementalVarsHelper(), NonlinearSystemBase::computeJacobianInternal(), AuxiliarySystem::computeMortarNodalVars(), AuxiliarySystem::computeNodalVarsHelper(), NonlinearThread::computeOnElement(), ComputeFullJacobianThread::computeOnInternalFace(), NonlinearSystemBase::computeResidualInternal(), BlockRestrictable::hasBlockMaterialPropertyHelper(), ComputeMarkerThread::onElement(), ComputeIndicatorThread::onElement(), ComputeMaterialsObjectThread::onElement(), ProjectMaterialProperties::onElement(), ComputeIndicatorThread::onInternalSide(), NonlinearThread::onInternalSide(), ComputeNodalKernelsThread::onNode(), ComputeNodalKernelJacobiansThread::onNode(), ComputeInitialConditionThread::operator()(), ComputeFVInitialConditionThread::operator()(), ComputeJacobianBlocksThread::postInternalSide(), FEProblemBase::prepareMaterials(), ComputeMarkerThread::printBlockExecutionInformation(), ComputeDiracThread::printBlockExecutionInformation(), ComputeIndicatorThread::printBlockExecutionInformation(), NonlinearThread::printBlockExecutionInformation(), and FEProblemBase::reinitMaterials().

463 {
464  checkThreadID(tid);
465  bool has_active_block_objects = false;
466  for (const auto & object_pair : _active_block_objects[tid])
467  has_active_block_objects |= !(object_pair.second.empty());
468  return has_active_block_objects;
469 }
std::vector< std::map< SubdomainID, std::vector< std::shared_ptr< T > > > > _active_block_objects
Active block restricted objects (THREAD_ID on outer vector)
void checkThreadID(THREAD_ID tid) const
Calls assert on thread id.

◆ hasActiveBlockObjects() [2/2]

template<typename T >
bool MooseObjectWarehouseBase< T >::hasActiveBlockObjects ( SubdomainID  id,
THREAD_ID  tid = 0 
) const
inherited

Definition at line 473 of file MooseObjectWarehouseBase.h.

474 {
475  checkThreadID(tid);
476  const auto iter = _active_block_objects[tid].find(id);
477  return iter != _active_block_objects[tid].end();
478 }
std::vector< std::map< SubdomainID, std::vector< std::shared_ptr< T > > > > _active_block_objects
Active block restricted objects (THREAD_ID on outer vector)
void checkThreadID(THREAD_ID tid) const
Calls assert on thread id.

◆ hasActiveBoundaryObjects() [1/2]

template<typename T >
bool MooseObjectWarehouseBase< T >::hasActiveBoundaryObjects ( THREAD_ID  tid = 0) const
inherited

Definition at line 482 of file MooseObjectWarehouseBase.h.

Referenced by AuxiliarySystem::computeElementalVarsHelper(), NonlinearSystemBase::computeJacobianBlocks(), NonlinearSystemBase::computeJacobianInternal(), AuxiliarySystem::computeMortarNodalVars(), NonlinearSystemBase::computeNodalBCs(), NonlinearSystemBase::computeNodalBCsResidualAndJacobian(), AuxiliarySystem::computeNodalVarsHelper(), ComputeFullJacobianThread::computeOnBoundary(), ComputeFullJacobianThread::computeOnInterface(), NonlinearSystemBase::computeResidualInternal(), BoundaryRestrictable::hasBoundaryMaterialPropertyHelper(), NonlinearSystemBase::needBoundaryMaterialOnSide(), NonlinearSystemBase::needInterfaceMaterialOnSide(), FEProblemBase::needInterfaceMaterialOnSide(), ComputeMaterialsObjectThread::onBoundary(), NonlinearThread::onBoundary(), ComputeMaterialsObjectThread::onInterface(), NonlinearThread::onInterface(), ComputeBoundaryInitialConditionThread::onNode(), ComputeNodalKernelBcsThread::onNode(), ComputeNodalKernelBCJacobiansThread::onNode(), NonlinearThread::printBoundaryExecutionInformation(), ComputeNodalKernelBCJacobiansThread::printGeneralExecutionInformation(), FEProblemBase::reinitMaterialsBoundary(), FEProblemBase::reinitMaterialsInterface(), and NonlinearSystemBase::setInitialSolution().

483 {
484  checkThreadID(tid);
485  bool has_active_boundary_objects = false;
486  for (const auto & object_pair : _active_boundary_objects[tid])
487  has_active_boundary_objects |= !(object_pair.second.empty());
488  return has_active_boundary_objects;
489 }
void checkThreadID(THREAD_ID tid) const
Calls assert on thread id.
std::vector< std::map< BoundaryID, std::vector< std::shared_ptr< T > > > > _active_boundary_objects
Active boundary restricted objects (THREAD_ID on outer vector)

◆ hasActiveBoundaryObjects() [2/2]

template<typename T >
bool MooseObjectWarehouseBase< T >::hasActiveBoundaryObjects ( BoundaryID  id,
THREAD_ID  tid = 0 
) const
inherited

Definition at line 493 of file MooseObjectWarehouseBase.h.

494 {
495  checkThreadID(tid);
496  const auto iter = _active_boundary_objects[tid].find(id);
497  return iter != _active_boundary_objects[tid].end();
498 }
void checkThreadID(THREAD_ID tid) const
Calls assert on thread id.
std::vector< std::map< BoundaryID, std::vector< std::shared_ptr< T > > > > _active_boundary_objects
Active boundary restricted objects (THREAD_ID on outer vector)

◆ hasActiveObject()

template<typename T >
bool MooseObjectWarehouseBase< T >::hasActiveObject ( const std::string &  name,
THREAD_ID  tid = 0 
) const
inherited

Convenience functions for checking/getting specific objects.

Definition at line 502 of file MooseObjectWarehouseBase.h.

Referenced by FEProblemBase::hasFunction(), and FEProblemBase::hasMultiApp().

503 {
504  checkThreadID(tid);
505  for (const auto & object : _active_objects[tid])
506  if (object->name() == name)
507  return true;
508  return false;
509 }
std::string name(const ElemQuality q)
void checkThreadID(THREAD_ID tid) const
Calls assert on thread id.
std::vector< std::vector< std::shared_ptr< T > > > _active_objects
All active objects (THREAD_ID on outer vector)

◆ hasActiveObjects()

template<typename T >
bool MooseObjectWarehouseBase< T >::hasActiveObjects ( THREAD_ID  tid = 0) const
inherited

◆ hasActiveVariableBlockObjects()

template<typename T >
bool MooseObjectWarehouse< T >::hasActiveVariableBlockObjects ( unsigned int  variable_id,
SubdomainID  block_id,
THREAD_ID  tid = 0 
) const
inherited

Methods for checking/getting variable kernels for a variable and SubdomainID.

Definition at line 126 of file MooseObjectWarehouse.h.

Referenced by ComputeFullJacobianThread::computeOnElement().

129 {
130  auto iter = _variable_objects.find(variable_id);
131  return (iter != _variable_objects.end() && iter->second.hasActiveBlockObjects(block_id, tid));
132 }
std::map< unsigned int, MooseObjectWarehouse< T > > _variable_objects
Variable based storage.

◆ hasBoundaryObjects()

template<typename T >
bool MooseObjectWarehouseBase< T >::hasBoundaryObjects ( BoundaryID  id,
THREAD_ID  tid = 0 
) const
inherited

Definition at line 362 of file MooseObjectWarehouseBase.h.

363 {
364  checkThreadID(tid);
365  return _all_boundary_objects[tid].find(id) != _all_boundary_objects[tid].end();
366 }
void checkThreadID(THREAD_ID tid) const
Calls assert on thread id.
std::vector< std::map< BoundaryID, std::vector< std::shared_ptr< T > > > > _all_boundary_objects

◆ hasObjects()

template<typename T >
bool MooseObjectWarehouseBase< T >::hasObjects ( THREAD_ID  tid = 0) const
inherited

Convenience functions for determining if objects exist.

Definition at line 446 of file MooseObjectWarehouseBase.h.

Referenced by FEProblemBase::initialSetup().

447 {
448  checkThreadID(tid);
449  return !_all_objects[tid].empty();
450 }
std::vector< std::vector< std::shared_ptr< T > > > _all_objects
Storage container for the ALL pointers (THREAD_ID on outer vector)
void checkThreadID(THREAD_ID tid) const
Calls assert on thread id.

◆ initialSetup()

template<typename T >
void MooseObjectWarehouse< T >::initialSetup ( THREAD_ID  tid = 0) const
virtualinherited

Convenience methods for calling object setup methods.

Reimplemented in MaterialWarehouse.

Definition at line 150 of file MooseObjectWarehouse.h.

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

151 {
152  checkThreadID(tid);
153  // Initial Setup should be called on all objects because they may become active later
154  for (const auto & object : _all_objects[tid])
155  object->initialSetup();
156 }
std::vector< std::vector< std::shared_ptr< T > > > _all_objects
Storage container for the ALL pointers (THREAD_ID on outer vector)
void checkThreadID(THREAD_ID tid) const
Calls assert on thread id.

◆ jacobianSetup()

template<typename T >
void MooseObjectWarehouse< T >::jacobianSetup ( THREAD_ID  tid = 0) const
virtualinherited

◆ numThreads()

template<typename T>
THREAD_ID MooseObjectWarehouseBase< T >::numThreads ( ) const
inlineinherited

Return the number of threads.

Definition at line 177 of file MooseObjectWarehouseBase.h.

177 { return _num_threads; }
const THREAD_ID _num_threads
Convenience member storing the number of threads used for storage (1 or libMesh::n_threads) ...

◆ residualSetup()

template<typename T >
void MooseObjectWarehouse< T >::residualSetup ( THREAD_ID  tid = 0) const
virtualinherited

◆ size()

template<typename T >
unsigned int MooseObjectWarehouseBase< T >::size ( THREAD_ID  tid = 0) const
inherited

Return how many kernels we store in the current warehouse.

Definition at line 266 of file MooseObjectWarehouseBase.h.

Referenced by NonlinearThread::printBlockExecutionInformation().

267 {
268  checkThreadID(tid);
269  return _all_objects[tid].size();
270 }
std::vector< std::vector< std::shared_ptr< T > > > _all_objects
Storage container for the ALL pointers (THREAD_ID on outer vector)
void checkThreadID(THREAD_ID tid) const
Calls assert on thread id.

◆ sort()

template<typename T >
void MooseObjectWarehouseBase< T >::sort ( THREAD_ID  tid = 0)
inherited

Sort the objects using the DependencyResolver.

Definition at line 575 of file MooseObjectWarehouseBase.h.

Referenced by FVInitialConditionWarehouse::initialSetup(), InitialConditionWarehouse::initialSetup(), ScalarInitialConditionWarehouse::initialSetup(), and FEProblemBase::initialSetup().

576 {
577  checkThreadID(tid);
578 
579  for (auto & object_pair : _all_block_objects[tid])
580  sortHelper(object_pair.second);
581 
582  for (auto & object_pair : _all_boundary_objects[tid])
583  sortHelper(object_pair.second);
584 
585  sortHelper(_all_objects[tid]);
586 
587  // The active lists now must be update to reflect the order changes
588  updateActive(tid);
589 }
std::vector< std::map< SubdomainID, std::vector< std::shared_ptr< T > > > > _all_block_objects
std::vector< std::vector< std::shared_ptr< T > > > _all_objects
Storage container for the ALL pointers (THREAD_ID on outer vector)
void checkThreadID(THREAD_ID tid) const
Calls assert on thread id.
static void sortHelper(std::vector< std::shared_ptr< T >> &objects)
Helper method for sorting vectors of objects.
std::vector< std::map< BoundaryID, std::vector< std::shared_ptr< T > > > > _all_boundary_objects
virtual void updateActive(THREAD_ID tid=0)
Updates the active objects storage.

◆ sortHelper()

template<typename T>
void MooseObjectWarehouseBase< T >::sortHelper ( std::vector< std::shared_ptr< T >> &  objects)
staticprotectedinherited

Helper method for sorting vectors of objects.

Definition at line 772 of file MooseObjectWarehouseBase.h.

773 {
774  // Do nothing if the vector is empty
775  if (objects.empty())
776  return;
777 
778  try
779  {
780  // Sort based on dependencies
781  DependencyResolverInterface::sort<std::shared_ptr<T>>(objects);
782  }
783  catch (CyclicDependencyException<std::shared_ptr<T>> & e)
784  {
785  DependencyResolverInterface::cyclicDependencyError<std::shared_ptr<T>>(
786  e, "Cyclic dependency detected in object ordering");
787  }
788 }

◆ subdomainsCovered()

template<typename T >
void MooseObjectWarehouseBase< T >::subdomainsCovered ( std::set< SubdomainID > &  subdomains_covered,
std::set< std::string > &  unique_variables,
THREAD_ID  tid = 0 
) const
inherited

Populates a set of covered subdomains and the associated variable names.

Definition at line 748 of file MooseObjectWarehouseBase.h.

Referenced by NonlinearSystemBase::checkKernelCoverage().

751 {
752  for (const auto & object : _active_objects[tid])
753  unique_variables.insert(object->variable().name());
754 
755  for (const auto & object_pair : _active_block_objects[tid])
756  subdomains_covered.insert(object_pair.first);
757 }
std::vector< std::map< SubdomainID, std::vector< std::shared_ptr< T > > > > _active_block_objects
Active block restricted objects (THREAD_ID on outer vector)
std::vector< std::vector< std::shared_ptr< T > > > _active_objects
All active objects (THREAD_ID on outer vector)

◆ subdomainSetup() [1/2]

template<typename T >
void MooseObjectWarehouse< T >::subdomainSetup ( THREAD_ID  tid = 0) const
virtualinherited

Reimplemented in MaterialWarehouse.

Definition at line 191 of file MooseObjectWarehouse.h.

Referenced by MaterialWarehouse::neighborSubdomainSetup(), ComputeMarkerThread::subdomainChanged(), ComputeIndicatorThread::subdomainChanged(), MaterialWarehouse::subdomainSetup(), AuxiliarySystem::subdomainSetup(), and NonlinearSystemBase::subdomainSetup().

192 {
193  checkThreadID(tid);
194  for (const auto & object : _active_objects[tid])
195  object->subdomainSetup();
196 }
void checkThreadID(THREAD_ID tid) const
Calls assert on thread id.
std::vector< std::vector< std::shared_ptr< T > > > _active_objects
All active objects (THREAD_ID on outer vector)

◆ subdomainSetup() [2/2]

template<typename T >
void MooseObjectWarehouse< T >::subdomainSetup ( SubdomainID  id,
THREAD_ID  tid = 0 
) const
virtualinherited

Reimplemented in MaterialWarehouse.

Definition at line 178 of file MooseObjectWarehouse.h.

179 {
180  checkThreadID(tid);
181  if (hasActiveBlockObjects(id, tid))
182  {
183  const auto & objects = getActiveBlockObjects(id, tid);
184  for (const auto & object : objects)
185  object->subdomainSetup();
186  }
187 }
bool hasActiveBlockObjects(THREAD_ID tid=0) const
const std::map< SubdomainID, std::vector< std::shared_ptr< T > > > & getActiveBlockObjects(THREAD_ID tid=0) const
void checkThreadID(THREAD_ID tid) const
Calls assert on thread id.

◆ timestepSetup()

template<typename T >
void MooseObjectWarehouse< T >::timestepSetup ( THREAD_ID  tid = 0) const
virtualinherited

Reimplemented in MaterialWarehouse.

Definition at line 160 of file MooseObjectWarehouse.h.

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

161 {
162  checkThreadID(tid);
163  for (const auto & object : _active_objects[tid])
164  object->timestepSetup();
165 }
void checkThreadID(THREAD_ID tid) const
Calls assert on thread id.
std::vector< std::vector< std::shared_ptr< T > > > _active_objects
All active objects (THREAD_ID on outer vector)

◆ updateActive()

template<typename T >
void MooseObjectTagWarehouse< T >::updateActive ( THREAD_ID  tid = 0)
overridevirtual

Update the active status of Kernels.

Reimplemented from MooseObjectWarehouse< T >.

Definition at line 100 of file MooseObjectTagWarehouse.h.

Referenced by NonlinearSystemBase::updateActive().

101 {
103 
104  for (auto & it : _vector_tag_to_object_warehouse[tid])
105  it.second.updateActive(tid);
106 
107  for (auto & it : _vector_tags_to_object_warehouse[tid])
108  it.second.updateActive(tid);
109 
110  for (auto & it : _matrix_tag_to_object_warehouse[tid])
111  it.second.updateActive(tid);
112 
113  for (auto & it : _matrix_tags_to_object_warehouse[tid])
114  it.second.updateActive(tid);
115 }
std::vector< std::map< std::set< TagID >, MooseObjectWarehouse< T > > > _vector_tags_to_object_warehouse
std::set<TagID> based storage. Map from a std::set of tags to a moose object warehouse for vector tag...
std::vector< std::map< std::set< TagID >, MooseObjectWarehouse< T > > > _matrix_tags_to_object_warehouse
std::set<TagID> based storage. Map from a std::set of tags to moose object warehouse for matrix tags...
std::vector< std::map< TagID, MooseObjectWarehouse< T > > > _matrix_tag_to_object_warehouse
Tag based storage. Map fro a tag to moose object warehouse for matrix tags.
virtual void updateActive(THREAD_ID tid=0) override
Update the active status of Kernels.
std::vector< std::map< TagID, MooseObjectWarehouse< T > > > _vector_tag_to_object_warehouse
Tag based storage. Map from a tag to a moose object warehouse for vector tags.

◆ updateActiveHelper()

template<typename T>
void MooseObjectWarehouseBase< T >::updateActiveHelper ( std::vector< std::shared_ptr< T >> &  active,
const std::vector< std::shared_ptr< T >> &  all 
)
staticprotectedinherited

Helper method for updating active vectors.

Definition at line 561 of file MooseObjectWarehouseBase.h.

563 {
564  // Clear the active list
565  active.clear();
566 
567  std::copy_if(all.begin(),
568  all.end(),
569  std::back_inserter(active),
570  [](const std::shared_ptr<T> & object) { return object->enabled(); });
571 }

◆ updateBlockFEVariableCoupledVectorTagDependency()

template<typename T >
void MooseObjectWarehouseBase< T >::updateBlockFEVariableCoupledVectorTagDependency ( SubdomainID  id,
std::set< TagID > &  needed_fe_var_vector_tags,
THREAD_ID  tid = 0 
) const
inherited

Update FE variable coupleable vector tag vector.

Definition at line 654 of file MooseObjectWarehouseBase.h.

Referenced by ComputeNodalKernelsThread::onNode(), ComputeMaterialsObjectThread::subdomainChanged(), ComputeIndicatorThread::subdomainChanged(), NonlinearThread::subdomainChanged(), and ComputeUserObjectsThread::subdomainChanged().

656 {
657  if (hasActiveBlockObjects(id, tid))
658  updateFEVariableCoupledVectorTagDependencyHelper(needed_fe_var_vector_tags,
659  getActiveBlockObjects(id, tid));
660 }
bool hasActiveBlockObjects(THREAD_ID tid=0) const
const std::map< SubdomainID, std::vector< std::shared_ptr< T > > > & getActiveBlockObjects(THREAD_ID tid=0) const
static void updateFEVariableCoupledVectorTagDependencyHelper(std::set< TagID > &needed_fe_var_vector_tags, const std::vector< std::shared_ptr< T >> &objects)
Helper method for updating FE variable coupleable vector tag vector.

◆ updateBlockMatPropDependency()

template<typename T >
void MooseObjectWarehouseBase< T >::updateBlockMatPropDependency ( SubdomainID  id,
std::unordered_set< unsigned int > &  needed_mat_props,
THREAD_ID  tid = 0 
) const
inherited

Definition at line 699 of file MooseObjectWarehouseBase.h.

Referenced by FEProblemBase::prepareMaterials(), and NonlinearThread::subdomainChanged().

703 {
704  if (hasActiveBlockObjects(id, tid))
705  updateMatPropDependencyHelper(needed_mat_props, getActiveBlockObjects(id, tid));
706 }
bool hasActiveBlockObjects(THREAD_ID tid=0) const
const std::map< SubdomainID, std::vector< std::shared_ptr< T > > > & getActiveBlockObjects(THREAD_ID tid=0) const
static void updateMatPropDependencyHelper(std::unordered_set< unsigned int > &needed_mat_props, const std::vector< std::shared_ptr< T >> &objects)
Helper method for updating material property dependency vector.

◆ updateBlockVariableDependency()

template<typename T >
void MooseObjectWarehouseBase< T >::updateBlockVariableDependency ( SubdomainID  id,
std::set< MooseVariableFieldBase *> &  needed_moose_vars,
THREAD_ID  tid = 0 
) const
inherited

Definition at line 602 of file MooseObjectWarehouseBase.h.

Referenced by NonlinearThread::subdomainChanged().

606 {
607  if (hasActiveBlockObjects(id, tid))
608  updateVariableDependencyHelper(needed_moose_vars, getActiveBlockObjects(id, tid));
609 }
bool hasActiveBlockObjects(THREAD_ID tid=0) const
const std::map< SubdomainID, std::vector< std::shared_ptr< T > > > & getActiveBlockObjects(THREAD_ID tid=0) const
static void updateVariableDependencyHelper(std::set< MooseVariableFieldBase *> &needed_moose_vars, const std::vector< std::shared_ptr< T >> &objects)
Helper method for updating variable dependency vector.

◆ updateBoundaryFEVariableCoupledVectorTagDependency()

template<typename T >
void MooseObjectWarehouseBase< T >::updateBoundaryFEVariableCoupledVectorTagDependency ( BoundaryID  id,
std::set< TagID > &  needed_fe_var_vector_tags,
THREAD_ID  tid = 0 
) const
inherited

Definition at line 664 of file MooseObjectWarehouseBase.h.

Referenced by ComputeNodalKernelBcsThread::onNode().

666 {
667  if (hasActiveBoundaryObjects(id, tid))
668  updateFEVariableCoupledVectorTagDependencyHelper(needed_fe_var_vector_tags,
669  getActiveBoundaryObjects(id, tid));
670 }
static void updateFEVariableCoupledVectorTagDependencyHelper(std::set< TagID > &needed_fe_var_vector_tags, const std::vector< std::shared_ptr< T >> &objects)
Helper method for updating FE variable coupleable vector tag vector.
bool hasActiveBoundaryObjects(THREAD_ID tid=0) const
const std::map< BoundaryID, std::vector< std::shared_ptr< T > > > & getActiveBoundaryObjects(THREAD_ID tid=0) const

◆ updateBoundaryMatPropDependency() [1/2]

template<typename T >
void MooseObjectWarehouseBase< T >::updateBoundaryMatPropDependency ( std::unordered_set< unsigned int > &  needed_mat_props,
THREAD_ID  tid = 0 
) const
inherited

Definition at line 710 of file MooseObjectWarehouseBase.h.

Referenced by FEProblemBase::prepareMaterials(), and NonlinearThread::subdomainChanged().

712 {
713  if (hasActiveBoundaryObjects(tid))
714  for (auto & active_bnd_object : _active_boundary_objects[tid])
715  updateMatPropDependencyHelper(needed_mat_props, active_bnd_object.second);
716 }
bool hasActiveBoundaryObjects(THREAD_ID tid=0) const
std::vector< std::map< BoundaryID, std::vector< std::shared_ptr< T > > > > _active_boundary_objects
Active boundary restricted objects (THREAD_ID on outer vector)
static void updateMatPropDependencyHelper(std::unordered_set< unsigned int > &needed_mat_props, const std::vector< std::shared_ptr< T >> &objects)
Helper method for updating material property dependency vector.

◆ updateBoundaryMatPropDependency() [2/2]

template<typename T >
void MooseObjectWarehouseBase< T >::updateBoundaryMatPropDependency ( BoundaryID  id,
std::unordered_set< unsigned int > &  needed_mat_props,
THREAD_ID  tid = 0 
) const
inherited

Definition at line 720 of file MooseObjectWarehouseBase.h.

724 {
725  if (hasActiveBoundaryObjects(id, tid))
726  updateMatPropDependencyHelper(needed_mat_props, getActiveBoundaryObjects(id, tid));
727 }
bool hasActiveBoundaryObjects(THREAD_ID tid=0) const
static void updateMatPropDependencyHelper(std::unordered_set< unsigned int > &needed_mat_props, const std::vector< std::shared_ptr< T >> &objects)
Helper method for updating material property dependency vector.
const std::map< BoundaryID, std::vector< std::shared_ptr< T > > > & getActiveBoundaryObjects(THREAD_ID tid=0) const

◆ updateBoundaryVariableDependency() [1/2]

template<typename T >
void MooseObjectWarehouseBase< T >::updateBoundaryVariableDependency ( std::set< MooseVariableFieldBase *> &  needed_moose_vars,
THREAD_ID  tid = 0 
) const
inherited

Definition at line 613 of file MooseObjectWarehouseBase.h.

Referenced by FEProblemBase::prepareMaterials(), and NonlinearThread::subdomainChanged().

615 {
616  if (hasActiveBoundaryObjects(tid))
617  {
618  typename std::map<BoundaryID, std::vector<std::shared_ptr<T>>>::const_iterator it;
619  for (const auto & object_pair : _active_boundary_objects[tid])
620  updateVariableDependencyHelper(needed_moose_vars, object_pair.second);
621  }
622 }
bool hasActiveBoundaryObjects(THREAD_ID tid=0) const
std::vector< std::map< BoundaryID, std::vector< std::shared_ptr< T > > > > _active_boundary_objects
Active boundary restricted objects (THREAD_ID on outer vector)
static void updateVariableDependencyHelper(std::set< MooseVariableFieldBase *> &needed_moose_vars, const std::vector< std::shared_ptr< T >> &objects)
Helper method for updating variable dependency vector.

◆ updateBoundaryVariableDependency() [2/2]

template<typename T >
void MooseObjectWarehouseBase< T >::updateBoundaryVariableDependency ( BoundaryID  id,
std::set< MooseVariableFieldBase *> &  needed_moose_vars,
THREAD_ID  tid = 0 
) const
inherited

Definition at line 626 of file MooseObjectWarehouseBase.h.

630 {
631  if (hasActiveBoundaryObjects(id, tid))
632  updateVariableDependencyHelper(needed_moose_vars, getActiveBoundaryObjects(id, tid));
633 }
bool hasActiveBoundaryObjects(THREAD_ID tid=0) const
static void updateVariableDependencyHelper(std::set< MooseVariableFieldBase *> &needed_moose_vars, const std::vector< std::shared_ptr< T >> &objects)
Helper method for updating variable dependency vector.
const std::map< BoundaryID, std::vector< std::shared_ptr< T > > > & getActiveBoundaryObjects(THREAD_ID tid=0) const

◆ updateFEVariableCoupledVectorTagDependencyHelper()

template<typename T>
void MooseObjectWarehouseBase< T >::updateFEVariableCoupledVectorTagDependencyHelper ( std::set< TagID > &  needed_fe_var_vector_tags,
const std::vector< std::shared_ptr< T >> &  objects 
)
staticprotectedinherited

Helper method for updating FE variable coupleable vector tag vector.

Definition at line 674 of file MooseObjectWarehouseBase.h.

676 {
677  for (const auto & object : objects)
678  {
679  auto c = dynamic_cast<const Coupleable *>(object.get());
680  if (c)
681  {
682  const auto & tag_deps = c->getFEVariableCoupleableVectorTags();
683  needed_fe_var_vector_tags.insert(tag_deps.begin(), tag_deps.end());
684  }
685  }
686 }
Interface for objects that needs coupling capabilities.
Definition: Coupleable.h:45
std::set< TagID > & getFEVariableCoupleableVectorTags()
Definition: Coupleable.h:106

◆ updateMatPropDependency()

template<typename T >
void MooseObjectWarehouseBase< T >::updateMatPropDependency ( std::unordered_set< unsigned int > &  needed_mat_props,
THREAD_ID  tid = 0 
) const
inherited

Update material property dependency vector.

Definition at line 690 of file MooseObjectWarehouseBase.h.

Referenced by ComputeMarkerThread::subdomainChanged(), ComputeIndicatorThread::subdomainChanged(), and ComputeDiracThread::subdomainChanged().

692 {
693  if (hasActiveObjects(tid))
694  updateMatPropDependencyHelper(needed_mat_props, _all_objects[tid]);
695 }
std::vector< std::vector< std::shared_ptr< T > > > _all_objects
Storage container for the ALL pointers (THREAD_ID on outer vector)
static void updateMatPropDependencyHelper(std::unordered_set< unsigned int > &needed_mat_props, const std::vector< std::shared_ptr< T >> &objects)
Helper method for updating material property dependency vector.
bool hasActiveObjects(THREAD_ID tid=0) const

◆ updateMatPropDependencyHelper()

template<typename T>
void MooseObjectWarehouseBase< T >::updateMatPropDependencyHelper ( std::unordered_set< unsigned int > &  needed_mat_props,
const std::vector< std::shared_ptr< T >> &  objects 
)
staticprotectedinherited

Helper method for updating material property dependency vector.

Definition at line 731 of file MooseObjectWarehouseBase.h.

734 {
735  for (auto & object : objects)
736  {
737  auto c = dynamic_cast<const MaterialPropertyInterface *>(object.get());
738  if (c)
739  {
740  auto & mp_deps = c->getMatPropDependencies();
741  needed_mat_props.insert(mp_deps.begin(), mp_deps.end());
742  }
743  }
744 }
An interface for accessing Materials.
const std::unordered_set< unsigned int > & getMatPropDependencies() const
Retrieve the set of material properties that this object depends on.

◆ updateVariableDependency()

template<typename T >
void MooseObjectWarehouseBase< T >::updateVariableDependency ( std::set< MooseVariableFieldBase *> &  needed_moose_vars,
THREAD_ID  tid = 0 
) const
inherited

Update variable dependency vector.

Definition at line 593 of file MooseObjectWarehouseBase.h.

Referenced by FEProblemBase::prepareMaterials(), ComputeMarkerThread::subdomainChanged(), ComputeIndicatorThread::subdomainChanged(), ComputeMaterialsObjectThread::subdomainChanged(), and ComputeDiracThread::subdomainChanged().

595 {
596  if (hasActiveObjects(tid))
597  updateVariableDependencyHelper(needed_moose_vars, _all_objects[tid]);
598 }
std::vector< std::vector< std::shared_ptr< T > > > _all_objects
Storage container for the ALL pointers (THREAD_ID on outer vector)
static void updateVariableDependencyHelper(std::set< MooseVariableFieldBase *> &needed_moose_vars, const std::vector< std::shared_ptr< T >> &objects)
Helper method for updating variable dependency vector.
bool hasActiveObjects(THREAD_ID tid=0) const

◆ updateVariableDependencyHelper()

template<typename T>
void MooseObjectWarehouseBase< T >::updateVariableDependencyHelper ( std::set< MooseVariableFieldBase *> &  needed_moose_vars,
const std::vector< std::shared_ptr< T >> &  objects 
)
staticprotectedinherited

Helper method for updating variable dependency vector.

Definition at line 637 of file MooseObjectWarehouseBase.h.

640 {
641  for (const auto & object : objects)
642  {
643  auto c = dynamic_cast<const MooseVariableDependencyInterface *>(object.get());
644  if (c)
645  {
646  const auto & mv_deps = c->getMooseVariableDependencies();
647  needed_moose_vars.insert(mv_deps.begin(), mv_deps.end());
648  }
649  }
650 }
const std::set< MooseVariableFieldBase * > & getMooseVariableDependencies() const
Retrieve the set of MooseVariableFieldBase that this object depends on.

Member Data Documentation

◆ _active_block_objects

template<typename T>
std::vector<std::map<SubdomainID, std::vector<std::shared_ptr<T> > > > MooseObjectWarehouseBase< T >::_active_block_objects
protectedinherited

Active block restricted objects (THREAD_ID on outer vector)

Definition at line 201 of file MooseObjectWarehouseBase.h.

◆ _active_boundary_objects

template<typename T>
std::vector<std::map<BoundaryID, std::vector<std::shared_ptr<T> > > > MooseObjectWarehouseBase< T >::_active_boundary_objects
protectedinherited

Active boundary restricted objects (THREAD_ID on outer vector)

Definition at line 207 of file MooseObjectWarehouseBase.h.

◆ _active_objects

template<typename T>
std::vector<std::vector<std::shared_ptr<T> > > MooseObjectWarehouseBase< T >::_active_objects
protectedinherited

All active objects (THREAD_ID on outer vector)

Definition at line 195 of file MooseObjectWarehouseBase.h.

◆ _all_block_objects

template<typename T>
std::vector<std::map<SubdomainID, std::vector<std::shared_ptr<T> > > > MooseObjectWarehouseBase< T >::_all_block_objects
protectedinherited

Definition at line 198 of file MooseObjectWarehouseBase.h.

Referenced by MaterialWarehouse::sort().

◆ _all_boundary_objects

template<typename T>
std::vector<std::map<BoundaryID, std::vector<std::shared_ptr<T> > > > MooseObjectWarehouseBase< T >::_all_boundary_objects
protectedinherited

Definition at line 204 of file MooseObjectWarehouseBase.h.

Referenced by MaterialWarehouse::sort().

◆ _all_objects

template<typename T>
std::vector<std::vector<std::shared_ptr<T> > > MooseObjectWarehouseBase< T >::_all_objects
protectedinherited

Storage container for the ALL pointers (THREAD_ID on outer vector)

Definition at line 192 of file MooseObjectWarehouseBase.h.

◆ _matrix_tag_to_object_warehouse

template<typename T>
std::vector<std::map<TagID, MooseObjectWarehouse<T> > > MooseObjectTagWarehouse< T >::_matrix_tag_to_object_warehouse
protected

Tag based storage. Map fro a tag to moose object warehouse for matrix tags.

Definition at line 81 of file MooseObjectTagWarehouse.h.

◆ _matrix_tags_to_object_warehouse

template<typename T>
std::vector<std::map<std::set<TagID>, MooseObjectWarehouse<T> > > MooseObjectTagWarehouse< T >::_matrix_tags_to_object_warehouse
protected

std::set<TagID> based storage. Map from a std::set of tags to moose object warehouse for matrix tags.

Definition at line 84 of file MooseObjectTagWarehouse.h.

◆ _num_threads

template<typename T>
const THREAD_ID MooseObjectTagWarehouse< T >::_num_threads
protected

Definition at line 72 of file MooseObjectTagWarehouse.h.

◆ _variable_objects

template<typename T>
std::map<unsigned int, MooseObjectWarehouse<T> > MooseObjectWarehouse< T >::_variable_objects
protectedinherited

Variable based storage.

Definition at line 82 of file MooseObjectWarehouse.h.

◆ _vector_tag_to_object_warehouse

template<typename T>
std::vector<std::map<TagID, MooseObjectWarehouse<T> > > MooseObjectTagWarehouse< T >::_vector_tag_to_object_warehouse
protected

Tag based storage. Map from a tag to a moose object warehouse for vector tags.

Definition at line 75 of file MooseObjectTagWarehouse.h.

◆ _vector_tags_to_object_warehouse

template<typename T>
std::vector<std::map<std::set<TagID>, MooseObjectWarehouse<T> > > MooseObjectTagWarehouse< T >::_vector_tags_to_object_warehouse
protected

std::set<TagID> based storage. Map from a std::set of tags to a moose object warehouse for vector tags.

Definition at line 78 of file MooseObjectTagWarehouse.h.


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