diff --git a/applications/solvers/compressible/rhoPimpleFoam/createFields.H b/applications/solvers/compressible/rhoPimpleFoam/createFields.H index d1ade4b457..070f651a99 100644 --- a/applications/solvers/compressible/rhoPimpleFoam/createFields.H +++ b/applications/solvers/compressible/rhoPimpleFoam/createFields.H @@ -39,15 +39,8 @@ #include "compressibleCreatePhi.H" - dimensionedScalar rhoMax - ( - mesh.solutionDict().subDict("PIMPLE").lookup("rhoMax") - ); - - dimensionedScalar rhoMin - ( - mesh.solutionDict().subDict("PIMPLE").lookup("rhoMin") - ); + dimensionedScalar rhoMax(pimple.dict().lookup("rhoMax")); + dimensionedScalar rhoMin(pimple.dict().lookup("rhoMin")); Info<< "Creating turbulence model\n" << endl; autoPtr turbulence diff --git a/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleFoam.C b/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleFoam.C index 94f3f54de4..0336ceb74d 100644 --- a/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleFoam.C +++ b/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleFoam.C @@ -46,10 +46,13 @@ int main(int argc, char *argv[]) #include "setRootCase.H" #include "createTime.H" #include "createMesh.H" + + pimpleControl pimple(mesh); + #include "createFields.H" #include "initContinuityErrs.H" - pimpleControl pimple(mesh); + // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // Info<< "\nStarting time loop\n" << endl; diff --git a/applications/solvers/compressible/rhoPimpleFoam/rhoPorousMRFPimpleFoam/rhoPorousMRFPimpleFoam.C b/applications/solvers/compressible/rhoPimpleFoam/rhoPorousMRFPimpleFoam/rhoPorousMRFPimpleFoam.C index 5bfbc84d56..8de8a412c3 100644 --- a/applications/solvers/compressible/rhoPimpleFoam/rhoPorousMRFPimpleFoam/rhoPorousMRFPimpleFoam.C +++ b/applications/solvers/compressible/rhoPimpleFoam/rhoPorousMRFPimpleFoam/rhoPorousMRFPimpleFoam.C @@ -48,12 +48,13 @@ int main(int argc, char *argv[]) #include "setRootCase.H" #include "createTime.H" #include "createMesh.H" + + pimpleControl pimple(mesh); + #include "createFields.H" #include "createZones.H" #include "initContinuityErrs.H" - pimpleControl pimple(mesh); - // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // Info<< "\nStarting time loop\n" << endl; diff --git a/applications/solvers/compressible/rhoSimpleFoam/createFields.H b/applications/solvers/compressible/rhoSimpleFoam/createFields.H index aa3de6d6fb..27bfb83133 100644 --- a/applications/solvers/compressible/rhoSimpleFoam/createFields.H +++ b/applications/solvers/compressible/rhoSimpleFoam/createFields.H @@ -42,17 +42,10 @@ label pRefCell = 0; scalar pRefValue = 0.0; - setRefCell(p, mesh.solutionDict().subDict("SIMPLE"), pRefCell, pRefValue); + setRefCell(p, simple.dict(), pRefCell, pRefValue); - dimensionedScalar rhoMax - ( - mesh.solutionDict().subDict("SIMPLE").lookup("rhoMax") - ); - - dimensionedScalar rhoMin - ( - mesh.solutionDict().subDict("SIMPLE").lookup("rhoMin") - ); + dimensionedScalar rhoMax(simple.dict().lookup("rhoMax")); + dimensionedScalar rhoMin(simple.dict().lookup("rhoMin")); Info<< "Creating turbulence model\n" << endl; autoPtr turbulence diff --git a/applications/solvers/compressible/rhoSimpleFoam/rhoPorousMRFSimpleFoam/createZones.H b/applications/solvers/compressible/rhoSimpleFoam/rhoPorousMRFSimpleFoam/createZones.H index 78a96429f6..0ed5afa274 100644 --- a/applications/solvers/compressible/rhoSimpleFoam/rhoPorousMRFSimpleFoam/createZones.H +++ b/applications/solvers/compressible/rhoSimpleFoam/rhoPorousMRFSimpleFoam/createZones.H @@ -9,13 +9,7 @@ if (pZones.size()) { // nUCorrectors for pressureImplicitPorosity - if (mesh.solutionDict().subDict("SIMPLE").found("nUCorrectors")) - { - nUCorr = readInt - ( - mesh.solutionDict().subDict("SIMPLE").lookup("nUCorrectors") - ); - } + simple.dict().readIfPresent("nUCorrectors", nUCorr); if (nUCorr > 0) { diff --git a/applications/solvers/compressible/rhoSimpleFoam/rhoPorousMRFSimpleFoam/rhoPorousMRFSimpleFoam.C b/applications/solvers/compressible/rhoSimpleFoam/rhoPorousMRFSimpleFoam/rhoPorousMRFSimpleFoam.C index 5273f50eaa..1cb421e5f4 100644 --- a/applications/solvers/compressible/rhoSimpleFoam/rhoPorousMRFSimpleFoam/rhoPorousMRFSimpleFoam.C +++ b/applications/solvers/compressible/rhoSimpleFoam/rhoPorousMRFSimpleFoam/rhoPorousMRFSimpleFoam.C @@ -45,12 +45,13 @@ int main(int argc, char *argv[]) #include "setRootCase.H" #include "createTime.H" #include "createMesh.H" + + simpleControl simple(mesh); + #include "createFields.H" #include "createZones.H" #include "initContinuityErrs.H" - simpleControl simple(mesh); - // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // Info<< "\nStarting time loop\n" << endl; diff --git a/applications/solvers/compressible/rhoSimpleFoam/rhoSimpleFoam.C b/applications/solvers/compressible/rhoSimpleFoam/rhoSimpleFoam.C index 454da31441..e87a35fab2 100644 --- a/applications/solvers/compressible/rhoSimpleFoam/rhoSimpleFoam.C +++ b/applications/solvers/compressible/rhoSimpleFoam/rhoSimpleFoam.C @@ -42,11 +42,12 @@ int main(int argc, char *argv[]) #include "setRootCase.H" #include "createTime.H" #include "createMesh.H" - #include "createFields.H" - #include "initContinuityErrs.H" simpleControl simple(mesh); + #include "createFields.H" + #include "initContinuityErrs.H" + // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // Info<< "\nStarting time loop\n" << endl; diff --git a/applications/solvers/compressible/rhoSimplecFoam/createFields.H b/applications/solvers/compressible/rhoSimplecFoam/createFields.H index fab7b70048..46a382864e 100644 --- a/applications/solvers/compressible/rhoSimplecFoam/createFields.H +++ b/applications/solvers/compressible/rhoSimplecFoam/createFields.H @@ -41,17 +41,10 @@ label pRefCell = 0; scalar pRefValue = 0.0; - setRefCell(p, mesh.solutionDict().subDict("SIMPLE"), pRefCell, pRefValue); + setRefCell(p, simple.dict(), pRefCell, pRefValue); - dimensionedScalar rhoMax - ( - mesh.solutionDict().subDict("SIMPLE").lookup("rhoMax") - ); - - dimensionedScalar rhoMin - ( - mesh.solutionDict().subDict("SIMPLE").lookup("rhoMin") - ); + dimensionedScalar rhoMax(simple.dict().lookup("rhoMax")); + dimensionedScalar rhoMin(simple.dict().lookup("rhoMin")); Info<< "Creating turbulence model\n" << endl; autoPtr turbulence diff --git a/applications/solvers/compressible/rhoSimplecFoam/rhoSimplecFoam.C b/applications/solvers/compressible/rhoSimplecFoam/rhoSimplecFoam.C index 278e689bc2..937358e0f5 100644 --- a/applications/solvers/compressible/rhoSimplecFoam/rhoSimplecFoam.C +++ b/applications/solvers/compressible/rhoSimplecFoam/rhoSimplecFoam.C @@ -44,11 +44,12 @@ int main(int argc, char *argv[]) #include "setRootCase.H" #include "createTime.H" #include "createMesh.H" - #include "createFields.H" - #include "initContinuityErrs.H" simpleControl simple(mesh); + #include "createFields.H" + #include "initContinuityErrs.H" + // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // Info<< "\nStarting time loop\n" << endl; diff --git a/src/finiteVolume/cfdTools/general/solutionControl/pimpleControl/pimpleControl.C b/src/finiteVolume/cfdTools/general/solutionControl/pimpleControl/pimpleControl.C index 8707d021ad..87c3f13090 100644 --- a/src/finiteVolume/cfdTools/general/solutionControl/pimpleControl/pimpleControl.C +++ b/src/finiteVolume/cfdTools/general/solutionControl/pimpleControl/pimpleControl.C @@ -59,36 +59,37 @@ bool Foam::pimpleControl::criteriaSatisfied() bool firstIter = corr_ == 1; bool achieved = true; - const dictionary& solverDict = mesh_.solverPerformanceDict(); + bool checked = false; // safety that some checks were indeed performed + const dictionary& solverDict = mesh_.solverPerformanceDict(); forAllConstIter(dictionary, solverDict, iter) { const word& variableName = iter().keyword(); - label fieldI = applyToField(variableName); + const label fieldI = applyToField(variableName); if (fieldI != -1) { const List sp(iter().stream()); const scalar residual = sp.last().initialResidual(); + checked = true; + if (firstIter) { residualControl_[fieldI].initialResidual = sp.first().initialResidual(); } - bool absCheck = residual < residualControl_[fieldI].absTol; - + const bool absCheck = residual < residualControl_[fieldI].absTol; bool relCheck = false; scalar relative = 0.0; if (!firstIter) { - scalar iniRes = + const scalar iniRes = residualControl_[fieldI].initialResidual + ROOTVSMALL; relative = residual/iniRes; - relCheck = relative < residualControl_[fieldI].relTol; } @@ -110,7 +111,7 @@ bool Foam::pimpleControl::criteriaSatisfied() } } - return achieved; + return checked && achieved; } @@ -129,7 +130,13 @@ Foam::pimpleControl::pimpleControl(fvMesh& mesh) if (nOuterCorr_ > 1) { Info<< nl; - if (!residualControl_.empty()) + if (residualControl_.empty()) + { + Info<< algorithmName_ << ": no residual control data found. " + << "Calculations will employ " << nOuterCorr_ + << " corrector loops" << nl << endl; + } + else { Info<< algorithmName_ << ": max iterations = " << nOuterCorr_ << endl; @@ -142,12 +149,6 @@ Foam::pimpleControl::pimpleControl(fvMesh& mesh) } Info<< endl; } - else - { - Info<< algorithmName_ << ": no residual control data found. " << nl - << "Calculations will employ " << nOuterCorr_ - << " corrector loops" << nl << endl; - } } else { diff --git a/src/finiteVolume/cfdTools/general/solutionControl/pimpleControl/pimpleControl.H b/src/finiteVolume/cfdTools/general/solutionControl/pimpleControl/pimpleControl.H index 54831aa97d..3b891a5aa9 100644 --- a/src/finiteVolume/cfdTools/general/solutionControl/pimpleControl/pimpleControl.H +++ b/src/finiteVolume/cfdTools/general/solutionControl/pimpleControl/pimpleControl.H @@ -69,10 +69,10 @@ protected: // Protected Member Functions - //- Read constrols from fvSolution dictionary + //- Read controls from fvSolution dictionary virtual void read(); - //- Return true if all convergence checks are satified + //- Return true if all convergence checks are satisfied virtual bool criteriaSatisfied(); //- Disallow default bitwise copy construct diff --git a/src/finiteVolume/cfdTools/general/solutionControl/simpleControl/simpleControl.C b/src/finiteVolume/cfdTools/general/solutionControl/simpleControl/simpleControl.C index f40f19e04a..d2b603a5e0 100644 --- a/src/finiteVolume/cfdTools/general/solutionControl/simpleControl/simpleControl.C +++ b/src/finiteVolume/cfdTools/general/solutionControl/simpleControl/simpleControl.C @@ -50,17 +50,20 @@ bool Foam::simpleControl::criteriaSatisfied() } bool achieved = true; - const dictionary& solverDict = mesh_.solverPerformanceDict(); + bool checked = false; // safety that some checks were indeed performed + const dictionary& solverDict = mesh_.solverPerformanceDict(); forAllConstIter(dictionary, solverDict, iter) { const word& variableName = iter().keyword(); - label fieldI = applyToField(variableName); + const label fieldI = applyToField(variableName); if (fieldI != -1) { const List sp(iter().stream()); const scalar residual = sp.first().initialResidual(); + checked = true; + bool absCheck = residual < residualControl_[fieldI].absTol; achieved = achieved && absCheck; @@ -75,7 +78,7 @@ bool Foam::simpleControl::criteriaSatisfied() } } - return achieved; + return checked && achieved; } @@ -90,7 +93,13 @@ Foam::simpleControl::simpleControl(fvMesh& mesh) Info<< nl; - if (residualControl_.size() > 0) + if (residualControl_.empty()) + { + Info<< algorithmName_ << ": no convergence criteria found. " + << "Calculations will run for " << mesh_.time().endTime().value() + << " steps." << nl << endl; + } + else { Info<< algorithmName_ << ": convergence criteria" << nl; forAll(residualControl_, i) @@ -101,12 +110,6 @@ Foam::simpleControl::simpleControl(fvMesh& mesh) } Info<< endl; } - else - { - Info<< algorithmName_ << ": no convergence criteria found. " - << "Calculations will run for " << mesh_.time().endTime().value() - << " steps." << nl << endl; - } } diff --git a/src/finiteVolume/cfdTools/general/solutionControl/simpleControl/simpleControl.H b/src/finiteVolume/cfdTools/general/solutionControl/simpleControl/simpleControl.H index e4a2e69cba..ee718ce424 100644 --- a/src/finiteVolume/cfdTools/general/solutionControl/simpleControl/simpleControl.H +++ b/src/finiteVolume/cfdTools/general/solutionControl/simpleControl/simpleControl.H @@ -59,10 +59,10 @@ protected: // Protected Member Functions - //- Read constrols from fvSolution dictionary + //- Read controls from fvSolution dictionary void read(); - //- Return true if all convergence checks are satified + //- Return true if all convergence checks are satisfied bool criteriaSatisfied(); //- Disallow default bitwise copy construct diff --git a/src/finiteVolume/cfdTools/general/solutionControl/solutionControl/solutionControl.H b/src/finiteVolume/cfdTools/general/solutionControl/solutionControl/solutionControl.H index 75565551a2..82dd73dd9a 100644 --- a/src/finiteVolume/cfdTools/general/solutionControl/solutionControl/solutionControl.H +++ b/src/finiteVolume/cfdTools/general/solutionControl/solutionControl/solutionControl.H @@ -40,7 +40,7 @@ namespace Foam { /*---------------------------------------------------------------------------*\ - Class solutionControl Declaration + Class solutionControl Declaration \*---------------------------------------------------------------------------*/ class solutionControl @@ -78,19 +78,19 @@ protected: //- Flag to indicate to solve for momentum bool momentumPredictor_; - //- Flag to indictae to solve using transonic algorithm + //- Flag to indicate to solve using transonic algorithm bool transonic_; // Protected Member Functions - //- Read constrols from fvSolution dictionary + //- Read controls from fvSolution dictionary virtual void read(const bool absTolOnly); //- Return index of field in residualControl_ if present virtual label applyToField(const word& fieldName) const; - //- Return true if all convergence checks are satified + //- Return true if all convergence checks are satisfied virtual bool criteriaSatisfied() = 0; //- Store previous iteration fields @@ -142,7 +142,7 @@ public: //- Flag to indicate to solve for momentum inline bool momentumPredictor() const; - //- Flag to indictae to solve using transonic algorithm + //- Flag to indicate to solve using transonic algorithm inline bool transonic() const; }; diff --git a/src/finiteVolume/fields/fvPatchFields/derived/mappedField/mappedFieldFvPatchField.C b/src/finiteVolume/fields/fvPatchFields/derived/mappedField/mappedFieldFvPatchField.C index 19aeaa4a5a..ae597b4bfc 100644 --- a/src/finiteVolume/fields/fvPatchFields/derived/mappedField/mappedFieldFvPatchField.C +++ b/src/finiteVolume/fields/fvPatchFields/derived/mappedField/mappedFieldFvPatchField.C @@ -227,7 +227,6 @@ void mappedFieldFvPatchField::updateCoeffs() const fieldType& nbrField = sampleField(); - const mapDistribute& distMap = mappedPatchBase::map(); newValues = nbrField.boundaryField()[nbrPatchID]; this->distribute(newValues); diff --git a/src/lagrangian/intermediate/submodels/Kinematic/SurfaceFilmModel/SurfaceFilmModel/SurfaceFilmModel.C b/src/lagrangian/intermediate/submodels/Kinematic/SurfaceFilmModel/SurfaceFilmModel/SurfaceFilmModel.C index 36dca28f6a..d080a624a2 100644 --- a/src/lagrangian/intermediate/submodels/Kinematic/SurfaceFilmModel/SurfaceFilmModel/SurfaceFilmModel.C +++ b/src/lagrangian/intermediate/submodels/Kinematic/SurfaceFilmModel/SurfaceFilmModel/SurfaceFilmModel.C @@ -114,8 +114,8 @@ bool Foam::SurfaceFilmModel::transferParcel "bool Foam::SurfaceFilmModel::transferParcel" "(" "parcelType&, " - "const label, " - "const bool&" + "const polyPatch&, " + "bool&" ")" ); @@ -156,11 +156,9 @@ void Foam::SurfaceFilmModel::inject(TrackData& td) const label filmPatchI = filmPatches[i]; const label primaryPatchI = primaryPatches[i]; - const mappedPatchBase& mapPatch = filmModel.mappedPatches()[filmPatchI]; - const labelList& injectorCellsPatch = pbm[primaryPatchI].faceCells(); - cacheFilmFields(filmPatchI, primaryPatchI, mapPatch, filmModel); + cacheFilmFields(filmPatchI, primaryPatchI, filmModel); const vectorField& Cf = mesh.C().boundaryField()[primaryPatchI]; const vectorField& Sf = mesh.Sf().boundaryField()[primaryPatchI]; @@ -172,13 +170,11 @@ void Foam::SurfaceFilmModel::inject(TrackData& td) { const label cellI = injectorCellsPatch[j]; - // The position is at the cell centre, which could be - // in any tet of the decomposed cell, so arbitrarily - // choose the first face of the cell as the tetFace - // and the first point on the face after the base - // point as the tetPt. The tracking will - // pick the cell consistent with the motion in the - // first tracking step. + // The position could bein any tet of the decomposed cell, + // so arbitrarily choose the first face of the cell as the + // tetFace and the first point on the face after the base + // point as the tetPt. The tracking will pick the cell + // consistent with the motion in the first tracking step. const label tetFaceI = this->owner().mesh().cells()[cellI][0]; const label tetPtI = 1; @@ -208,14 +204,22 @@ void Foam::SurfaceFilmModel::inject(TrackData& td) setParcelProperties(*pPtr, j); - // Check new parcel properties -// td.cloud().checkParcelProperties(*pPtr, 0.0, true); - td.cloud().checkParcelProperties(*pPtr, 0.0, false); + if (pPtr->nParticle() > 0.001) + { + // Check new parcel properties + // td.cloud().checkParcelProperties(*pPtr, 0.0, true); + td.cloud().checkParcelProperties(*pPtr, 0.0, false); - // Add the new parcel to the cloud - td.cloud().addParticle(pPtr); + // Add the new parcel to the cloud + td.cloud().addParticle(pPtr); - nParcelsInjected_++; + nParcelsInjected_++; + } + else + { + // TODO: cache mass and re-distribute? + delete pPtr; + } } } } @@ -227,26 +231,25 @@ void Foam::SurfaceFilmModel::cacheFilmFields ( const label filmPatchI, const label primaryPatchI, - const mappedPatchBase& mapPatch, const regionModels::surfaceFilmModels::surfaceFilmModel& filmModel ) { massParcelPatch_ = filmModel.cloudMassTrans().boundaryField()[filmPatchI]; - mapPatch.distribute(massParcelPatch_); + filmModel.toPrimary(filmPatchI, massParcelPatch_); diameterParcelPatch_ = filmModel.cloudDiameterTrans().boundaryField()[filmPatchI]; - mapPatch.distribute(diameterParcelPatch_); + filmModel.toPrimary(filmPatchI, diameterParcelPatch_); UFilmPatch_ = filmModel.Us().boundaryField()[filmPatchI]; - mapPatch.distribute(UFilmPatch_); + filmModel.toPrimary(filmPatchI, UFilmPatch_); rhoFilmPatch_ = filmModel.rho().boundaryField()[filmPatchI]; - mapPatch.distribute(rhoFilmPatch_); + filmModel.toPrimary(filmPatchI, rhoFilmPatch_); deltaFilmPatch_[primaryPatchI] = filmModel.delta().boundaryField()[filmPatchI]; - mapPatch.distribute(deltaFilmPatch_[primaryPatchI]); + filmModel.toPrimary(filmPatchI, deltaFilmPatch_[primaryPatchI]); } diff --git a/src/lagrangian/intermediate/submodels/Kinematic/SurfaceFilmModel/SurfaceFilmModel/SurfaceFilmModel.H b/src/lagrangian/intermediate/submodels/Kinematic/SurfaceFilmModel/SurfaceFilmModel/SurfaceFilmModel.H index ae35db7ec5..967e748f56 100644 --- a/src/lagrangian/intermediate/submodels/Kinematic/SurfaceFilmModel/SurfaceFilmModel/SurfaceFilmModel.H +++ b/src/lagrangian/intermediate/submodels/Kinematic/SurfaceFilmModel/SurfaceFilmModel/SurfaceFilmModel.H @@ -116,7 +116,6 @@ protected: ( const label filmPatchI, const label primaryPatchI, - const mappedPatchBase& mapPatch, const regionModels::surfaceFilmModels::surfaceFilmModel& filmModel ); diff --git a/src/lagrangian/intermediate/submodels/Thermodynamic/SurfaceFilmModel/ThermoSurfaceFilm/ThermoSurfaceFilm.C b/src/lagrangian/intermediate/submodels/Thermodynamic/SurfaceFilmModel/ThermoSurfaceFilm/ThermoSurfaceFilm.C index c6f4b4054a..6a6c60db39 100644 --- a/src/lagrangian/intermediate/submodels/Thermodynamic/SurfaceFilmModel/ThermoSurfaceFilm/ThermoSurfaceFilm.C +++ b/src/lagrangian/intermediate/submodels/Thermodynamic/SurfaceFilmModel/ThermoSurfaceFilm/ThermoSurfaceFilm.C @@ -643,7 +643,6 @@ void Foam::ThermoSurfaceFilm::cacheFilmFields ( const label filmPatchI, const label primaryPatchI, - const mappedPatchBase& mapPatch, const regionModels::surfaceFilmModels::surfaceFilmModel& filmModel ) { @@ -651,15 +650,14 @@ void Foam::ThermoSurfaceFilm::cacheFilmFields ( filmPatchI, primaryPatchI, - mapPatch, filmModel ); TFilmPatch_ = filmModel.Ts().boundaryField()[filmPatchI]; - mapPatch.distribute(TFilmPatch_); + filmModel.toPrimary(filmPatchI, TFilmPatch_); CpFilmPatch_ = filmModel.Cp().boundaryField()[filmPatchI]; - mapPatch.distribute(CpFilmPatch_); + filmModel.toPrimary(filmPatchI, CpFilmPatch_); } diff --git a/src/lagrangian/intermediate/submodels/Thermodynamic/SurfaceFilmModel/ThermoSurfaceFilm/ThermoSurfaceFilm.H b/src/lagrangian/intermediate/submodels/Thermodynamic/SurfaceFilmModel/ThermoSurfaceFilm/ThermoSurfaceFilm.H index 66bd139568..bddbfcc66e 100644 --- a/src/lagrangian/intermediate/submodels/Thermodynamic/SurfaceFilmModel/ThermoSurfaceFilm/ThermoSurfaceFilm.H +++ b/src/lagrangian/intermediate/submodels/Thermodynamic/SurfaceFilmModel/ThermoSurfaceFilm/ThermoSurfaceFilm.H @@ -227,7 +227,6 @@ protected: ( const label filmPatchI, const label primaryPatchI, - const mappedPatchBase& distMap, const regionModels::surfaceFilmModels::surfaceFilmModel& filmModel ); diff --git a/src/meshTools/AMIInterpolation/AMIInterpolation/AMIInterpolation.C b/src/meshTools/AMIInterpolation/AMIInterpolation/AMIInterpolation.C index aa638ebd38..535583a9e1 100644 --- a/src/meshTools/AMIInterpolation/AMIInterpolation/AMIInterpolation.C +++ b/src/meshTools/AMIInterpolation/AMIInterpolation/AMIInterpolation.C @@ -119,6 +119,37 @@ void Foam::AMIInterpolation::checkPatches } +template +bool Foam::AMIInterpolation::distributed +( + const primitivePatch& srcPatch, + const primitivePatch& tgtPatch +) +{ + if (Pstream::parRun()) + { + List