This loops over a set of mesh faces (i.e. More...
#include <ComputeFVFluxThread.h>
Public Member Functions | |
ThreadedFaceLoop (FEProblemBase &fe_problem, const unsigned int nl_system_num, const std::set< TagID > &tags, bool on_displaced) | |
ThreadedFaceLoop (ThreadedFaceLoop &x, Threads::split split) | |
virtual | ~ThreadedFaceLoop () |
virtual void | operator() (const RangeType &range, bool bypass_threading=false) |
void | join (const ThreadedFaceLoop &y) |
virtual void | onFace (const FaceInfo &fi)=0 |
virtual void | postFace (const FaceInfo &) |
This is called once for each face after all face and boundary callbacks have been finished for that face. More... | |
virtual void | pre () |
This is called once before all face-looping. More... | |
virtual void | post () |
This is called once after all face-looping is finished. More... | |
virtual void | onBoundary (const FaceInfo &fi, BoundaryID boundary)=0 |
This is called once for every face that is on a boundary after onFace is called for the face. More... | |
virtual void | subdomainChanged () |
Called every time the current subdomain changes (i.e. More... | |
virtual void | neighborSubdomainChanged () |
Called every time the neighbor subdomain changes (i.e. More... | |
void | caughtMooseException (MooseException &e) |
Called if a MooseException is caught anywhere during the computation. More... | |
Protected Member Functions | |
virtual void | printGeneralExecutionInformation () const |
Print list of object types executed and in which order. More... | |
virtual void | printBlockExecutionInformation () const |
Print ordering of objects executed on each block. More... | |
virtual void | printBoundaryExecutionInformation (const BoundaryID) const |
Print ordering of objects exected on each boundary. More... | |
void | resetExecutionPrinting () |
Reset lists of blocks and boundaries for which execution printing has been done. More... | |
Protected Attributes | |
FEProblemBase & | _fe_problem |
MooseMesh & | _mesh |
const std::set< TagID > & | _tags |
THREAD_ID | _tid |
const unsigned int | _nl_system_num |
const bool | _on_displaced |
Whether this loop is operating on the displaced mesh. More... | |
SubProblem & | _subproblem |
FEProblemBase or DisplacedProblem depending on _on_displaced . 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... | |
std::set< std::pair< const SubdomainID, const SubdomainID > > | _blocks_exec_printed |
Set to keep track of blocks for which we have printed the execution pattern. More... | |
std::set< BoundaryID > | _boundaries_exec_printed |
Set to keep track of boundaries for which we have printed the execution pattern. More... | |
std::string | _error_message |
Holds caught runtime error messages. More... | |
Private Attributes | |
const bool | _zeroth_copy |
Whether this is the zeroth threaded copy of this body. More... | |
const bool | _incoming_throw_on_error |
The value of Moose::_throw_on_error at the time of construction. More... | |
This loops over a set of mesh faces (i.e.
FaceInfo objects). Callback routines are provided for visiting each face, for visiting boundary faces, for sudomain changes, and pre/post many of these events.
Definition at line 73 of file ComputeFVFluxThread.h.
ThreadedFaceLoop< RangeType >::ThreadedFaceLoop | ( | FEProblemBase & | fe_problem, |
const unsigned int | nl_system_num, | ||
const std::set< TagID > & | tags, | ||
bool | on_displaced | ||
) |
Definition at line 181 of file ComputeFVFluxThread.h.
ThreadedFaceLoop< RangeType >::ThreadedFaceLoop | ( | ThreadedFaceLoop< RangeType > & | x, |
Threads::split | split | ||
) |
Definition at line 199 of file ComputeFVFluxThread.h.
|
virtual |
Definition at line 212 of file ComputeFVFluxThread.h.
|
inline |
Called if a MooseException is caught anywhere during the computation.
Definition at line 114 of file ComputeFVFluxThread.h.
void ThreadedFaceLoop< RangeType >::join | ( | const ThreadedFaceLoop< RangeType > & | y | ) |
Definition at line 225 of file ComputeFVFluxThread.h.
|
inlinevirtual |
Called every time the neighbor subdomain changes (i.e.
the subdomain of this face's neighbor element is not the same as the subdomain of the last face's neighbor element).
Reimplemented in ComputeFVFluxThread< RangeType, AttributeTagType >, ComputeFVFluxThread< RangeType, AttribVectorTags >, and ComputeFVFluxThread< RangeType, AttribMatrixTags >.
Definition at line 108 of file ComputeFVFluxThread.h.
Referenced by ComputeFVFluxThread< RangeType, AttribMatrixTags >::neighborSubdomainChanged().
|
pure virtual |
This is called once for every face that is on a boundary after onFace is called for the face.
Implemented in ComputeFVFluxThread< RangeType, AttributeTagType >, ComputeFVFluxThread< RangeType, AttribVectorTags >, and ComputeFVFluxThread< RangeType, AttribMatrixTags >.
|
pure virtual |
|
virtual |
Definition at line 239 of file ComputeFVFluxThread.h.
|
inlinevirtual |
This is called once after all face-looping is finished.
Reimplemented in ComputeFVFluxThread< RangeType, AttributeTagType >, ComputeFVFluxThread< RangeType, AttribVectorTags >, and ComputeFVFluxThread< RangeType, AttribMatrixTags >.
Definition at line 96 of file ComputeFVFluxThread.h.
|
inlinevirtual |
This is called once for each face after all face and boundary callbacks have been finished for that face.
Reimplemented in ComputeFVFluxRJThread< RangeType >, ComputeFVFluxJacobianThread< RangeType >, and ComputeFVFluxResidualThread< RangeType >.
Definition at line 92 of file ComputeFVFluxThread.h.
|
inlinevirtual |
This is called once before all face-looping.
Reimplemented in ComputeFVFluxThread< RangeType, AttributeTagType >, ComputeFVFluxThread< RangeType, AttribVectorTags >, and ComputeFVFluxThread< RangeType, AttribMatrixTags >.
Definition at line 94 of file ComputeFVFluxThread.h.
|
inlineprotectedvirtual |
Print ordering of objects executed on each block.
Reimplemented in ComputeFVFluxThread< RangeType, AttributeTagType >, ComputeFVFluxThread< RangeType, AttribVectorTags >, and ComputeFVFluxThread< RangeType, AttribMatrixTags >.
Definition at line 126 of file ComputeFVFluxThread.h.
|
inlineprotectedvirtual |
Print ordering of objects exected on each boundary.
Reimplemented in ComputeFVFluxThread< RangeType, AttributeTagType >, ComputeFVFluxThread< RangeType, AttribVectorTags >, and ComputeFVFluxThread< RangeType, AttribMatrixTags >.
Definition at line 129 of file ComputeFVFluxThread.h.
|
inlineprotectedvirtual |
Print list of object types executed and in which order.
Reimplemented in ComputeFVFluxThread< RangeType, AttributeTagType >, ComputeFVFluxThread< RangeType, AttribVectorTags >, and ComputeFVFluxThread< RangeType, AttribMatrixTags >.
Definition at line 123 of file ComputeFVFluxThread.h.
|
inlineprotected |
Reset lists of blocks and boundaries for which execution printing has been done.
Definition at line 132 of file ComputeFVFluxThread.h.
|
inlinevirtual |
Called every time the current subdomain changes (i.e.
the subdomain of this face's elem element is not the same as the subdomain of the last face's elem element).
Reimplemented in ComputeFVFluxThread< RangeType, AttributeTagType >, ComputeFVFluxThread< RangeType, AttribVectorTags >, and ComputeFVFluxThread< RangeType, AttribMatrixTags >.
Definition at line 104 of file ComputeFVFluxThread.h.
Referenced by ComputeFVFluxThread< RangeType, AttribMatrixTags >::subdomainChanged().
|
mutableprotected |
Set to keep track of blocks for which we have printed the execution pattern.
Definition at line 163 of file ComputeFVFluxThread.h.
Referenced by ThreadedFaceLoop< RangeType >::resetExecutionPrinting().
|
mutableprotected |
Set to keep track of boundaries for which we have printed the execution pattern.
Definition at line 166 of file ComputeFVFluxThread.h.
Referenced by ThreadedFaceLoop< RangeType >::resetExecutionPrinting().
|
protected |
Holds caught runtime error messages.
Definition at line 169 of file ComputeFVFluxThread.h.
Referenced by ThreadedFaceLoop< RangeType >::join().
|
protected |
Definition at line 138 of file ComputeFVFluxThread.h.
Referenced by ThreadedFaceLoop< RangeType >::caughtMooseException(), ThreadedFaceLoop< RangeType >::neighborSubdomainChanged(), and ThreadedFaceLoop< RangeType >::subdomainChanged().
|
private |
The value of Moose::_throw_on_error
at the time of construction.
This data member only has meaning and will only be read if this is the thread 0 copy of the class
Definition at line 177 of file ComputeFVFluxThread.h.
|
protected |
Definition at line 139 of file ComputeFVFluxThread.h.
|
protected |
The subdomain for the current neighbor.
Definition at line 157 of file ComputeFVFluxThread.h.
Referenced by ThreadedFaceLoop< RangeType >::neighborSubdomainChanged().
|
protected |
Definition at line 142 of file ComputeFVFluxThread.h.
|
protected |
The subdomain for the last neighbor.
Definition at line 160 of file ComputeFVFluxThread.h.
|
protected |
The subdomain for the last element.
Definition at line 154 of file ComputeFVFluxThread.h.
|
protected |
Whether this loop is operating on the displaced mesh.
Definition at line 145 of file ComputeFVFluxThread.h.
|
protected |
The subdomain for the current element.
Definition at line 151 of file ComputeFVFluxThread.h.
Referenced by ThreadedFaceLoop< RangeType >::subdomainChanged().
|
protected |
FEProblemBase or DisplacedProblem depending on _on_displaced
.
Definition at line 148 of file ComputeFVFluxThread.h.
Referenced by ComputeFVFluxResidualThread< RangeType >::addCached(), ComputeFVFluxJacobianThread< RangeType >::addCached(), and ComputeFVFluxRJThread< RangeType >::addCached().
|
protected |
Definition at line 140 of file ComputeFVFluxThread.h.
|
protected |
Definition at line 141 of file ComputeFVFluxThread.h.
Referenced by ComputeFVFluxResidualThread< RangeType >::addCached(), ComputeFVFluxJacobianThread< RangeType >::addCached(), ComputeFVFluxRJThread< RangeType >::addCached(), ThreadedFaceLoop< RangeType >::neighborSubdomainChanged(), and ThreadedFaceLoop< RangeType >::subdomainChanged().
|
private |
Whether this is the zeroth threaded copy of this body.
Definition at line 173 of file ComputeFVFluxThread.h.