60 <<
"\n patch type '" <<
p.type()
61 <<
"' not constraint type '" <<
typeName <<
"'"
62 <<
"\n for patch " <<
p.name()
74 const DimensionedField<Type, areaMesh>& iF,
79 coupledFaPatchField<Type>(
p, iF,
dict, IOobjectOption::NO_READ),
85 <<
"\n patch type '" <<
p.type()
86 <<
"' not constraint type '" <<
typeName <<
"'"
87 <<
"\n for patch " <<
p.name()
103 const cyclicFaPatchField<Type>& ptf
108 cyclicPatch_(ptf.cyclicPatch_)
120 cyclicPatch_(ptf.cyclicPatch_)
132 const Field<Type>& iField = this->primitiveField();
135 const label sizeby2 = pnf.
size()/2;
139 for (label facei=0; facei<sizeby2; ++facei)
143 forwardT()[0], iField[
faceCells[facei + sizeby2]]
154 for (label facei=0; facei<sizeby2; ++facei)
156 pnf[facei] = iField[
faceCells[facei + sizeby2]];
157 pnf[facei + sizeby2] = iField[
faceCells[facei]];
164Foam::tmp<Foam::Field<Type>>
188 const label sizeby2 = this->size()/2;
191 for (label facei = 0; facei < sizeby2; ++facei)
193 pnf[facei] = psiInternal[
faceCells[facei + sizeby2]];
194 pnf[facei + sizeby2] = psiInternal[
faceCells[facei]];
198 transformCoupleField(pnf, cmpt);
219 const label sizeby2 = this->size()/2;
222 for (label facei = 0; facei < sizeby2; ++facei)
224 pnf[facei] = psiInternal[
faceCells[facei + sizeby2]];
225 pnf[facei + sizeby2] = psiInternal[
faceCells[facei]];
229 transformCoupleField(pnf);
232 this->addToInternalField(result, !
add, faceCells, coeffs, pnf);
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
Generic templated field type that is much like a Foam::List except that it is expected to hold numeri...
A simple container of IOobject preferences. Can also be used for general handling of read/no-read/rea...
bool isReadRequired() const noexcept
True if (MUST_READ | READ_MODIFIED) bits are set.
static bool isReadRequired(readOption opt) noexcept
True if (MUST_READ | READ_MODIFIED) bits are set.
readOption
Enumeration defining read preferences.
const word & name() const noexcept
Return the object name.
fileName objectPath() const
The complete path + object name.
A 1D vector of objects of type <T>, where the size of the vector is known and can be used for subscri...
void size(const label n)
Older name for setAddressableSize.
commsTypes
Communications types.
@ buffered
"buffered" : (MPI_Bsend, MPI_Recv)
Author Zeljko Tukovic, FMENA Hrvoje Jasak, Wikki Ltd.
coupledFaPatchField(const faPatch &, const DimensionedField< Type, areaMesh > &)
Construct from patch and internal field.
virtual void evaluate(const Pstream::commsTypes commsType)
Evaluate the patch field.
Foam::cyclicFaPatchField.
virtual bool doTransform() const
Cyclic coupled interface functions.
virtual void updateInterfaceMatrix(solveScalarField &result, const bool add, const lduAddressing &lduAddr, const label patchId, const solveScalarField &psiInternal, const scalarField &coeffs, const direction cmpt, const Pstream::commsTypes commsType) const
Update result field based on interface functionality.
virtual const tensorField & reverseT() const
Return neighbour-cell transformation tensor.
virtual tmp< Field< Type > > patchNeighbourField() const
Return neighbour coupled given internal cell data.
virtual const tensorField & forwardT() const
Return face transformation tensor.
cyclicFaPatchField(const faPatch &, const DimensionedField< Type, areaMesh > &)
Construct from patch and internal field.
cyclicLduInterfaceField()=default
Construct null.
void transformCoupleField(Field< Type > &f) const
Transform given patch field.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
const faPatch & patch() const noexcept
Return the patch.
A FieldMapper for finite-area patch fields.
const Field< Type > & primitiveField() const noexcept
Return const-reference to the internal field values.
const DimensionedField< Type, areaMesh > & internalField() const noexcept
Return const-reference to the dimensioned internal field.
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.
The class contains the addressing required by the lduMatrix: upper, lower and losort.
void addToInternalField(Field< Type > &result, const bool add, const labelUList &faceCells, const scalarField &coeffs, const Field< Type > &vals) const
Add/subtract weighted contributions to internal field.
A class for managing temporary objects.
#define FatalIOErrorInFunction(ios)
Report an error message using Foam::FatalIOError.
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
Type & refCast(U &obj)
A dynamic_cast (for references) to Type reference.
tmp< DimensionedField< TypeR, GeoMesh > > New(const tmp< DimensionedField< TypeR, GeoMesh > > &tf1, const word &name, const dimensionSet &dimensions, const bool initCopy=false)
Global function forwards to reuseTmpDimensionedField::New.
refinementData transform(const tensor &, const refinementData val)
No-op rotational transform for base types.
Field< scalar > scalarField
Specialisation of Field<T> for scalar.
const word GlobalIOList< Tuple2< scalar, vector > >::typeName("scalarVectorTable")
void add(DimensionedField< scalar, GeoMesh > &result, const dimensioned< scalar > &dt1, const DimensionedField< scalar, GeoMesh > &f2)
const Type * isA(const U &obj)
Attempt dynamic_cast to Type.
Field< solveScalar > solveScalarField
IOerror FatalIOError
Error stream (stdout output on all processes), with additional 'FOAM FATAL IO ERROR' header text and ...
error FatalError
Error stream (stdout output on all processes), with additional 'FOAM FATAL ERROR' header text and sta...
errorManipArg< error, int > exit(error &err, const int errNo=1)
UList< label > labelUList
A UList of labels.
dict add("bounds", meshBb)