44 procPatch_(refCast<const processorFvPatch>(
p)),
47 outstandingSendRequest_(-1),
48 outstandingRecvRequest_(-1),
63 procPatch_(refCast<const processorFvPatch>(
p)),
66 outstandingSendRequest_(-1),
67 outstandingRecvRequest_(-1),
82 procPatch_(refCast<const processorFvPatch>(
p,
dict)),
85 outstandingSendRequest_(-1),
86 outstandingRecvRequest_(-1),
90 if (!isA<processorFvPatch>(
p))
93 <<
"\n patch type '" <<
p.type()
94 <<
"' not constraint type '" << typeName <<
"'"
95 <<
"\n for patch " <<
p.name()
96 <<
" of field " << this->internalField().name()
97 <<
" in file " << this->internalField().objectPath()
102 if (!
dict.found(
"value"))
119 procPatch_(refCast<const processorFvPatch>(
p)),
122 outstandingSendRequest_(-1),
123 outstandingRecvRequest_(-1),
127 if (!isA<processorFvPatch>(this->
patch()))
130 <<
"' not constraint type '" << typeName <<
"'"
131 <<
"\n for patch " <<
p.name()
132 <<
" of field " << this->internalField().name()
133 <<
" in file " << this->internalField().objectPath()
139 <<
"On patch " << procPatch_.name() <<
" outstanding request."
153 procPatch_(refCast<const processorFvPatch>(ptf.
patch())),
154 sendBuf_(std::move(ptf.sendBuf_)),
155 receiveBuf_(std::move(ptf.receiveBuf_)),
156 outstandingSendRequest_(-1),
157 outstandingRecvRequest_(-1),
158 scalarSendBuf_(std::move(ptf.scalarSendBuf_)),
159 scalarReceiveBuf_(std::move(ptf.scalarReceiveBuf_))
164 <<
"On patch " << procPatch_.name() <<
" outstanding request."
178 procPatch_(refCast<const processorFvPatch>(ptf.
patch())),
181 outstandingSendRequest_(-1),
182 outstandingRecvRequest_(-1),
189 <<
"On patch " << procPatch_.name() <<
" outstanding request."
201 if (
debug && !this->ready())
204 <<
"On patch " << procPatch_.name()
205 <<
" outstanding request."
218 if (Pstream::parRun())
220 this->patchInternalField(sendBuf_);
224 commsType == Pstream::commsTypes::nonBlocking
225 && !Pstream::floatTransfer
231 <<
"Invalid for non-contiguous data types"
236 this->
setSize(sendBuf_.size());
237 outstandingRecvRequest_ = UPstream::nRequests();
240 Pstream::commsTypes::nonBlocking,
241 procPatch_.neighbProcNo(),
248 outstandingSendRequest_ = UPstream::nRequests();
251 Pstream::commsTypes::nonBlocking,
252 procPatch_.neighbProcNo(),
253 sendBuf_.cdata_bytes(),
254 sendBuf_.size_bytes(),
261 procPatch_.compressedSend(commsType, sendBuf_);
273 if (Pstream::parRun())
277 commsType == Pstream::commsTypes::nonBlocking
278 && !Pstream::floatTransfer
285 outstandingRecvRequest_ >= 0
286 && outstandingRecvRequest_ < Pstream::nRequests()
289 UPstream::waitRequest(outstandingRecvRequest_);
291 outstandingSendRequest_ = -1;
292 outstandingRecvRequest_ = -1;
296 procPatch_.compressedReceive<Type>(commsType, *
this);
301 transform(*
this, procPatch_.forwardT(), *
this);
314 return deltaCoeffs*(*
this - this->patchInternalField());
335 scalarSendBuf_.setSize(this->
patch().size());
336 forAll(scalarSendBuf_, facei)
338 scalarSendBuf_[facei] = psiInternal[
faceCells[facei]];
343 commsType == Pstream::commsTypes::nonBlocking
344 && !Pstream::floatTransfer
348 if (
debug && !this->ready())
351 <<
"On patch " << procPatch_.name()
352 <<
" outstanding request."
357 scalarReceiveBuf_.setSize(scalarSendBuf_.size());
358 outstandingRecvRequest_ = UPstream::nRequests();
361 Pstream::commsTypes::nonBlocking,
362 procPatch_.neighbProcNo(),
363 scalarReceiveBuf_.data_bytes(),
364 scalarReceiveBuf_.size_bytes(),
369 outstandingSendRequest_ = UPstream::nRequests();
372 Pstream::commsTypes::nonBlocking,
373 procPatch_.neighbProcNo(),
374 scalarSendBuf_.cdata_bytes(),
375 scalarSendBuf_.size_bytes(),
382 procPatch_.compressedSend(commsType, scalarSendBuf_);
402 if (this->updatedMatrix())
411 commsType == Pstream::commsTypes::nonBlocking
412 && !Pstream::floatTransfer
418 outstandingRecvRequest_ >= 0
419 && outstandingRecvRequest_ < Pstream::nRequests()
422 UPstream::waitRequest(outstandingRecvRequest_);
425 outstandingSendRequest_ = -1;
426 outstandingRecvRequest_ = -1;
429 if (!std::is_arithmetic<Type>::value)
432 transformCoupleField(scalarReceiveBuf_, cmpt);
436 this->addToInternalField
449 procPatch_.compressedReceive<solveScalar>
456 if (!std::is_arithmetic<Type>::value)
459 transformCoupleField(pnf, cmpt);
463 this->addToInternalField(result, !
add,
faceCells, coeffs, pnf);
482 sendBuf_.setSize(this->
patch().size());
488 sendBuf_[facei] = psiInternal[
faceCells[facei]];
493 commsType == Pstream::commsTypes::nonBlocking
494 && !Pstream::floatTransfer
498 if (
debug && !this->ready())
501 <<
"On patch " << procPatch_.name()
502 <<
" outstanding request."
507 receiveBuf_.setSize(sendBuf_.size());
508 outstandingRecvRequest_ = UPstream::nRequests();
511 Pstream::commsTypes::nonBlocking,
512 procPatch_.neighbProcNo(),
513 receiveBuf_.data_bytes(),
514 receiveBuf_.size_bytes(),
519 outstandingSendRequest_ = UPstream::nRequests();
522 Pstream::commsTypes::nonBlocking,
523 procPatch_.neighbProcNo(),
524 sendBuf_.cdata_bytes(),
525 sendBuf_.size_bytes(),
532 procPatch_.compressedSend(commsType, sendBuf_);
551 if (this->updatedMatrix())
560 commsType == Pstream::commsTypes::nonBlocking
561 && !Pstream::floatTransfer
567 outstandingRecvRequest_ >= 0
568 && outstandingRecvRequest_ < Pstream::nRequests()
571 UPstream::waitRequest(outstandingRecvRequest_);
574 outstandingSendRequest_ = -1;
575 outstandingRecvRequest_ = -1;
580 transformCoupleField(receiveBuf_);
583 this->addToInternalField(result, !
add,
faceCells, coeffs, receiveBuf_);
589 procPatch_.compressedReceive<Type>(commsType, this->size())()
593 transformCoupleField(pnf);
596 this->addToInternalField(result, !
add,
faceCells, coeffs, pnf);
608 outstandingSendRequest_ >= 0
609 && outstandingSendRequest_ < Pstream::nRequests()
612 bool finished = UPstream::finishedRequest(outstandingSendRequest_);
618 outstandingSendRequest_ = -1;
622 outstandingRecvRequest_ >= 0
623 && outstandingRecvRequest_ < Pstream::nRequests()
626 bool finished = UPstream::finishedRequest(outstandingRecvRequest_);
632 outstandingRecvRequest_ = -1;