42 procInterface_(refCast<const lduPrimitiveProcessorInterface>(
interface)),
44 receiveBuf_(
interface.faceCells().size()),
45 scalarSendBuf_(
interface.faceCells().size()),
46 scalarReceiveBuf_(
interface.faceCells().size()),
47 outstandingSendRequest_(-1),
48 outstandingRecvRequest_(-1)
61 sendBuf_(procInterface_.faceCells().size()),
62 receiveBuf_(procInterface_.faceCells().size()),
63 scalarSendBuf_(procInterface_.faceCells().size()),
64 scalarReceiveBuf_(procInterface_.faceCells().size()),
65 outstandingSendRequest_(-1),
66 outstandingRecvRequest_(-1)
81 sendBuf_(procInterface_.faceCells().size()),
82 receiveBuf_(procInterface_.faceCells().size()),
83 scalarSendBuf_(procInterface_.faceCells().size()),
84 scalarReceiveBuf_(procInterface_.faceCells().size()),
85 outstandingSendRequest_(-1),
86 outstandingRecvRequest_(-1)
97 this->outstandingSendRequest_ >= 0
98 && this->outstandingSendRequest_ < Pstream::nRequests()
102 UPstream::finishedRequest(this->outstandingSendRequest_);
108 this->outstandingSendRequest_ = -1;
112 this->outstandingRecvRequest_ >= 0
113 && this->outstandingRecvRequest_ < Pstream::nRequests()
117 UPstream::finishedRequest(this->outstandingRecvRequest_);
123 this->outstandingRecvRequest_ = -1;
133 if (
debug && !this->ready())
136 <<
"On patch of size " << procInterface_.faceCells().size()
137 <<
" between proc " << procInterface_.myProcNo()
138 <<
" and " << procInterface_.neighbProcNo()
139 <<
" outstanding request."
152 if (Pstream::parRun())
158 const labelList& fc = procInterface_.faceCells();
162 sendBuf_[i] = iF[fc[i]];
167 this->
setSize(sendBuf_.size());
168 outstandingRecvRequest_ = UPstream::nRequests();
171 Pstream::commsTypes::nonBlocking,
172 procInterface_.neighbProcNo(),
173 reinterpret_cast<char*
>(this->
begin()),
175 procInterface_.tag(),
176 procInterface_.comm()
179 outstandingSendRequest_ = UPstream::nRequests();
182 Pstream::commsTypes::nonBlocking,
183 procInterface_.neighbProcNo(),
184 reinterpret_cast<const char*
>(sendBuf_.begin()),
186 procInterface_.tag(),
187 procInterface_.comm()
199 if (Pstream::parRun())
203 outstandingRecvRequest_ >= 0
204 && outstandingRecvRequest_ < Pstream::nRequests()
207 UPstream::waitRequest(outstandingRecvRequest_);
209 outstandingSendRequest_ = -1;
210 outstandingRecvRequest_ = -1;
227 const labelList& fc = procInterface_.faceCells();
228 scalarSendBuf_.
setSize(fc.size());
231 scalarSendBuf_[i] = psiInternal[fc[i]];
234 if (
debug && !this->ready())
238 <<
" outstanding request."
243 scalarReceiveBuf_.setSize(scalarSendBuf_.size());
244 outstandingRecvRequest_ = UPstream::nRequests();
247 Pstream::commsTypes::nonBlocking,
248 procInterface_.neighbProcNo(),
249 reinterpret_cast<char*
>(scalarReceiveBuf_.begin()),
250 scalarReceiveBuf_.byteSize(),
251 procInterface_.tag(),
252 procInterface_.comm()
255 outstandingSendRequest_ = UPstream::nRequests();
258 Pstream::commsTypes::nonBlocking,
259 procInterface_.neighbProcNo(),
260 reinterpret_cast<const char*
>(scalarSendBuf_.begin()),
261 scalarSendBuf_.byteSize(),
262 procInterface_.tag(),
263 procInterface_.comm()
269 ).updatedMatrix() =
false;
288 result[
faceCells[elemI]] += coeffs[elemI]*vals[elemI];
295 result[
faceCells[elemI]] -= coeffs[elemI]*vals[elemI];
312 if (this->updatedMatrix())
319 outstandingRecvRequest_ >= 0
320 && outstandingRecvRequest_ < Pstream::nRequests()
323 UPstream::waitRequest(outstandingRecvRequest_);
326 outstandingSendRequest_ = -1;
327 outstandingRecvRequest_ = -1;
331 addToInternalField(result, !
add, coeffs, scalarReceiveBuf_);
336 ).updatedMatrix() =
true;