35 void formVfValues (
const volScalarField& iF,List3<scalar>& procVfValues)
40 if (procPairs_[patchI] > -1)
42 procVfValues[patchI].resize(procWf2_[patchI].size());
43 forAll(procVfValues[patchI], faceI)
45 procVfValues[patchI][faceI].resize(procWf2_[patchI][faceI].size());
46 procVfValues[patchI][faceI] = 0.0;
47 forAll(myProcPatchCells_[patchI][faceI], cellI)
49 cellId = myProcPatchCells_[patchI][faceI][cellI];
50 procVfValues[patchI][faceI][cellI] = iF.primitiveField()[cellId];
57 PstreamBuffers pBuffers(Pstream::commsTypes::nonBlocking);
60 label procId = neigProcs_[procI];
61 DynamicList<scalar> locVf;
63 if (procPairs_[procI] > -1)
65 forAll(procVfValues[procI], faceI)
70 cellI <= ownEnd_[procI][faceI];
74 locVf.append(procVfValues[procI][faceI][cellI]);
81 label addrId = corProcIds_[procId];
82 forAll(corCellIds_[addrId], iCellId)
84 cellId = corCellIds_[addrId][iCellId];
85 locVf.append(iF.primitiveField()[cellId]);
89 UOPstream oProcStr(procId, pBuffers);
94 pBuffers.finishedSends();
99 label procId = neigProcs_[procI];
101 UIPstream iProcStr(procId, pBuffers);
102 List<scalar> locVf (iProcStr);
104 if (procPairs_[procI] > -1)
107 forAll(neiStart_[procI], iFace)
111 iCell=neiStart_[procI][iFace];
112 iCell<=neiEnd_[procI][iFace];
116 procVfValues[procI][iFace][iCell] =
129 const List<Triple<label> >& addr = corAddr_[iCorProc];
134 patchNo = addr[iVal][0];
135 faceNo = addr[iVal][1];
136 cellNo = addr[iVal][2];
138 offset = corStart_[patchNo][faceNo];
139 procVfValues[patchNo][faceNo][cellNo+offset] = locVf[iVal];
150 template<
class FieldType>
151 void formVfValues (
const GeometricField<FieldType, fvPatchField, volMesh>& iF,List<List3<scalar>>& procVfValues)
155 label nComps = pTraits<FieldType>::nComponents;
157 procVfValues.resize(nComps);
158 for(label compI = 0;compI <= nComps-1;compI++)
160 forAll(procPairs_, patchI)
162 if (procPairs_[patchI] > -1)
164 procVfValues[compI].resize(procVfValues[compI].size()+1);
165 procVfValues[compI][patchI].resize(procWf2_[patchI].size());
167 forAll(procVfValues[compI][patchI], faceI)
169 procVfValues[compI][patchI][faceI].resize(procWf2_[patchI][faceI].size());
171 forAll(procVfValues[compI][patchI][faceI], cellI)
173 procVfValues[compI][patchI][faceI][cellI] =0.0;
176 procVfValues[compI][patchI][faceI][cellI] = iF.primitiveField()[cellId].component(compI);
187 PstreamBuffers pBuffers(Pstream::commsTypes::nonBlocking);
191 label procId = neigProcs_[procI];
192 List<DynamicList<scalar>> locVf;
193 locVf.resize(nComps);
195 for(label compI = 0;compI <= nComps-1;compI++)
197 if (procPairs_[procI] > -1)
199 forAll(procVfValues[compI][procI], faceI)
204 cellI <= ownEnd_[procI][faceI];
209 locVf[compI].append(procVfValues[compI][procI][faceI][cellI]);
218 label addrId = corProcIds_[procId];
219 forAll(corCellIds_[addrId], iCellId)
221 cellId = corCellIds_[addrId][iCellId];
222 locVf[compI].append(iF.primitiveField()[cellId].component(compI));
226 UOPstream oProcStr(procId, pBuffers);
229 pBuffers.finishedSends();
236 label procId = neigProcs_[procI];
238 UIPstream iProcStr(procId, pBuffers);
240 List<List<scalar>> locVf(iProcStr);
242 if (procPairs_[procI] > -1)
245 forAll(neiStart_[procI], iFace)
249 iCell=neiStart_[procI][iFace];
250 iCell<=neiEnd_[procI][iFace];
254 for(label compI = 0;compI <= nComps-1;compI++)
255 procVfValues[compI][procI][iFace][iCell] =
268 const List<Triple<label> >& addr = corAddr_[iCorProc];
273 patchNo = addr[iVal][0];
274 faceNo = addr[iVal][1];
275 cellNo = addr[iVal][2];
276 offset = corStart_[patchNo][faceNo];
278 for(label compI = 0;compI <= nComps-1;compI++)
279 procVfValues[compI][patchNo][faceNo][cellNo+offset] = locVf[compI][iVal];