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 75 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 183 of file ComputeFVFluxThread.h.
| ThreadedFaceLoop< RangeType >::ThreadedFaceLoop | ( | ThreadedFaceLoop< RangeType > & | x, |
| Threads::split | split | ||
| ) |
Definition at line 201 of file ComputeFVFluxThread.h.
|
virtual |
Definition at line 214 of file ComputeFVFluxThread.h.
|
inline |
Called if a MooseException is caught anywhere during the computation.
Definition at line 116 of file ComputeFVFluxThread.h.
| void ThreadedFaceLoop< RangeType >::join | ( | const ThreadedFaceLoop< RangeType > & | y | ) |
Definition at line 227 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 110 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 241 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 98 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 94 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 96 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 128 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 131 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 125 of file ComputeFVFluxThread.h.
|
inlineprotected |
Reset lists of blocks and boundaries for which execution printing has been done.
Definition at line 134 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 106 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 165 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 168 of file ComputeFVFluxThread.h.
Referenced by ThreadedFaceLoop< RangeType >::resetExecutionPrinting().
|
protected |
Holds caught runtime error messages.
Definition at line 171 of file ComputeFVFluxThread.h.
Referenced by ThreadedFaceLoop< RangeType >::join().
|
protected |
Definition at line 140 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 179 of file ComputeFVFluxThread.h.
|
protected |
Definition at line 141 of file ComputeFVFluxThread.h.
|
protected |
The subdomain for the current neighbor.
Definition at line 159 of file ComputeFVFluxThread.h.
Referenced by ThreadedFaceLoop< RangeType >::neighborSubdomainChanged().
|
protected |
Definition at line 144 of file ComputeFVFluxThread.h.
|
protected |
The subdomain for the last neighbor.
Definition at line 162 of file ComputeFVFluxThread.h.
|
protected |
The subdomain for the last element.
Definition at line 156 of file ComputeFVFluxThread.h.
|
protected |
Whether this loop is operating on the displaced mesh.
Definition at line 147 of file ComputeFVFluxThread.h.
|
protected |
The subdomain for the current element.
Definition at line 153 of file ComputeFVFluxThread.h.
Referenced by ThreadedFaceLoop< RangeType >::subdomainChanged().
|
protected |
FEProblemBase or DisplacedProblem depending on _on_displaced.
Definition at line 150 of file ComputeFVFluxThread.h.
Referenced by ComputeFVFluxResidualThread< RangeType >::addCached(), ComputeFVFluxJacobianThread< RangeType >::addCached(), and ComputeFVFluxRJThread< RangeType >::addCached().
|
protected |
Definition at line 142 of file ComputeFVFluxThread.h.
|
protected |
Definition at line 143 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 175 of file ComputeFVFluxThread.h.
1.8.14