38 processorGAMGInterfaceField,
44 processorGAMGInterfaceField,
59 procInterface_(refCast<const processorGAMGInterface>(GAMGCp)),
63 refCast<const processorLduInterfaceField>(fineInterface);
76 procInterface_(refCast<const processorGAMGInterface>(GAMGCp)),
98 procInterface_.interfaceInternalField(psiInternal, scalarSendBuf_);
107 scalarReceiveBuf_.setSize(scalarSendBuf_.size());
112 procInterface_.neighbProcNo(),
113 reinterpret_cast<char*
>(scalarReceiveBuf_.begin()),
114 scalarReceiveBuf_.byteSize(),
115 procInterface_.tag(),
123 procInterface_.neighbProcNo(),
124 reinterpret_cast<const char*
>(scalarSendBuf_.begin()),
125 scalarSendBuf_.byteSize(),
126 procInterface_.tag(),
132 procInterface_.compressedSend(commsType, scalarSendBuf_);
153 const labelUList& faceCells = procInterface_.faceCells();
164 outstandingRecvRequest_ >= 0
171 outstandingSendRequest_ = -1;
172 outstandingRecvRequest_ = -1;
177 transformCoupleField(scalarReceiveBuf_, cmpt);
182 result[faceCells[elemI]] -= coeffs[elemI]*scalarReceiveBuf_[elemI];
189 procInterface_.compressedReceive<scalar>(commsType, coeffs.
size())
191 transformCoupleField(pnf, cmpt);
195 result[faceCells[elemI]] -= coeffs[elemI]*pnf[elemI];
static bool floatTransfer
Should compact transfer be used in which floats replace doubles.
#define forAll(list, i)
Loop across all elements in list.
bool updatedMatrix() const
Whether matrix has been updated.
commsTypes
Types of communications.
void size(const label)
Override size to be inconsistent with allocated storage.
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.
static label nRequests()
Get number of outstanding requests.
An abstract base class for implicitly-coupled interface fields e.g. processor and cyclic patch fields...
Macros for easy insertion into run-time selection tables.
virtual int rank() const =0
Return rank of component for transform.
Abstract base class for processor coupled interfaces.
virtual void initInterfaceMatrixUpdate(scalarField &result, const scalarField &psiInternal, const scalarField &coeffs, const direction cmpt, const Pstream::commsTypes commsType) const
Initialise neighbour matrix update.
A 1D vector of objects of type <T>, where the size of the vector is known and can be used for subscri...
static label read(const commsTypes commsType, const int fromProcNo, char *buf, const std::streamsize bufSize, const int tag=UPstream::msgType(), const label communicator=0)
Read into given buffer from given processor and return the.
addToRunTimeSelectionTable(ensightPart, ensightPartCells, istream)
defineTypeNameAndDebug(combustionModel, 0)
static bool write(const commsTypes commsType, const int toProcNo, const char *buf, const std::streamsize bufSize, const int tag=UPstream::msgType(), const label communicator=0)
Write given buffer to given processor.
Abstract base class for GAMG agglomerated interfaces.
virtual ~processorGAMGInterfaceField()
Destructor.
processorGAMGInterfaceField(const GAMGInterface &GAMGCp, const lduInterfaceField &fineInterface)
Construct from GAMG interface and fine level interface field.
Abstract base class for GAMG agglomerated interface fields.
GAMG agglomerated processor interface field.
static void waitRequest(const label i)
Wait until request i has finished.