61 if (!isType<cyclicACMIPointPatch>(
p))
64 <<
"patch " << this->
patch().
index() <<
" not cyclicACMI type. " 65 <<
"Patch type = " << p.type()
74 const cyclicACMIPointPatchField<Type>& ptf,
76 const DimensionedField<Type, pointMesh>& iF,
77 const pointPatchFieldMapper& mapper
80 coupledPointPatchField<Type>(ptf,
p, iF, mapper),
81 cyclicACMIPatch_(
refCast<const cyclicACMIPointPatch>(
p)),
85 if (!isType<cyclicACMIPointPatch>(this->
patch()))
88 <<
"Field type does not correspond to patch type for patch " 90 <<
"Field type: " << typeName <<
endl 91 <<
"Patch type: " << this->
patch().type()
100 const cyclicACMIPointPatchField<Type>& ptf,
101 const DimensionedField<Type, pointMesh>& iF
104 coupledPointPatchField<Type>(ptf, iF),
105 cyclicACMIPatch_(ptf.cyclicACMIPatch_),
120 if (cyclicACMIPatch_.cyclicACMIPatch().owner())
131 refCast<const GeometricField<Type, pointPatchField, pointMesh>>
133 this->internalField()
137 refCast<const cyclicACMIPointPatchField<Type>>
139 fld.boundaryField()[nbrPatch.
index()]
143 Field<Type> ptFld(this->patchInternalField(pField));
144 Field<Type> nbrPtFld(nbr.patchInternalField(pField));
149 const tensor& forwardT = this->forwardT()[0];
150 const tensor& reverseT = this->reverseT()[0];
160 Field<Type> nbrFcFld(nbrPpi().pointToFaceInterpolate(nbrPtFld));
162 const cyclicAMIPolyPatch& cami = cyclicACMIPatch_.cyclicACMIPatch();
165 nbrFcFld = cami.interpolate(nbrFcFld);
168 this->addToInternalField
171 ppi().faceToPointInterpolate(nbrFcFld)()
177 Field<Type> fcFld(ppi().pointToFaceInterpolate(ptFld));
179 const cyclicAMIPolyPatch& cami = cyclicACMIPatch_.cyclicACMIPatch();
182 fcFld = cami.neighbPatch().cyclicAMIPolyPatch::interpolate(fcFld);
185 nbr.addToInternalField
188 nbrPpi().faceToPointInterpolate(fcFld)()
Cyclic AMI point patch - place holder only.
errorManipArg< error, int > exit(error &err, const int errNo=1)
const pointPatch & patch() const noexcept
Return the patch.
commsTypes
Types of communications.
error FatalError
Error stream (stdout output on all processes), with additional 'FOAM FATAL ERROR' header text and sta...
A list of keyword definitions, which are a keyword followed by a number of values (eg...
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
Type & refCast(U &obj)
A dynamic_cast (for references) that generates FatalError on failed casts, uses the virtual type() me...
virtual void swapAddSeparated(const Pstream::commsTypes commsType, Field< Type > &) const
Complete swap of patch point values and add to local values.
Ostream & endl(Ostream &os)
Add newline and flush stream.
cyclicACMIPointPatchField(const pointPatch &, const DimensionedField< Type, pointMesh > &)
Construct from patch and internal field.
virtual label index() const
Return the index of this patch in the pointBoundaryMesh.
Generic templated field type.
gmvFile<< "tracers "<< particles.size()<< nl;for(const passiveParticle &p :particles){ gmvFile<< p.position().x()<< ' ';}gmvFile<< nl;for(const passiveParticle &p :particles){ gmvFile<< p.position().y()<< ' ';}gmvFile<< nl;for(const passiveParticle &p :particles){ gmvFile<< p.position().z()<< ' ';}gmvFile<< nl;for(const word &name :lagrangianScalarNames){ IOField< scalar > fld(IOobject(name, runTime.timeName(), cloud::prefix, mesh, IOobject::MUST_READ, IOobject::NO_WRITE))
#define FatalIOErrorInFunction(ios)
Report an error message using Foam::FatalIOError.
Basic pointPatch represents a set of points from the mesh.
virtual label index() const =0
Return the index of this patch in the pointBoundaryMesh.
A Coupled boundary condition for pointField.
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
Cyclic ACMI front and back plane patch field.
const cyclicACMIPointPatch & neighbPatch() const
Return neighbour point patch.
dimensionSet transform(const dimensionSet &ds)
Return the argument; transformations do not change the dimensions.
Tensor of scalars, i.e. Tensor<scalar>.
IOerror FatalIOError
Error stream (stdout output on all processes), with additional 'FOAM FATAL IO ERROR' header text and ...