// Do "normal" interpolation //volPointInterpolation::interpolate(vf, pf); //- interpolation is done just before this file pointVectorField& pf = pointDU; // Do the correction //GeometricField pfCorr /*pointVectorField pfCorr ( IOobject ( // "edgeCorrectedVolPointInterpolate(" + vf.name() + ")Corr", "edgeCorrectedVolPointInterpolate(" + DU.name() + ")Corr", //vf.instance(), DU, pMesh, IOobject::NO_READ, IOobject::NO_WRITE ), pMesh, //dimensioned("zero", pf.dimensions(), pTraits::zero), dimensionedVector("zero", pf.dimensions(), vector::zero), pf.boundaryField().types() );*/ pointVectorField pfCorr ( IOobject ( "pointDUcorr", runTime.timeName(), mesh, IOobject::NO_READ, IOobject::NO_WRITE ), pMesh, dimensionedVector("vector", dimLength, vector::zero), "calculated" ); //const labelList& ptc = boundaryPoints(); #include "findBoundaryPoints.H" //const FieldField& extraVecs = extrapolationVectors(); ///********* #include "calculateExtrapolationVectors.H" //const FieldField& w = pointBoundaryWeights(); ///********* #include "calculatePointBoundaryWeights.H" //Info << "w: " << w << endl; const labelListList& PointFaces = mesh.pointFaces(); //const fvBoundaryMesh& bm = mesh.boundary(); // declared in findBoundaryPoints.H forAll (ptc, pointI) { const label curPoint = ptc[pointI]; const labelList& curFaces = PointFaces[curPoint]; label fI = 0; // Go through all the faces forAll (curFaces, faceI) { if (!mesh.isInternalFace(curFaces[faceI])) { // This is a boundary face. If not in the empty patch // or coupled calculate the extrapolation vector label patchID = mesh.boundaryMesh().whichPatch(curFaces[faceI]); if ( !isA(mesh.boundary()[patchID]) && !mesh.boundary()[patchID].coupled() ) { label faceInPatchID = bm[patchID].patch().whichFace(curFaces[faceI]); pfCorr[curPoint] += w[pointI][fI]* ( extraVecs[pointI][fI] & gradDU.boundaryField()[patchID][faceInPatchID] ); fI++; } } } } // Update coupled boundaries /*forAll (pfCorr.boundaryField(), patchI) { if (pfCorr.boundaryField()[patchI].coupled()) { pfCorr.boundaryField()[patchI].initAddField(); } }*/ /*forAll (pfCorr.boundaryField(), patchI) { if (pfCorr.boundaryField()[patchI].coupled()) { pfCorr.boundaryField()[patchI].addField(pfCorr.internalField()); } }*/ //Info << "pfCorr: " << pfCorr << endl; pfCorr.correctBoundaryConditions(); //pfCorr.write(); //Info << "pf: " << pf << endl; pf += pfCorr; //- this was already commented // Replace extrapolated values in pf // forAll (ptc, pointI) // { // pf[ptc[pointI]] = pfCorr[ptc[pointI]]; // } pf.correctBoundaryConditions(); //pf.write();