107 _variable_objects.try_emplace(mvir->mooseVariableBase()->number(), this->_num_threads)
108 .first->second.addObject(
object, tid,
false);
111 _variable_objects.try_emplace(mviv->mooseVariableBase()->number(), this->_num_threads)
112 .first->second.addObject(
object, tid,
false);
115 _variable_objects.try_emplace(mvie->mooseVariableBase()->number(), this->_num_threads)
116 .first->second.addObject(
object, tid,
false);
120 else if (
auto ro = std::dynamic_pointer_cast<ResidualObject>(
object); ro)
121 for (
const auto var : ro->variables())
122 _variable_objects.try_emplace(var->number(), this->_num_threads)
123 .first->second.addObject(
object, tid,
false);
131 auto iter = _variable_objects.find(variable_id);
132 return (iter != _variable_objects.end() && iter->second.hasObjects(tid));
141 auto iter = _variable_objects.find(variable_id);
142 return (iter != _variable_objects.end() && iter->second.hasActiveBlockObjects(block_id, tid));
146const std::vector<std::shared_ptr<T>> &
152 const auto iter = _variable_objects.find(variable_id);
153 mooseAssert(iter != _variable_objects.end(),
154 "Unable to locate variable kernels for the given variable id: " << variable_id
156 return iter->second.getActiveBlockObjects(block_id, tid);
165 for (
const auto &
object : _all_objects[tid])
166 object->initialSetup();
174 for (
const auto &
object : _active_objects[tid])
175 object->timestepSetup();
183 for (
const auto &
object : _active_objects[tid])
184 object->customSetup(exec_type);
192 if (hasActiveBlockObjects(
id, tid))
194 const auto & objects = getActiveBlockObjects(
id, tid);
195 for (
const auto &
object : objects)
196 object->subdomainSetup();
205 for (
const auto &
object : _active_objects[tid])
206 object->subdomainSetup();
214 for (
const auto &
object : _active_objects[tid])
215 object->jacobianSetup();
223 for (
const auto &
object : _active_objects[tid])
224 object->residualSetup();
233 for (
auto & it : _variable_objects)
234 it.second.updateActive(tid);
subdomain_id_type SubdomainID
Class for containing MooseEnum item information.
A base storage container for MooseObjects.
std::vector< std::vector< std::shared_ptr< T > > > _all_objects
Storage container for the ALL pointers (THREAD_ID on outer vector)
const std::map< SubdomainID, std::vector< std::shared_ptr< T > > > & getActiveBlockObjects(THREAD_ID tid=0) const
std::vector< std::vector< std::shared_ptr< T > > > _active_objects
All active objects (THREAD_ID on outer vector)
virtual void updateActive(THREAD_ID tid=0)
Updates the active objects storage.
virtual void addObject(std::shared_ptr< T > object, THREAD_ID tid=0, bool recurse=true)
Adds an object to the storage structure.
bool hasActiveBlockObjects(THREAD_ID tid=0) const
void checkThreadID(THREAD_ID tid) const
Calls assert on thread id.
A storage container for MooseObjects that inherit from SetupInterface.
virtual void timestepSetup(THREAD_ID tid=0) const
bool hasVariableObjects(unsigned int variable_id, THREAD_ID tid=0) const
Checks for whether this warehouse has objects for a given variable.
virtual void customSetup(const ExecFlagType &exec_type, THREAD_ID tid=0) const
virtual void subdomainSetup(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.
virtual void subdomainSetup(SubdomainID id, THREAD_ID tid=0) const
virtual void initialSetup(THREAD_ID tid=0) const
Convenience methods for calling object setup methods.
virtual void residualSetup(THREAD_ID tid=0) const
std::map< unsigned int, MooseObjectWarehouse< T > > _variable_objects
Variable based storage.
const std::vector< std::shared_ptr< T > > & getActiveVariableBlockObjects(unsigned int variable_id, SubdomainID block_id, THREAD_ID tid=0) const
MooseObjectWarehouse(THREAD_ID num_threads=libMesh::n_threads())
Constructor.
virtual void addObject(std::shared_ptr< T > object, THREAD_ID tid=0, bool recurse=true) override
Adds an object to the storage structure.
virtual void updateActive(THREAD_ID tid=0) override
Update the active status of Kernels.
virtual void jacobianSetup(THREAD_ID tid=0) const
Interface for objects that need to get values of MooseVariables.