37 cyclicAMIPatch_(refCast<const cyclicAMIFvPatch>(p))
51 cyclicAMIPatch_(refCast<const cyclicAMIFvPatch>(p))
53 if (!isA<cyclicAMIFvPatch>(p))
58 ) <<
" patch type '" << p.type()
59 <<
"' not constraint type '" << typeName <<
"'" 60 <<
"\n for patch " << p.name()
61 <<
" of field " << this->internalField().name()
62 <<
" in file " << this->internalField().objectPath()
66 if (!dict.found(
"value"))
70 this->
evaluate(Pstream::commsTypes::blocking);
91 cyclicAMIPatch_(refCast<const cyclicAMIFvPatch>(p))
93 if (!isA<cyclicAMIFvPatch>(this->patch()))
96 <<
"' not constraint type '" << typeName <<
"'" 97 <<
"\n for patch " << p.name()
98 <<
" of field " << this->internalField().name()
99 <<
" in file " << this->internalField().objectPath()
114 cyclicAMIPatch_(ptf.cyclicAMIPatch_)
123 return cyclicAMIPatch_.coupled();
134 const Field<Type>& iField = this->primitiveField();
136 cyclicAMIPatch_.cyclicAMIPatch().nbrPatch().faceCells();
141 if (cyclicAMIPatch_.applyLowWeightCorrection())
143 tpnf = cyclicAMIPatch_.interpolate(pnf, this->patchInternalField()());
147 tpnf = cyclicAMIPatch_.interpolate(pnf);
163 this->primitiveField()
166 return refCast<const cyclicAMIFvPatchField<Type>>
184 cyclicAMIPatch_.cyclicAMIPatch().nbrPatch().faceCells();
189 transformCoupleField(pnf, cmpt);
191 if (cyclicAMIPatch_.applyLowWeightCorrection())
193 scalarField pif(psiInternal, cyclicAMIPatch_.faceCells());
194 pnf = cyclicAMIPatch_.interpolate(pnf, pif);
198 pnf = cyclicAMIPatch_.interpolate(pnf);
202 const labelUList& faceCells = cyclicAMIPatch_.faceCells();
206 result[faceCells[elemI]] -= coeffs[elemI]*pnf[elemI];
221 cyclicAMIPatch_.cyclicAMIPatch().nbrPatch().faceCells();
226 transformCoupleField(pnf);
228 if (cyclicAMIPatch_.applyLowWeightCorrection())
230 Field<Type> pif(psiInternal, cyclicAMIPatch_.faceCells());
231 pnf = cyclicAMIPatch_.interpolate(pnf, pif);
235 pnf = cyclicAMIPatch_.interpolate(pnf);
239 const labelUList& faceCells = cyclicAMIPatch_.faceCells();
243 result[faceCells[elemI]] -= coeffs[elemI]*pnf[elemI];
virtual bool coupled() const
Return true if coupled. Note that the underlying patch.
#define forAll(list, i)
Loop across all elements in list.
virtual void updateInterfaceMatrix(scalarField &result, const scalarField &psiInternal, const scalarField &coeffs, const direction cmpt, const Pstream::commsTypes commsType) const
Update result field based on interface functionality.
errorManipArg< error, int > exit(error &err, const int errNo=1)
void evaluate(GeometricField< Type, PatchField, GeoMesh > &result, const Function1< Type > &func, const GeometricField< Type, PatchField, GeoMesh > &x)
A list of keyword definitions, which are a keyword followed by any number of values (e...
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
const Boundary & boundaryField() const
Return const-reference to the boundary field.
commsTypes
Types of communications.
T & ref() const
Return non-const reference or generate a fatal error.
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
Abstract base class with a fat-interface to all derived classes covering all possible ways in which t...
Generic GeometricField class.
Abstract base class for cyclic AMI coupled interfaces.
gmvFile<< "tracers "<< particles.size()<< nl;forAllConstIter(Cloud< passiveParticle >, particles, iter){ gmvFile<< iter().position().x()<< ' ';}gmvFile<< nl;forAllConstIter(Cloud< passiveParticle >, particles, iter){ gmvFile<< iter().position().y()<< ' ';}gmvFile<< nl;forAllConstIter(Cloud< passiveParticle >, particles, iter){ gmvFile<< iter().position().z()<< ' ';}gmvFile<< nl;forAll(lagrangianScalarNames, i){ const word &name=lagrangianScalarNames[i];IOField< scalar > fld(IOobject(name, runTime.timeName(), cloud::prefix, mesh, IOobject::MUST_READ, IOobject::NO_WRITE))
const cyclicAMIFvPatchField< Type > & nbrPatchField() const
Return reference to neighbour patchField.
Pre-declare SubField and related Field type.
virtual void write(Ostream &os) const
Write.
Foam::fvPatchFieldMapper.
void write(std::ostream &os, const bool binary, List< floatScalar > &fField)
Write floats ascii or binary.
Abstract base class for coupled patches.
A 1D vector of objects of type <T>, where the size of the vector is known and can be used for subscri...
An Ostream is an abstract base class for all output systems (streams, files, token lists...
void writeEntry(Ostream &os, const HashTable< T, Key, Hash > &ht)
#define FatalIOErrorInFunction(ios)
Report an error message using Foam::FatalIOError.
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
friend dimensionSet transform(const dimensionSet &)
Return the argument; transformations do not change the dimensions.
cyclicAMIFvPatchField(const fvPatch &, const DimensionedField< Type, volMesh > &)
Construct from patch and internal field.
A class for managing temporary objects.
This boundary condition enforces a cyclic condition between a pair of boundaries, whereby communicati...
dimensionSet transform(const dimensionSet &)
virtual tmp< Field< Type > > patchNeighbourField(const Pstream::commsTypes) const
Return neighbour coupled internal cell data.