faPatch Class Reference

Finite area patch class. Used for 2-D non-Euclidian finite area method. More...

Inheritance diagram for faPatch:
Collaboration diagram for faPatch:

Public Types

typedef faBoundaryMesh BoundaryMesh
 The boundary type associated with the patch. More...
 
- Public Types inherited from List< label >
typedef SubList< label > subList
 Declare type of subList. More...
 
- Public Types inherited from UList< label >
typedef label value_type
 The value type the list contains. More...
 
typedef label * pointer
 The pointer type for non-const access to value_type items. More...
 
typedef const label * const_pointer
 The pointer type for const access to value_type items. More...
 
typedef label & reference
 The type used for storing into value_type objects. More...
 
typedef const label & const_reference
 The type used for reading from constant value_type objects. More...
 
typedef label * iterator
 Random access iterator for traversing a UList. More...
 
typedef const label * const_iterator
 Random access iterator for traversing a UList. More...
 
typedef label size_type
 The type to represent the size of a UList. More...
 
typedef label difference_type
 The difference between iterator objects. More...
 
typedef std::reverse_iterator< iteratorreverse_iterator
 Reverse iterator (non-const access) More...
 
typedef std::reverse_iterator< const_iteratorconst_reverse_iterator
 Reverse iterator (const access) More...
 

Public Member Functions

 TypeName ("patch")
 Runtime type information. More...
 
 declareRunTimeSelectionTable (autoPtr, faPatch, dictionary,(const word &name, const dictionary &dict, const label index, const faBoundaryMesh &bm, const word &patchType),(name, dict, index, bm, patchType))
 
 faPatch (const word &name, const labelUList &edgeLabels, const label index, const faBoundaryMesh &bm, const label nbrPolyPatchi, const word &patchType)
 Construct from components. More...
 
 faPatch (const word &name, const dictionary &dict, const label index, const faBoundaryMesh &bm, const word &patchType)
 Construct from dictionary. More...
 
 faPatch (const faPatch &p, const faBoundaryMesh &bm)
 Copy construct, resetting the boundary mesh. More...
 
 faPatch (const faPatch &p, const faBoundaryMesh &bm, const label index, const labelUList &edgeLabels, const label nbrPolyPatchi)
 Copy construct, resetting boundary mesh and addressing. More...
 
virtual autoPtr< faPatchclone (const faBoundaryMesh &bm) const
 Construct and return a clone, resetting the boundary mesh. More...
 
virtual autoPtr< faPatchclone (const faBoundaryMesh &bm, const labelUList &edgeLabels, const label index, const label nbrPolyPatchi) const
 Construct and return a clone, resetting the edge list and boundary mesh. More...
 
virtual ~faPatch ()
 Destructor. More...
 
const labelListedgeLabels () const noexcept
 Return the list of edges. More...
 
label nPoints () const
 Number of patch points. More...
 
label nEdges () const noexcept
 Number of edge labels (boundary edges) addressed by this patch. More...
 
label ngbPolyPatchIndex () const noexcept
 The neighbour polyPatch index. More...
 
const faBoundaryMeshboundaryMesh () const noexcept
 Return boundaryMesh reference. More...
 
virtual bool coupled () const
 Return true if this patch is coupled. More...
 
label offset () const
 The offset where this patch starts in the boundary edge list. More...
 
label start () const
 Patch start in edge list. More...
 
virtual label size () const
 Patch size is the number of edge labels, but can be overloaded. More...
 
label whichEdge (const label edgei) const
 Return label of edge in patch from global edge label. More...
 
template<class T >
const List< T >::subList patchSlice (const List< T > &values) const
 This patch slice from the complete list of values, which has size mesh::nEdges(), using the virtual patch size. More...
 
template<class T >
const List< T >::subList boundarySlice (const List< T > &values) const
 This patch slice from the list of boundary values, which has size mesh::nBoundaryEdges(), using the virtual patch size. More...
 
virtual void write (Ostream &) const
 Write. More...
 
List< labelPairboundaryConnections () const
 List of proc/face for the boundary edge neighbours in locally reordered edge numbering. More...
 
labelList boundaryProcs () const
 Boundary edge neighbour processors (does not include own proc) More...
 
List< labelPairboundaryProcSizes () const
 List of proc/size for the boundary edge neighbour processors (does not include own proc) More...
 
const labelListpointLabels () const
 Return patch point labels. More...
 
const labelListListpointEdges () const
 Return patch point-edge addressing. More...
 
tmp< vectorFieldngbPolyPatchFaceNormals () const
 Return normals of neighbour polyPatch faces. More...
 
tmp< vectorFieldngbPolyPatchPointNormals () const
 Return normals of neighbour polyPatch joined points. More...
 
const labelUListedgeFaces () const
 Return edge-face addressing. More...
 
const vectorFieldedgeCentres () const
 Return edge centres. More...
 
const vectorFieldedgeLengths () const
 Return edge length vectors, like the faMesh::Le() method. More...
 
const scalarFieldmagEdgeLengths () const
 Return edge length magnitudes, like the faMesh::magLe() method. More...
 
tmp< vectorFieldedgeNormals () const
 Return edge unit normals, like the faMesh::unitLe() method. More...
 
tmp< vectorFieldedgeFaceCentres () const
 Return neighbour face centres. More...
 
virtual tmp< vectorFielddelta () const
 Return cell-centre to face-centre vector. More...
 
virtual void makeWeights (scalarField &) const
 Make patch weighting factors. More...
 
const scalarFieldweights () const
 Return patch weighting factors. More...
 
virtual void makeDeltaCoeffs (scalarField &) const
 Make patch edge - neighbour face distances. More...
 
void makeCorrectionVectors (vectorField &) const
 
const scalarFielddeltaCoeffs () const
 Return patch edge - neighbour face distances. More...
 
void resetEdges (const labelUList &newEdges)
 Reset the list of edges (use with caution) More...
 
void resetEdges (labelList &&newEdges)
 Reset the list of edges (use with caution) More...
 
template<class Type >
void patchInternalField (const UList< Type > &internalData, const labelUList &addressing, Field< Type > &pfld) const
 Extract internal field next to patch using specified addressing. More...
 
template<class Type >
void patchInternalField (const UList< Type > &internalData, Field< Type > &pfld) const
 Extract internal field next to patch as patch field using edgeFaces() mapping. More...
 
template<class Type >
tmp< Field< Type > > patchInternalField (const UList< Type > &internalData) const
 Return given internal field next to patch as patch field using edgeFaces() mapping. More...
 
template<class GeometricField , class AnyType = bool>
const GeometricField::PatchpatchField (const GeometricField &gf) const
 Return the patch field of the GeometricField corresponding to this patch. More...
 
template<class GeometricField , class AnyType = bool>
const GeometricField::PatchlookupPatchField (const word &name, const GeometricField *=nullptr, const AnyType *=nullptr) const
 Lookup the named field from the local registry and return the patch field corresponding to this patch. More...
 
template<class Type >
Foam::tmp< Foam::Field< Type > > patchInternalField (const UList< Type > &internalData) const
 
- Public Member Functions inherited from patchIdentifier
 patchIdentifier (const patchIdentifier &)=default
 Copy construct. More...
 
 patchIdentifier (patchIdentifier &&)=default
 Move construct. More...
 
patchIdentifieroperator= (const patchIdentifier &)=default
 Copy assignment. More...
 
patchIdentifieroperator= (patchIdentifier &&)=default
 Move assignment. More...
 
virtual ~patchIdentifier ()=default
 Destructor. More...
 
 patchIdentifier ()
 Default construct: name="", index=0. More...
 
 patchIdentifier (const word &name, const label index)
 Construct from mandatory components. More...
 
 patchIdentifier (const word &name, const label index, const word &physicalType, const wordList &inGroups=wordList())
 Construct from components. More...
 
 patchIdentifier (const word &name, const dictionary &dict, const label index)
 Construct from dictionary. More...
 
 patchIdentifier (const patchIdentifier &ident, const label newIndex)
 Copy construct, resetting the index (if non-negative) More...
 
 patchIdentifier (patchIdentifier &&ident, const label newIndex)
 Move construct, resetting the index (if non-negative) More...
 
const wordname () const noexcept
 The patch name. More...
 
wordname () noexcept
 Modifiable patch name. More...
 
label index () const noexcept
 The index of this patch in the boundaryMesh. More...
 
label & index () noexcept
 Modifiable index of this patch in the boundaryMesh. More...
 
const wordphysicalType () const noexcept
 The (optional) physical type of the patch. More...
 
wordphysicalType () noexcept
 Modifiable (optional) physical type of the patch. More...
 
const wordListinGroups () const noexcept
 The (optional) groups that the patch belongs to. More...
 
wordListinGroups () noexcept
 Modifiable (optional) groups that the patch belongs to. More...
 
bool inGroup (const word &name) const
 True if given name is in a group. More...
 
void addGroup (const word &name)
 Add (unique) group for the patch. More...
 
void removeGroup (const word &name)
 Remove group for the patch. More...
 
void write (Ostream &os) const
 Write (physicalType, inGroups) dictionary entries (without surrounding braces) More...
 
- Public Member Functions inherited from List< label >
constexpr List () noexcept
 Default construct. More...
 
 List (const label len)
 Construct with given size. More...
 
 List (const label len, const label &val)
 Construct with given size and value for all elements. More...
 
 List (const label len, const Foam::zero)
 Construct with given size initializing all elements to zero. More...
 
 List (const Foam::one, const label &val)
 Construct with length=1, copying the value as the only content. More...
 
 List (const Foam::one, label &&val)
 Construct with length=1, moving the value as the only content. More...
 
 List (const Foam::one, const Foam::zero)
 Construct with length=1, initializing content to zero. More...
 
 List (const List< label > &list)
 Copy construct from list. More...
 
 List (const UList< label > &list)
 Copy construct contents from list. More...
 
 List (List< label > &list, bool reuse)
 Construct as copy or re-use as specified. More...
 
 List (const UList< label > &list, const labelUList &indices)
 Copy construct subset of list. More...
 
 List (const UList< label > &list, const FixedList< label, N > &indices)
 Copy construct subset of list. More...
 
 List (const FixedList< label, N > &list)
 Construct as copy of FixedList<T, N> More...
 
 List (const PtrList< label > &list)
 Construct as copy of PtrList<T> More...
 
 List (const IndirectListBase< label, Addr > &list)
 Construct as copy of IndirectList contents. More...
 
 List (std::initializer_list< label > list)
 Construct from an initializer list. More...
 
 List (List< label > &&list) noexcept
 Move construct from List. More...
 
 List (DynamicList< label, SizeMin > &&list)
 Move construct from DynamicList. More...
 
 List (Istream &is)
 Construct from Istream. More...
 
 List (const SLList< label > &list)
 Copy construct from SLList. More...
 
autoPtr< List< label > > clone () const
 Clone. More...
 
 ~List ()
 Destructor. More...
 
void clear ()
 Clear the list, i.e. set size to zero. More...
 
void resize (const label len)
 Adjust allocated size of list. More...
 
void resize (const label len, const label &val)
 Adjust allocated size of list and set val for new elements. More...
 
void resize (const label newLen)
 
void resize_fill (const label len, const label &val)
 Adjust allocated size of list and set val for all elements. More...
 
void resize_nocopy (const label len)
 Adjust allocated size of list without necessarily. More...
 
void resize_unsafe (const label len) noexcept
 Change the addressed list size directly without affecting any memory management (advanced usage). More...
 
void setSize (const label n)
 Alias for resize() More...
 
void setSize (const label n, const label &val)
 Alias for resize() More...
 
void transfer (List< label > &list)
 Transfer the contents of the argument List into this list and annul the argument list. More...
 
void transfer (DynamicList< label, SizeMin > &list)
 Transfer the contents of the argument List into this list and annul the argument list. More...
 
label & newElmt (const label i)
 Return subscript-checked element of UList and resizing the list if required. More...
 
label & emplace_back (Args &&... args)
 Construct an element at the end of the list, return reference to the new list element. More...
 
void push_back (const label &val)
 Append an element at the end of the list. More...
 
void push_back (label &&val)
 Move append an element at the end of the list. More...
 
void push_back (const UList< label > &list)
 Append a List to the end of this list. More...
 
void push_back (const IndirectListBase< label, Addr > &list)
 Append IndirectList contents at the end of this list. More...
 
label push_uniq (const label &val)
 Append an element if not already in the list. More...
 
void pop_back (label n=1)
 Reduce size by 1 or more elements. Can be called on an empty list. More...
 
void operator= (const UList< label > &list)
 Assignment to UList operator. Takes linear time. More...
 
void operator= (const List< label > &list)
 Assignment operator. Takes linear time. More...
 
void operator= (const IndirectListBase< label, Addr > &list)
 Assignment from IndirectList. Takes linear time. More...
 
void operator= (const FixedList< label, N > &list)
 Copy assignment from FixedList. More...
 
void operator= (std::initializer_list< label > list)
 Assignment to an initializer list. More...
 
void operator= (const label &val)
 Assignment of all entries to the given value. More...
 
void operator= (const Foam::zero)
 Assignment of all entries to zero. More...
 
void operator= (List< label > &&list)
 Move assignment. Takes constant time. More...
 
void operator= (DynamicList< label, SizeMin > &&list)
 Move assignment. Takes constant time. More...
 
void operator= (const SLList< label > &list)
 Copy assign from SLList in linear time. More...
 
IstreamreadList (Istream &is)
 Read List from Istream, discarding contents of existing List. More...
 
void shallowCopy (const UList< label > &)=delete
 No shallowCopy permitted. More...
 
std::enable_if< std::is_same< bool, TypeT >::value, bool >::type set (const label i, bool val=true)
 A bitSet::set() method for a list of bool. More...
 
void append (const label &val)
 Append an element at the end of the list. More...
 
void append (label &&val)
 Move append an element at the end of the list. More...
 
void append (const UList< label > &list)
 Append a List to the end of this list. More...
 
void append (const IndirectListBase< label, Addr > &list)
 Append IndirectList contents at the end of this list. More...
 
label appendUniq (const label &val)
 Same as push_uniq() More...
 
- Public Member Functions inherited from UList< label >
label size () const noexcept
 The number of elements in the container. More...
 
void writeEntry (const word &keyword, Ostream &os) const
 Write the List as a dictionary entry with keyword. More...
 
void operator= (const label &val)
 Assignment of all entries to the given value. More...
 
void operator= (const Foam::zero)
 Assignment of all entries to zero. More...
 
 UList (const UList< label > &)=default
 Copy construct. More...
 
constexpr UList () noexcept
 Default construct, zero-sized and nullptr. More...
 
 UList (label *__restrict__ v, const label len) noexcept
 Construct from components. More...
 
label fcIndex (const label i) const noexcept
 The forward circular index. The next index in the list which returns to the first at the end of the list. More...
 
label rcIndex (const label i) const noexcept
 The reverse circular index. The previous index in the list which returns to the last at the beginning of the list. More...
 
const label & fcValue (const label i) const
 Return forward circular value (ie, next value in the list) More...
 
label & fcValue (const label i)
 Return forward circular value (ie, next value in the list) More...
 
const label & rcValue (const label i) const
 Return reverse circular value (ie, previous value in the list) More...
 
label & rcValue (const label i)
 Return reverse circular value (ie, previous value in the list) More...
 
const label * cdata () const noexcept
 Return pointer to the underlying array serving as data storage. More...
 
label * data () noexcept
 Return pointer to the underlying array serving as data storage. More...
 
const char * cdata_bytes () const noexcept
 Return pointer to the underlying array serving as data storage,. More...
 
char * data_bytes () noexcept
 Return pointer to the underlying array serving as data storage,. More...
 
label & front ()
 Access first element of the list, position [0]. More...
 
const label & front () const
 Access first element of the list. More...
 
label & back ()
 Access last element of the list, position [size()-1]. More...
 
const label & back () const
 Access last element of the list, position [size()-1]. More...
 
std::streamsize size_bytes () const noexcept
 Number of contiguous bytes for the List data. More...
 
std::streamsize byteSize () const
 Number of contiguous bytes for the List data, runtime FatalError if type is not contiguous. More...
 
void checkStart (const label start) const
 Check start is within valid range [0,size) More...
 
void checkSize (const label size) const
 Check size is within valid range [0,size]. More...
 
void checkRange (const label start, const label len) const
 Check that start and length define a valid range. More...
 
void checkIndex (const label i) const
 Check index is within valid range [0,size) More...
 
bool uniform () const
 True if all entries have identical values, and list is non-empty. More...
 
bool contains (const label &val) const
 True if the value is contained in the list. More...
 
bool contains (const label &val, label pos, label len=-1) const
 Is the value contained in the list? More...
 
label find (const label &val) const
 Find index of the first occurrence of the value. More...
 
label find (const label &val, label pos, label len=-1) const
 Find index of the first occurrence of the value. More...
 
label rfind (const label &val, label pos=-1) const
 Find index of the last occurrence of the value. More...
 
void moveFirst (const label i)
 Move element to the first position. More...
 
void moveLast (const label i)
 Move element to the last position. More...
 
void swapFirst (const label i)
 Swap element with the first element. Fatal on an empty list. More...
 
void swapLast (const label i)
 Swap element with the last element. Fatal on an empty list. More...
 
void shallowCopy (label *__restrict__ ptr, const label len) noexcept
 Copy the pointer and size. More...
 
void shallowCopy (const UList< label > &list) noexcept
 Copy the pointer and size held by the given UList. More...
 
void deepCopy (const UList< label > &list)
 Copy elements of the given UList. Sizes must match! More...
 
void deepCopy (const IndirectListBase< label, Addr > &list)
 Copy elements of the given indirect list. Sizes must match! More...
 
SubList< label > slice (const label pos, label len=-1)
 Return SubList slice (non-const access) - no range checking. More...
 
const SubList< label > slice (const label pos, label len=-1) const
 Return SubList slice (const access) - no range checking. More...
 
SubList< label > slice (const labelRange &range)
 Return SubList slice (non-const access) - with range checking. More...
 
const SubList< label > slice (const labelRange &range) const
 Return SubList slice (const access) - with range checking. More...
 
label & operator[] (const label i)
 Return element of UList. More...
 
const label & operator[] (const label i) const
 Return element of constant UList. More...
 
const bool & operator[] (const label i) const
 
UPstream::commsStructoperator[] (const label procID)
 
const UPstream::commsStructoperator[] (const label procID) const
 
Foam::UPstream::commsStructoperator[] (const label procID)
 
const Foam::UPstream::commsStructoperator[] (const label procID) const
 
 operator const Foam::List< label > & () const
 Allow cast to a const List<T>&. More...
 
iterator begin () noexcept
 Return an iterator to begin traversing the UList. More...
 
iterator begin (const label i) noexcept
 Return iterator at offset i from begin, clamped to [0,size] range. More...
 
const_iterator begin () const noexcept
 Return const_iterator to begin traversing the constant UList. More...
 
const_iterator begin (const label i) const noexcept
 Return const_iterator at offset i from begin, clamped to [0,size] range. More...
 
iterator end () noexcept
 Return an iterator to end traversing the UList. More...
 
const_iterator end () const noexcept
 Return const_iterator to end traversing the constant UList. More...
 
const_iterator cbegin () const noexcept
 Return const_iterator to begin traversing the constant UList. More...
 
const_iterator cbegin (const label i) const noexcept
 Return const_iterator at offset i from begin, clamped to [0,size] range. More...
 
const_iterator cend () const noexcept
 Return const_iterator to end traversing the constant UList. More...
 
reverse_iterator rbegin ()
 Return reverse_iterator to begin reverse traversing the UList. More...
 
const_reverse_iterator rbegin () const
 Return const_reverse_iterator to begin reverse traversing the UList. More...
 
reverse_iterator rend ()
 Return reverse_iterator to end reverse traversing the UList. More...
 
const_reverse_iterator rend () const
 Return const_reverse_iterator to end reverse traversing the UList. More...
 
const_reverse_iterator crbegin () const
 Return const_reverse_iterator to begin reverse traversing the UList. More...
 
const_reverse_iterator crend () const
 Return const_reverse_iterator to end reverse traversing the UList. More...
 
bool empty () const noexcept
 True if List is empty (ie, size() is zero) More...
 
label capacity () const noexcept
 Size of the underlying storage. More...
 
void swap (UList< label > &list) noexcept
 Swap content with another UList of the same type in constant time. More...
 
bool operator== (const UList< label > &list) const
 Equality operation on ULists of the same type. More...
 
bool operator!= (const UList< label > &list) const
 The opposite of the equality operation. Takes linear time. More...
 
bool operator< (const UList< label > &list) const
 Compare two ULists lexicographically. Takes linear time. More...
 
bool operator> (const UList< label > &list) const
 Compare two ULists lexicographically. Takes linear time. More...
 
bool operator<= (const UList< label > &list) const
 Return true if !(a > b). Takes linear time. More...
 
bool operator>= (const UList< label > &list) const
 Return true if !(a < b). Takes linear time. More...
 
IstreamreadList (Istream &is)
 Read List contents from Istream. More...
 
OstreamwriteList (Ostream &os, const label shortLen=0) const
 Write List, with line-breaks in ASCII when length exceeds shortLen. More...
 
std::enable_if< std::is_same< bool, TypeT >::value, bool >::type test (const label i) const
 Test bool value at specified position, always false for out-of-range access. More...
 
std::enable_if< std::is_same< bool, TypeT >::value, bool >::type get (const label i) const
 Return bool value at specified position, always false for out-of-range access. More...
 
std::enable_if< std::is_same< bool, TypeT >::value, bool >::type unset (const label i)
 Unset the bool entry at specified position, always false for out-of-range access. More...
 
label & first ()
 Access first element of the list, position [0]. More...
 
const label & first () const
 Access first element of the list. More...
 
label & last ()
 Access last element of the list, position [size()-1]. More...
 
const label & last () const
 Access last element of the list, position [size()-1]. More...
 
bool found (const label &val, label pos=0) const
 Same as contains() More...
 

Static Public Member Functions

static autoPtr< faPatchNew (const word &name, const dictionary &dict, const label index, const faBoundaryMesh &bm)
 Return pointer to a new patch created on freestore from dictionary. More...
 
static autoPtr< faPatchNew (const word &patchType, const word &name, const dictionary &dict, const label index, const faBoundaryMesh &bm)
 Return pointer to a new patch created on freestore from dictionary. More...
 
static bool constraintType (const word &patchType)
 Return true if the given type is a constraint type. More...
 
static wordList constraintTypes ()
 Return a list of all the constraint patch types. More...
 
- Static Public Member Functions inherited from patchIdentifier
static word defaultName (const label n=-1)
 Default patch name: "patch" or "patchN". More...
 
- Static Public Member Functions inherited from List< label >
static const List< label > & null ()
 Return a null List. More...
 
- Static Public Member Functions inherited from UList< label >
static const UList< label > & null ()
 Return a UList reference to a nullObject. More...
 
static constexpr label max_size () noexcept
 The size of the largest possible UList. More...
 

Protected Member Functions

void calcPointLabels () const
 Calculate patch point labels. More...
 
void calcPointEdges () const
 Calculate patch point-edge addressing. More...
 
virtual void initGeometry (PstreamBuffers &)
 Initialise the calculation of the patch geometry. More...
 
virtual void calcGeometry (PstreamBuffers &)
 Calculate the patch geometry. More...
 
virtual void initMovePoints (PstreamBuffers &, const pointField &)
 Initialise the patches for moving points. More...
 
virtual void movePoints (PstreamBuffers &, const pointField &)
 Correct patch after moving points. More...
 
virtual void initUpdateMesh (PstreamBuffers &)
 Initialise the update of the patch topology. More...
 
virtual void updateMesh (PstreamBuffers &)
 Update of the patch topology. More...
 
- Protected Member Functions inherited from UList< label >
void setAddressableSize (const label n) noexcept
 Set addressed size to be inconsistent with allocated storage. More...
 
void size (const label n)
 Older name for setAddressableSize. More...
 
void writeEntry (Ostream &os) const
 Write the UList with its compound type. More...
 
void writeEntry (Ostream &os) const
 Character list writeEntry. More...
 
void writeEntry (Ostream &os) const
 
labelRange validateRange (const labelRange &requestedRange) const
 Return a validated (start,size) subset range, which means that it always addresses a valid section of the list. More...
 
void fill_uniform (const label &val)
 Assign all entries to the given value. More...
 
void fill_uniform (const Foam::zero)
 Assign all entries to zero. More...
 
UList< label > & operator= (const UList< label > &)=delete
 No copy assignment (default: shallow copy) More...
 
void operator= (const Foam::zero)
 Character list assign zero - avoids Foam::zero casting ambiguities. More...
 
void operator= (const Foam::zero)
 

Friends

class faBoundaryMesh
 The faPatch geometry initialisation is called by faBoundaryMesh. More...
 
Ostreamoperator<< (Ostream &, const faPatch &)
 

Detailed Description

Finite area patch class. Used for 2-D non-Euclidian finite area method.

Author Zeljko Tukovic, FMENA Hrvoje Jasak, Wikki Ltd.

Source files

Definition at line 72 of file faPatch.H.

Member Typedef Documentation

◆ BoundaryMesh

The boundary type associated with the patch.

Definition at line 183 of file faPatch.H.

Constructor & Destructor Documentation

◆ faPatch() [1/4]

faPatch ( const word name,
const labelUList edgeLabels,
const label  index,
const faBoundaryMesh bm,
const label  nbrPolyPatchi,
const word patchType 
)

Construct from components.

Definition at line 89 of file faPatch.C.

◆ faPatch() [2/4]

faPatch ( const word name,
const dictionary dict,
const label  index,
const faBoundaryMesh bm,
const word patchType 
)

Construct from dictionary.

Definition at line 114 of file faPatch.C.

◆ faPatch() [3/4]

faPatch ( const faPatch p,
const faBoundaryMesh bm 
)

Copy construct, resetting the boundary mesh.

Definition at line 157 of file faPatch.C.

◆ faPatch() [4/4]

faPatch ( const faPatch p,
const faBoundaryMesh bm,
const label  index,
const labelUList edgeLabels,
const label  nbrPolyPatchi 
)

Copy construct, resetting boundary mesh and addressing.

Definition at line 138 of file faPatch.C.

◆ ~faPatch()

~faPatch ( )
virtual

Destructor.

Definition at line 175 of file faPatch.C.

Member Function Documentation

◆ calcPointLabels()

void calcPointLabels ( ) const
protected

Calculate patch point labels.

const auto& edgePoints = *pointLabelsPtr_;

// Cannot use invertManyToMany - we have non-local edge numbering

// Intermediate storage for pointEdges. // Points on the boundary will normally connect 1 or 2 edges only. List<DynamicList<label,2>> dynPointEdges(edgePoints.size());

forAll(edges, edgei) { const edge& e = edges[edgei];

dynPointEdges[markedPoints[e.first()]].append(edgei); dynPointEdges[markedPoints[e.second()]].append(edgei); }

// Flatten to regular list pointEdgesPtr_.reset(new labelListList(edgePoints.size())); auto& pEdges = *pointEdgesPtr_;

forAll(pEdges, pointi) { pEdges[pointi] = std::move(dynPointEdges[pointi]); }

Definition at line 298 of file faPatch.C.

References DynamicList< T, SizeMin >::append(), Foam::constant::electromagnetic::e, mesh, and UList< T >::size().

Here is the call graph for this function:

◆ calcPointEdges()

void calcPointEdges ( ) const
protected

Calculate patch point-edge addressing.

Definition at line 356 of file faPatch.C.

References append(), Foam::constant::electromagnetic::e, UList< T >::find(), forAll, mesh, pointLabels(), and UList< T >::size().

Here is the call graph for this function:

◆ initGeometry()

virtual void initGeometry ( PstreamBuffers )
inlineprotectedvirtual

Initialise the calculation of the patch geometry.

Reimplemented in coupledFaPatch, cyclicFaPatch, and processorFaPatch.

Definition at line 145 of file faPatch.H.

Referenced by cyclicFaPatch::initGeometry().

Here is the caller graph for this function:

◆ calcGeometry()

virtual void calcGeometry ( PstreamBuffers )
inlineprotectedvirtual

Calculate the patch geometry.

Reimplemented in coupledFaPatch, cyclicFaPatch, and processorFaPatch.

Definition at line 151 of file faPatch.H.

Referenced by cyclicFaPatch::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 coupledFaPatch, cyclicFaPatch, and processorFaPatch.

Definition at line 157 of file faPatch.H.

Referenced by cyclicFaPatch::initMovePoints().

Here is the caller graph for this function:

◆ movePoints()

void movePoints ( PstreamBuffers ,
const pointField  
)
protectedvirtual

Correct patch after moving points.

Reimplemented in coupledFaPatch, cyclicFaPatch, and processorFaPatch.

Definition at line 542 of file faPatch.C.

Referenced by processorFaPatch::initMovePoints(), and cyclicFaPatch::movePoints().

Here is the caller graph for this function:

◆ initUpdateMesh()

virtual void initUpdateMesh ( PstreamBuffers )
inlineprotectedvirtual

Initialise the update of the patch topology.

Reimplemented in processorFaPatch.

Definition at line 168 of file faPatch.H.

Referenced by processorFaPatch::initUpdateMesh().

Here is the caller graph for this function:

◆ updateMesh()

virtual void updateMesh ( PstreamBuffers )
inlineprotectedvirtual

Update of the patch topology.

Reimplemented in processorFaPatch.

Definition at line 174 of file faPatch.H.

Referenced by processorFaPatch::updateMesh().

Here is the caller graph for this function:

◆ TypeName()

TypeName ( "patch"  )

Runtime type information.

◆ declareRunTimeSelectionTable()

declareRunTimeSelectionTable ( autoPtr  ,
faPatch  ,
dictionary  ,
(const word &name, const dictionary &dict, const label index, const faBoundaryMesh &bm, const word &patchType)  ,
(name, dict, index, bm, patchType)   
)

◆ clone() [1/2]

virtual autoPtr<faPatch> clone ( const faBoundaryMesh bm) const
inlinevirtual

Construct and return a clone, resetting the boundary mesh.

Reimplemented in emptyFaPatch, symmetryFaPatch, and ignoreFaPatch.

Definition at line 257 of file faPatch.H.

References autoPtr< T >::New().

Here is the call graph for this function:

◆ clone() [2/2]

virtual autoPtr<faPatch> clone ( const faBoundaryMesh bm,
const labelUList edgeLabels,
const label  index,
const label  nbrPolyPatchi 
) const
inlinevirtual

Construct and return a clone, resetting the edge list and boundary mesh.

Reimplemented in emptyFaPatch, symmetryFaPatch, and ignoreFaPatch.

Definition at line 267 of file faPatch.H.

References faPatch::edgeLabels(), patchIdentifier::index(), and autoPtr< T >::New().

Here is the call graph for this function:

◆ New() [1/2]

Foam::autoPtr< Foam::faPatch > New ( const word name,
const dictionary dict,
const label  index,
const faBoundaryMesh bm 
)
static

Return pointer to a new patch created on freestore from dictionary.

Definition at line 28 of file faPatchNew.C.

References dict, Foam::name(), and Foam::New().

Referenced by faMeshTools::newMesh().

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

◆ New() [2/2]

Foam::autoPtr< Foam::faPatch > New ( const word patchType,
const word name,
const dictionary dict,
const label  index,
const faBoundaryMesh bm 
)
static

Return pointer to a new patch created on freestore from dictionary.

Definition at line 43 of file faPatchNew.C.

References DebugInFunction, dict, Foam::endl(), Foam::exit(), Foam::FatalIOError, FatalIOErrorInLookup, and Foam::name().

Here is the call graph for this function:

◆ constraintType()

bool constraintType ( const word patchType)
static

Return true if the given type is a constraint type.

Definition at line 45 of file faPatch.C.

References polyPatch::constraintType().

Here is the call graph for this function:

◆ constraintTypes()

Foam::wordList constraintTypes ( )
static

Return a list of all the constraint patch types.

Definition at line 54 of file faPatch.C.

References forAllConstIters().

Here is the call graph for this function:

◆ edgeLabels()

const labelList& edgeLabels ( ) const
inlinenoexcept

Return the list of edges.

Definition at line 335 of file faPatch.H.

Referenced by faPatchData::assign(), ignoreFaPatch::clone(), emptyFaPatch::clone(), symmetryFaPatch::clone(), faPatch::clone(), and faMeshDistributor::distribute().

Here is the caller graph for this function:

◆ nPoints()

label nPoints ( ) const
inline

Number of patch points.

Definition at line 343 of file faPatch.H.

References faPatch::pointLabels(), and UList< T >::size().

Here is the call graph for this function:

◆ nEdges()

label nEdges ( ) const
inlinenoexcept

Number of edge labels (boundary edges) addressed by this patch.

Definition at line 351 of file faPatch.H.

References UList< label >::size().

Here is the call graph for this function:

◆ ngbPolyPatchIndex()

label ngbPolyPatchIndex ( ) const
inlinenoexcept

The neighbour polyPatch index.

Definition at line 359 of file faPatch.H.

Referenced by faPatchData::assign().

Here is the caller graph for this function:

◆ boundaryMesh()

const Foam::faBoundaryMesh & boundaryMesh ( ) const
noexcept

Return boundaryMesh reference.

Definition at line 183 of file faPatch.C.

◆ coupled()

virtual bool coupled ( ) const
inlinevirtual

Return true if this patch is coupled.

Reimplemented in processorFaPatch, and coupledFaPatch.

Definition at line 372 of file faPatch.H.

◆ offset()

Foam::label offset ( ) const

The offset where this patch starts in the boundary edge list.

The value is the same as patch.start() - mesh.nInternalEdges()

Definition at line 189 of file faPatch.C.

References Foam::max(), and mesh.

Referenced by faPatch::boundarySlice().

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

◆ start()

Foam::label start ( ) const

Patch start in edge list.

Definition at line 200 of file faPatch.C.

References boundaryMesh::mesh().

Referenced by faMesh::edgeLengthCorrection(), faPatch::patchSlice(), and faPatch::whichEdge().

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

◆ size()

virtual label size ( ) const
inlinevirtual

Patch size is the number of edge labels, but can be overloaded.

Reimplemented in emptyFaPatch.

Definition at line 392 of file faPatch.H.

References UList< label >::size().

Referenced by faPatch::boundarySlice(), faMeshDecomposition::decomposeMesh(), processorFaPatch::interfaceSize(), faPatch::patchSlice(), and faPatchMapper::size().

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

◆ whichEdge()

label whichEdge ( const label  edgei) const
inline

Return label of edge in patch from global edge label.

Definition at line 400 of file faPatch.H.

References faPatch::start().

Here is the call graph for this function:

◆ patchSlice()

const List<T>::subList patchSlice ( const List< T > &  values) const
inline

This patch slice from the complete list of values, which has size mesh::nEdges(), using the virtual patch size.

Definition at line 410 of file faPatch.H.

References faPatch::size(), faPatch::start(), and Foam::HashTableOps::values().

Referenced by faFieldDecomposer::reset().

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

◆ boundarySlice()

const List<T>::subList boundarySlice ( const List< T > &  values) const
inline

This patch slice from the list of boundary values, which has size mesh::nBoundaryEdges(), using the virtual patch size.

Definition at line 421 of file faPatch.H.

References faPatch::offset(), faPatch::size(), and Foam::HashTableOps::values().

Here is the call graph for this function:

◆ write()

void write ( Ostream os) const
virtual

Write.

Reimplemented in processorFaPatch.

Definition at line 560 of file faPatch.C.

References os(), Foam::type(), patchIdentifier::write(), UList< T >::writeEntry(), and Ostream::writeEntry().

Referenced by processorFaPatch::write().

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

◆ boundaryConnections()

Foam::List< Foam::labelPair > boundaryConnections ( ) const

List of proc/face for the boundary edge neighbours in locally reordered edge numbering.

Definition at line 206 of file faPatch.C.

References Foam::BitOps::count(), boundaryMesh::mesh(), PrimitivePatch< FaceList, PointField >::nInternalEdges(), and Foam::output().

Here is the call graph for this function:

◆ boundaryProcs()

Foam::labelList boundaryProcs ( ) const

Boundary edge neighbour processors (does not include own proc)

Definition at line 226 of file faPatch.C.

References HashTable< T, Key, Hash >::erase(), HashSet< Key, Hash >::insert(), boundaryMesh::mesh(), UPstream::myProcNo(), PrimitivePatch< FaceList, PointField >::nInternalEdges(), UPstream::nProcs(), and HashTable< T, Key, Hash >::sortedToc().

Here is the call graph for this function:

◆ boundaryProcSizes()

Foam::List< Foam::labelPair > boundaryProcSizes ( ) const

List of proc/size for the boundary edge neighbour processors (does not include own proc)

Definition at line 246 of file faPatch.C.

References Foam::BitOps::count(), HashTable< T, Key, Hash >::erase(), boundaryMesh::mesh(), UPstream::myProcNo(), PrimitivePatch< FaceList, PointField >::nInternalEdges(), UPstream::nProcs(), Foam::output(), HashTable< T, Key, Hash >::size(), and HashTable< T, Key, Hash >::sortedToc().

Here is the call graph for this function:

◆ pointLabels()

const Foam::labelList & pointLabels ( ) const

Return patch point labels.

Definition at line 276 of file faPatch.C.

Referenced by faPatch::nPoints(), and faGlobalMeshData::updateMesh().

Here is the caller graph for this function:

◆ pointEdges()

const Foam::labelListList & pointEdges ( ) const

Return patch point-edge addressing.

Definition at line 287 of file faPatch.C.

◆ ngbPolyPatchFaceNormals()

Foam::tmp< Foam::vectorField > ngbPolyPatchFaceNormals ( ) const

Return normals of neighbour polyPatch faces.

Same as faMesh::haloFaceNormals()

Definition at line 387 of file faPatch.C.

References boundaryMesh::mesh(), and tmp< T >::New().

Here is the call graph for this function:

◆ ngbPolyPatchPointNormals()

Foam::tmp< Foam::vectorField > ngbPolyPatchPointNormals ( ) const

Return normals of neighbour polyPatch joined points.

Definition at line 398 of file faPatch.C.

References forAll, mesh, n, tmp< T >::New(), UList< T >::size(), and Foam::Zero.

Here is the call graph for this function:

◆ edgeFaces()

const Foam::labelUList & edgeFaces ( ) const

Return edge-face addressing.

Definition at line 433 of file faPatch.C.

References mesh.

Referenced by faMeshDecomposition::decomposeMesh(), and coupledFaPatch::faceCells().

Here is the caller graph for this function:

◆ edgeCentres()

const Foam::vectorField & edgeCentres ( ) const

Return edge centres.

Definition at line 450 of file faPatch.C.

References boundaryMesh::mesh().

Referenced by coupledFaPatch::delta().

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

◆ edgeLengths()

const Foam::vectorField & edgeLengths ( ) const

Return edge length vectors, like the faMesh::Le() method.

Definition at line 456 of file faPatch.C.

References boundaryMesh::mesh().

Here is the call graph for this function:

◆ magEdgeLengths()

const Foam::scalarField & magEdgeLengths ( ) const

Return edge length magnitudes, like the faMesh::magLe() method.

Definition at line 462 of file faPatch.C.

References boundaryMesh::mesh().

Here is the call graph for this function:

◆ edgeNormals()

Foam::tmp< Foam::vectorField > edgeNormals ( ) const

Return edge unit normals, like the faMesh::unitLe() method.

Definition at line 468 of file faPatch.C.

References tmp< T >::New().

Here is the call graph for this function:

◆ edgeFaceCentres()

Foam::tmp< Foam::vectorField > edgeFaceCentres ( ) const

Return neighbour face centres.

Definition at line 478 of file faPatch.C.

References mesh.

Referenced by coupledFaPatch::delta().

Here is the caller graph for this function:

◆ delta()

Foam::tmp< Foam::vectorField > delta ( ) const
virtual

Return cell-centre to face-centre vector.

except for coupled patches for which the cell-centre to coupled-cell-centre vector is returned

Reimplemented in coupledFaPatch, processorFaPatch, and cyclicFaPatch.

Definition at line 484 of file faPatch.C.

References Foam::constant::electromagnetic::e, and edgeCentres().

Here is the call graph for this function:

◆ makeWeights()

void makeWeights ( scalarField w) const
virtual

Make patch weighting factors.

Reimplemented in processorFaPatch, coupledFaPatch, and cyclicFaPatch.

Definition at line 530 of file faPatch.C.

◆ weights()

const Foam::scalarField & weights ( ) const

Return patch weighting factors.

Definition at line 536 of file faPatch.C.

References boundaryMesh::mesh().

Here is the call graph for this function:

◆ makeDeltaCoeffs()

void makeDeltaCoeffs ( scalarField dc) const
virtual

Make patch edge - neighbour face distances.

Reimplemented in processorFaPatch, coupledFaPatch, and cyclicFaPatch.

Definition at line 508 of file faPatch.C.

References delta.

◆ makeCorrectionVectors()

void makeCorrectionVectors ( vectorField k) const

Definition at line 514 of file faPatch.C.

References delta, k, and Foam::mag().

Here is the call graph for this function:

◆ deltaCoeffs()

const Foam::scalarField & deltaCoeffs ( ) const

Return patch edge - neighbour face distances.

Definition at line 524 of file faPatch.C.

References boundaryMesh::mesh().

Here is the call graph for this function:

◆ resetEdges() [1/2]

void resetEdges ( const labelUList newEdges)

Reset the list of edges (use with caution)

Definition at line 546 of file faPatch.C.

◆ resetEdges() [2/2]

void resetEdges ( labelList &&  newEdges)

Reset the list of edges (use with caution)

Definition at line 553 of file faPatch.C.

◆ patchInternalField() [1/4]

void patchInternalField ( const UList< Type > &  internalData,
const labelUList addressing,
Field< Type > &  pfld 
) const
inline

Extract internal field next to patch using specified addressing.

Parameters
internalDataThe internal field to extract from
addressingAddressing from patch into internal field
[out]pfldThe extracted patch field. It is always resized according to the patch size(), which can be smaller than the addressing size

Definition at line 28 of file faPatchTemplates.C.

References List< Type >::resize_nocopy().

Here is the call graph for this function:

◆ patchInternalField() [2/4]

void patchInternalField ( const UList< Type > &  internalData,
Field< Type > &  pfld 
) const

Extract internal field next to patch as patch field using edgeFaces() mapping.

Parameters
internalDataThe internal field to extract from
[out]pfldThe extracted patch field. It is always resized according to the patch size(), which can be smaller than the edgeFaces() size

Definition at line 47 of file faPatchTemplates.C.

◆ patchInternalField() [3/4]

tmp<Field<Type> > patchInternalField ( const UList< Type > &  internalData) const

Return given internal field next to patch as patch field using edgeFaces() mapping.

Parameters
internalDataThe internal field to extract from

◆ patchField()

const GeometricField::Patch & patchField ( const GeometricField gf) const

Return the patch field of the GeometricField corresponding to this patch.

Definition at line 70 of file faPatchTemplates.C.

References GeometricField< Type, PatchField, GeoMesh >::boundaryField().

Here is the call graph for this function:

◆ lookupPatchField()

const GeometricField::Patch & lookupPatchField ( const word name,
const GeometricField = nullptr,
const AnyType *  = nullptr 
) const

Lookup the named field from the local registry and return the patch field corresponding to this patch.

N.B. The dummy pointer arguments are used if this function is instantiated within a templated function to avoid a bug in gcc.

Definition at line 28 of file faPatchFaMeshTemplates.C.

References boundaryMesh::mesh(), and Foam::name().

Here is the call graph for this function:

◆ patchInternalField() [4/4]

Foam::tmp<Foam::Field<Type> > patchInternalField ( const UList< Type > &  internalData) const

Definition at line 58 of file faPatchTemplates.C.

References Foam::New().

Here is the call graph for this function:

Friends And Related Function Documentation

◆ faBoundaryMesh

friend class faBoundaryMesh
friend

The faPatch geometry initialisation is called by faBoundaryMesh.

Definition at line 130 of file faPatch.H.

◆ operator<<

Ostream& operator<< ( Ostream ,
const faPatch  
)
friend

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