Go to the documentation of this file.
46 this->patch().patchInternalField(psiInternal, scalarSendBuf_);
51 if (debug && !this->ready())
54 <<
"On patch " << procPatch_.name()
55 <<
" outstanding request."
60 scalarReceiveBuf_.setSize(scalarSendBuf_.size());
65 procPatch_.neighbProcNo(),
66 reinterpret_cast<char*
>(scalarReceiveBuf_.begin()),
67 scalarReceiveBuf_.byteSize(),
76 procPatch_.neighbProcNo(),
77 reinterpret_cast<const char*
>(scalarSendBuf_.begin()),
78 scalarSendBuf_.byteSize(),
85 procPatch_.compressedSend(commsType, scalarSendBuf_);
103 if (this->updatedMatrix())
108 const labelUList& faceCells = this->patch().faceCells();
115 outstandingRecvRequest_ >= 0
122 outstandingSendRequest_ = -1;
123 outstandingRecvRequest_ = -1;
129 result[faceCells[elemI]] -= coeffs[elemI]*scalarReceiveBuf_[elemI];
136 procPatch_.compressedReceive<scalar>(commsType, this->size())()
141 result[faceCells[elemI]] -= coeffs[elemI]*pnf[elemI];
#define forAll(list, i)
Loop across all elements in list.
This boundary condition enables processor communication across patches.
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.
Pre-declare SubField and related Field type.
static bool floatTransfer
Should compact transfer be used in which floats replace doubles.
static void waitRequest(const label i)
Wait until request i has finished.
virtual void initInterfaceMatrixUpdate(scalarField &result, const scalarField &psiInternal, const scalarField &coeffs, const direction cmpt, const Pstream::commsTypes commsType) const
Initialise neighbour matrix update.
bool updatedMatrix() const
Whether matrix has been updated.
errorManip< error > abort(error &err)
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.
commsTypes
Types of communications.
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
static label nRequests()
Get number of outstanding requests.
A 1D vector of objects of type <T>, where the size of the vector is known and can be used for subscri...