45 this->patch().patchInternalField(psiInternal, scalarSendBuf_);
54 if (debug && !this->ready())
57 <<
"On patch " << procPatch_.name()
58 <<
" outstanding request."
63 scalarReceiveBuf_.setSize(scalarSendBuf_.size());
68 procPatch_.neighbProcNo(),
69 reinterpret_cast<char*
>(scalarReceiveBuf_.begin()),
70 scalarReceiveBuf_.byteSize(),
79 procPatch_.neighbProcNo(),
80 reinterpret_cast<const char*
>(scalarSendBuf_.begin()),
81 scalarSendBuf_.byteSize(),
88 procPatch_.compressedSend(commsType, scalarSendBuf_);
105 if (this->updatedMatrix())
110 const labelUList& faceCells = this->patch().faceCells();
121 outstandingRecvRequest_ >= 0
128 outstandingSendRequest_ = -1;
129 outstandingRecvRequest_ = -1;
135 result[faceCells[elemI]] -= coeffs[elemI]*scalarReceiveBuf_[elemI];
142 procPatch_.compressedReceive<scalar>(commsType, this->size())()
147 result[faceCells[elemI]] -= coeffs[elemI]*pnf[elemI];
#define forAll(list, i)
Loop across all elements in list.
virtual void updateInterfaceMatrix(scalarField &, const scalarField &, const scalarField &, const direction, const Pstream::commsTypes commsType) const=0
Inherit updateInterfaceMatrix from lduInterfaceField.
virtual void initInterfaceMatrixUpdate(scalarField &, const scalarField &, const scalarField &, const direction, const Pstream::commsTypes commsType) const
Inherit initInterfaceMatrixUpdate from lduInterfaceField.
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.
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.
commsTypes
Types of communications.
static bool floatTransfer
Should compact transfer be used in which floats replace doubles.
static label nRequests()
Get number of outstanding requests.
static void waitRequest(const label i)
Wait until request i has finished.
bool updatedMatrix() const
Whether matrix has been updated.
This boundary condition enables processor communication across patches.
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
errorManip< error > abort(error &err)