Go to the documentation of this file.
43 cyclicACMIPatch_(refCast<const cyclicACMIFvPatch>(
p))
57 cyclicACMIPatch_(refCast<const cyclicACMIFvPatch>(
p,
dict))
59 if (!isA<cyclicACMIFvPatch>(
p))
62 <<
" patch type '" <<
p.type()
63 <<
"' not constraint type '" << typeName <<
"'"
64 <<
"\n for patch " <<
p.name()
65 <<
" of field " << this->internalField().name()
66 <<
" in file " << this->internalField().objectPath()
70 if (!
dict.found(
"value") && this->coupled())
78 this->primitiveField()
80 if (!
fld.boundaryField().set(cyclicACMIPatch_.nonOverlapPatchID()))
83 <<
" patch " <<
p.name()
84 <<
" of field " << this->internalField().name()
85 <<
" refers to non-overlap patch "
86 << cyclicACMIPatch_.cyclicACMIPatch().nonOverlapPatchName()
87 <<
" which is not constructed yet." <<
nl
88 <<
" Either supply an initial value or change the ordering"
93 this->
evaluate(Pstream::commsTypes::blocking);
109 cyclicACMIPatch_(refCast<const cyclicACMIFvPatch>(
p))
111 if (!isA<cyclicACMIFvPatch>(this->
patch()))
114 <<
"' not constraint type '" << typeName <<
"'"
115 <<
"\n for patch " <<
p.name()
116 <<
" of field " << this->internalField().name()
117 <<
" in file " << this->internalField().objectPath()
132 cyclicACMIPatch_(ptf.cyclicACMIPatch_)
145 cyclicACMIPatch_(ptf.cyclicACMIPatch_)
154 return cyclicACMIPatch_.coupled();
162 const Field<Type>& iField = this->primitiveField();
166 cyclicACMIPatch_.interpolate
192 this->primitiveField()
195 return refCast<const cyclicACMIFvPatchField<Type>>
197 fld.boundaryField()[cyclicACMIPatch_.neighbPatchID()]
209 this->primitiveField()
212 return fld.boundaryField()[cyclicACMIPatch_.nonOverlapPatchID()];
236 transformCoupleField(pnf, cmpt);
238 pnf = cyclicACMIPatch_.interpolate(pnf);
240 this->addToInternalField(result, !
add, coeffs, pnf);
263 transformCoupleField(pnf);
265 pnf = cyclicACMIPatch_.interpolate(pnf);
267 this->addToInternalField(result, !
add, coeffs, pnf);
277 const scalarField& mask = cyclicACMIPatch_.cyclicACMIPatch().mask();
296 const scalarField& mask = cyclicACMIPatch_.cyclicACMIPatch().mask();
306 this->writeEntry(
"value", os);
Abstract base class with a fat-interface to all derived classes covering all possible ways in which t...
const fvPatchField< Type > & nonOverlapPatchField() const
Return reference to non-overlapping patchField.
A class for managing temporary objects.
This boundary condition enforces a cyclic condition between a pair of boundaries, whereby communicati...
dimensionSet transform(const dimensionSet &ds)
Return the argument; transformations do not change the dimensions.
Abstract base class for cyclic ACMI coupled interfaces.
virtual void updateCoeffs()
Update the coefficients associated with the patch field.
const cyclicACMIFvPatchField< Type > & neighbourPatchField() const
Return reference to neighbour patchField.
Generic templated field type.
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.
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))
virtual void updateInterfaceMatrix(solveScalarField &result, const bool add, const solveScalarField &psiInternal, const scalarField &coeffs, const direction cmpt, const Pstream::commsTypes commsType) const
Update result field based on interface functionality.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
void add(FieldField< Field1, typename typeOfSum< Type1, Type2 >::type > &f, const FieldField< Field1, Type1 > &f1, const FieldField< Field2, Type2 > &f2)
const labelUList & faceCells() const
Return face-cell addressing.
errorManipArg< error, int > exit(error &err, const int errNo=1)
commsTypes
Types of communications.
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
virtual const cyclicACMIPolyPatch & neighbPatch() const
Return a reference to the neighbour patch.
const std::string patch
OpenFOAM patch number as a std::string.
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.
virtual tmp< Field< Type > > patchNeighbourField() const
Return neighbour coupled internal cell data.
A special matrix type and solver, designed for finite volume solutions of scalar equations....
void write(vtk::formatter &fmt, const Type &val, const label n=1)
Component-wise write of a value (N times)
#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,...
Cyclic patch for Arbitrarily Coupled Mesh Interface (ACMI)
string evaluate(const std::string &s, size_t pos=0, size_t len=std::string::npos)
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...