17 #include "libmesh/threads.h" 20 const std::set<TagID> & tags)
66 Threads::spin_mutex::scoped_lock lock(Threads::spin_mtx);
90 else if (
_tags.size() == 1)
111 .template condition<AttribSysNum>(
_nl.
number())
112 .
template condition<AttribSystem>(
"FVElementalKernel")
113 .template condition<AttribSubdomains>(
_subdomain)
114 .
template condition<AttribThread>(
_tid)
115 .template condition<AttribVectorTags>(
_tags)
void accumulateNeighborLower() override
Add neighbor and lower residual/Jacobian into assembly global data.
virtual void addResidualLower(const THREAD_ID tid) override
MooseObjectWarehouse< InterfaceKernelBase > * _ik_warehouse
virtual bool haveFV() const override
returns true if this problem includes/needs finite volume functionality.
MooseObjectTagWarehouse< IntegratedBCBase > & _integrated_bcs
Reference to BC storage structures.
FEProblemBase & _fe_problem
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 ta...
void join(const ComputeResidualThread &)
Specialization of SubProblem for solving nonlinear equations plus auxiliary equations.
void accumulateLower() override
Add lower-d residual/Jacobian into assembly global data.
void accumulateNeighbor() override
Add neighbor residual/Jacobian into assembly global data.
void compute(ResidualObject &ro) override
Will dispatch to computeResidual/computeJacobian/computeResidualAndJacobian based on the derived clas...
TheWarehouse & theWarehouse() const
MooseObjectTagWarehouse< KernelBase > & _kernels
virtual void computeResidual()=0
Compute this object's contribution to the residual.
virtual void cacheResidual(const THREAD_ID tid) override
virtual void addResidualNeighbor(const THREAD_ID tid) override
void determineObjectWarehouses() override
Determine the objects we will actually compute based on vector/matrix tag information.
unsigned int number() const
Gets the number of this system.
NonlinearSystemBase & _nl
void accumulate() override
Add element residual/Jacobian into assembly global data.
MooseObjectWarehouse< IntegratedBCBase > * _ibc_warehouse
This is the common base class for objects that give residual contributions.
ComputeResidualThread(FEProblemBase &fe_problem, const std::set< TagID > &tags)
virtual ~ComputeResidualThread()
Query query()
query creates and returns an initialized a query object for querying objects from the warehouse...
const std::set< TagID > & _tags
the tags denoting the vectors we want our residual objects to fill
MooseObjectTagWarehouse< InterfaceKernelBase > & _interface_kernels
Reference to interface kernel storage structure.
virtual unsigned int numVectorTags(const Moose::VectorTagType type=Moose::VECTOR_TAG_ANY) const
The total number of tags, which can be limited to the tag type.
MooseObjectWarehouse< T > & getVectorTagObjectWarehouse(TagID tag_id, THREAD_ID tid)
Retrieve a moose object warehouse in which every moose object has the given vector tag...
SubdomainID _subdomain
The subdomain for the current element.
MooseObjectWarehouse< KernelBase > * _tag_kernels
MooseObjectWarehouse< DGKernelBase > * _dg_warehouse
std::vector< FVElementalKernel * > _fv_kernels
Current subdomain FVElementalKernels.
MooseObjectTagWarehouse< DGKernelBase > & _dg_kernels
Reference to DGKernel storage structure.
virtual void addCachedResidual(const THREAD_ID tid) override