Go to the documentation of this file.
41 cyclicPatch_(refCast<const cyclicFaPatch>(
p))
55 cyclicPatch_(refCast<const cyclicFaPatch>(
p))
57 if (!isA<cyclicFaPatch>(this->
patch()))
60 <<
"\n patch type '" << p.type()
61 <<
"' not constraint type '" << typeName <<
"'"
62 <<
"\n for patch " <<
p.name()
63 <<
" of field " << this->internalField().name()
64 <<
" in file " << this->internalField().objectPath()
79 cyclicPatch_(refCast<const cyclicFaPatch>(
p,
dict))
81 if (!isA<cyclicFaPatch>(
p))
84 <<
"\n patch type '" <<
p.type()
85 <<
"' not constraint type '" << typeName <<
"'"
86 <<
"\n for patch " <<
p.name()
87 <<
" of field " << this->internalField().name()
88 <<
" in file " << this->internalField().objectPath()
92 this->
evaluate(Pstream::commsTypes::blocking);
104 cyclicPatch_(ptf.cyclicPatch_)
116 cyclicPatch_(ptf.cyclicPatch_)
126 const Field<Type>& iField = this->primitiveField();
132 label sizeby2 = this->size()/2;
136 for (label facei=0; facei<sizeby2; ++facei)
140 forwardT()[0], iField[
faceCells[facei + sizeby2]]
151 for (label facei=0; facei<sizeby2; ++facei)
153 pnf[facei] = iField[
faceCells[facei + sizeby2]];
154 pnf[facei + sizeby2] = iField[
faceCells[facei]];
175 label sizeby2 = this->size()/2;
178 for (label facei = 0; facei < sizeby2; ++facei)
180 pnf[facei] = psiInternal[
faceCells[facei + sizeby2]];
181 pnf[facei + sizeby2] = psiInternal[
faceCells[facei]];
185 transformCoupleField(pnf, cmpt);
192 result[
faceCells[elemI]] += coeffs[elemI]*pnf[elemI];
199 result[
faceCells[elemI]] -= coeffs[elemI]*pnf[elemI];
217 label sizeby2 = this->size()/2;
220 for (label facei = 0; facei < sizeby2; ++facei)
222 pnf[facei] = psiInternal[
faceCells[facei + sizeby2]];
223 pnf[facei + sizeby2] = psiInternal[
faceCells[facei]];
231 result[
faceCells[elemI]] += coeffs[elemI]*pnf[elemI];
238 result[
faceCells[elemI]] -= coeffs[elemI]*pnf[elemI];
A class for managing temporary objects.
dimensionSet transform(const dimensionSet &ds)
Return the argument; transformations do not change the dimensions.
#define forAll(list, i)
Loop across all elements in list.
cyclicFaPatchField(const faPatch &, const DimensionedField< Type, areaMesh > &)
Construct from patch and internal field.
Generic templated field type.
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)
errorManipArg< error, int > exit(error &err, const int errNo=1)
Author Zeljko Tukovic, FMENA Hrvoje Jasak, Wikki Ltd.
commsTypes
Types of communications.
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
virtual tmp< Field< Type > > patchNeighbourField() const
Return neighbour coupled given internal cell data.
Abstract base class for cyclic coupled interfaces.
const std::string patch
OpenFOAM patch number as a std::string.
#define FatalIOErrorInFunction(ios)
Report an error message using Foam::FatalIOError.
Foam::cyclicFaPatchField.
Finite area patch class. Used for 2-D non-Euclidian finite area method.
Smooth ATC in cells next to a set of patches supplied by type.
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...
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.