Loading...
Searching...
No Matches
mappedPatchBase Class Reference

Determines a mapping between patch face centres and mesh cell or face centres and processors they're on. More...

#include <mappedPatchBase.H>

Inheritance diagram for mappedPatchBase:
Collaboration diagram for mappedPatchBase:

Classes

class  nearestEqOp
class  maxProcEqOp
class  nearestWorldEqOp

Public Types

enum  sampleMode {
  NEARESTCELL , NEARESTPATCHFACE , NEARESTPATCHFACEAMI , NEARESTPATCHPOINT ,
  NEARESTFACE , NEARESTONLYCELL
}
 Mesh items to sample. More...
enum  offsetMode { UNIFORM , NONUNIFORM , NORMAL }
 How to project face centres. More...
typedef Tuple2< pointIndexHit, Tuple2< scalar, label > > nearInfo
 Helper class for finding nearest.
typedef Tuple2< nearInfo, label > nearInfoWorld
 nearest + world

Public Member Functions

 TypeName ("mappedPatchBase")
 Runtime type information.
 mappedPatchBase (const polyPatch &)
 Construct from patch.
 mappedPatchBase (const polyPatch &pp, const word &sampleRegion, const sampleMode sampleMode, const word &samplePatch, const vectorField &offsets)
 Construct with offsetMode=non-uniform.
 mappedPatchBase (const polyPatch &pp, const word &sampleRegion, const sampleMode sampleMode, const word &samplePatch, const vector &uniformOffset)
 Construct from offsetMode=uniform.
 mappedPatchBase (const polyPatch &pp, const word &sampleRegion, const sampleMode sampleMode, const word &samplePatch, const scalar normalDistance)
 Construct from offsetMode=normal and distance.
 mappedPatchBase (const polyPatch &, const dictionary &)
 Construct from dictionary.
 mappedPatchBase (const polyPatch &, const sampleMode, const dictionary &)
 Construct from dictionary and (collocated) sample mode.
 mappedPatchBase (const polyPatch &, const mappedPatchBase &)
 Construct as copy, resetting patch.
 mappedPatchBase (const polyPatch &, const mappedPatchBase &, const labelUList &mapAddressing)
 Construct as copy, resetting patch, map original data.
virtual ~mappedPatchBase ()
 Destructor.
void clearOut ()
void setOffset (const scalar normalDist)
 Change to normal offset with given distance.
void setOffset (const vector &uniformOffset)
 Change to uniform offset with value.
void setOffset (const vectorField &offsets)
 Change to non-uniform offsets.
sampleMode mode () const noexcept
 What to sample.
const wordsampleWorld () const noexcept
 World to sample.
const wordsampleRegion () const
 Region to sample.
const wordsamplePatch () const
 Patch (only if NEARESTPATCHFACE).
const wordcoupleGroup () const
 PatchGroup (only if NEARESTPATCHFACE).
label sampleSize () const
 Return size of mapped mesh/patch/boundary.
const vectoroffset () const noexcept
 Offset vector (from patch faces to destination mesh objects).
const vectorFieldoffsets () const noexcept
 Offset vectors (from patch faces to destination mesh objects).
label getCommunicator () const
 Get the communicator (worldComm or world-to-world).
label comm () const
 Identical to getCommunicator().
bool sameWorld () const
 Is sample world the local world?
bool masterWorld () const
 Is my world ordered before the sampleWorld?
bool sameRegion () const noexcept
 Cached sampleRegion != mesh.name().
uniformDimensionedScalarFieldupdateSampleMeshTime () const
 Local mesh update time.
uniformDimensionedScalarFieldupdateMeshTime () const
 Sample mesh upate time.
bool upToDate () const
const mapDistributemap () const
 Return reference to the parallel distribution map.
const AMIPatchToPatchInterpolationAMI (const bool forceUpdate=false) const
 Return reference to the AMI interpolator.
bool owner () const
 Is it owner.
const autoPtr< Foam::searchableSurface > & surfPtr () const
 Return a pointer to the AMI projection surface.
const polyMeshsampleMesh () const
 Get the region mesh.
const polyPatchsamplePolyPatch () const
 Get the patch on the region.
tmp< pointFieldsamplePoints () const
 Get the sample points.
const fileNamesampleDatabasePath () const
bool sampleDatabase () const noexcept
virtual fileName sendPath (const label proci) const
virtual fileName receivePath (const label proci) const
template<class Type>
void distribute (List< Type > &lst) const
 Wrapper around map/interpolate data distribution.
template<class Type, class CombineOp>
void distribute (List< Type > &lst, const CombineOp &cop) const
 Wrapper around map/interpolate data distribution with operation.
template<class Type>
void reverseDistribute (List< Type > &lst) const
 Wrapper around map/interpolate data distribution.
template<class Type, class CombineOp>
void reverseDistribute (List< Type > &lst, const CombineOp &cop) const
 Wrapper around map/interpolate data distribution with operation.
virtual void write (Ostream &os) const
 Write as a dictionary.

Static Public Member Functions

static pointIndexHit facePoint (const polyMesh &, const label facei, const polyMesh::cellDecomposition)
 Get a point on the face given a face decomposition method:
static fileName sendPath (const fileName &root, const label proci)
 Helper: return path to store data to be sent to processor i.
static fileName receivePath (const fileName &root, const label proci)
 Helper: return path to store data to be received from processor i.
static FOAM_NO_DANGLING_REFERENCE const objectRegistrysubRegistry (const objectRegistry &obr, const fileName &path)
 Lookup (sub)objectRegistry from '/' separated path (relative to objectRegistry). Creates non-existing intermediate ones.
template<class Type>
static void storeField (objectRegistry &obr, const word &fieldName, const Field< Type > &values)
 Store an IOField on the objectRegistry relative to obr.
static void writeDict (const objectRegistry &obr, dictionary &dict)
 Convert objectRegistry contents into dictionary.
static void readDict (const dictionary &d, objectRegistry &obr)
 (recursively) construct and register IOFields from dictionary

Static Public Attributes

static const Enum< sampleModesampleModeNames_
static const Enum< offsetModeoffsetModeNames_

Protected Member Functions

virtual void initGeometry (PstreamBuffers &)
 Initialise the calculation of the patch geometry.
virtual void calcGeometry (PstreamBuffers &)
 Calculate the patch geometry.
virtual void initMovePoints (PstreamBuffers &, const pointField &)
 Initialise the patches for moving points.
virtual void movePoints (PstreamBuffers &, const pointField &)
 Correct patches after moving points.
virtual void initUpdateMesh (PstreamBuffers &)
 Initialise the update of the patch topology.
virtual void updateMesh (PstreamBuffers &)
 Update of the patch topology.
bool addWorldConnection ()
 Add a world-world connection.
label getWorldCommunicator () const
 Get the communicator for the world-world connection.
const polyMeshlookupMesh (const word &region) const
 Lookup mesh.
const polyPatchlookupPatch (const word &sampleRegion, const word &samplePatch) const
 Lookup patch.
tmp< pointFieldfacePoints (const polyPatch &) const
 Get the points from face-centre-decomposition face centres and project them onto the face-diagonal-decomposition triangles.
void collectSamples (const label mySampleWorld, const pointField &facePoints, pointField &samples, labelList &patchFaceWorlds, labelList &patchFaceProcs, labelList &patchFaces, pointField &patchFc) const
 Collect single list of samples and originating processor+face + wanted world.
void findLocalSamples (const sampleMode mode, const label sampleWorld, const word &sampleRegion, const word &samplePatch, const pointField &samplePoints, List< nearInfoWorld > &nearest) const
 Find (local) cells/faces containing samples.
void findSamples (const sampleMode mode, const label myWorldIndex, const pointField &, const labelList &wantedWorlds, const labelList &origProcs, labelList &sampleProcs, labelList &sampleIndices, pointField &sampleLocations) const
 Find (global) cells/faces containing samples.
tmp< pointFieldsamplePoints (const pointField &) const
 Get the sample points given the face points.
void calcMapping () const
 Calculate mapping.
void calcAMI () const
 Calculate AMI interpolator.

Static Protected Member Functions

static autoPtr< fileNamereadDatabase (const dictionary &dict)
 Read optional database name from dictionary.
static FOAM_NO_DANGLING_REFERENCE const objectRegistrysubRegistry (const objectRegistry &obr, const wordList &names, const label index)
 Lookup (sub)objectRegistry by following names of sub registries. Creates non-existing intermediate ones.
template<class Type>
static bool writeIOField (const regIOobject &obj, dictionary &dict)
 Attempt to detect an IOField<Type> and write to dictionary.
template<class Type>
static bool constructIOField (const word &name, token &tok, Istream &is, objectRegistry &obr)
 Attempt to read an IOField<Type> and store on objectRegistry.

Protected Attributes

const polyPatchpatch_
 Patch to sample.
word sampleWorld_
 World to sample.
word sampleRegion_
 Region to sample.
const sampleMode mode_
 What to sample.
word samplePatch_
 Patch (if in sampleMode NEARESTPATCH*).
const coupleGroupIdentifier coupleGroup_
 PatchGroup (if in sampleMode NEARESTPATCH*).
const autoPtr< fileNamesampleDatabasePtr_
 Empty or location of database.
offsetMode offsetMode_
 How to obtain samples.
vector offset_
 Offset vector (uniform).
vectorField offsets_
 Offset vector (nonuniform).
scalar distance_
 Offset distance (normal).
label communicator_
 Communicator.
bool sameRegion_
 Same region.
autoPtr< mapDistributemapPtr_
 Communication schedule:
const bool AMIReverse_
 Flag to indicate that slave patch should be reversed for AMI.
autoPtr< AMIPatchToPatchInterpolationAMIPtr_
 Pointer to AMI interpolator.
autoPtr< searchableSurfacesurfPtr_
 Pointer to projection surface employed by AMI interpolator.
dictionary surfDict_
 Dictionary storing projection surface description.
autoPtr< uniformDimensionedScalarFieldupdateMeshTimePtr_
 Local mesh update time.
autoPtr< uniformDimensionedScalarFieldupdateSampleMeshTimePtr_
 Sample mesh update time.

Detailed Description

Determines a mapping between patch face centres and mesh cell or face centres and processors they're on.

If constructed from dictionary:

    // Optional world to sample (default is all)
    //sampleWorld solidSim;

    // Optional explicit coupling (requires functionObject to synchronise
    // databases. Default is close coupling (bc to bc)
    //sampleDatabase true;

    // Region to sample (default is region0)
    sampleRegion region0;

    // What to sample:
    // - nearestCell         : sample cell containing point
    // - nearestOnlyCell     : nearest sample cell (even if not containing
    //                         point)
    // - nearestPatchFace    : nearest face on selected patch
    // - nearestPatchFaceAMI : nearest face on selected patch
                               - patches need not conform
                               - uses AMI interpolation
    // - nearestFace         : nearest boundary face on any patch
    // - nearestPatchPoint   : nearest patch point (for coupled points
    //                         this might be any of the points so you have
    //                         to guarantee the point data is synchronised
    //                         beforehand)
    sampleMode nearestCell;

    // If sampleMode is nearestPatchFace : patch to find faces of
    samplePatch movingWall;

    // If sampleMode is nearestPatchFace : specify patchgroup to find
    // samplePatch and sampleRegion (if not provided)
    coupleGroup baffleGroup;

    // How to supply offset (w.r.t. my patch face centres):
    // - uniform : single offset vector
    // - nonuniform : per-face offset vector
    // - normal : using supplied distance and face normal
    offsetMode uniform;

    // According to offsetMode (see above) supply one of
    // offset, offsets or distance
    offset  (1 0 0);

Note: if offsetMode is normal it uses outwards pointing normals. So supply a negative distance if sampling inside the domain.

Note
Storage is not optimal. It temporary collects all (patch)face centres on all processors to keep the addressing calculation simple.
Source files

Definition at line 110 of file mappedPatchBase.H.

Member Typedef Documentation

◆ nearInfo

typedef Tuple2<pointIndexHit, Tuple2<scalar, label> > nearInfo

Helper class for finding nearest.

Nearest:

  • point+local index
  • sqr(distance)
  • processor

Definition at line 152 of file mappedPatchBase.H.

◆ nearInfoWorld

typedef Tuple2<nearInfo, label> nearInfoWorld

nearest + world

Used to only look at entries from same world

Definition at line 200 of file mappedPatchBase.H.

Member Enumeration Documentation

◆ sampleMode

enum sampleMode

Mesh items to sample.

Enumerator
NEARESTCELL 

nearest cell containing sample

NEARESTPATCHFACE 

nearest face on selected patch

NEARESTPATCHFACEAMI 

nearest patch face + AMI interpolation

NEARESTPATCHPOINT 

nearest point on selected patch

NEARESTFACE 

nearest face

NEARESTONLYCELL 

nearest cell (even if not containing cell)

Definition at line 119 of file mappedPatchBase.H.

◆ offsetMode

enum offsetMode

How to project face centres.

Enumerator
UNIFORM 

single offset vector

NONUNIFORM 

per-face offset vector

NORMAL 

use face normal + distance

Definition at line 132 of file mappedPatchBase.H.

Constructor & Destructor Documentation

◆ mappedPatchBase() [1/8]

mappedPatchBase ( const polyPatch & pp)
explicit

Construct from patch.

Definition at line 1221 of file mappedPatchBase.C.

References AMIPtr_, AMIReverse_, communicator_, coupleGroup_, distance_, mapPtr_, mesh, mode_, Foam::name(), NEARESTPATCHFACE, offset_, offsetMode_, offsets_, patch_, pp(), sameRegion_, sampleDatabasePtr_, samplePatch_, sampleRegion_, sampleWorld_, surfDict_, surfPtr_, UNIFORM, and Foam::Zero.

Referenced by mappedFieldFvPatchField< Type >::mappedFieldFvPatchField(), mappedFieldFvPatchField< Type >::mappedFieldFvPatchField(), mappedFieldFvPatchField< Type >::mappedFieldFvPatchField(), mappedFieldFvPatchField< Type >::mappedFieldFvPatchField(), mappedFieldFvPatchField< Type >::mappedFieldFvPatchField(), mappedFieldFvPatchField< Type >::mappedFieldFvPatchField(), mappedMixedFieldFvPatchField< Type >::mappedMixedFieldFvPatchField(), mappedMixedFieldFvPatchField< Type >::mappedMixedFieldFvPatchField(), mappedMixedFieldFvPatchField< Type >::mappedMixedFieldFvPatchField(), mappedMixedFieldFvPatchField< Type >::mappedMixedFieldFvPatchField(), mappedMixedFieldFvPatchField< Type >::mappedMixedFieldFvPatchField(), mappedPatchBase(), mappedPatchBase(), mappedPatchBase(), mappedPatchBase(), mappedPolyPatch::mappedPolyPatch(), mappedPolyPatch::mappedPolyPatch(), mappedPolyPatch::mappedPolyPatch(), mappedPolyPatch::mappedPolyPatch(), mappedPolyPatch::mappedPolyPatch(), mappedPolyPatch::mappedPolyPatch(), mappedPolyPatch::mappedPolyPatch(), mappedWallPolyPatch::mappedWallPolyPatch(), mappedWallPolyPatch::mappedWallPolyPatch(), mappedWallPolyPatch::mappedWallPolyPatch(), mappedWallPolyPatch::mappedWallPolyPatch(), mappedWallPolyPatch::mappedWallPolyPatch(), mappedWallPolyPatch::mappedWallPolyPatch(), mappedWallPolyPatch::mappedWallPolyPatch(), Sampled< Type >::Sampled(), Sampled< Type >::Sampled(), semiPermeableBaffleMassFractionFvPatchScalarField::semiPermeableBaffleMassFractionFvPatchScalarField(), semiPermeableBaffleMassFractionFvPatchScalarField::semiPermeableBaffleMassFractionFvPatchScalarField(), semiPermeableBaffleMassFractionFvPatchScalarField::semiPermeableBaffleMassFractionFvPatchScalarField(), semiPermeableBaffleMassFractionFvPatchScalarField::semiPermeableBaffleMassFractionFvPatchScalarField(), semiPermeableBaffleMassFractionFvPatchScalarField::semiPermeableBaffleMassFractionFvPatchScalarField(), thermalBaffle1DFvPatchScalarField< solidType >::thermalBaffle1DFvPatchScalarField(), thermalBaffle1DFvPatchScalarField< solidType >::thermalBaffle1DFvPatchScalarField(), thermalBaffle1DFvPatchScalarField< solidType >::thermalBaffle1DFvPatchScalarField(), thermalBaffle1DFvPatchScalarField< solidType >::thermalBaffle1DFvPatchScalarField(), thermalBaffle1DFvPatchScalarField< solidType >::thermalBaffle1DFvPatchScalarField(), and TypeName().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ mappedPatchBase() [2/8]

mappedPatchBase ( const polyPatch & pp,
const word & sampleRegion,
const sampleMode sampleMode,
const word & samplePatch,
const vectorField & offsets )

Construct with offsetMode=non-uniform.

Definition at line 1246 of file mappedPatchBase.C.

References mappedPatchBase(), mode(), offsets(), pp(), samplePatch(), sampleRegion(), and setOffset().

Here is the call graph for this function:

◆ mappedPatchBase() [3/8]

mappedPatchBase ( const polyPatch & pp,
const word & sampleRegion,
const sampleMode sampleMode,
const word & samplePatch,
const vector & uniformOffset )

Construct from offsetMode=uniform.

Definition at line 1268 of file mappedPatchBase.C.

References mappedPatchBase(), mode(), pp(), samplePatch(), sampleRegion(), and setOffset().

Here is the call graph for this function:

◆ mappedPatchBase() [4/8]

mappedPatchBase ( const polyPatch & pp,
const word & sampleRegion,
const sampleMode sampleMode,
const word & samplePatch,
const scalar normalDistance )

◆ mappedPatchBase() [5/8]

◆ mappedPatchBase() [6/8]

mappedPatchBase ( const polyPatch & pp,
const sampleMode mode,
const dictionary & dict )

Construct from dictionary and (collocated) sample mode.

(only for nearestPatchFace, nearestPatchFaceAMI, nearestPatchPoint) Assumes zero offset.

Definition at line 1428 of file mappedPatchBase.C.

References addWorldConnection(), AMIPtr_, AMIReverse_, communicator_, coupleGroup_, dict, distance_, Foam::exit(), Foam::FatalIOError, FatalIOErrorInFunction, Foam::GlobalIOList< Tuple2< scalar, vector > >::typeName, mapPtr_, mesh, mode(), mode_, Foam::name(), NEARESTPATCHFACE, NEARESTPATCHFACEAMI, Foam::New(), offset_, offsetMode_, offsets_, patch_, pp(), readDatabase(), sameRegion_, sampleDatabasePtr_, sampleModeNames_, samplePatch_, sampleRegion_, sampleWorld_, surfDict_, surfPtr_, UNIFORM, and Foam::Zero.

Here is the call graph for this function:

◆ mappedPatchBase() [7/8]

mappedPatchBase ( const polyPatch & pp,
const mappedPatchBase & mpb )

Construct as copy, resetting patch.

Definition at line 1501 of file mappedPatchBase.C.

References AMIPtr_, AMIReverse_, communicator_, coupleGroup_, distance_, mappedPatchBase(), mapPtr_, mode_, offset_, offsetMode_, offsets_, patch_, pp(), sameRegion_, sampleDatabasePtr_, samplePatch_, sampleRegion_, sampleWorld_, surfDict_, and surfPtr_.

Here is the call graph for this function:

◆ mappedPatchBase() [8/8]

mappedPatchBase ( const polyPatch & pp,
const mappedPatchBase & mpb,
const labelUList & mapAddressing )

Construct as copy, resetting patch, map original data.

Definition at line 1533 of file mappedPatchBase.C.

References AMIPtr_, AMIReverse_, communicator_, coupleGroup_, distance_, mappedPatchBase(), mapPtr_, mode_, NONUNIFORM, offset_, offsetMode_, offsets_, patch_, pp(), sameRegion_, sampleDatabasePtr_, samplePatch_, sampleRegion_, sampleWorld_, surfDict_, and surfPtr_.

Here is the call graph for this function:

◆ ~mappedPatchBase()

~mappedPatchBase ( )
virtual

Destructor.

Definition at line 1573 of file mappedPatchBase.C.

References clearOut().

Here is the call graph for this function:

Member Function Documentation

◆ initGeometry()

virtual void initGeometry ( PstreamBuffers & )
inlineprotectedvirtual

Initialise the calculation of the patch geometry.

Reimplemented in mappedPolyPatch, and mappedWallPolyPatch.

Definition at line 356 of file mappedPatchBase.H.

Referenced by mappedPolyPatch::initGeometry().

Here is the caller graph for this function:

◆ calcGeometry()

virtual void calcGeometry ( PstreamBuffers & )
inlineprotectedvirtual

Calculate the patch geometry.

Reimplemented in mappedPolyPatch, and mappedWallPolyPatch.

Definition at line 362 of file mappedPatchBase.H.

Referenced by mappedPolyPatch::calcGeometry(), and mappedWallPolyPatch::calcGeometry().

Here is the caller graph for this function:

◆ initMovePoints()

virtual void initMovePoints ( PstreamBuffers & ,
const pointField &  )
inlineprotectedvirtual

Initialise the patches for moving points.

Reimplemented in mappedPolyPatch, and mappedWallPolyPatch.

Definition at line 368 of file mappedPatchBase.H.

Referenced by mappedPolyPatch::initMovePoints(), and mappedWallPolyPatch::initMovePoints().

Here is the caller graph for this function:

◆ movePoints()

virtual void movePoints ( PstreamBuffers & ,
const pointField &  )
inlineprotectedvirtual

Correct patches after moving points.

Reimplemented in mappedPolyPatch, and mappedWallPolyPatch.

Definition at line 374 of file mappedPatchBase.H.

Referenced by mappedPolyPatch::movePoints(), and mappedWallPolyPatch::movePoints().

Here is the caller graph for this function:

◆ initUpdateMesh()

virtual void initUpdateMesh ( PstreamBuffers & )
inlineprotectedvirtual

Initialise the update of the patch topology.

Reimplemented in mappedPolyPatch, and mappedWallPolyPatch.

Definition at line 380 of file mappedPatchBase.H.

Referenced by mappedPolyPatch::initUpdateMesh(), and mappedWallPolyPatch::initUpdateMesh().

Here is the caller graph for this function:

◆ updateMesh()

void updateMesh ( PstreamBuffers & pBufs)
protectedvirtual

Update of the patch topology.

Reimplemented in mappedPolyPatch, and mappedWallPolyPatch.

Definition at line 82 of file mappedPatchBase.C.

References clearOut().

Referenced by mappedPolyPatch::updateMesh(), and mappedWallPolyPatch::updateMesh().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ addWorldConnection()

bool addWorldConnection ( )
protected

Add a world-world connection.

Definition at line 116 of file mappedPatchBase.C.

References multiWorldConnections::New(), patch_, runTime, sameWorld(), and sampleWorld_.

Referenced by mappedPatchBase(), mappedPatchBase(), and mappedPatchBase().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getWorldCommunicator()

Foam::label getWorldCommunicator ( ) const
protected

Get the communicator for the world-world connection.

Definition at line 131 of file mappedPatchBase.C.

References UPstream::commWorld(), multiWorldConnections::getCommByName(), multiWorldConnections::New(), patch_, runTime, sameWorld(), and sampleWorld_.

Referenced by comm(), and getCommunicator().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ lookupMesh()

const Foam::polyMesh & lookupMesh ( const word & region) const
protected

Lookup mesh.

Definition at line 1620 of file mappedPatchBase.C.

References objectRegistry::lookupObject(), IOobject::name(), patch_, sampleRegion(), and objectRegistry::time().

Referenced by findLocalSamples(), lookupPatch(), and sampleMesh().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ lookupPatch()

◆ facePoints()

Foam::tmp< Foam::pointField > facePoints ( const polyPatch & pp) const
protected

Get the points from face-centre-decomposition face centres and project them onto the face-diagonal-decomposition triangles.

Definition at line 144 of file mappedPatchBase.C.

References polyMesh::FACE_DIAG_TRIS, Foam::facePoint(), facePoints(), forAll, mesh, tmp< T >::New(), patch_, and pp().

Referenced by calcMapping(), collectSamples(), facePoints(), and samplePoints().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ collectSamples()

void collectSamples ( const label mySampleWorld,
const pointField & facePoints,
pointField & samples,
labelList & patchFaceWorlds,
labelList & patchFaceProcs,
labelList & patchFaces,
pointField & patchFc ) const
protected

Collect single list of samples and originating processor+face + wanted world.

Definition at line 172 of file mappedPatchBase.C.

References Pstream::allGatherList(), UPstream::allGatherValues(), Foam::ListListOps::combine(), UPstream::commWarn(), DebugInFunction, Foam::endl(), facePoints(), forAll, getCommunicator(), Foam::identity(), UPstream::msgType(), UPstream::myProcNo(), Foam::nl, UPstream::nProcs(), patch_, Foam::Perr, List< T >::resize(), samplePoints(), samples(), and UList< T >::size().

Referenced by calcMapping().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ findLocalSamples()

void findLocalSamples ( const sampleMode mode,
const label sampleWorld,
const word & sampleRegion,
const word & samplePatch,
const pointField & samplePoints,
List< nearInfoWorld > & nearest ) const
protected

◆ findSamples()

void findSamples ( const sampleMode mode,
const label myWorldIndex,
const pointField & samples,
const labelList & wantedWorlds,
const labelList & origProcs,
labelList & sampleProcs,
labelList & sampleIndices,
pointField & sampleLocations ) const
protected

◆ samplePoints() [1/2]

Foam::tmp< Foam::pointField > samplePoints ( const pointField & fc) const
protected

Get the sample points given the face points.

Definition at line 1767 of file mappedPatchBase.C.

References distance_, fld(), Foam::mag(), n, tmp< T >::New(), NONUNIFORM, NORMAL, offset_, offsetMode_, offsets_, patch_, and UNIFORM.

Referenced by calcAMI(), calcMapping(), collectSamples(), samplePoints(), TypeName(), and Sampled< Type >::value().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ calcMapping()

◆ calcAMI()

void calcAMI ( ) const
protected

◆ readDatabase()

Foam::autoPtr< Foam::fileName > readDatabase ( const dictionary & dict)
staticprotected

Read optional database name from dictionary.

Definition at line 88 of file mappedPatchBase.C.

References dict, autoPtr< T >::New(), and fileName::null.

Referenced by mappedPatchBase(), and mappedPatchBase().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ subRegistry() [1/2]

const Foam::objectRegistry & subRegistry ( const objectRegistry & obr,
const wordList & names,
const label index )
staticprotected

Lookup (sub)objectRegistry by following names of sub registries. Creates non-existing intermediate ones.

Definition at line 1200 of file mappedPatchBase.C.

References names, subRegistry(), and objectRegistry::subRegistry().

Referenced by mappedPatchFieldBase< Type >::retrieveField(), mappedPatchFieldBase< scalar >::retrieveField(), mappedPatchFieldBase< Type >::storeField(), subRegistry(), subRegistry(), and syncObjects::sync().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ writeIOField()

template<class Type>
bool writeIOField ( const regIOobject & obj,
dictionary & dict )
staticprotected

Attempt to detect an IOField<Type> and write to dictionary.

Definition at line 269 of file mappedPatchBaseTemplates.C.

References dict, fld(), and Foam::isA().

Referenced by writeDict().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ constructIOField()

template<class Type>
bool constructIOField ( const word & name,
token & tok,
Istream & is,
objectRegistry & obr )
staticprotected

Attempt to read an IOField<Type> and store on objectRegistry.

Definition at line 297 of file mappedPatchBaseTemplates.C.

References objectRegistry::getObjectPtr(), token::isCompound(), Foam::name(), IOobjectOption::NO_READ, IOobjectOption::NO_WRITE, IOobjectOption::REGISTER, regIOobject::store(), List< T >::transfer(), and token::transferCompoundToken().

Referenced by readDict().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ TypeName()

◆ clearOut()

◆ setOffset() [1/3]

void setOffset ( const scalar normalDist)

Change to normal offset with given distance.

Definition at line 1590 of file mappedPatchBase.C.

References clearOut(), distance_, NORMAL, offset_, offsetMode_, offsets_, and Foam::Zero.

Referenced by mappedPatchBase(), and mappedPatchBase().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ setOffset() [2/3]

void setOffset ( const vector & uniformOffset)

Change to uniform offset with value.

Definition at line 1600 of file mappedPatchBase.C.

References clearOut(), distance_, offset_, offsetMode_, offsets_, UNIFORM, and Foam::Zero.

Here is the call graph for this function:

◆ setOffset() [3/3]

void setOffset ( const vectorField & offsets)

Change to non-uniform offsets.

Definition at line 1610 of file mappedPatchBase.C.

References clearOut(), distance_, NONUNIFORM, offset_, offsetMode_, offsets(), offsets_, and Foam::Zero.

Here is the call graph for this function:

◆ mode()

◆ sampleWorld()

const Foam::word & sampleWorld ( ) const
inlinenoexcept

World to sample.

Definition at line 29 of file mappedPatchBaseI.H.

References Foam::noexcept, and sampleWorld_.

Referenced by calcMapping(), and TypeName().

Here is the caller graph for this function:

◆ sampleRegion()

◆ samplePatch()

◆ coupleGroup()

const Foam::word & coupleGroup ( ) const
inline

PatchGroup (only if NEARESTPATCHFACE).

Definition at line 87 of file mappedPatchBaseI.H.

References coupleGroup_.

Referenced by TypeName().

Here is the caller graph for this function:

◆ sampleSize()

Foam::label sampleSize ( ) const
inline

Return size of mapped mesh/patch/boundary.

Definition at line 93 of file mappedPatchBaseI.H.

References Foam::abort(), Foam::FatalError, FatalErrorInFunction, mesh, mode_, NEARESTCELL, NEARESTFACE, NEARESTPATCHFACE, NEARESTPATCHFACEAMI, NEARESTPATCHPOINT, sampleMesh(), and samplePolyPatch().

Referenced by reverseDistribute(), reverseDistribute(), and TypeName().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ offset()

◆ offsets()

const Foam::vectorField & offsets ( ) const
inlinenoexcept

Offset vectors (from patch faces to destination mesh objects).

Definition at line 134 of file mappedPatchBaseI.H.

References Foam::noexcept, and offsets_.

Referenced by mappedPatchBase(), setOffset(), and TypeName().

Here is the caller graph for this function:

◆ getCommunicator()

Foam::label getCommunicator ( ) const
inline

Get the communicator (worldComm or world-to-world).

Definition at line 140 of file mappedPatchBaseI.H.

References communicator_, and getWorldCommunicator().

Referenced by calcAMI(), calcMapping(), collectSamples(), distribute(), distribute(), findLocalSamples(), findSamples(), reverseDistribute(), reverseDistribute(), and TypeName().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ comm()

Foam::label comm ( ) const
inline

Identical to getCommunicator().

Definition at line 151 of file mappedPatchBaseI.H.

References communicator_, and getWorldCommunicator().

Referenced by TypeName().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ sameWorld()

◆ masterWorld()

bool masterWorld ( ) const
inline

Is my world ordered before the sampleWorld?

Definition at line 173 of file mappedPatchBaseI.H.

References UPstream::allWorlds(), UList< T >::find(), UPstream::myWorldID(), sameWorld(), and sampleWorld_.

Referenced by calcAMI(), distribute(), and TypeName().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ sameRegion()

bool sameRegion ( ) const
inlinenoexcept

Cached sampleRegion != mesh.name().

Definition at line 186 of file mappedPatchBaseI.H.

References Foam::noexcept, and sameRegion_.

Referenced by Sampled< Type >::haveSampleField(), Sampled< Type >::sampleField(), TypeName(), and Sampled< Type >::value().

Here is the caller graph for this function:

◆ updateSampleMeshTime()

Foam::uniformDimensionedScalarField & updateSampleMeshTime ( ) const
inline

Local mesh update time.

Definition at line 193 of file mappedPatchBaseI.H.

References mesh, IOobjectOption::NO_READ, IOobjectOption::NO_REGISTER, IOobjectOption::NO_WRITE, patch_, and updateSampleMeshTimePtr_.

Referenced by calcMapping(), TypeName(), and upToDate().

Here is the caller graph for this function:

◆ updateMeshTime()

Foam::uniformDimensionedScalarField & updateMeshTime ( ) const
inline

Sample mesh upate time.

Definition at line 224 of file mappedPatchBaseI.H.

References mesh, IOobjectOption::NO_READ, IOobjectOption::NO_REGISTER, IOobjectOption::NO_WRITE, patch_, and updateMeshTimePtr_.

Referenced by calcMapping(), TypeName(), and upToDate().

Here is the caller graph for this function:

◆ upToDate()

bool upToDate ( ) const

Definition at line 1688 of file mappedPatchBase.C.

References Foam::mag(), mesh, mode_, polyMesh::moving(), NEARESTPATCHFACE, NEARESTPATCHFACEAMI, NEARESTPATCHPOINT, patch_, points, UPstream::reduceAnd(), sameWorld(), sampleMesh(), samplePolyPatch(), updateMeshTime(), updateSampleMeshTime(), upToDate(), and polyMesh::upToDatePoints().

Referenced by AMI(), map(), TypeName(), and upToDate().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ map()

const Foam::mapDistribute & map ( ) const
inline

◆ AMI()

const Foam::AMIPatchToPatchInterpolation & AMI ( const bool forceUpdate = false) const
inline

Return reference to the AMI interpolator.

Definition at line 272 of file mappedPatchBaseI.H.

References AMIPtr_, calcAMI(), mapPtr_, and upToDate().

Referenced by distribute(), distribute(), reverseDistribute(), reverseDistribute(), and TypeName().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ owner()

bool owner ( ) const
inline

Is it owner.

Definition at line 294 of file mappedPatchBaseI.H.

References patch_, and sampleRegion().

Referenced by mappedPolyPatch::masterImplicit(), mappedWallPolyPatch::masterImplicit(), and TypeName().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ surfPtr()

const Foam::autoPtr< Foam::searchableSurface > & surfPtr ( ) const

Return a pointer to the AMI projection surface.

Definition at line 1061 of file mappedPatchBase.C.

References mesh, IOobjectOption::MUST_READ, searchableSurface::New(), IOobjectOption::NO_WRITE, patch_, surfDict_, and surfPtr_.

Referenced by calcAMI(), and TypeName().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ sampleMesh()

◆ samplePolyPatch()

◆ samplePoints() [2/2]

Foam::tmp< Foam::pointField > samplePoints ( ) const

Get the sample points.

Definition at line 1802 of file mappedPatchBase.C.

References facePoints(), patch_, and samplePoints().

Here is the call graph for this function:

◆ facePoint()

Foam::pointIndexHit facePoint ( const polyMesh & mesh,
const label facei,
const polyMesh::cellDecomposition decompMode )
static

Get a point on the face given a face decomposition method:

face-centre-tet : face centre. Returns index of face. face-planes : face centre. Returns index of face. face-diagonal : intersection of ray from cellcentre to facecentre with any of the triangles. Returns index (0..size-2) of triangle.

Definition at line 1808 of file mappedPatchBase.C.

References Foam::abort(), polyMesh::CELL_TETS, PointHit< PointType >::distance(), f(), polyMesh::FACE_CENTRE_TRIS, polyMesh::FACE_DIAG_TRIS, polyMesh::FACE_PLANES, Foam::FatalError, FatalErrorInFunction, intersection::HALF_RAY, PointHit< PointType >::hit(), triangle< Point, PointRef >::intersection(), mesh, p, and PointHit< PointType >::point().

Referenced by nearWallFields::calcAddressing(), and TypeName().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ sampleDatabasePath()

const fileName & sampleDatabasePath ( ) const
inline

Definition at line 770 of file mappedPatchBase.H.

References sampleDatabasePath(), and sampleDatabasePtr_.

Referenced by receivePath(), sampleDatabasePath(), and sendPath().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ sampleDatabase()

bool sampleDatabase ( ) const
inlinenoexcept

Definition at line 775 of file mappedPatchBase.H.

References Foam::noexcept, and sampleDatabasePtr_.

◆ sendPath() [1/2]

Foam::fileName sendPath ( const fileName & root,
const label proci )
static

Helper: return path to store data to be sent to processor i.

Definition at line 1913 of file mappedPatchBase.C.

References Foam::name().

Referenced by sendPath(), and syncObjects::sync().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ sendPath() [2/2]

Foam::fileName sendPath ( const label proci) const
virtual

Definition at line 1924 of file mappedPatchBase.C.

References sampleDatabasePath(), and sendPath().

Here is the call graph for this function:

◆ receivePath() [1/2]

Foam::fileName receivePath ( const fileName & root,
const label proci )
static

Helper: return path to store data to be received from processor i.

Definition at line 1930 of file mappedPatchBase.C.

References Foam::name().

Referenced by receivePath(), and syncObjects::sync().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ receivePath() [2/2]

Foam::fileName receivePath ( const label proci) const
virtual

Definition at line 1941 of file mappedPatchBase.C.

References receivePath(), and sampleDatabasePath().

Here is the call graph for this function:

◆ subRegistry() [2/2]

const Foam::objectRegistry & subRegistry ( const objectRegistry & obr,
const fileName & path )
static

Lookup (sub)objectRegistry from '/' separated path (relative to objectRegistry). Creates non-existing intermediate ones.

Definition at line 1889 of file mappedPatchBase.C.

References fileName::clean(), fileName::components(), names, path(), and subRegistry().

Here is the call graph for this function:

◆ storeField()

template<class Type>
void storeField ( objectRegistry & obr,
const word & fieldName,
const Field< Type > & values )
static

◆ writeDict()

void writeDict ( const objectRegistry & obr,
dictionary & dict )
static

Convert objectRegistry contents into dictionary.

Definition at line 1947 of file mappedPatchBase.C.

References dict, forAllIters, Foam::isA(), IOobject::name(), os(), regIOobject::writeData(), writeDict(), and writeIOField().

Referenced by syncObjects::sync(), and writeDict().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ readDict()

void readDict ( const dictionary & d,
objectRegistry & obr )
static

(recursively) construct and register IOFields from dictionary

Definition at line 1987 of file mappedPatchBase.C.

References constructIOField(), e, Foam::exit(), Foam::FatalError, FatalErrorInFunction, readDict(), and objectRegistry::subRegistry().

Referenced by readDict(), and syncObjects::sync().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ distribute() [1/2]

◆ distribute() [2/2]

template<class Type, class CombineOp>
void distribute ( List< Type > & lst,
const CombineOp & cop ) const

Wrapper around map/interpolate data distribution with operation.

Definition at line 101 of file mappedPatchBaseTemplates.C.

References AMI(), UPstream::commWarn(), UPstream::commWorld(), UPstream::defaultCommsType, mapDistributeBase::distribute(), getCommunicator(), map(), mode_, UPstream::msgType(), NEARESTPATCHFACEAMI, patch_, sameWorld(), and Foam::Zero.

Here is the call graph for this function:

◆ reverseDistribute() [1/2]

template<class Type>
void reverseDistribute ( List< Type > & lst) const

Wrapper around map/interpolate data distribution.

Definition at line 164 of file mappedPatchBaseTemplates.C.

References AMI(), UPstream::commWarn(), UPstream::commWorld(), getCommunicator(), map(), mode_, NEARESTPATCHFACEAMI, patch_, sameWorld(), and sampleSize().

Referenced by regionModel::toPrimary(), and regionModel::toPrimary().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ reverseDistribute() [2/2]

template<class Type, class CombineOp>
void reverseDistribute ( List< Type > & lst,
const CombineOp & cop ) const

Wrapper around map/interpolate data distribution with operation.

Definition at line 204 of file mappedPatchBaseTemplates.C.

References AMI(), UPstream::commWarn(), UPstream::commWorld(), UPstream::defaultCommsType, mapDistributeBase::distribute(), getCommunicator(), map(), mode_, UPstream::msgType(), NEARESTPATCHFACEAMI, patch_, sameWorld(), sampleSize(), and Foam::Zero.

Here is the call graph for this function:

◆ write()

Member Data Documentation

◆ sampleModeNames_

◆ offsetModeNames_

◆ patch_

◆ sampleWorld_

◆ sampleRegion_

◆ mode_

◆ samplePatch_

◆ coupleGroup_

const coupleGroupIdentifier coupleGroup_
protected

◆ sampleDatabasePtr_

const autoPtr<fileName> sampleDatabasePtr_
protected

◆ offsetMode_

◆ offset_

◆ offsets_

◆ distance_

scalar distance_
protected

◆ communicator_

label communicator_
protected

◆ sameRegion_

bool sameRegion_
mutableprotected

◆ mapPtr_

autoPtr<mapDistribute> mapPtr_
mutableprotected

Communication schedule:

  • Cells/faces to sample per processor
  • Patch faces to receive per processor
  • schedule

Definition at line 309 of file mappedPatchBase.H.

Referenced by AMI(), calcMapping(), clearOut(), map(), mappedPatchBase(), mappedPatchBase(), mappedPatchBase(), mappedPatchBase(), mappedPatchBase(), and mappedPatchBase().

◆ AMIReverse_

const bool AMIReverse_
protected

Flag to indicate that slave patch should be reversed for AMI.

Definition at line 317 of file mappedPatchBase.H.

Referenced by mappedPatchBase(), mappedPatchBase(), mappedPatchBase(), mappedPatchBase(), mappedPatchBase(), and mappedPatchBase().

◆ AMIPtr_

◆ surfPtr_

autoPtr<searchableSurface> surfPtr_
mutableprotected

Pointer to projection surface employed by AMI interpolator.

Definition at line 327 of file mappedPatchBase.H.

Referenced by mappedPatchBase(), mappedPatchBase(), mappedPatchBase(), mappedPatchBase(), mappedPatchBase(), mappedPatchBase(), and surfPtr().

◆ surfDict_

dictionary surfDict_
protected

Dictionary storing projection surface description.

Definition at line 332 of file mappedPatchBase.H.

Referenced by mappedPatchBase(), mappedPatchBase(), mappedPatchBase(), mappedPatchBase(), mappedPatchBase(), mappedPatchBase(), surfPtr(), and write().

◆ updateMeshTimePtr_

autoPtr<uniformDimensionedScalarField> updateMeshTimePtr_
mutableprotected

Local mesh update time.

Definition at line 340 of file mappedPatchBase.H.

Referenced by updateMeshTime().

◆ updateSampleMeshTimePtr_

autoPtr<uniformDimensionedScalarField> updateSampleMeshTimePtr_
mutableprotected

Sample mesh update time.

Definition at line 346 of file mappedPatchBase.H.

Referenced by updateSampleMeshTime().


The documentation for this class was generated from the following files: