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();
131 const Field<Type>& iField = this->primitiveField();
133 cyclicAMIPatch_.cyclicAMIPatch().nbrPatch().faceCells();
138 if (cyclicAMIPatch_.applyLowWeightCorrection())
140 tpnf = cyclicAMIPatch_.interpolate(pnf, this->patchInternalField()());
144 tpnf = cyclicAMIPatch_.interpolate(pnf);
160 this->primitiveField()
163 return refCast<const cyclicAMIFvPatchField<Type>>
181 cyclicAMIPatch_.cyclicAMIPatch().nbrPatch().faceCells();
186 transformCoupleField(pnf, cmpt);
188 if (cyclicAMIPatch_.applyLowWeightCorrection())
190 scalarField pif(psiInternal, cyclicAMIPatch_.faceCells());
191 pnf = cyclicAMIPatch_.interpolate(pnf, pif);
195 pnf = cyclicAMIPatch_.interpolate(pnf);
199 const labelUList& faceCells = cyclicAMIPatch_.faceCells();
203 result[faceCells[elemI]] -= coeffs[elemI]*pnf[elemI];
218 cyclicAMIPatch_.cyclicAMIPatch().nbrPatch().faceCells();
223 transformCoupleField(pnf);
225 if (cyclicAMIPatch_.applyLowWeightCorrection())
227 Field<Type> pif(psiInternal, cyclicAMIPatch_.faceCells());
228 pnf = cyclicAMIPatch_.interpolate(pnf, pif);
232 pnf = cyclicAMIPatch_.interpolate(pnf);
236 const labelUList& faceCells = cyclicAMIPatch_.faceCells();
240 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...
virtual tmp< Field< Type > > patchNeighbourField() const
Return neighbour coupled internal cell data.
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 &)