https://mooseframework.inl.gov
Loading...
Searching...
No Matches
ComputeResidualAndJacobianThread.h
Go to the documentation of this file.
1//* This file is part of the MOOSE framework
2//* https://mooseframework.inl.gov
3//*
4//* All rights reserved, see COPYRIGHT for full restrictions
5//* https://github.com/idaholab/moose/blob/master/COPYRIGHT
6//*
7//* Licensed under LGPL 2.1, please see LICENSE for details
8//* https://www.gnu.org/licenses/lgpl-2.1.html
9
10#pragma once
11
12#include "NonlinearThread.h"
13
14// Forward declarations
15class FEProblemBase;
18class DGKernelBase;
20class TimeKernel;
21class KernelBase;
22class Kernel;
23
25{
26public:
28 const std::set<TagID> & vector_tags,
29 const std::set<TagID> & matrix_tags);
30
31 // Splitting Constructor
33
35
36 void join(const ComputeResidualAndJacobianThread & /*y*/);
37
38protected:
40 void compute(ResidualObject & ro) override;
41 void accumulateNeighbor() override;
42 void accumulateNeighborLower() override;
43 void accumulateLower() override;
44 void accumulate() override;
45 void determineObjectWarehouses() override;
47 virtual void computeOnInternalFace() override;
48
49 std::string objectType() const override { return "combined Jacobian & Residual"; }
50
52 const std::set<TagID> & _vector_tags;
53
55 const std::set<TagID> & _matrix_tags;
56};
void join(const ComputeResidualAndJacobianThread &)
void compute(ResidualObject &ro) override
Will dispatch to computeResidual/computeJacobian/computeResidualAndJacobian based on the derived clas...
const std::set< TagID > & _vector_tags
the tags denoting the vectors we want our residual objects to fill
void accumulateNeighborLower() override
Add neighbor and lower residual/Jacobian into assembly global data.
void accumulateNeighbor() override
Add neighbor residual/Jacobian into assembly global data.
std::string objectType() const override
Return what the loops is meant to compute.
void accumulateLower() override
Add lower-d residual/Jacobian into assembly global data.
const std::set< TagID > & _matrix_tags
the tags denoting the matrices we want our residual objects to fill
void accumulate() override
Add element residual/Jacobian into assembly global data.
void determineObjectWarehouses() override
Determine the objects we will actually compute based on vector/matrix tag information.
Serves as a base class for DGKernel and ADDGKernel.
Specialization of SubProblem for solving nonlinear equations plus auxiliary equations.
Base class for deriving any boundary condition of a integrated type.
InterfaceKernelBase is the base class for all InterfaceKernel type classes.
This is the common base class for the three main kernel types implemented in MOOSE,...
Definition KernelBase.h:29
Nonlinear system to be solved.
virtual void compute(ResidualObject &ro)=0
Will dispatch to computeResidual/computeJacobian/computeResidualAndJacobian based on the derived clas...
virtual void computeOnInternalFace()=0
This is the common base class for objects that give residual contributions.
All time kernels should inherit from this class.
Definition TimeKernel.h:19