105 _variable_objects[mvi->mooseVariableBase()->number()].addObject(
object, tid,
false);
112 _variable_objects[mvi->mooseVariableBase()->number()].addObject(
object, tid,
false);
119 _variable_objects[mvi->mooseVariableBase()->number()].addObject(
object, tid,
false);
124 template <
typename T>
130 auto iter = _variable_objects.find(variable_id);
131 return (iter != _variable_objects.end() && iter->second.hasActiveBlockObjects(block_id, tid));
134 template <
typename T>
135 const std::vector<std::shared_ptr<T>> &
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
145 return iter->second.getActiveBlockObjects(block_id, tid);
148 template <
typename T>
154 for (
const auto &
object : _all_objects[tid])
155 object->initialSetup();
158 template <
typename T>
163 for (
const auto &
object : _active_objects[tid])
164 object->timestepSetup();
167 template <
typename T>
172 for (
const auto &
object : _active_objects[tid])
173 object->customSetup(exec_type);
176 template <
typename T>
181 if (hasActiveBlockObjects(
id, tid))
183 const auto & objects = getActiveBlockObjects(
id, tid);
184 for (
const auto &
object : objects)
185 object->subdomainSetup();
189 template <
typename T>
194 for (
const auto &
object : _active_objects[tid])
195 object->subdomainSetup();
198 template <
typename T>
203 for (
const auto &
object : _active_objects[tid])
204 object->jacobianSetup();
207 template <
typename T>
212 for (
const auto &
object : _active_objects[tid])
213 object->residualSetup();
216 template <
typename T>
222 for (
auto & it : _variable_objects)
223 it.second.updateActive(tid);
virtual void residualSetup(THREAD_ID tid=0) const
const std::vector< std::shared_ptr< T > > & getActiveVariableBlockObjects(unsigned int variable_id, SubdomainID block_id, THREAD_ID tid=0) const
A storage container for MooseObjects that inherit from SetupInterface.
virtual void customSetup(const ExecFlagType &exec_type, THREAD_ID tid=0) const
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.
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 timestepSetup(THREAD_ID tid=0) const
subdomain_id_type SubdomainID
virtual void initialSetup(THREAD_ID tid=0) const
Convenience methods for calling object setup methods.
virtual void jacobianSetup(THREAD_ID tid=0) const
Class for containing MooseEnum item information.
virtual void updateActive(THREAD_ID tid=0) override
Update the active status of Kernels.
virtual void addObject(std::shared_ptr< T > object, THREAD_ID tid=0, bool recurse=true)
Adds an object to the storage structure.
MooseObjectWarehouse(bool threaded=true)
Constructor.
virtual void addObject(std::shared_ptr< T > object, THREAD_ID tid=0, bool recurse=true) override
Adds an object to the storage structure.
A base storage container for MooseObjects.
virtual void subdomainSetup(THREAD_ID tid=0) const
virtual void updateActive(THREAD_ID tid=0)
Updates the active objects storage.