Go to the documentation of this file.
40 cyclicACMIPatch_(refCast<const cyclicACMIFvPatch>(
p))
55 cyclicACMIPatch_(refCast<const cyclicACMIFvPatch>(
p))
57 if (!isA<cyclicACMIFvPatch>(this->patch()))
60 <<
"' not constraint type '" << typeName <<
"'"
61 <<
"\n for patch " <<
p.name()
79 cyclicACMIPatch_(refCast<const cyclicACMIFvPatch>(
p))
81 if (!isA<cyclicACMIFvPatch>(
p))
86 ) <<
" patch type '" <<
p.type()
87 <<
"' not constraint type '" << typeName <<
"'"
88 <<
"\n for patch " <<
p.name()
94 if (!dict.
found(
"value") && this->coupled())
96 this->evaluate(Pstream::blocking);
131 return cyclicACMIPatch_.coupled();
141 cyclicACMIPatch_.cyclicACMIPatch().neighbPatch().faceCells();
143 cyclicACMIPatch_.cyclicACMIPatch().nonOverlapPatch().faceCells();
145 Field<Type> pnfCoupled(iField, nbrFaceCellsCoupled);
146 Field<Type> pfNonOverlap(iField, faceCellsNonOverlap);
152 cyclicACMIPatch_.interpolate
179 return refCast<const cyclicACMIFvPatchField<Type> >
181 fld.boundaryField()[cyclicACMIPatch_.neighbPatchID()]
196 return fld.
boundaryField()[cyclicACMIPatch_.nonOverlapPatchID()];
213 cyclicACMIPatch_.cyclicACMIPatch().neighbPatch().faceCells();
218 transformCoupleField(pnf, cmpt);
220 const labelUList& faceCells = cyclicACMIPatch_.faceCells();
222 pnf = cyclicACMIPatch_.interpolate(pnf);
226 result[faceCells[elemI]] -= coeffs[elemI]*pnf[elemI];
243 cyclicACMIPatch_.cyclicACMIPatch().neighbPatch().faceCells();
248 transformCoupleField(pnf);
250 const labelUList& faceCells = cyclicACMIPatch_.faceCells();
252 pnf = cyclicACMIPatch_.interpolate(pnf);
256 result[faceCells[elemI]] -= coeffs[elemI]*pnf[elemI];
280 const scalarField& mask = cyclicACMIPatch_.cyclicACMIPatch().mask();
301 const scalarField& mask = cyclicACMIPatch_.cyclicACMIPatch().mask();
325 const scalarField& mask = cyclicACMIPatch_.cyclicACMIPatch().mask();
410 const scalarField& mask = cyclicACMIPatch_.cyclicACMIPatch().mask();
424 this->writeEntry(
"value", os);
tmp< GeometricField< Type, fvsPatchField, surfaceMesh > > snGrad(const GeometricField< Type, fvPatchField, volMesh > &vf, const word &name)
virtual tmp< Field< Type > > valueInternalCoeffs(const tmp< scalarField > &) const
Return the matrix diagonal coefficients corresponding to the.
virtual void evaluate(const Pstream::commsTypes commsType=Pstream::blocking)
Evaluate the patch field, sets Updated to false.
virtual void initEvaluate(const Pstream::commsTypes commsType)
Initialise the evaluation of the patch field.
volScalarField w(IOobject("w", runTime.timeName(), mesh, IOobject::READ_IF_PRESENT, IOobject::NO_WRITE), mesh, dimensionedScalar("w", dimensionSet(0, 0, 0, 0, 0, 0, 0), 0.0))
const fvPatchField< Type > & nonOverlapPatchField() const
Return reference to non-overlapping patchField.
#define forAll(list, i)
Loop across all elements in list.
A class for managing temporary objects.
rDeltaT dimensionedInternalField()
virtual void evaluate(const Pstream::commsTypes commsType)
Evaluate the patch field.
This boundary condition enforces a cyclic condition between a pair of boundaries, whereby communicati...
GeometricBoundaryField & boundaryField()
Return reference to GeometricBoundaryField.
virtual tmp< Field< Type > > gradientInternalCoeffs() const
Return the matrix diagonal coefficients corresponding to the.
Abstract base class for cyclic ACMI coupled interfaces.
bool updated() const
Return true if the boundary condition has already been updated.
dimensionSet transform(const dimensionSet &)
void updateCoeffs()
Update the coefficients associated with the patch field.
const cyclicACMIFvPatchField< Type > & neighbourPatchField() const
Return reference to neighbour patchField.
virtual tmp< Field< Type > > valueBoundaryCoeffs(const tmp< scalarField > &) const
Return the matrix source coefficients corresponding to the.
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.
bool found(const word &, bool recursive=false, bool patternMatch=true) const
Search dictionary for given keyword.
virtual bool coupled() const
Return true if coupled. Note that the underlying patch.
virtual void manipulateMatrix(fvMatrix< Type > &matrix)
Manipulate matrix.
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
const cyclicACMIFvPatch & cyclicACMIPatch_
Local reference cast into the cyclic patch.
A list of keyword definitions, which are a keyword followed by any number of values (e....
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))
errorManipArg< error, int > exit(error &err, const int errNo=1)
conserve internalField()+
commsTypes
Types of communications.
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
Abstract base class for coupled patches.
virtual void write(Ostream &os) const
Write.
cyclicACMIFvPatchField(const fvPatch &, const DimensionedField< Type, volMesh > &)
Construct from patch and internal field.
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.
#define FatalIOErrorInFunction(ios)
Report an error message using Foam::FatalIOError.
Foam::fvPatchFieldMapper.
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
virtual tmp< Field< Type > > snGrad() const
Return patch-normal gradient.
Generic GeometricField class.
virtual tmp< Field< Type > > gradientBoundaryCoeffs() const
Return the matrix source coefficients corresponding to the.
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...