Class to generate patchToPatch coupling geometry. A full geometric intersection is done between a face and those opposite, and coupling geometry is calculated accordingly. More...
Classes | |
struct | couple |
Structure to store the geometry associated with the coupling. More... | |
struct | part |
Structure to store the geometry associated with part of a patch. More... | |
Public Member Functions | |
TypeName ("intersection") | |
Runtime type information. More... | |
intersection (const bool reverse) | |
Construct from components. More... | |
~intersection () | |
Destructor. More... | |
const List< DynamicList< couple > > & | srcCouples () const |
For each source face, the source and target areas for each. More... | |
const List< part > & | srcEdgeParts () const |
For each source edge, the non-coupled geometry associated. More... | |
const List< part > & | srcErrorParts () const |
For each source face, the area associated with mismatch. More... | |
const List< DynamicList< couple > > & | tgtCouples () const |
For each target face, the target and source areas for each. More... | |
const List< scalar > & | srcCoverage () const |
Return the proportion of the source faces that are coupled. More... | |
const List< scalar > & | tgtCoverage () const |
Return the proportion of the target faces that are coupled. More... | |
template<class Type > | |
Foam::FixedList< Type, 3 > | triPointValues (const triFace &t, const UList< Type > &values) |
Public Member Functions inherited from patchToPatch | |
TypeName ("patchToPatch") | |
Runtime type information. More... | |
declareRunTimeSelectionTable (autoPtr, patchToPatch, bool,(const bool reverse),(reverse)) | |
Declare runtime constructor selection table. More... | |
patchToPatch (const bool reverse) | |
Construct from components. More... | |
patchToPatch (const patchToPatch &)=delete | |
Disallow default bitwise copy construction. More... | |
virtual | ~patchToPatch () |
Destructor. More... | |
bool | reverse () const |
Flag to indicate that the two patches are co-directional and. More... | |
label | singleProcess () const |
Index of the processor holding all faces of the patchToPatch,. More... | |
bool | isSingleProcess () const |
Is this intersection on a single process? More... | |
PackedBoolList | srcCoupled () const |
Return a list indicating which source faces are coupled. More... | |
PackedBoolList | tgtCoupled () const |
Return a list indicating which target faces are coupled. More... | |
List< List< remote > > | srcTgtProcFaces () const |
For each source face, the coupled target procs and faces. More... | |
List< List< remote > > | tgtSrcProcFaces () const |
For each target face, the coupled source procs and faces. More... | |
template<class Type > | |
tmp< Field< Type > > | srcToTgt (const Field< Type > &srcFld) const |
Interpolate a source patch field to the target with no left. More... | |
template<class Type > | |
tmp< Field< Type > > | srcToTgt (const Field< Type > &srcFld, const Field< Type > &leftOverTgtFld) const |
Interpolate a source patch field to the target with left over. More... | |
template<class Type > | |
tmp< Field< Type > > | tgtToSrc (const Field< Type > &tgtFld) const |
Interpolate a target patch field to the source with no left. More... | |
template<class Type > | |
tmp< Field< Type > > | tgtToSrc (const Field< Type > &tgtFld, const Field< Type > &leftOverSrcFld) const |
Interpolate a target patch field to the source with left. More... | |
void | update (const primitiveOldTimePatch &srcPatch, const vectorField &srcPointNormals, const vectorField &srcPointNormals0, const primitiveOldTimePatch &tgtPatch, const transformer &tgtToSrc=NullObjectRef< transformer >()) |
Update addressing and weights for the given patches. More... | |
void | update (const primitivePatch &srcPatch, const vectorField &srcPointNormals, const primitivePatch &tgtPatch, const transformer &tgtToSrc=NullObjectRef< transformer >()) |
Update addressing and weights for the given patches. More... | |
void | operator= (const patchToPatch &)=delete |
Disallow default bitwise assignment. More... | |
template<class Type > | |
Foam::tmp< Foam::Field< Type > > | srcToTgt (const Field< Type > &srcFld) const |
template<class Type > | |
Foam::tmp< Foam::Field< Type > > | srcToTgt (const Field< Type > &srcFld, const Field< Type > &leftOverTgtFld) const |
template<class Type > | |
Foam::tmp< Foam::Field< Type > > | tgtToSrc (const Field< Type > &tgtFld) const |
template<class Type > | |
Foam::tmp< Foam::Field< Type > > | tgtToSrc (const Field< Type > &tgtFld, const Field< Type > &leftOverSrcFld) const |
Static Public Member Functions | |
static treeBoundBox | srcBoxStatic (const face &srcFace, const pointField &srcPoints, const vectorField &srcPointNormals) |
Get the bound box for a source face. More... | |
Static Public Member Functions inherited from patchToPatch | |
static autoPtr< patchToPatch > | New (const word &patchToPatchType, const bool reverse) |
Select from name. More... | |
Static Public Attributes | |
static int | debugSrcFacei |
Extra debugging for intersections between specific faces. Named. More... | |
static int | debugTgtFacei |
Additional Inherited Members | |
Protected Member Functions inherited from patchToPatch | |
treeBoundBox | srcBox (const primitiveOldTimePatch &srcPatch, const vectorField &srcPointNormals, const vectorField &srcPointNormals0, const label srcFacei) const |
Get the bound box for a source face. More... | |
treeBoundBox | srcBox (const primitiveOldTimePatch &srcPatch, const vectorField &srcPointNormals, const vectorField &srcPointNormals0) const |
Get the bound box for the source patch. More... | |
treeBoundBox | tgtBox (const primitiveOldTimePatch &tgtPatch, const label tgtFacei) const |
Get the bound box for a target face. More... | |
treeBoundBox | tgtBox (const primitiveOldTimePatch &tgtPatch) const |
Get the bound box for the target patch. More... | |
bool | findOrIntersectFaces (const primitiveOldTimePatch &srcPatch, const vectorField &srcPointNormals, const vectorField &srcPointNormals0, const primitiveOldTimePatch &tgtPatch, const label srcFacei, const label tgtFacei) |
Intersect two faces. More... | |
label | intersectPatchQueue (const primitiveOldTimePatch &srcPatch, const vectorField &srcPointNormals, const vectorField &srcPointNormals0, const primitiveOldTimePatch &tgtPatch, const bool isSrc, const DynamicList< labelPair > &queue, labelList &faceComplete, DynamicList< labelPair > &otherQueue, const labelList &otherFaceComplete, boolList &otherFaceQueued, boolList &otherFaceVisited) |
Intersect a queue of source-target face pairs. Update completion. More... | |
void | intersectPatches (const primitiveOldTimePatch &srcPatch, const vectorField &srcPointNormals, const vectorField &srcPointNormals0, const primitiveOldTimePatch &tgtPatch) |
Intersect the patches. More... | |
labelListList | tgtPatchSendFaces (const primitiveOldTimePatch &srcPatch, const vectorField &srcPointNormals, const vectorField &srcPointNormals0, const primitiveOldTimePatch &tgtPatch) const |
Determine which target faces need to be sent to the source. More... | |
virtual void | distributeSrc (const primitiveOldTimePatch &srcPatch) |
Distribute the source patch so that any information needed by. More... | |
Static Protected Member Functions inherited from patchToPatch | |
static List< remote > | distributePatch (const distributionMap &map, const primitiveOldTimePatch &patch, autoPtr< PrimitiveOldTimePatch< faceList, pointField >> &localPatchPtr) |
Distribute a patch given its distribution map. More... | |
Protected Attributes inherited from patchToPatch | |
const bool | reverse_ |
Flag to indicate that the two patches are co-directional and. More... | |
label | singleProcess_ |
Index of the processor holding all faces of the patchToPatch, or -1. More... | |
List< DynamicList< label > > | srcLocalTgtFaces_ |
For each source face, the coupled local target faces. More... | |
List< DynamicList< label > > | tgtLocalSrcFaces_ |
For each target face, the coupled local source faces. More... | |
autoPtr< distributionMap > | srcMapPtr_ |
Map from source patch faces to target-local source patch faces. More... | |
autoPtr< distributionMap > | tgtMapPtr_ |
Map from target patch faces to source-local target patch faces. More... | |
autoPtr< List< remote > > | localSrcProcFacesPtr_ |
When running in parallel, a map from local source face index to. More... | |
autoPtr< List< remote > > | localTgtProcFacesPtr_ |
When running in parallel, a map from local target face index to. More... | |
Class to generate patchToPatch coupling geometry. A full geometric intersection is done between a face and those opposite, and coupling geometry is calculated accordingly.
Class to generate patchToPatch coupling geometry. Coupling is determined by means of comparing the bound boxes generated by the intersection method. This generates an outer "envelope" of possible intersections that can be used for ray shooting and Lagrangian transfer.
Note that this method is not added to the run-time selection table, as it is not a method which facilitates patch coupling or mapping.
Definition at line 55 of file intersectionPatchToPatch.H.
intersection | ( | const bool | reverse | ) |
Construct from components.
Definition at line 953 of file intersectionPatchToPatch.C.
~intersection | ( | ) |
Destructor.
Definition at line 991 of file intersectionPatchToPatch.C.
TypeName | ( | "intersection" | ) |
Runtime type information.
|
static |
Get the bound box for a source face.
Definition at line 70 of file intersectionPatchToPatch.C.
References DynamicList< T, SizeInc, SizeMult, SizeDiv >::append(), face::area(), DynamicList< T, SizeInc, SizeMult, SizeDiv >::clear(), forAll, Foam::mag(), n, p, and Foam::sqrt().
|
inline |
For each source face, the source and target areas for each.
target coupling
Definition at line 32 of file intersectionPatchToPatchI.H.
|
inline |
For each source edge, the non-coupled geometry associated.
with its projection
Definition at line 39 of file intersectionPatchToPatchI.H.
|
inline |
For each source face, the area associated with mismatch.
across the coupling
Definition at line 46 of file intersectionPatchToPatchI.H.
|
inline |
For each target face, the target and source areas for each.
source coupling
Definition at line 54 of file intersectionPatchToPatchI.H.
|
inline |
Return the proportion of the source faces that are coupled.
Definition at line 61 of file intersectionPatchToPatchI.H.
|
inline |
Return the proportion of the target faces that are coupled.
Definition at line 68 of file intersectionPatchToPatchI.H.
Foam::FixedList<Type, 3> triPointValues | ( | const triFace & | t, |
const UList< Type > & | values | ||
) |
Definition at line 53 of file intersectionPatchToPatch.C.
References forAll.
|
static |
Extra debugging for intersections between specific faces. Named.
"intersectionSrcFace" and "intersectionTgtFace" respectively.
Definition at line 376 of file intersectionPatchToPatch.H.
|
static |
Definition at line 376 of file intersectionPatchToPatch.H.