102 sendBuf_.resize_nocopy(this->size());
103 recvBuf_.resize_nocopy(this->size());
105 this->patchInternalField
108 procPatch_.reverseMeshPoints(),
117 procPatch_.neighbProcNo(),
127 procPatch_.neighbProcNo(),
139 const Pstream::commsTypes commsType,
143 if (UPstream::parRun())
147 if (commsType != Pstream::commsTypes::nonBlocking)
149 recvBuf_.resize_nocopy(this->size());
154 procPatch_.neighbProcNo(),
163 const auto& ppp = procPatch_.procCyclicPolyPatch();
164 const tensor& forwardT = ppp.forwardT()[0];
170 this->addToInternalField(pField, recvBuf_);
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
Generic templated field type that is much like a Foam::List except that it is expected to hold numeri...
static std::streamsize read(const UPstream::commsTypes commsType, const int fromProcNo, Type *buffer, std::streamsize count, const int tag=UPstream::msgType(), const int communicator=UPstream::worldComm, UPstream::Request *req=nullptr)
Receive buffer contents (contiguous types) from given processor.
static bool write(const UPstream::commsTypes commsType, const int toProcNo, const Type *buffer, std::streamsize count, const int tag=UPstream::msgType(), const int communicator=UPstream::worldComm, UPstream::Request *req=nullptr, const UPstream::sendModes sendMode=UPstream::sendModes::normal)
Write buffer contents (contiguous types only) to given processor.
commsTypes
Communications types.
@ nonBlocking
"nonBlocking" (immediate) : (MPI_Isend, MPI_Irecv)
static bool parRun(const bool on) noexcept
Set as parallel run on/off.
A Coupled boundary condition for pointField.
coupledPointPatchField(const pointPatch &, const DimensionedField< Type, pointMesh > &)
Construct from patch and internal field.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
const pointPatch & patch() const noexcept
Return the patch.
Foam::pointPatchFieldMapper.
void patchInternalField(const UList< Type1 > &internalData, const labelUList &addressing, UList< Type1 > &pfld) const
Extract field using specified addressing.
void addToInternalField(Field< Type1 > &iF, const Field< Type1 > &pF) const
Given the internal field and a patch field, add the patch field to the internal field.
label size() const noexcept
Return the patch size.
Basic pointPatch represents a set of points from the mesh.
Foam::processorCyclicPointPatchField.
processorCyclicPointPatchField(const pointPatch &, const DimensionedField< Type, pointMesh > &)
Construct from patch and internal field.
virtual bool doTransform() const
Does the patch field perform the transformation.
virtual void swapAddSeparated(const Pstream::commsTypes commsType, Field< Type > &) const
Complete swap of patch point values and add to local values.
virtual void initSwapAddSeparated(const Pstream::commsTypes commsType, Field< Type > &) const
Initialise swap of non-collocated patch point values.
Processor patch boundary needs to be such that the ordering of points in the patch is the same on bot...
Tensor of scalars, i.e. Tensor<scalar>.
Type & refCast(U &obj)
A dynamic_cast (for references) to Type reference.
refinementData transform(const tensor &, const refinementData val)
No-op rotational transform for base types.