34template<
class Type,
class CombineOp>
53 elems[i] = pointData[meshPoints[i]];
62 Type& elem = elems[i];
69 cop(elem, elems[slavePoints[j]]);
75 elems[slavePoints[j]] = elem;
85 pointData[meshPoints[i]] = elems[i];
93 GeometricField<Type, pointPatchField, pointMesh>& pf
96 typename GeometricField<Type, pointPatchField, pointMesh>::
97 Boundary& pfbf = pf.boundaryFieldRef();
101 pointPatchField<Type>& ppf = pfbf[patchi];
103 if (
isA<valuePointPatchField<Type>>(ppf))
106 ppf.patchInternalField();
118 forAll(patchPatchPointConstraintPoints_, pointi)
120 pf[patchPatchPointConstraintPoints_[pointi]] =
transform
122 patchPatchPointConstraintTensors_[pointi],
123 pf[patchPatchPointConstraintPoints_[pointi]]
132 GeometricField<Type, pointPatchField, pointMesh>& pf,
133 const bool overrideFixedValue
139 pf.correctBoundaryConditions();
142 syncUntransformedData
145 pf.primitiveFieldRef(),
146 maxMagSqrEqOp<Type>()
150 constrainCorners(pf);
152 if (overrideFixedValue)
Generic GeometricField class.
Internal::FieldType & primitiveFieldRef(const bool updateAccessTime=true)
Return a reference to the internal field values.
Boundary & boundaryFieldRef(const bool updateAccessTime=true)
Return a reference to the boundary field.
void correctBoundaryConditions()
Correct boundary field.
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
const pointMesh & mesh() const noexcept
const labelList & meshPoints() const
Return labelList of mesh points in patch.
void size(const label n)
Older name for setAddressableSize.
Various mesh related information for a parallel run. Upon construction, constructs all info using par...
const mapDistribute & globalCoPointSlavesMap() const
const labelListList & globalCoPointSlaves() const
const indirectPrimitivePatch & coupledPatch() const
Return patch of all coupled faces.
label constructSize() const noexcept
Constructed data size.
Class containing processor-to-processor mapping information.
void reverseDistribute(const label constructSize, List< T > &fld, const bool dummyTransform=true, const int tag=UPstream::msgType()) const
Reverse distribute data using default commsType.
void distribute(List< T > &fld, const bool dummyTransform=true, const int tag=UPstream::msgType()) const
Distribute List data using default commsType, default flip/negate operator.
void constrain(GeometricField< Type, pointPatchField, pointMesh > &pf, const bool overrideValue=false) const
Apply boundary conditions (single-patch constraints) and.
static void setPatchFields(GeometricField< Type, pointPatchField, pointMesh > &)
Helper: set patchField values from internal values (on.
static void syncUntransformedData(const polyMesh &mesh, List< Type > &pointData, const CombineOp &cop)
Helper: sync data on collocated points only.
void constrainCorners(GeometricField< Type, pointPatchField, pointMesh > &pf) const
Apply patch-patch constraints only.
Abstract base class for point-mesh patch fields.
void patchInternalField(const UList< Type1 > &internalData, const labelUList &addressing, UList< Type1 > &pfld) const
Extract field using specified addressing.
Mesh consisting of general polyhedral cells.
Foam::valuePointPatchField.
Type & refCast(U &obj)
A dynamic_cast (for references) to Type reference.
List< labelList > labelListList
List of labelList.
List< label > labelList
A List of labels.
refinementData transform(const tensor &, const refinementData val)
No-op rotational transform for base types.
const Type * isA(const U &obj)
Attempt dynamic_cast to Type.
PrimitivePatch< IndirectList< face >, const pointField & > indirectPrimitivePatch
A PrimitivePatch with an IndirectList for the faces, const reference for the point field.
#define forAll(list, i)
Loop across all elements in list.