Adds contributions from volumetric terms discretized using the finite volume method to the matrix and right hand side of a linear system. More...
#include <ComputeLinearFVElementalThread.h>
Public Types | |
using | ElemInfoRange = StoredRange< MooseMesh::const_elem_info_iterator, const ElemInfo * > |
Public Member Functions | |
ComputeLinearFVElementalThread (FEProblemBase &fe_problem, const unsigned int linear_system_num, const std::set< TagID > &vector_tags, const std::set< TagID > &matrix_tags) | |
Class constructor. More... | |
ComputeLinearFVElementalThread (ComputeLinearFVElementalThread &x, Threads::split split) | |
Splitting constructor. More... | |
void | operator() (const ElemInfoRange &range) |
Operator which is used to execute the thread over a certain iterator range. More... | |
void | join (const ComputeLinearFVElementalThread &) |
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 contribution objects that belong to a specific spatial subdomain. More... | |
void | printGeneralExecutionInformation () const |
Print list of object types executed and in which 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 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... | |
THREAD_ID | _tid |
Thread ID. More... | |
SubdomainID | _subdomain |
The subdomain for the current element. More... | |
SubdomainID | _old_subdomain |
The subdomain for the last element. More... | |
std::vector< LinearFVElementalKernel * > | _fv_kernels |
The set of cached elemental kernels which will be executed on a given element. 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 volumetric terms discretized using the finite volume method to the matrix and right hand side of a linear system.
Definition at line 27 of file ComputeLinearFVElementalThread.h.
using ComputeLinearFVElementalThread::ElemInfoRange = StoredRange<MooseMesh::const_elem_info_iterator, const ElemInfo *> |
Definition at line 51 of file ComputeLinearFVElementalThread.h.
ComputeLinearFVElementalThread::ComputeLinearFVElementalThread | ( | FEProblemBase & | fe_problem, |
const unsigned int | linear_system_num, | ||
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 ComputeLinearFVElementalThread.C.
ComputeLinearFVElementalThread::ComputeLinearFVElementalThread | ( | ComputeLinearFVElementalThread & | x, |
Threads::split | split | ||
) |
Splitting constructor.
x | Reference to the other thread |
split | The thread split |
Definition at line 31 of file ComputeLinearFVElementalThread.C.
|
protected |
Fetch contribution objects that belong to a specific spatial subdomain.
Definition at line 117 of file ComputeLinearFVElementalThread.C.
Referenced by operator()().
void ComputeLinearFVElementalThread::join | ( | const ComputeLinearFVElementalThread & | ) |
Join threads at the end of the execution.
Definition at line 78 of file ComputeLinearFVElementalThread.C.
void ComputeLinearFVElementalThread::operator() | ( | const ElemInfoRange & | range | ) |
Operator which is used to execute the thread over a certain iterator range.
range | The range of ElemInfos which should be computed. |
Definition at line 44 of file ComputeLinearFVElementalThread.C.
|
protected |
Print ordering of objects executed on each block.
Definition at line 166 of file ComputeLinearFVElementalThread.C.
Referenced by operator()().
|
protected |
Print list of object types executed and in which order.
Definition at line 151 of file ComputeLinearFVElementalThread.C.
Referenced by operator()().
|
protected |
Setup the contribution objects before we start the loop.
Definition at line 83 of file ComputeLinearFVElementalThread.C.
Referenced by operator()().
|
protected |
Reference to the problem.
Definition at line 73 of file ComputeLinearFVElementalThread.h.
Referenced by fetchBlockSystemContributionObjects(), printBlockExecutionInformation(), printGeneralExecutionInformation(), and setupSystemContributionObjects().
|
protected |
The set of cached elemental kernels which will be executed on a given element.
This member variable is changed on a per-block basis.
Definition at line 95 of file ComputeLinearFVElementalThread.h.
Referenced by fetchBlockSystemContributionObjects(), operator()(), and printBlockExecutionInformation().
|
protected |
The matrix tags this thread contributes to.
Definition at line 82 of file ComputeLinearFVElementalThread.h.
Referenced by fetchBlockSystemContributionObjects(), and setupSystemContributionObjects().
|
protected |
The subdomain for the last element.
Definition at line 91 of file ComputeLinearFVElementalThread.h.
Referenced by fetchBlockSystemContributionObjects(), and operator()().
|
protected |
The subdomain for the current element.
Definition at line 88 of file ComputeLinearFVElementalThread.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 100 of file ComputeLinearFVElementalThread.h.
Referenced by fetchBlockSystemContributionObjects(), and setupSystemContributionObjects().
|
protected |
The number of the linear system we are contributing to.
Definition at line 76 of file ComputeLinearFVElementalThread.h.
Referenced by fetchBlockSystemContributionObjects(), and setupSystemContributionObjects().
|
protected |
Thread ID.
Definition at line 85 of file ComputeLinearFVElementalThread.h.
Referenced by fetchBlockSystemContributionObjects(), operator()(), printBlockExecutionInformation(), printGeneralExecutionInformation(), and setupSystemContributionObjects().
|
protected |
The vector tags this thread contributes to.
Definition at line 79 of file ComputeLinearFVElementalThread.h.
Referenced by fetchBlockSystemContributionObjects(), and setupSystemContributionObjects().