24 #include "libmesh/threads.h" 27 const std::set<TagID> & tags)
48 mooseError(
"Nonlocal kernels only supported for non-diagonal coupling. Please specify an SMP " 49 "preconditioner, with appropriate row-column coupling or specify full = true.");
68 mooseError(
"Nonlocal boundary conditions only supported for non-diagonal coupling. Please " 69 "specify an SMP preconditioner, with appropriate row-column coupling or specify " 81 if (dg.
hasBlocks(neighbor->subdomain_id()))
111 else if (
_tags.size() == 1)
154 Threads::spin_mutex::scoped_lock lock(Threads::spin_mtx);
virtual void postElement(const Elem *) override
Called after the element assembly is done (including surface assembling)
virtual void addJacobianLowerD(const THREAD_ID tid) override
MooseObjectWarehouse< InterfaceKernelBase > * _ik_warehouse
void determineObjectWarehouses() override
Determine the objects we will actually compute based on vector/matrix tag information.
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application...
unsigned int number() const
Get variable number coming from libMesh.
MooseObjectTagWarehouse< IntegratedBCBase > & _integrated_bcs
Reference to BC storage structures.
FEProblemBase & _fe_problem
virtual void prepareShapes(unsigned int var_num)
Prepare shape functions.
virtual const MooseVariableFEBase & neighborVariable() const =0
The neighbor variable number that this interface kernel operates on.
virtual void computeJacobian() override
Computes the jacobian for the current side.
void computingScalingJacobian(bool computing_scaling_jacobian)
Setter for whether we're computing the scaling jacobian.
Specialization of SubProblem for solving nonlinear equations plus auxiliary equations.
Serves as a base class for DGKernel and ADDGKernel.
const std::set< TagID > & _tags
virtual void accumulateNeighborLower() override
Add neighbor and lower residual/Jacobian into assembly global data.
void prepareShapes(unsigned int var_num) override final
Prepare shape functions.
FVElemental is used for calculating residual contributions from volume integral terms of a PDE where ...
void prepareNeighborShapes(unsigned int var_num)
Prepare neighbor shape functions.
void accumulateNeighbor() override
Add neighbor residual/Jacobian into assembly global data.
This is the common base class for the three main kernel types implemented in MOOSE, Kernel, VectorKernel and ArrayKernel.
virtual ~ComputeJacobianThread()
void prepareShapes(unsigned int var_num) override final
Prepare shape functions.
MooseObjectTagWarehouse< KernelBase > & _kernels
virtual void addJacobianNeighbor(const THREAD_ID tid) override
virtual bool checkNonlocalCouplingRequirement()
MooseObjectWarehouse< T > & getMatrixTagObjectWarehouse(TagID tag_id, THREAD_ID tid)
Retrieve a moose object warehouse in which every moose object has the given matrix tag...
virtual void computeJacobian()=0
Compute this object's contribution to the diagonal Jacobian entries.
void computeJacobian() override
Compute this object's contribution to the diagonal Jacobian entries.
void prepareShapes(unsigned int var_num) override final
Prepare shape functions.
virtual void accumulateLower() override
Add lower-d residual/Jacobian into assembly global data.
virtual unsigned int numMatrixTags() const
The total number of tags.
MooseObjectWarehouse< IntegratedBCBase > * _ibc_warehouse
ComputeJacobianThread(FEProblemBase &fe_problem, const std::set< TagID > &tags)
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...
void join(const ComputeJacobianThread &)
MooseObjectTagWarehouse< InterfaceKernelBase > & _interface_kernels
Reference to interface kernel storage structure.
Base class for deriving any boundary condition of a integrated type.
virtual bool shouldApply()
Hook for turning the boundary condition on and off.
InterfaceKernelBase is the base class for all InterfaceKernel type classes.
virtual const MooseVariableBase & variable() const =0
Returns the variable that this object operates on.
MooseObjectWarehouse< KernelBase > * _tag_kernels
MooseObjectWarehouse< DGKernelBase > * _dg_warehouse
bool hasBlocks(const SubdomainName &name) const
Test if the supplied block name is valid for this object.
virtual void cacheJacobian(const THREAD_ID tid) override
virtual void addJacobianNeighborLowerD(const THREAD_ID tid) override
MooseObjectTagWarehouse< DGKernelBase > & _dg_kernels
Reference to DGKernel storage structure.
virtual void compute(ResidualObject &) override
Will dispatch to computeResidual/computeJacobian/computeResidualAndJacobian based on the derived clas...
virtual void addCachedJacobian(const THREAD_ID tid) override