18 #include "libmesh/threads.h" 21 const std::set<TagID> & tags)
67 Threads::spin_mutex::scoped_lock lock(Threads::spin_mtx);
92 else if (
_tags.size() == 1)
115 .template condition<AttribSysNum>(
_nl.
number())
116 .
template condition<AttribSystem>(
"FVElementalKernel")
117 .template condition<AttribSubdomains>(
_subdomain)
118 .
template condition<AttribThread>(
_tid)
119 .template condition<AttribVectorTags>(
_tags)
128 "We should not be called if we have no active HDG kernels");
133 "We queried the warehouse for active blocks on this subdomain, so this better be active");
136 "We should have set a valid neighbor subdomain ID if we made it in side this method");
138 hdg_kernel->computeResidualOnSide();
void accumulateNeighborLower() override
Add neighbor and lower residual/Jacobian into assembly global data.
virtual void addResidualLower(const THREAD_ID tid) override
bool hasActiveBlockObjects(THREAD_ID tid=0) const
const std::map< SubdomainID, std::vector< std::shared_ptr< T > > > & getActiveBlockObjects(THREAD_ID tid=0) const
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...
MooseObjectTagWarehouse< HDGKernel > & _hdg_kernels
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.
const SubdomainID INVALID_BLOCK_ID
virtual void compute(ResidualObject &ro) override
Will dispatch to computeResidual/computeJacobian/computeResidualAndJacobian based on the derived clas...
MooseObjectWarehouse< HDGKernel > * _hdg_warehouse
TheWarehouse & theWarehouse() const
MooseObjectTagWarehouse< KernelBase > & _kernels
virtual void computeResidual()=0
Compute this object's contribution to the residual.
virtual void computeOnInternalFace() override
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
SubdomainID _neighbor_subdomain
The subdomain for the current neighbor.