Adds contributions from face terms discretized using the finite volume method to the matrix and right hand side of a linear system. More...
#include <ComputeLinearFVFaceThread.h>
Public Types | |
using | FaceInfoRange = StoredRange< MooseMesh::const_face_info_iterator, const FaceInfo * > |
Public Member Functions | |
ComputeLinearFVFaceThread (FEProblemBase &fe_problem, const unsigned int linear_system_num, const Moose::FV::LinearFVComputationMode mode, const std::set< TagID > &vector_tags, const std::set< TagID > &matrix_tags) | |
Class constructor. More... | |
ComputeLinearFVFaceThread (ComputeLinearFVFaceThread &x, Threads::split split) | |
Splitting constructor. More... | |
void | operator() (const FaceInfoRange &range) |
Operator which is used to execute the thread over a certain iterator range. More... | |
void | join (const ComputeLinearFVFaceThread &) |
Join threads at the end of the execution. More... | |
Protected Member Functions | |
void | setupSystemContributionObjects () |
Setup the contribution objects before we start the loop. More... | |
void | fetchBlockSystemContributionObjects () |
Fetch LinearFVFluxKernels for a given block. More... | |
void | printGeneralExecutionInformation () const |
Print list of executed object types together with the execution order. More... | |
void | printBlockExecutionInformation () const |
Print ordering of objects executed on each block. More... | |
Protected Attributes | |
FEProblemBase & | _fe_problem |
Reference to the problem. More... | |
const unsigned int | _system_number |
The number of the linear system we are contributing to. More... | |
const Moose::FV::LinearFVComputationMode | _mode |
The mode in which this thread is operating. More... | |
const std::set< TagID > & | _vector_tags |
The vector tags this thread contributes to. More... | |
const std::set< TagID > & | _matrix_tags |
The matrix tags this thread contributes to. More... | |
SubdomainID | _subdomain |
The subdomain for the current element. More... | |
SubdomainID | _old_subdomain |
The subdomain for the last element. More... | |
SubdomainID | _neighbor_subdomain |
The subdomain for the current neighbor. More... | |
SubdomainID | _old_neighbor_subdomain |
The subdomain for the last neighbor. More... | |
THREAD_ID | _tid |
Thread ID. More... | |
std::vector< LinearFVFluxKernel * > | _fv_flux_kernels_elem |
Kernels which will only contribute to a matrix from the element-side of the face. More... | |
std::vector< LinearFVFluxKernel * > | _fv_flux_kernels_neighbor |
Kernels which will only contribute to a matrix from the neighbor-side of the face. More... | |
std::set< LinearFVFluxKernel * > | _fv_flux_kernels |
Combined LinearFVFluxKernels which will be used to contribute to a system. More... | |
Private Attributes | |
bool | _system_contrib_objects_ready |
Boolean that is used to check if the kernels are ready to start contributing to the system. More... | |
Adds contributions from face terms discretized using the finite volume method to the matrix and right hand side of a linear system.
Definition at line 27 of file ComputeLinearFVFaceThread.h.
using ComputeLinearFVFaceThread::FaceInfoRange = StoredRange<MooseMesh::const_face_info_iterator, const FaceInfo *> |
Definition at line 53 of file ComputeLinearFVFaceThread.h.
ComputeLinearFVFaceThread::ComputeLinearFVFaceThread | ( | FEProblemBase & | fe_problem, |
const unsigned int | linear_system_num, | ||
const Moose::FV::LinearFVComputationMode | mode, | ||
const std::set< TagID > & | vector_tags, | ||
const std::set< TagID > & | matrix_tags | ||
) |
Class constructor.
fe_problem | Reference to the problem |
linear_system_num | The number of the linear system which is assembled by this thread |
mode | Computation mode (rhs, matrix or both) |
vector_tags | The vector tags this thread should contribute to. These are used to query the warehouse for the objects that should contribute to the right hand side. |
matrix_tags | The matrix tags this thread should contribute to. These are used to query the warehouse for the objects that should contribute to the matrix. |
Definition at line 16 of file ComputeLinearFVFaceThread.C.
ComputeLinearFVFaceThread::ComputeLinearFVFaceThread | ( | ComputeLinearFVFaceThread & | x, |
Threads::split | split | ||
) |
Splitting constructor.
x | Reference to the other thread |
split | The thread split |
Definition at line 31 of file ComputeLinearFVFaceThread.C.
|
protected |
Fetch LinearFVFluxKernels for a given block.
We only call this when we transition from one block to another.
Definition at line 120 of file ComputeLinearFVFaceThread.C.
Referenced by operator()().
void ComputeLinearFVFaceThread::join | ( | const ComputeLinearFVFaceThread & | ) |
Join threads at the end of the execution.
Definition at line 81 of file ComputeLinearFVFaceThread.C.
void ComputeLinearFVFaceThread::operator() | ( | const FaceInfoRange & | range | ) |
Operator which is used to execute the thread over a certain iterator range.
range | The range of FaceInfos which should be computed. |
Definition at line 43 of file ComputeLinearFVFaceThread.C.
|
protected |
Print ordering of objects executed on each block.
Definition at line 200 of file ComputeLinearFVFaceThread.C.
Referenced by operator()().
|
protected |
Print list of executed object types together with the execution order.
Definition at line 186 of file ComputeLinearFVFaceThread.C.
Referenced by operator()().
|
protected |
Setup the contribution objects before we start the loop.
Definition at line 86 of file ComputeLinearFVFaceThread.C.
Referenced by operator()().
|
protected |
Reference to the problem.
Definition at line 76 of file ComputeLinearFVFaceThread.h.
Referenced by fetchBlockSystemContributionObjects(), printBlockExecutionInformation(), printGeneralExecutionInformation(), and setupSystemContributionObjects().
|
protected |
Combined LinearFVFluxKernels which will be used to contribute to a system.
Definition at line 114 of file ComputeLinearFVFaceThread.h.
Referenced by fetchBlockSystemContributionObjects(), operator()(), and printBlockExecutionInformation().
|
protected |
Kernels which will only contribute to a matrix from the element-side of the face.
Definition at line 107 of file ComputeLinearFVFaceThread.h.
Referenced by fetchBlockSystemContributionObjects().
|
protected |
Kernels which will only contribute to a matrix from the neighbor-side of the face.
Definition at line 111 of file ComputeLinearFVFaceThread.h.
Referenced by fetchBlockSystemContributionObjects().
|
protected |
The matrix tags this thread contributes to.
Definition at line 88 of file ComputeLinearFVFaceThread.h.
Referenced by fetchBlockSystemContributionObjects(), and setupSystemContributionObjects().
|
protected |
The mode in which this thread is operating.
Definition at line 82 of file ComputeLinearFVFaceThread.h.
|
protected |
The subdomain for the current neighbor.
Definition at line 97 of file ComputeLinearFVFaceThread.h.
Referenced by fetchBlockSystemContributionObjects(), operator()(), and printBlockExecutionInformation().
|
protected |
The subdomain for the last neighbor.
Definition at line 100 of file ComputeLinearFVFaceThread.h.
Referenced by fetchBlockSystemContributionObjects(), and operator()().
|
protected |
The subdomain for the last element.
Definition at line 94 of file ComputeLinearFVFaceThread.h.
Referenced by fetchBlockSystemContributionObjects(), and operator()().
|
protected |
The subdomain for the current element.
Definition at line 91 of file ComputeLinearFVFaceThread.h.
Referenced by fetchBlockSystemContributionObjects(), operator()(), and printBlockExecutionInformation().
|
private |
Boolean that is used to check if the kernels are ready to start contributing to the system.
Definition at line 119 of file ComputeLinearFVFaceThread.h.
Referenced by fetchBlockSystemContributionObjects(), and setupSystemContributionObjects().
|
protected |
The number of the linear system we are contributing to.
Definition at line 79 of file ComputeLinearFVFaceThread.h.
Referenced by fetchBlockSystemContributionObjects(), and setupSystemContributionObjects().
|
protected |
Thread ID.
Definition at line 103 of file ComputeLinearFVFaceThread.h.
Referenced by fetchBlockSystemContributionObjects(), operator()(), printBlockExecutionInformation(), printGeneralExecutionInformation(), and setupSystemContributionObjects().
|
protected |
The vector tags this thread contributes to.
Definition at line 85 of file ComputeLinearFVFaceThread.h.
Referenced by fetchBlockSystemContributionObjects(), and setupSystemContributionObjects().