54Foam::calculatedProcessorGAMGInterfaceField::
55calculatedProcessorGAMGInterfaceField
67 refCast<const processorLduInterfaceField>(fineInterface);
69 doTransform_ =
p.doTransform();
74Foam::calculatedProcessorGAMGInterfaceField::
75calculatedProcessorGAMGInterfaceField
78 const bool doTransform,
84 doTransform_(doTransform),
103 procInterface_.interfaceInternalField(psiInternal, scalarSendBuf_);
112 scalarReceiveBuf_.setSize(scalarSendBuf_.size());
117 procInterface_.neighbProcNo(),
118 scalarReceiveBuf_.data_bytes(),
119 scalarReceiveBuf_.size_bytes(),
120 procInterface_.tag(),
128 procInterface_.neighbProcNo(),
129 scalarSendBuf_.cdata_bytes(),
130 scalarSendBuf_.size_bytes(),
131 procInterface_.tag(),
137 procInterface_.compressedSend(commsType, scalarSendBuf_);
173 outstandingRecvRequest_ >= 0
180 outstandingSendRequest_ = -1;
181 outstandingRecvRequest_ = -1;
186 transformCoupleField(scalarReceiveBuf_, cmpt);
189 addToInternalField(result, !
add,
faceCells, coeffs, scalarReceiveBuf_);
195 procInterface_.compressedReceive<solveScalar>
201 transformCoupleField(pnf, cmpt);
203 addToInternalField(result, !
add,
faceCells, coeffs, pnf);
Macros for easy insertion into run-time selection tables.
#define addToRunTimeSelectionTable(baseType, thisType, argNames)
Add to construction table with typeName as the key.
Abstract base class for GAMG agglomerated interface fields.
Abstract base class for GAMG agglomerated interfaces.
virtual bool read()
Re-read model coefficients if they have changed.
commsTypes
Types of communications.
@ nonBlocking
"nonBlocking"
static bool floatTransfer
static label nRequests()
Get number of outstanding requests.
static void waitRequest(const label i)
Wait until request i has finished.
GAMG agglomerated processor interface field.
virtual void initInterfaceMatrixUpdate(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
Initialise neighbour matrix update.
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.
GAMG agglomerated processor interface.
Smooth ATC in cells next to a set of patches supplied by type.
virtual bool write()
Write the output fields.
The class contains the addressing required by the lduMatrix: upper, lower and losort.
virtual const labelUList & patchAddr(const label patchNo) const =0
Return patch to internal addressing given patch number.
An abstract base class for implicitly-coupled interface fields e.g. processor and cyclic patch fields...
bool updatedMatrix() const
Whether matrix has been updated.
An abstract base class for implicitly-coupled interfaces e.g. processor and cyclic patches.
Abstract base class for processor coupled interfaces.
#define defineTypeNameAndDebug(Type, DebugSwitch)
Define the typeName and debug information.
To & refCast(From &r)
Reference type cast template function.
void add(FieldField< Field1, typename typeOfSum< Type1, Type2 >::type > &f, const FieldField< Field1, Type1 > &f1, const FieldField< Field2, Type2 > &f2)