diff --git a/applications/solvers/combustion/PDRFoam/StCourantNo.H b/applications/solvers/combustion/PDRFoam/StCourantNo.H index f755bb217bec204bc1f955680844fbd38447e611..8fac05d81c00be7dfa7d4ded60c1a2e1ffe84a3c 100644 --- a/applications/solvers/combustion/PDRFoam/StCourantNo.H +++ b/applications/solvers/combustion/PDRFoam/StCourantNo.H @@ -34,17 +34,14 @@ Description if (mesh.nInternalFaces()) { - surfaceScalarField SfUfbyDelta = - mesh.surfaceInterpolation::deltaCoeffs() - *mag(phiSt/fvc::interpolate(rho)); + scalarField sumPhi = + fvc::surfaceSum(mag(phiSt))().internalField() + /rho.internalField(); - StCoNum = - max(SfUfbyDelta/mesh.magSf()).value() - *runTime.deltaTValue(); + StCoNum = 0.5*gMax(sumPhi/mesh.V().field())*runTime.deltaTValue(); meanStCoNum = - (sum(SfUfbyDelta)/sum(mesh.magSf())).value() - *runTime.deltaTValue(); + 0.5*(gSum(sumPhi)/gSum(mesh.V().field()))*runTime.deltaTValue(); } Info<< "St courant Number mean: " << meanStCoNum diff --git a/applications/solvers/incompressible/adjointShapeOptimizationFoam/adjointContinuityErrs.H b/applications/solvers/incompressible/adjointShapeOptimizationFoam/adjointContinuityErrs.H index 1023a26c702b0fb519a3f63af2796fc91e07261e..d4d72cf6eff544b27275e0ac3622ec7615296d24 100644 --- a/applications/solvers/incompressible/adjointShapeOptimizationFoam/adjointContinuityErrs.H +++ b/applications/solvers/incompressible/adjointShapeOptimizationFoam/adjointContinuityErrs.H @@ -30,10 +30,10 @@ Description \*---------------------------------------------------------------------------*/ { - scalar sumLocalContErr = runTime.deltaT().value()* + scalar sumLocalContErr = runTime.deltaTValue()* mag(fvc::div(phia))().weightedAverage(mesh.V()).value(); - scalar globalContErr = runTime.deltaT().value()* + scalar globalContErr = runTime.deltaTValue()* fvc::div(phia)().weightedAverage(mesh.V()).value(); cumulativeContErr += globalContErr; diff --git a/applications/solvers/incompressible/shallowWaterFoam/CourantNo.H b/applications/solvers/incompressible/shallowWaterFoam/CourantNo.H index 65cd8e02cce4219fbcfe3eb7ed4d0d6ae40e6fc5..0dfa24316f288c59ce421092e857991b6e9140f2 100644 --- a/applications/solvers/incompressible/shallowWaterFoam/CourantNo.H +++ b/applications/solvers/incompressible/shallowWaterFoam/CourantNo.H @@ -36,23 +36,23 @@ scalar waveCoNum = 0.0; if (mesh.nInternalFaces()) { - surfaceScalarField SfUfbyDelta = - mesh.surfaceInterpolation::deltaCoeffs() - *mag(phi)/fvc::interpolate(h); + scalarField sumPhi = + fvc::surfaceSum(mag(phi))().internalField() + /h.internalField(); - CoNum = max(SfUfbyDelta/mesh.magSf()) - .value()*runTime.deltaTValue(); + CoNum = 0.5*gMax(sumPhi/mesh.V().field())*runTime.deltaTValue(); - meanCoNum = (sum(SfUfbyDelta)/sum(mesh.magSf())) - .value()*runTime.deltaTValue(); + meanCoNum = + 0.5*(gSum(sumPhi)/gSum(mesh.V().field()))*runTime.deltaTValue(); // Gravity wave Courant number - waveCoNum = - 0.5*max + waveCoNum = 0.25*gMax + ( + fvc::surfaceSum ( - mesh.surfaceInterpolation::deltaCoeffs() - *sqrt(fvc::interpolate(h)) - ).value()*sqrt(magg).value()*runTime.deltaTValue(); + fvc::interpolate(sqrt(h))*mesh.magSf() + )().internalField()/mesh.V().field() + )*sqrt(magg).value()*runTime.deltaTValue(); } Info<< "Courant number mean: " << meanCoNum diff --git a/applications/solvers/multiphase/cavitatingFoam/CourantNo.H b/applications/solvers/multiphase/cavitatingFoam/CourantNo.H index d5c5c53cc69b9ba3e35eabb21177f8deebbdf8a2..8b26ba033e9f5f1352a6640cb625f863a6e622f2 100644 --- a/applications/solvers/multiphase/cavitatingFoam/CourantNo.H +++ b/applications/solvers/multiphase/cavitatingFoam/CourantNo.H @@ -35,19 +35,21 @@ scalar acousticCoNum = 0.0; if (mesh.nInternalFaces()) { - surfaceScalarField SfUfbyDelta = - mesh.surfaceInterpolation::deltaCoeffs()*mag(phiv); + scalarField sumPhi = + fvc::surfaceSum(mag(phiv))().internalField(); - CoNum = max(SfUfbyDelta/mesh.magSf()) - .value()*runTime.deltaTValue(); + CoNum = 0.5*gMax(sumPhi/mesh.V().field())*runTime.deltaTValue(); - meanCoNum = (sum(SfUfbyDelta)/sum(mesh.magSf())) - .value()*runTime.deltaTValue(); + meanCoNum = + 0.5*(gSum(sumPhi)/gSum(mesh.V().field()))*runTime.deltaTValue(); - acousticCoNum = max + acousticCoNum = 0.5*gMax ( - mesh.surfaceInterpolation::deltaCoeffs()/sqrt(fvc::interpolate(psi)) - ).value()*runTime.deltaTValue(); + fvc::surfaceSum + ( + fvc::interpolate(scalar(1)/sqrt(psi))*mesh.magSf() + )().internalField()/mesh.V().field() + )*runTime.deltaTValue(); } Info<< "phiv Courant Number mean: " << meanCoNum diff --git a/applications/solvers/multiphase/cavitatingFoam/cavitatingFoam.C b/applications/solvers/multiphase/cavitatingFoam/cavitatingFoam.C index 42543b3c3718d862ba53661633a27c4501049b13..38ea48ea25050c1d0eecb3ba9f0ba01ef08cb1aa 100644 --- a/applications/solvers/multiphase/cavitatingFoam/cavitatingFoam.C +++ b/applications/solvers/multiphase/cavitatingFoam/cavitatingFoam.C @@ -86,7 +86,7 @@ int main(int argc, char *argv[]) << nl << endl; } - Info<< "\n end \n"; + Info<< "End\n" << endl; return 0; } diff --git a/applications/solvers/multiphase/interFoam/alphaCourantNo.H b/applications/solvers/multiphase/interFoam/alphaCourantNo.H index 12d1b933d40774c0f44e4d4d43e521ed8e0b6e9f..e5edfc76ca1dc79093fd108f2f09252f69f22531 100644 --- a/applications/solvers/multiphase/interFoam/alphaCourantNo.H +++ b/applications/solvers/multiphase/interFoam/alphaCourantNo.H @@ -43,10 +43,10 @@ if (mesh.nInternalFaces()) pos(alpha1 - 0.01)*pos(0.99 - alpha1) *fvc::surfaceSum(mag(phi))().internalField(); - alphaCoNum = 0.5*gMax(sumPhi/mesh.V().field())*runTime.deltaT().value(); + alphaCoNum = 0.5*gMax(sumPhi/mesh.V().field())*runTime.deltaTValue(); meanAlphaCoNum = - 0.5*(gSum(sumPhi)/gSum(mesh.V().field()))*runTime.deltaT().value(); + 0.5*(gSum(sumPhi)/gSum(mesh.V().field()))*runTime.deltaTValue(); } Info<< "Interface Courant Number mean: " << meanAlphaCoNum diff --git a/applications/solvers/multiphase/interFoam/setDeltaT.H b/applications/solvers/multiphase/interFoam/setDeltaT.H index b315dcd1a0695205339b26ae101423a2b0441242..b619ed90f9d44744a6dd0f31fccc23505d94f0a8 100644 --- a/applications/solvers/multiphase/interFoam/setDeltaT.H +++ b/applications/solvers/multiphase/interFoam/setDeltaT.H @@ -42,12 +42,12 @@ if (adjustTimeStep) ( min ( - deltaTFact*runTime.deltaT().value(), + deltaTFact*runTime.deltaTValue(), maxDeltaT ) ); - Info<< "deltaT = " << runTime.deltaT().value() << endl; + Info<< "deltaT = " << runTime.deltaTValue() << endl; } // ************************************************************************* // diff --git a/applications/solvers/multiphase/interMixingFoam/alphaCourantNo.H b/applications/solvers/multiphase/interMixingFoam/alphaCourantNo.H index a560a60d270ffcc3594b6aa9a53cb042c4cb551a..105149f87eaeb5c1d8463c778e322392b01eb7da 100644 --- a/applications/solvers/multiphase/interMixingFoam/alphaCourantNo.H +++ b/applications/solvers/multiphase/interMixingFoam/alphaCourantNo.H @@ -39,20 +39,16 @@ scalar meanAlphaCoNum = 0.0; if (mesh.nInternalFaces()) { - surfaceScalarField alpha1f = fvc::interpolate(alpha1); - surfaceScalarField alpha2f = fvc::interpolate(alpha2); - - surfaceScalarField SfUfbyDelta = max + scalarField sumPhi = max ( - pos(alpha1f - 0.01)*pos(0.99 - alpha1f), - pos(alpha2f - 0.01)*pos(0.99 - alpha2f) - )*mesh.surfaceInterpolation::deltaCoeffs()*mag(phi); + pos(alpha1 - 0.01)*pos(0.99 - alpha1), + pos(alpha2 - 0.01)*pos(0.99 - alpha2) + )*fvc::surfaceSum(mag(phi))().internalField(); - alphaCoNum = max(SfUfbyDelta/mesh.magSf()) - .value()*runTime.deltaT().value(); + alphaCoNum = 0.5*gMax(sumPhi/mesh.V().field())*runTime.deltaTValue(); - meanAlphaCoNum = (sum(SfUfbyDelta)/sum(mesh.magSf())) - .value()*runTime.deltaT().value(); + meanAlphaCoNum = + 0.5*(gSum(sumPhi)/gSum(mesh.V().field()))*runTime.deltaTValue(); } Info<< "Interface Courant Number mean: " << meanAlphaCoNum diff --git a/applications/solvers/multiphase/multiphaseInterFoam/alphaCourantNo.H b/applications/solvers/multiphase/multiphaseInterFoam/alphaCourantNo.H index 50e64f5f51e5773d9f26cf0aa57e869f461b728f..a63ab62103e36c36581d607fd621df9bca405b6a 100644 --- a/applications/solvers/multiphase/multiphaseInterFoam/alphaCourantNo.H +++ b/applications/solvers/multiphase/multiphaseInterFoam/alphaCourantNo.H @@ -39,15 +39,14 @@ scalar meanAlphaCoNum = 0.0; if (mesh.nInternalFaces()) { - surfaceScalarField SfUfbyDelta = - mixture.nearInterface() - *mesh.surfaceInterpolation::deltaCoeffs()*mag(phi); + scalarField sumPhi = + mixture.nearInterface()().internalField() + *fvc::surfaceSum(mag(phi))().internalField(); - alphaCoNum = max(SfUfbyDelta/mesh.magSf()) - .value()*runTime.deltaT().value(); + alphaCoNum = 0.5*gMax(sumPhi/mesh.V().field())*runTime.deltaTValue(); - meanAlphaCoNum = (sum(SfUfbyDelta)/sum(mesh.magSf())) - .value()*runTime.deltaT().value(); + meanAlphaCoNum = + 0.5*(gSum(sumPhi)/gSum(mesh.V().field()))*runTime.deltaTValue(); } Info<< "Interface Courant Number mean: " << meanAlphaCoNum diff --git a/applications/solvers/multiphase/multiphaseInterFoam/multiphaseMixture/multiphaseMixture.C b/applications/solvers/multiphase/multiphaseInterFoam/multiphaseMixture/multiphaseMixture.C index c0582b5c1392ecebd87a2c614e03813fe0add90b..22c45bad7182b33d5e7920f6c5654e0abbd6debd 100644 --- a/applications/solvers/multiphase/multiphaseInterFoam/multiphaseMixture/multiphaseMixture.C +++ b/applications/solvers/multiphase/multiphaseInterFoam/multiphaseMixture/multiphaseMixture.C @@ -457,12 +457,12 @@ Foam::tmp<Foam::volScalarField> Foam::multiphaseMixture::K } -Foam::tmp<Foam::surfaceScalarField> +Foam::tmp<Foam::volScalarField> Foam::multiphaseMixture::nearInterface() const { - tmp<surfaceScalarField> tnearInt + tmp<volScalarField> tnearInt ( - new surfaceScalarField + new volScalarField ( IOobject ( @@ -477,8 +477,7 @@ Foam::multiphaseMixture::nearInterface() const forAllConstIter(PtrDictionary<phase>, phases_, iter) { - surfaceScalarField alphaf = fvc::interpolate(iter()); - tnearInt() = max(tnearInt(), pos(alphaf - 0.01)*pos(0.99 - alphaf)); + tnearInt() = max(tnearInt(), pos(iter() - 0.01)*pos(0.99 - iter())); } return tnearInt; diff --git a/applications/solvers/multiphase/multiphaseInterFoam/multiphaseMixture/multiphaseMixture.H b/applications/solvers/multiphase/multiphaseInterFoam/multiphaseMixture/multiphaseMixture.H index 32a7f1011801caee40772f080cac21eb975d0ea9..6a58813e54e493b4f3cb6e5dd18381a651d502b5 100644 --- a/applications/solvers/multiphase/multiphaseInterFoam/multiphaseMixture/multiphaseMixture.H +++ b/applications/solvers/multiphase/multiphaseInterFoam/multiphaseMixture/multiphaseMixture.H @@ -258,7 +258,7 @@ public: //- Indicator of the proximity of the interface // Field values are 1 near and 0 away for the interface. - tmp<surfaceScalarField> nearInterface() const; + tmp<volScalarField> nearInterface() const; //- Solve for the mixture phase-fractions void solve(); diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/CourantNos.H b/applications/solvers/multiphase/twoPhaseEulerFoam/CourantNos.H index 75dcd68c7fbde8e856b00651af8b22b3fbeb624a..ae6a13feb06fb051428dde4f1fb62fdd3c52e1ef 100644 --- a/applications/solvers/multiphase/twoPhaseEulerFoam/CourantNos.H +++ b/applications/solvers/multiphase/twoPhaseEulerFoam/CourantNos.H @@ -1,11 +1,10 @@ # include "CourantNo.H" { - scalar UrCoNum = max + scalar UrCoNum = 0.5*gMax ( - mesh.surfaceInterpolation::deltaCoeffs()*mag(phia - phib) - /mesh.magSf() - ).value()*runTime.deltaT().value(); + fvc::surfaceSum(mag(phia - phib))().internalField()/mesh.V().field() + )*runTime.deltaTValue(); Info<< "Max Ur Courant Number = " << UrCoNum << endl; diff --git a/applications/utilities/mesh/conversion/ansysToFoam/ansysToFoam.L b/applications/utilities/mesh/conversion/ansysToFoam/ansysToFoam.L index c49dc5db317eadcb12fd9e269b39338bc9c3d7c9..0bab423114b329e6ecc55258318fe93627e90e15 100644 --- a/applications/utilities/mesh/conversion/ansysToFoam/ansysToFoam.L +++ b/applications/utilities/mesh/conversion/ansysToFoam/ansysToFoam.L @@ -569,21 +569,31 @@ int main(int argc, char *argv[]) << "as type patch. Please reset after mesh conversion as necessary." << endl; - wordList patchTypes(patchFaces.size(), polyPatch::typeName); - wordList patchPhysicalTypes(patchFaces.size()); + PtrList<dictionary> patchDicts; preservePatchTypes ( runTime, runTime.constant(), - polyMesh::defaultRegion, + polyMesh::meshSubDir, patchNames, - patchTypes, + patchDicts, defaultFacesName, - defaultFacesType, - patchPhysicalTypes + defaultFacesType ); + // Add information to dictionary + forAll(patchNames, patchI) + { + if (!patchDicts.set(patchI)) + { + patchDicts.set(patchI, new dictionary()); + } + // Add but not overwrite + patchDicts[patchI].add("type", polyPatch::typeName, false); + } + + polyMesh pShapeMesh ( IOobject @@ -596,10 +606,9 @@ int main(int argc, char *argv[]) cellShapes, patchFaces, patchNames, - patchTypes, + patchDicts, defaultFacesName, - defaultFacesType, - patchPhysicalTypes + defaultFacesType ); diff --git a/applications/utilities/mesh/conversion/cfx4ToFoam/cfx4ToFoam.C b/applications/utilities/mesh/conversion/cfx4ToFoam/cfx4ToFoam.C index 2de1b840e9109fa0188157b5ced5e5198b89d57e..ff0f80df53bf3fa3a73233cd654ffc34c7b1aa84 100644 --- a/applications/utilities/mesh/conversion/cfx4ToFoam/cfx4ToFoam.C +++ b/applications/utilities/mesh/conversion/cfx4ToFoam/cfx4ToFoam.C @@ -578,7 +578,6 @@ int main(int argc, char *argv[]) wordList patchTypes(npatch); word defaultFacesName = "defaultFaces"; word defaultFacesType = wallPolyPatch::typeName; - wordList patchPhysicalTypes(npatch); label nCreatedPatches = 0; @@ -707,18 +706,30 @@ int main(int argc, char *argv[]) patchTypes.setSize(nCreatedPatches); patchNames.setSize(nCreatedPatches); + PtrList<dictionary> patchDicts; + preservePatchTypes ( runTime, runTime.constant(), - polyMesh::defaultRegion, + polyMesh::meshSubDir, patchNames, - patchTypes, + patchDicts, defaultFacesName, - defaultFacesType, - patchPhysicalTypes + defaultFacesType ); + // Add information to dictionary + forAll(patchNames, patchI) + { + if (!patchDicts.set(patchI)) + { + patchDicts.set(patchI, new dictionary()); + } + // Add but not overwrite + patchDicts[patchI].add("type", patchTypes[patchI], false); + } + polyMesh pShapeMesh ( IOobject @@ -731,10 +742,9 @@ int main(int argc, char *argv[]) cellShapes, boundary, patchNames, - patchTypes, + patchDicts, defaultFacesName, - defaultFacesType, - patchPhysicalTypes + defaultFacesType ); // Set the precision of the points data to 10 diff --git a/applications/utilities/mesh/conversion/fluentMeshToFoam/fluentMeshToFoam.L b/applications/utilities/mesh/conversion/fluentMeshToFoam/fluentMeshToFoam.L index 619374396ffc78da2130b8789eff6ffece805cb3..51d3cd97ea4bd2ddf14d5d365ffeec8bf4ba4bd0 100644 --- a/applications/utilities/mesh/conversion/fluentMeshToFoam/fluentMeshToFoam.L +++ b/applications/utilities/mesh/conversion/fluentMeshToFoam/fluentMeshToFoam.L @@ -45,7 +45,6 @@ Description #include "emptyPolyPatch.H" #include "wallPolyPatch.H" #include "symmetryPolyPatch.H" -#include "preservePatchTypes.H" #include "cellShape.H" #include "faceSet.H" #include "cellSet.H" @@ -1542,17 +1541,6 @@ int main(int argc, char *argv[]) } repatcher.repatch(); - preservePatchTypes - ( - runTime, - runTime.constant(), - polyMesh::defaultRegion, - patchNames, - patchTypes, - defaultFacesName, - defaultFacesType, - patchPhysicalTypes - ); // Set the precision of the points data to 10 IOstream::defaultPrecision(10); diff --git a/applications/utilities/mesh/conversion/gambitToFoam/gambitToFoam.L b/applications/utilities/mesh/conversion/gambitToFoam/gambitToFoam.L index c1d2b44e829805db413afbaec3e6fde7b775791c..bdb3a38c842177ae61e790c4d8e2f1526bd8ba22 100644 --- a/applications/utilities/mesh/conversion/gambitToFoam/gambitToFoam.L +++ b/applications/utilities/mesh/conversion/gambitToFoam/gambitToFoam.L @@ -818,24 +818,32 @@ int main(int argc, char *argv[]) // Scale points points *= scaleFactor; - wordList patchTypes(boundary.size(), polyPatch::typeName); + PtrList<dictionary> patchDicts(boundary.size()); word defaultFacesName = "defaultFaces"; word defaultFacesType = emptyPolyPatch::typeName; - wordList patchPhysicalTypes(boundary.size()); preservePatchTypes ( runTime, runTime.constant(), - polyMesh::defaultRegion, + polyMesh::meshSubDir, patchNames, - patchTypes, + patchDicts, defaultFacesName, - defaultFacesType, - patchPhysicalTypes + defaultFacesType ); - // Mesh will auto-write on construction + // Add information to dictionary + forAll(patchNames, patchI) + { + if (!patchDicts.set(patchI)) + { + patchDicts.set(patchI, new dictionary()); + } + // Add but not overwrite + patchDicts[patchI].add("type", polyPatch::typeName, false); + } + polyMesh pShapeMesh ( IOobject @@ -848,10 +856,9 @@ int main(int argc, char *argv[]) cells, boundary, patchNames, - patchTypes, + patchDicts, defaultFacesName, - defaultFacesType, - patchPhysicalTypes + defaultFacesType ); // Set the precision of the points data to 10 diff --git a/applications/utilities/mesh/conversion/kivaToFoam/readKivaGrid.H b/applications/utilities/mesh/conversion/kivaToFoam/readKivaGrid.H index d4356c2cdcc1fd12ecffd32f9f780130acc3f938..04b36020ea210bf0e3a5d88e8ea8e8297d2d36e2 100644 --- a/applications/utilities/mesh/conversion/kivaToFoam/readKivaGrid.H +++ b/applications/utilities/mesh/conversion/kivaToFoam/readKivaGrid.H @@ -459,7 +459,6 @@ wordList patchNames(nPatches); wordList patchTypes(nPatches); word defaultFacesName = "defaultFaces"; word defaultFacesType = emptyPolyPatch::typeName; -wordList patchPhysicalTypes(nPatches); label nAddedPatches = 0; @@ -535,17 +534,27 @@ forAll(boundary, patchi) } } +PtrList<dictionary> patchDicts; preservePatchTypes ( runTime, runTime.constant(), - polyMesh::defaultRegion, + polyMesh::meshSubDir, patchNames, - patchTypes, + patchDicts, defaultFacesName, - defaultFacesType, - patchPhysicalTypes + defaultFacesType ); +// Add information to dictionary +forAll(patchNames, patchI) +{ + if (!patchDicts.set(patchI)) + { + patchDicts.set(patchI, new dictionary()); + } + // Add but not overwrite + patchDicts[patchI].add("type", patchTypes[patchI], false); +} // Build the mesh and write it out polyMesh pShapeMesh @@ -560,10 +569,9 @@ polyMesh pShapeMesh cellShapes, boundary, patchNames, - patchTypes, + patchDicts, defaultFacesName, - defaultFacesType, - patchPhysicalTypes + defaultFacesType ); Info << "Writing polyMesh" << endl; diff --git a/applications/utilities/mesh/conversion/plot3dToFoam/plot3dToFoam.C b/applications/utilities/mesh/conversion/plot3dToFoam/plot3dToFoam.C index 40db7f47b57530d20ca0207686be62d15b4853dd..806b4fdfcc2129a8d5471dc3930ba0b22ded73bc 100644 --- a/applications/utilities/mesh/conversion/plot3dToFoam/plot3dToFoam.C +++ b/applications/utilities/mesh/conversion/plot3dToFoam/plot3dToFoam.C @@ -43,7 +43,6 @@ Description #include "polyMesh.H" #include "wallPolyPatch.H" #include "symmetryPolyPatch.H" -#include "preservePatchTypes.H" #include "cellShape.H" #include "cellModeller.H" #include "mergePoints.H" diff --git a/applications/utilities/mesh/conversion/sammToFoam/readBoundary.C b/applications/utilities/mesh/conversion/sammToFoam/readBoundary.C index b1ec1b772e50712d398d0617f7b755c64e122f15..53dffd39c6bca64173bc5b5d6f7881e02d9e72ea 100644 --- a/applications/utilities/mesh/conversion/sammToFoam/readBoundary.C +++ b/applications/utilities/mesh/conversion/sammToFoam/readBoundary.C @@ -230,17 +230,28 @@ void sammMesh::readBoundary() patchPhysicalTypes_.setSize(patchTypes_.size()); + PtrList<dictionary> patchDicts; + preservePatchTypes ( runTime_, runTime_.constant(), - polyMesh::defaultRegion, + polyMesh::meshSubDir, patchNames_, - patchTypes_, + patchDicts, defaultFacesName_, - defaultFacesType_, - patchPhysicalTypes_ + defaultFacesType_ ); + + forAll(patchDicts, patchI) + { + if (patchDicts.set(patchI)) + { + const dictionary& dict = patchDicts[patchI]; + dict.readIfPresent("type", patchTypes_[patchI]); + dict.readIfPresent("physicalType", patchPhysicalTypes_[patchI]); + } + } } diff --git a/applications/utilities/mesh/conversion/star3ToFoam/readBoundary.C b/applications/utilities/mesh/conversion/star3ToFoam/readBoundary.C index be29c36cd127a36b72361b30d5fbad99c2b0bc17..a96ee6e96bb71a7df1ae627caf201cce00339f51 100644 --- a/applications/utilities/mesh/conversion/star3ToFoam/readBoundary.C +++ b/applications/utilities/mesh/conversion/star3ToFoam/readBoundary.C @@ -228,17 +228,28 @@ void starMesh::readBoundary() patchPhysicalTypes_.setSize(patchTypes_.size()); + PtrList<dictionary> patchDicts; + preservePatchTypes ( runTime_, runTime_.constant(), - polyMesh::defaultRegion, + polyMesh::meshSubDir, patchNames_, - patchTypes_, + patchDicts, defaultFacesName_, - defaultFacesType_, - patchPhysicalTypes_ + defaultFacesType_ ); + + forAll(patchDicts, patchI) + { + if (patchDicts.set(patchI)) + { + const dictionary& dict = patchDicts[patchI]; + dict.readIfPresent("type", patchTypes_[patchI]); + dict.readIfPresent("physicalType", patchPhysicalTypes_[patchI]); + } + } } diff --git a/applications/utilities/mesh/generation/blockMesh/blockMeshApp.C b/applications/utilities/mesh/generation/blockMesh/blockMeshApp.C index a0baebaae710f6e487bd78766da9a324f9833848..a85a4e417fa809c316f5c71b4418aed304809d0a 100644 --- a/applications/utilities/mesh/generation/blockMesh/blockMeshApp.C +++ b/applications/utilities/mesh/generation/blockMesh/blockMeshApp.C @@ -52,7 +52,6 @@ Usage #include "blockMesh.H" #include "attachPolyTopoChanger.H" -#include "preservePatchTypes.H" #include "emptyPolyPatch.H" #include "cellSet.H" @@ -219,6 +218,7 @@ int main(int argc, char *argv[]) xferCopy(blocks.points()), // could we re-use space? blocks.cells(), blocks.patches(), + blocks.patchNames(), blocks.patchDicts(), defaultFacesName, defaultFacesType diff --git a/applications/utilities/mesh/generation/snappyHexMesh/Make/options b/applications/utilities/mesh/generation/snappyHexMesh/Make/options index 3c224d318f30494944293e18f2682bdcb771bc83..b7fd6d3bd227e7ed7d2bf9f5b6c79121d34a1446 100644 --- a/applications/utilities/mesh/generation/snappyHexMesh/Make/options +++ b/applications/utilities/mesh/generation/snappyHexMesh/Make/options @@ -11,7 +11,7 @@ EXE_INC = \ EXE_LIBS = \ -lfiniteVolume \ -ldecompositionMethods \ - -L$(FOAM_MPI_LIBBIN) -lptscotchDecomp \ + -L$(FOAM_LIBBIN)/dummy -lptscotchDecomp \ -lmeshTools \ -ldynamicMesh \ -lautoMesh diff --git a/applications/utilities/mesh/manipulation/createBaffles/SetPatchFields.C b/applications/utilities/mesh/manipulation/createBaffles/SetPatchFields.C new file mode 100644 index 0000000000000000000000000000000000000000..25de86d62f67b10b46af4ed03ef93ed989b62912 --- /dev/null +++ b/applications/utilities/mesh/manipulation/createBaffles/SetPatchFields.C @@ -0,0 +1,47 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd. + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. + +\*---------------------------------------------------------------------------*/ + +#include "SetPatchFields.H" + +// * * * * * * * * * * * * * * * Global Functions * * * * * * * * * * * * * // + +template<class GeoField> +void Foam::SetPatchFields +( + PtrList<GeoField>& fields, + const label patchI, + const typename GeoField::value_type& initVal +) +{ + forAll(fields, i) + { + typename GeoField::PatchFieldType& pfld = + fields[i].boundaryField()[patchI]; + pfld == initVal; + } +} + + +// ************************************************************************* // diff --git a/applications/utilities/mesh/manipulation/createBaffles/SetPatchFields.H b/applications/utilities/mesh/manipulation/createBaffles/SetPatchFields.H new file mode 100644 index 0000000000000000000000000000000000000000..1dcb1e346a4126865d41129ea56752ebf69fb7df --- /dev/null +++ b/applications/utilities/mesh/manipulation/createBaffles/SetPatchFields.H @@ -0,0 +1,66 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd. + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. + +Global + Foam::SetPatchFields + +Description + Helper routine to initialise a patch field to a constant value + +SourceFiles + SetPatchFields.C + +\*---------------------------------------------------------------------------*/ + +#ifndef SetPatchFields_H +#define SetPatchFields_H + +#include "PtrList.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + +//- Helper routine to read fields +template<class GeoField> +void SetPatchFields +( + PtrList<GeoField>& fields, + const label patchI, + const typename GeoField::value_type& initVal +); + +} // End namespace Foam + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#ifdef NoRepository +# include "SetPatchFields.C" +#endif + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/applications/utilities/mesh/manipulation/createBaffles/createBaffles.C b/applications/utilities/mesh/manipulation/createBaffles/createBaffles.C index f01c2cd602292ab4447c4217dde64a728ff44a81..a94dc421443892056b6b2ab7684d4af34f25e32b 100644 --- a/applications/utilities/mesh/manipulation/createBaffles/createBaffles.C +++ b/applications/utilities/mesh/manipulation/createBaffles/createBaffles.C @@ -43,6 +43,8 @@ Description #include "volFields.H" #include "surfaceFields.H" #include "ZoneIDs.H" +#include "fvMeshMapper.H" +#include "SetPatchFields.H" using namespace Foam; @@ -241,45 +243,39 @@ int main(int argc, char *argv[]) IOobjectList objects(mesh, runTime.timeName()); // Read vol fields. - if (args.optionFound("updateFields")) - { - Info<< "Reading geometric fields" << nl << endl; - PtrList<volScalarField> vsFlds; - ReadFields(mesh, objects, vsFlds); + Info<< "Reading geometric fields" << nl << endl; + PtrList<volScalarField> vsFlds; + ReadFields(mesh, objects, vsFlds); - PtrList<volVectorField> vvFlds; - ReadFields(mesh, objects, vvFlds); + PtrList<volVectorField> vvFlds; + ReadFields(mesh, objects, vvFlds); - PtrList<volSphericalTensorField> vstFlds; - ReadFields(mesh, objects, vstFlds); + PtrList<volSphericalTensorField> vstFlds; + ReadFields(mesh, objects, vstFlds); - PtrList<volSymmTensorField> vsymtFlds; - ReadFields(mesh, objects, vsymtFlds); + PtrList<volSymmTensorField> vsymtFlds; + ReadFields(mesh, objects, vsymtFlds); - PtrList<volTensorField> vtFlds; - ReadFields(mesh, objects, vtFlds); + PtrList<volTensorField> vtFlds; + ReadFields(mesh, objects, vtFlds); - // Read surface fields. + // Read surface fields. - PtrList<surfaceScalarField> ssFlds; - ReadFields(mesh, objects, ssFlds); + PtrList<surfaceScalarField> ssFlds; + ReadFields(mesh, objects, ssFlds); - PtrList<surfaceVectorField> svFlds; - ReadFields(mesh, objects, svFlds); + PtrList<surfaceVectorField> svFlds; + ReadFields(mesh, objects, svFlds); - PtrList<surfaceSphericalTensorField> sstFlds; - ReadFields(mesh, objects, sstFlds); + PtrList<surfaceSphericalTensorField> sstFlds; + ReadFields(mesh, objects, sstFlds); - PtrList<surfaceSymmTensorField> ssymtFlds; - ReadFields(mesh, objects, ssymtFlds); + PtrList<surfaceSymmTensorField> ssymtFlds; + ReadFields(mesh, objects, ssymtFlds); + + PtrList<surfaceTensorField> stFlds; + ReadFields(mesh, objects, stFlds); - PtrList<surfaceTensorField> stFlds; - ReadFields(mesh, objects, stFlds); - } - else - { - Info<< "Not updating geometric fields" << nl << endl; - } // Mesh change container polyTopoChange meshMod(mesh); @@ -484,6 +480,58 @@ int main(int argc, char *argv[]) // Update fields mesh.updateMesh(map); + // Correct boundary faces mapped-out-of-nothing. + { + fvMeshMapper mapper(mesh, map); + bool hasWarned = false; + forAll(newMasterPatches, i) + { + label patchI = newMasterPatches[i]; + const fvPatchMapper& pm = mapper.boundaryMap()[patchI]; + if (pm.sizeBeforeMapping() == 0) + { + if (!hasWarned) + { + hasWarned = true; + WarningIn(args.executable()) + << "Setting field on boundary faces to zero." << endl + << "You might have to edit these fields." << endl; + } + + SetPatchFields(vsFlds, patchI, pTraits<scalar>::zero); + SetPatchFields(vvFlds, patchI, pTraits<vector>::zero); + SetPatchFields(vstFlds, patchI, pTraits<sphericalTensor>::zero); + SetPatchFields(vsymtFlds, patchI, pTraits<symmTensor>::zero); + SetPatchFields(vtFlds, patchI, pTraits<tensor>::zero); + + SetPatchFields(ssFlds, patchI, pTraits<scalar>::zero); + SetPatchFields(svFlds, patchI, pTraits<vector>::zero); + SetPatchFields(sstFlds, patchI, pTraits<sphericalTensor>::zero); + SetPatchFields(ssymtFlds, patchI, pTraits<symmTensor>::zero); + SetPatchFields(stFlds, patchI, pTraits<tensor>::zero); + } + } + forAll(newSlavePatches, i) + { + label patchI = newSlavePatches[i]; + const fvPatchMapper& pm = mapper.boundaryMap()[patchI]; + if (pm.sizeBeforeMapping() == 0) + { + SetPatchFields(vsFlds, patchI, pTraits<scalar>::zero); + SetPatchFields(vvFlds, patchI, pTraits<vector>::zero); + SetPatchFields(vstFlds, patchI, pTraits<sphericalTensor>::zero); + SetPatchFields(vsymtFlds, patchI, pTraits<symmTensor>::zero); + SetPatchFields(vtFlds, patchI, pTraits<tensor>::zero); + + SetPatchFields(ssFlds, patchI, pTraits<scalar>::zero); + SetPatchFields(svFlds, patchI, pTraits<vector>::zero); + SetPatchFields(sstFlds, patchI, pTraits<sphericalTensor>::zero); + SetPatchFields(ssymtFlds, patchI, pTraits<symmTensor>::zero); + SetPatchFields(stFlds, patchI, pTraits<tensor>::zero); + } + } + } + // Move mesh (since morphing might not do this) if (map().hasMotionPoints()) { diff --git a/applications/utilities/parallelProcessing/decomposePar/Make/options b/applications/utilities/parallelProcessing/decomposePar/Make/options index 3ae212823440541065f3aeda405c4f7ce22de67d..7a9f1df3f592ddf510c6a99c6754d3dc5cd20ecb 100644 --- a/applications/utilities/parallelProcessing/decomposePar/Make/options +++ b/applications/utilities/parallelProcessing/decomposePar/Make/options @@ -7,6 +7,6 @@ EXE_INC = \ EXE_LIBS = \ -lfiniteVolume \ -lgenericPatchFields \ - -ldecompositionMethods -lmetisDecomp -lscotchDecomp \ + -ldecompositionMethods -L$(FOAM_LIBBIN)/dummy -lmetisDecomp -lscotchDecomp \ -llagrangian \ -lmeshTools diff --git a/applications/utilities/parallelProcessing/redistributeMeshPar/Make/options b/applications/utilities/parallelProcessing/redistributeMeshPar/Make/options index 505234515d4b4fa97ee613d80757bb0ae0f702a2..05d603887ae46ae67c32b141d860c8f155a6dec7 100644 --- a/applications/utilities/parallelProcessing/redistributeMeshPar/Make/options +++ b/applications/utilities/parallelProcessing/redistributeMeshPar/Make/options @@ -7,6 +7,6 @@ EXE_INC = \ EXE_LIBS = \ -lfiniteVolume \ -ldecompositionMethods \ - -L$(FOAM_MPI_LIBBIN) -lptscotchDecomp \ + -L$(FOAM_LIBBIN)/dummy -lptscotchDecomp \ -lmeshTools \ -ldynamicMesh diff --git a/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightMesh.C b/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightMesh.C index 06aeb3291a26a0a9205736697e72f5e236639d5a..6216228961504504dad5cafa7dc61b69d69c5a20 100644 --- a/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightMesh.C +++ b/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightMesh.C @@ -163,6 +163,7 @@ void Foam::ensightMesh::correct() prisms.setSize(nPrisms); wedges.setSize(nWedges); hexes.setSize(nHexes); + hexesWedges.setSize(nHexesWedges); polys.setSize(nPolys); meshCellSets_.nTets = nTets; diff --git a/src/OpenFOAM/meshes/polyMesh/polyMesh.H b/src/OpenFOAM/meshes/polyMesh/polyMesh.H index 62df97511ca5b5fbe6cdfc9eb7766cd188c5f306..74fd718da3998ec8586e0ee0bac4fe4a8a3ec23a 100644 --- a/src/OpenFOAM/meshes/polyMesh/polyMesh.H +++ b/src/OpenFOAM/meshes/polyMesh/polyMesh.H @@ -280,6 +280,7 @@ public: const Xfer<pointField>& points, const cellShapeList& shapes, const faceListList& boundaryFaces, + const wordList& boundaryPatchNames, const PtrList<dictionary>& boundaryDicts, const word& defaultBoundaryPatchName, const word& defaultBoundaryPatchType, diff --git a/src/OpenFOAM/meshes/polyMesh/polyMeshFromShapeMesh.C b/src/OpenFOAM/meshes/polyMesh/polyMeshFromShapeMesh.C index 73434502f4532f32eba38527107a1827287e01d2..f7b1052bfe13514b662f24d88dcd489f0831abe7 100644 --- a/src/OpenFOAM/meshes/polyMesh/polyMeshFromShapeMesh.C +++ b/src/OpenFOAM/meshes/polyMesh/polyMeshFromShapeMesh.C @@ -698,6 +698,7 @@ Foam::polyMesh::polyMesh const Xfer<pointField>& points, const cellShapeList& cellsAsShapes, const faceListList& boundaryFaces, + const wordList& boundaryPatchNames, const PtrList<dictionary>& boundaryDicts, const word& defaultBoundaryPatchName, const word& defaultBoundaryPatchType, @@ -832,12 +833,6 @@ Foam::polyMesh::polyMesh // Remove all of the old mesh files if they exist removeFiles(instance()); - wordList boundaryPatchNames(boundaryDicts.size()); - forAll(boundaryDicts, patchI) - { - boundaryDicts[patchI].lookup("name") >> boundaryPatchNames[patchI]; - } - // Calculate faces and cells labelList patchSizes; labelList patchStarts; @@ -858,7 +853,7 @@ Foam::polyMesh::polyMesh // Warning: Patches can only be added once the face list is // completed, as they hold a subList of the face list - forAll(boundaryFaces, patchI) + forAll(boundaryDicts, patchI) { dictionary patchDict(boundaryDicts[patchI]); diff --git a/src/OpenFOAM/meshes/polyMesh/polyPatches/constraint/cyclic/cyclicPolyPatch.C b/src/OpenFOAM/meshes/polyMesh/polyPatches/constraint/cyclic/cyclicPolyPatch.C index 330b912fb90eeb8b0a24d9f0858bc113adc10dbd..f86bfa49de1934a096ad00a2d767f70e093d8fa2 100644 --- a/src/OpenFOAM/meshes/polyMesh/polyPatches/constraint/cyclic/cyclicPolyPatch.C +++ b/src/OpenFOAM/meshes/polyMesh/polyPatches/constraint/cyclic/cyclicPolyPatch.C @@ -91,44 +91,58 @@ void Foam::cyclicPolyPatch::calcTransforms() // Half0 const cyclicPolyPatch& half0 = *this; - - const pointField& half0Ctrs = half0.faceCentres(); - - if (debug) - { - fileName casePath(boundaryMesh().mesh().time().path()); - - fileName nm0(casePath/name()+"_faces.obj"); - Pout<< "cyclicPolyPatch::calcTransforms : Writing " << name() - << " faces to OBJ file " << nm0 << endl; - writeOBJ(nm0, half0, half0.points()); - } - vectorField half0Areas(half0.size()); - forAll(half0, facei) { half0Areas[facei] = half0[facei].normal(half0.points()); } - - // Half1 - const cyclicPolyPatch& half1 = neighbPatch(); + vectorField half1Areas(half1.size()); + forAll(half1, facei) + { + half1Areas[facei] = half1[facei].normal(half1.points()); + } - const pointField& half1Ctrs = half1.faceCentres(); + calcTransforms + ( + half0, + half0.faceCentres(), + half0Areas, + half1.faceCentres(), + half1Areas + ); + } +} - // Dump halves - if (debug) - { - fileName casePath(boundaryMesh().mesh().time().path()); +void Foam::cyclicPolyPatch::calcTransforms +( + const primitivePatch& half0, + const UList<point>& half0Ctrs, + const UList<point>& half0Areas, + const UList<point>& half1Ctrs, + const UList<point>& half1Areas +) +{ + if (debug && owner()) + { + fileName casePath(boundaryMesh().mesh().time().path()); + { + fileName nm0(casePath/name()+"_faces.obj"); + Pout<< "cyclicPolyPatch::calcTransforms : Writing " << name() + << " faces to OBJ file " << nm0 << endl; + writeOBJ(nm0, half0, half0.points()); + } + const cyclicPolyPatch& half1 = neighbPatch(); + { fileName nm1(casePath/half1.name()+"_faces.obj"); Pout<< "cyclicPolyPatch::calcTransforms : Writing " << half1.name() << " faces to OBJ file " << nm1 << endl; writeOBJ(nm1, half1, half1.points()); - + } + { OFstream str(casePath/name()+"_to_" + half1.name() + ".obj"); label vertI = 0; Pout<< "cyclicPolyPatch::calcTransforms :" @@ -145,35 +159,10 @@ void Foam::cyclicPolyPatch::calcTransforms() str << "l " << vertI-1 << ' ' << vertI << nl; } } - - vectorField half1Areas(half1.size()); - - forAll(half1, facei) - { - half1Areas[facei] = half1[facei].normal(half1.points()); - } - - calcTransforms - ( - half0, - half0Ctrs, - half0Areas, - half1Ctrs, - half1Areas - ); } -} -void Foam::cyclicPolyPatch::calcTransforms -( - const primitivePatch& half0, - const UList<point>& half0Ctrs, - const UList<point>& half0Areas, - const UList<point>& half1Ctrs, - const UList<point>& half1Areas -) -{ + if (half0Ctrs.size() != half1Ctrs.size()) { FatalErrorIn diff --git a/src/OpenFOAM/meshes/preservePatchTypes/preservePatchTypes.C b/src/OpenFOAM/meshes/preservePatchTypes/preservePatchTypes.C index 384e718d078f480984e424f90f4aa2c6122c6b75..c040e777aee36aafc02c6055507e978105844893 100644 --- a/src/OpenFOAM/meshes/preservePatchTypes/preservePatchTypes.C +++ b/src/OpenFOAM/meshes/preservePatchTypes/preservePatchTypes.C @@ -25,7 +25,6 @@ License #include "preservePatchTypes.H" #include "polyBoundaryMeshEntries.H" -#include "dictionary.H" // * * * * * * * * * * * * * * * Global Functions * * * * * * * * * * * * * // @@ -35,14 +34,16 @@ void Foam::preservePatchTypes const word& meshInstance, const fileName& meshDir, const wordList& patchNames, - wordList& patchTypes, + PtrList<dictionary>& patchDicts, const word& defaultFacesName, - word& defaultFacesType, - wordList& patchPhysicalTypes + word& defaultFacesType ) { + patchDicts.setSize(patchNames.size()); + dictionary patchDictionary; + // Read boundary file as single dictionary { IOobject patchEntriesHeader ( @@ -67,33 +68,25 @@ void Foam::preservePatchTypes } } - if (patchDictionary.size()) + forAll(patchNames, patchi) { - forAll(patchNames, patchi) + if (patchDictionary.found(patchNames[patchi])) { - if (patchDictionary.found(patchNames[patchi])) - { - const dictionary& patchDict = - patchDictionary.subDict(patchNames[patchi]); - - patchDict.lookup("type") >> patchTypes[patchi]; + const dictionary& patchDict = + patchDictionary.subDict(patchNames[patchi]); - patchDict.readIfPresent("geometricType", patchTypes[patchi]); - patchDict.readIfPresent - ( - "physicalType", - patchPhysicalTypes[patchi] - ); - } + patchDicts.set(patchi, patchDict.clone()); + patchDicts[patchi].remove("nFaces"); + patchDicts[patchi].remove("startFace"); } + } - if (patchDictionary.found(defaultFacesName)) - { - const dictionary& patchDict = - patchDictionary.subDict(defaultFacesName); + if (patchDictionary.found(defaultFacesName)) + { + const dictionary& patchDict = + patchDictionary.subDict(defaultFacesName); - patchDict.readIfPresent("geometricType", defaultFacesType); - } + patchDict.readIfPresent("geometricType", defaultFacesType); } Info<< nl << "Default patch type set to " << defaultFacesType << endl; diff --git a/src/OpenFOAM/meshes/preservePatchTypes/preservePatchTypes.H b/src/OpenFOAM/meshes/preservePatchTypes/preservePatchTypes.H index 5ecf1b34ee98272bd1ee935dda12b65798c20f4a..59375fac795c288e741c1f550bca213237b3d7df 100644 --- a/src/OpenFOAM/meshes/preservePatchTypes/preservePatchTypes.H +++ b/src/OpenFOAM/meshes/preservePatchTypes/preservePatchTypes.H @@ -37,6 +37,7 @@ SourceFiles #include "fileName.H" #include "wordList.H" +#include "dictionary.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -52,10 +53,9 @@ void preservePatchTypes const word& meshInstance, const fileName& meshDir, const wordList& patchNames, - wordList& patchTypes, + PtrList<dictionary>& patchDicts, const word& defaultFacesName, - word& defaultFacesType, - wordList& patchPhysicalTypes + word& defaultFacesType ); } // End namespace Foam diff --git a/src/OpenFOAM/meshes/primitiveShapes/plane/plane.C b/src/OpenFOAM/meshes/primitiveShapes/plane/plane.C index d4407a7d6881ebcb0195bcc7574343e5c0aad733..8ced550982428bbe2cf3778dbbe0ce8686b6e8ca 100644 --- a/src/OpenFOAM/meshes/primitiveShapes/plane/plane.C +++ b/src/OpenFOAM/meshes/primitiveShapes/plane/plane.C @@ -272,10 +272,10 @@ const Foam::point& Foam::plane::refPoint() const } -// Return coefficcients for plane equation: ax + by + cz + d = 0 -Foam::scalarList Foam::plane::planeCoeffs() const +// Return coefficients for plane equation: ax + by + cz + d = 0 +Foam::FixedList<Foam::scalar, 4> Foam::plane::planeCoeffs() const { - scalarList C(4); + FixedList<scalar, 4> C(4); scalar magX = mag(unitVector_.x()); scalar magY = mag(unitVector_.y()); @@ -291,8 +291,8 @@ Foam::scalarList Foam::plane::planeCoeffs() const } else { - C[0] = 0; - C[1] = 0; + C[0] = unitVector_.x()/unitVector_.z(); + C[1] = unitVector_.y()/unitVector_.z(); C[2] = 1; } } @@ -300,14 +300,14 @@ Foam::scalarList Foam::plane::planeCoeffs() const { if (magY > magZ) { - C[0] = 0; + C[0] = unitVector_.x()/unitVector_.y(); C[1] = 1; C[2] = unitVector_.z()/unitVector_.y(); } else { - C[0] = 0; - C[1] = 0; + C[0] = unitVector_.x()/unitVector_.z(); + C[1] = unitVector_.y()/unitVector_.z(); C[2] = 1; } } @@ -422,19 +422,18 @@ Foam::point Foam::plane::planePlaneIntersect const plane& plane3 ) const { - List<scalarList> pcs(3); - pcs[0]= planeCoeffs(); - pcs[1]= plane2.planeCoeffs(); - pcs[2]= plane3.planeCoeffs(); + FixedList<scalar, 4> coeffs1(planeCoeffs()); + FixedList<scalar, 4> coeffs2(plane2.planeCoeffs()); + FixedList<scalar, 4> coeffs3(plane3.planeCoeffs()); tensor a ( - pcs[0][0],pcs[0][1],pcs[0][2], - pcs[1][0],pcs[1][1],pcs[1][2], - pcs[2][0],pcs[2][1],pcs[2][2] + coeffs1[0],coeffs1[1],coeffs1[2], + coeffs2[0],coeffs2[1],coeffs2[2], + coeffs3[0],coeffs3[1],coeffs3[2] ); - vector b(pcs[0][3],pcs[1][3],pcs[2][3]); + vector b(coeffs1[3],coeffs2[3],coeffs3[3]); return (inv(a) & (-b)); } diff --git a/src/OpenFOAM/meshes/primitiveShapes/plane/plane.H b/src/OpenFOAM/meshes/primitiveShapes/plane/plane.H index 44eb20cbc07a2d3178dbbd9b4a2d9b947688375f..89fb6afd282050b2d7ef78f812d6c958e9c91e24 100644 --- a/src/OpenFOAM/meshes/primitiveShapes/plane/plane.H +++ b/src/OpenFOAM/meshes/primitiveShapes/plane/plane.H @@ -149,7 +149,7 @@ public: //- Return coefficients for the // plane equation: ax + by + cz + d = 0 - scalarList planeCoeffs() const; + FixedList<scalar, 4> planeCoeffs() const; //- Return nearest point in the plane for the given point point nearestPoint(const point& p) const; diff --git a/src/conversion/meshReader/createPolyBoundary.C b/src/conversion/meshReader/createPolyBoundary.C index 16a7e7a31d3d48284623744011504581f801a87a..16ea5d2a980992493f4d3f8e905d0dbf7621bc67 100644 --- a/src/conversion/meshReader/createPolyBoundary.C +++ b/src/conversion/meshReader/createPolyBoundary.C @@ -412,6 +412,8 @@ Foam::meshReader::polyBoundaryPatches(const polyMesh& mesh) List<polyPatch*> p(nPatches); + // All patch dictionaries + PtrList<dictionary> patchDicts(patchNames_.size()); // Default boundary patch types word defaultFacesType(emptyPolyPatch::typeName); @@ -422,20 +424,37 @@ Foam::meshReader::polyBoundaryPatches(const polyMesh& mesh) mesh.instance(), mesh.meshDir(), patchNames_, - patchTypes_, + patchDicts, "defaultFaces", - defaultFacesType, - patchPhysicalTypes_ + defaultFacesType ); + forAll(patchDicts, patchI) + { + if (!patchDicts.set(patchI)) + { + patchDicts.set(patchI, new dictionary()); + } + dictionary& patchDict = patchDicts[patchI]; + + // add but not overwrite type + patchDict.add("type", patchTypes_[patchI], false); + if (patchPhysicalTypes_.size() && patchPhysicalTypes_[patchI].size()) + { + patchDict.add("startFace", patchPhysicalTypes_[patchI], false); + } + + // overwrite sizes and start + patchDict.add("nFaces", patchSizes_[patchI], true); + patchDict.add("startFace", patchStarts_[patchI], true); + } + forAll(patchStarts_, patchI) { p[patchI] = polyPatch::New ( - patchTypes_[patchI], patchNames_[patchI], - patchSizes_[patchI], - patchStarts_[patchI], + patchDicts[patchI], patchI, mesh.boundaryMesh() ).ptr(); diff --git a/src/dynamicFvMesh/include/meshCourantNo.H b/src/dynamicFvMesh/include/meshCourantNo.H index 9ac0cb482fccaa9b2d4aeb9fc0a13e2eef635b05..501611db18d2c635adf4454a5a6383eb9c42c7d6 100644 --- a/src/dynamicFvMesh/include/meshCourantNo.H +++ b/src/dynamicFvMesh/include/meshCourantNo.H @@ -34,14 +34,13 @@ scalar meanMeshCoNum = 0.0; if (mesh.nInternalFaces()) { - surfaceScalarField SfUfbyDelta = - mesh.surfaceInterpolation::deltaCoeffs()*mag(mesh.phi()); + scalarField sumPhi = + fvc::surfaceSum(mag(mesh.phi()))().internalField(); - meshCoNum = max(SfUfbyDelta/mesh.magSf()) - .value()*runTime.deltaTValue(); + meshCoNum = 0.5*gMax(sumPhi/mesh.V().field())*runTime.deltaTValue(); - meanMeshCoNum = (sum(SfUfbyDelta)/sum(mesh.magSf())) - .value()*runTime.deltaTValue(); + meanMeshCoNum = + 0.5*(gSum(sumPhi)/gSum(mesh.V().field()))*runTime.deltaTValue(); } Info<< "Mesh Courant Number mean: " << meanMeshCoNum diff --git a/src/finiteVolume/cfdTools/compressible/compressibleCourantNo.H b/src/finiteVolume/cfdTools/compressible/compressibleCourantNo.H index 73da862406d5e0f25850e686436a11d478f1ec7e..c96ddeb22ffa9f33765ef6e71e32d434c5096728 100644 --- a/src/finiteVolume/cfdTools/compressible/compressibleCourantNo.H +++ b/src/finiteVolume/cfdTools/compressible/compressibleCourantNo.H @@ -38,10 +38,10 @@ if (mesh.nInternalFaces()) fvc::surfaceSum(mag(phi))().internalField() /rho.internalField(); - CoNum = 0.5*gMax(sumPhi/mesh.V().field())*runTime.deltaT().value(); + CoNum = 0.5*gMax(sumPhi/mesh.V().field())*runTime.deltaTValue(); meanCoNum = - 0.5*(gSum(sumPhi)/sum(mesh.V().field()))*runTime.deltaT().value(); + 0.5*(gSum(sumPhi)/gSum(mesh.V().field()))*runTime.deltaTValue(); } Info<< "Courant Number mean: " << meanCoNum diff --git a/src/finiteVolume/cfdTools/incompressible/CourantNo.H b/src/finiteVolume/cfdTools/incompressible/CourantNo.H index caef48a39662fbf2a4d253df28085fa065a7addb..8b917e1f89fb2dc15e207c42d1a1c0b6d0320d52 100644 --- a/src/finiteVolume/cfdTools/incompressible/CourantNo.H +++ b/src/finiteVolume/cfdTools/incompressible/CourantNo.H @@ -37,10 +37,10 @@ if (mesh.nInternalFaces()) scalarField sumPhi = fvc::surfaceSum(mag(phi))().internalField(); - CoNum = 0.5*gMax(sumPhi/mesh.V().field())*runTime.deltaT().value(); + CoNum = 0.5*gMax(sumPhi/mesh.V().field())*runTime.deltaTValue(); meanCoNum = - 0.5*(gSum(sumPhi)/sum(mesh.V().field()))*runTime.deltaT().value(); + 0.5*(gSum(sumPhi)/gSum(mesh.V().field()))*runTime.deltaTValue(); } Info<< "Courant Number mean: " << meanCoNum diff --git a/src/finiteVolume/fields/fvPatchFields/derived/directMappedFixedValue/directMappedFixedValueFvPatchField.C b/src/finiteVolume/fields/fvPatchFields/derived/directMappedFixedValue/directMappedFixedValueFvPatchField.C index 2be7d3be5a7d0ae3ff13addb8e31b525e9a73747..4dd232091d1897f3a5efdc64698173f630125a6f 100644 --- a/src/finiteVolume/fields/fvPatchFields/derived/directMappedFixedValue/directMappedFixedValueFvPatchField.C +++ b/src/finiteVolume/fields/fvPatchFields/derived/directMappedFixedValue/directMappedFixedValueFvPatchField.C @@ -260,7 +260,7 @@ void directMappedFixedValueFvPatchField<Type>::updateCoeffs() allValues ); - newValues = this->patch().patchSlice(allValues); + newValues.transfer(allValues); break; } diff --git a/src/finiteVolume/fields/fvPatchFields/derived/directMappedVelocityFluxFixedValue/directMappedVelocityFluxFixedValueFvPatchField.C b/src/finiteVolume/fields/fvPatchFields/derived/directMappedVelocityFluxFixedValue/directMappedVelocityFluxFixedValueFvPatchField.C index 17fa6f71fb093b1b6fcc72eaed4c93577cf95c2e..36821fe72f01f0f76bce8f0acaf5dc7d50ebad1e 100644 --- a/src/finiteVolume/fields/fvPatchFields/derived/directMappedVelocityFluxFixedValue/directMappedVelocityFluxFixedValueFvPatchField.C +++ b/src/finiteVolume/fields/fvPatchFields/derived/directMappedVelocityFluxFixedValue/directMappedVelocityFluxFixedValueFvPatchField.C @@ -198,7 +198,7 @@ void directMappedVelocityFluxFixedValueFvPatchField::updateCoeffs() distMap.constructMap(), allUValues ); - newUValues = patch().patchSlice(allUValues); + newUValues.transfer(allUValues); mapDistribute::distribute ( @@ -209,7 +209,7 @@ void directMappedVelocityFluxFixedValueFvPatchField::updateCoeffs() distMap.constructMap(), allPhiValues ); - newPhiValues = patch().patchSlice(allPhiValues); + newPhiValues.transfer(allPhiValues); break; } diff --git a/src/mesh/blockMesh/blockMesh/blockMesh.C b/src/mesh/blockMesh/blockMesh/blockMesh.C index c0c6041f4c2e2e008f35628e03ec204ff190c052..9a6b97b0876c19b05fd5f5956217e213b9d1bac4 100644 --- a/src/mesh/blockMesh/blockMesh/blockMesh.C +++ b/src/mesh/blockMesh/blockMesh/blockMesh.C @@ -89,7 +89,6 @@ Foam::PtrList<Foam::dictionary> Foam::blockMesh::patchDicts() const patchTopologies[patchI].write(os); IStringStream is(os.str()); patchDicts.set(patchI, new dictionary(is)); - patchDicts[patchI].set("name", patchTopologies[patchI].name()); } return patchDicts; } @@ -134,12 +133,12 @@ const Foam::faceListList& Foam::blockMesh::patches() const } -//Foam::wordList Foam::blockMesh::patchNames() const -//{ -// return topology().boundaryMesh().names(); -//} -// -// +Foam::wordList Foam::blockMesh::patchNames() const +{ + return topology().boundaryMesh().names(); +} + + //Foam::wordList Foam::blockMesh::patchTypes() const //{ // return topology().boundaryMesh().types(); diff --git a/src/mesh/blockMesh/blockMesh/blockMesh.H b/src/mesh/blockMesh/blockMesh/blockMesh.H index eb43c80d83b0355a2da3a33abdfbc8614d05c646..9b989f535683298cb6a0fcba4c7dff38ebf296f0 100644 --- a/src/mesh/blockMesh/blockMesh/blockMesh.H +++ b/src/mesh/blockMesh/blockMesh/blockMesh.H @@ -121,6 +121,7 @@ class blockMesh bool readBoundary ( const dictionary& meshDescription, + wordList& patchNames, faceListList& tmpBlocksPatches, PtrList<dictionary>& patchDicts ); @@ -185,8 +186,8 @@ public: //- Get patch information from the topology mesh PtrList<dictionary> patchDicts() const; -// wordList patchNames() const; -// + wordList patchNames() const; + // wordList patchTypes() const; // // wordList patchPhysicalTypes() const; diff --git a/src/mesh/blockMesh/blockMesh/blockMeshTopology.C b/src/mesh/blockMesh/blockMesh/blockMeshTopology.C index d1fe81c2f17deda8dfce6aec97b5541246cbb8f8..b82752c947c75b491eb0ff9c7cfb519395d05cdc 100644 --- a/src/mesh/blockMesh/blockMesh/blockMeshTopology.C +++ b/src/mesh/blockMesh/blockMesh/blockMeshTopology.C @@ -189,6 +189,7 @@ bool Foam::blockMesh::readPatches bool Foam::blockMesh::readBoundary ( const dictionary& meshDescription, + wordList& patchNames, faceListList& tmpBlocksPatches, PtrList<dictionary>& patchDicts ) @@ -201,6 +202,7 @@ bool Foam::blockMesh::readBoundary meshDescription.lookup("boundary") ); + patchNames.setSize(patchesInfo.size()); tmpBlocksPatches.setSize(patchesInfo.size()); patchDicts.setSize(patchesInfo.size()); @@ -215,9 +217,9 @@ bool Foam::blockMesh::readBoundary << " valid dictionary." << exit(FatalIOError); } - // Construct dictionary and add name + patchNames[patchI] = patchInfo.keyword(); + // Construct dictionary patchDicts.set(patchI, new dictionary(patchInfo.dict())); - patchDicts[patchI].set("name", patchInfo.keyword()); // Read block faces patchDicts[patchI].lookup("faces") >> tmpBlocksPatches[patchI]; @@ -472,7 +474,8 @@ Foam::polyMesh* Foam::blockMesh::createTopology(IOdictionary& meshDescription) Info<< nl << "Reading physicalType from existing boundary file" << endl; - wordList patchPhysicalTypes(tmpBlocksPatches.size()); + PtrList<dictionary> patchDicts(patchNames.size()); + word defaultFacesType; preservePatchTypes ( @@ -480,31 +483,29 @@ Foam::polyMesh* Foam::blockMesh::createTopology(IOdictionary& meshDescription) meshDescription.time().constant(), polyMesh::meshSubDir, patchNames, - patchTypes, + patchDicts, defaultPatchName, - defaultPatchType, - patchPhysicalTypes + defaultPatchType ); - // Convert into dictionary - PtrList<dictionary> patchDicts(patchNames.size()); + // Add cyclic info (might not be present from older file) forAll(patchDicts, patchI) { - patchDicts.set(patchI, new dictionary()); - patchDicts[patchI].set("name", patchNames[patchI]); - patchDicts[patchI].set("type", patchTypes[patchI]); - if (nbrPatchNames[patchI] != word::null) + if (!patchDicts.set(patchI)) { - patchDicts[patchI].set("neighbourPatch", nbrPatchNames[patchI]); + patchDicts.set(patchI, new dictionary()); } - if (patchPhysicalTypes[patchI] != word::null) + + dictionary& dict = patchDicts[patchI]; + + // Add but not override type + dict.add("type", patchTypes[patchI], false); + + // Override neighbourpatch name + if (nbrPatchNames[patchI] != word::null) { - patchDicts[patchI].set - ( - "physicalType", - patchPhysicalTypes[patchI] - ); + dict.set("neighbourPatch", nbrPatchNames[patchI]); } } @@ -523,6 +524,7 @@ Foam::polyMesh* Foam::blockMesh::createTopology(IOdictionary& meshDescription) xferCopy(blockPointField_), // copy these points, do NOT move tmpBlockCells, tmpBlocksPatches, + patchNames, patchDicts, defaultPatchName, defaultPatchType @@ -530,12 +532,14 @@ Foam::polyMesh* Foam::blockMesh::createTopology(IOdictionary& meshDescription) } else if (meshDescription.found("boundary")) { + wordList patchNames; faceListList tmpBlocksPatches; PtrList<dictionary> patchDicts; topologyOK = topologyOK && readBoundary ( meshDescription, + patchNames, tmpBlocksPatches, patchDicts ); @@ -553,6 +557,7 @@ Foam::polyMesh* Foam::blockMesh::createTopology(IOdictionary& meshDescription) cellShapeList tmpBlockCells(blocks.size()); createCellShapes(tmpBlockCells); + // Extract blockMeshPtr = new polyMesh ( @@ -568,6 +573,7 @@ Foam::polyMesh* Foam::blockMesh::createTopology(IOdictionary& meshDescription) xferCopy(blockPointField_), // copy these points, do NOT move tmpBlockCells, tmpBlocksPatches, + patchNames, patchDicts, defaultPatchName, defaultPatchType diff --git a/src/sampling/probes/probes.C b/src/sampling/probes/probes.C index 22c352825b88e201d17c7a13aea05bb8e5834abf..6ca13f1da26995692e276a0fd2d2ea455fd825c1 100644 --- a/src/sampling/probes/probes.C +++ b/src/sampling/probes/probes.C @@ -163,7 +163,7 @@ Foam::label Foam::probes::prepare() if (debug) { - Info<< "open probe stream: " << sPtr->name() << endl; + Info<< "open probe stream: " << sPtr->name() << endl; } probeFilePtrs_.insert(fieldName, sPtr); diff --git a/tutorials/compressible/rhoCentralFoam/biconic25-55Run35/datToFoam/datToFoam.C b/tutorials/compressible/rhoCentralFoam/biconic25-55Run35/datToFoam/datToFoam.C index 4a276547b1eed0a84b0b187b3bdc23d525a42744..4b923009ffef1f60207b62715c6a8b89cdb98e9c 100644 --- a/tutorials/compressible/rhoCentralFoam/biconic25-55Run35/datToFoam/datToFoam.C +++ b/tutorials/compressible/rhoCentralFoam/biconic25-55Run35/datToFoam/datToFoam.C @@ -34,14 +34,7 @@ Description #include "Time.H" #include "IFstream.H" #include "OFstream.H" -#include "meshTools.H" -#include "polyMesh.H" -#include "wallPolyPatch.H" -#include "symmetryPolyPatch.H" -#include "preservePatchTypes.H" -#include "cellShape.H" -#include "cellModeller.H" -#include "mergePoints.H" +#include "pointField.H" #include "unitConversion.H" using namespace Foam; diff --git a/tutorials/discreteMethods/dsmcFoam/freeSpacePeriodic/0/uniform/lagrangian/dsmc/particleProperties b/tutorials/discreteMethods/dsmcFoam/freeSpacePeriodic/0/uniform/lagrangian/dsmc/particleProperties deleted file mode 100644 index 5a73d67b461d09f6a8d3596ddee4921c3fba1971..0000000000000000000000000000000000000000 --- a/tutorials/discreteMethods/dsmcFoam/freeSpacePeriodic/0/uniform/lagrangian/dsmc/particleProperties +++ /dev/null @@ -1,24 +0,0 @@ -/*--------------------------------*- C++ -*----------------------------------*\ -| ========= | | -| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: dev | -| \\ / A nd | Web: www.OpenFOAM.com | -| \\/ M anipulation | | -\*---------------------------------------------------------------------------*/ -FoamFile -{ - version 2.0; - format ascii; - class dictionary; - location "0/uniform/lagrangian/dsmc"; - object particleProperties; -} -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -processor0 -{ - particleCount 63978; -} - - -// ************************************************************************* // diff --git a/tutorials/discreteMethods/dsmcFoam/freeSpaceStream/0/uniform/lagrangian/dsmc/particleProperties b/tutorials/discreteMethods/dsmcFoam/freeSpaceStream/0/uniform/lagrangian/dsmc/particleProperties deleted file mode 100644 index 5a73d67b461d09f6a8d3596ddee4921c3fba1971..0000000000000000000000000000000000000000 --- a/tutorials/discreteMethods/dsmcFoam/freeSpaceStream/0/uniform/lagrangian/dsmc/particleProperties +++ /dev/null @@ -1,24 +0,0 @@ -/*--------------------------------*- C++ -*----------------------------------*\ -| ========= | | -| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: dev | -| \\ / A nd | Web: www.OpenFOAM.com | -| \\/ M anipulation | | -\*---------------------------------------------------------------------------*/ -FoamFile -{ - version 2.0; - format ascii; - class dictionary; - location "0/uniform/lagrangian/dsmc"; - object particleProperties; -} -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -processor0 -{ - particleCount 63978; -} - - -// ************************************************************************* // diff --git a/tutorials/incompressible/pisoFoam/les/pitzDailyDirectMapped/Allrun b/tutorials/incompressible/pisoFoam/les/pitzDailyDirectMapped/Allrun deleted file mode 100755 index 5cf2386bfa6600a4a07c3ed771901886a0baa336..0000000000000000000000000000000000000000 --- a/tutorials/incompressible/pisoFoam/les/pitzDailyDirectMapped/Allrun +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/sh -cd ${0%/*} || exit 1 # run from this directory - -# Source tutorial run functions -. $WM_PROJECT_DIR/bin/tools/RunFunctions - -# Get application name -application=`getApplication` - -runApplication blockMesh -runApplication changeDictionary -runApplication $application - -# ----------------------------------------------------------------- end-of-file diff --git a/tutorials/incompressible/pisoFoam/les/pitzDailyDirectMapped/constant/polyMesh/blockMeshDict b/tutorials/incompressible/pisoFoam/les/pitzDailyDirectMapped/constant/polyMesh/blockMeshDict index 37b146f399fce48640c9c7cb1d4b4bc6675f94c4..d01e8f86f7256ecf3132c58680c0f6be4b945f3f 100644 --- a/tutorials/incompressible/pisoFoam/les/pitzDailyDirectMapped/constant/polyMesh/blockMeshDict +++ b/tutorials/incompressible/pisoFoam/les/pitzDailyDirectMapped/constant/polyMesh/blockMeshDict @@ -85,69 +85,90 @@ edges ( ); -patches +boundary ( - patch inlet - ( - (0 22 23 1) - (1 23 24 2) - (2 24 25 3) - ) - patch outlet - ( - (16 17 39 38) - (17 18 40 39) - (18 19 41 40) - (19 20 42 41) - (20 21 43 42) - ) - wall upperWall - ( - (3 25 31 9) - (9 31 37 15) - (15 37 43 21) - ) - wall lowerWall - ( - (0 6 28 22) - (6 5 27 28) - (5 4 26 27) - (4 10 32 26) - (10 16 38 32) - ) - empty frontAndBack - ( - (22 28 29 23) - (23 29 30 24) - (24 30 31 25) - (26 32 33 27) - (27 33 34 28) - (28 34 35 29) - (29 35 36 30) - (30 36 37 31) - (32 38 39 33) - (33 39 40 34) - (34 40 41 35) - (35 41 42 36) - (36 42 43 37) - (0 1 7 6) - (1 2 8 7) - (2 3 9 8) - (4 5 11 10) - (5 6 12 11) - (6 7 13 12) - (7 8 14 13) - (8 9 15 14) - (10 11 17 16) - (11 12 18 17) - (12 13 19 18) - (13 14 20 19) - (14 15 21 20) - ) -); + inlet + { + type directMappedPatch; + offset ( 0.0495 0 0 ); + sampleRegion region0; + sampleMode nearestCell; + samplePatch none; -mergePatchPairs -( + faces + ( + (0 22 23 1) + (1 23 24 2) + (2 24 25 3) + ); + } + outlet + { + type patch; + faces + ( + (16 17 39 38) + (17 18 40 39) + (18 19 41 40) + (19 20 42 41) + (20 21 43 42) + ); + } + upperWall + { + type wall; + faces + ( + (3 25 31 9) + (9 31 37 15) + (15 37 43 21) + ); + } + lowerWall + { + type wall; + faces + ( + (0 6 28 22) + (6 5 27 28) + (5 4 26 27) + (4 10 32 26) + (10 16 38 32) + ); + } + frontAndBack + { + type empty; + faces + ( + (22 28 29 23) + (23 29 30 24) + (24 30 31 25) + (26 32 33 27) + (27 33 34 28) + (28 34 35 29) + (29 35 36 30) + (30 36 37 31) + (32 38 39 33) + (33 39 40 34) + (34 40 41 35) + (35 41 42 36) + (36 42 43 37) + (0 1 7 6) + (1 2 8 7) + (2 3 9 8) + (4 5 11 10) + (5 6 12 11) + (6 7 13 12) + (7 8 14 13) + (8 9 15 14) + (10 11 17 16) + (11 12 18 17) + (12 13 19 18) + (13 14 20 19) + (14 15 21 20) + ); + } ); // ************************************************************************* // diff --git a/tutorials/incompressible/pisoFoam/les/pitzDailyDirectMapped/constant/polyMesh/boundary b/tutorials/incompressible/pisoFoam/les/pitzDailyDirectMapped/constant/polyMesh/boundary deleted file mode 100644 index e13323f2876c4c64b6ae7c149fa1c9875d935631..0000000000000000000000000000000000000000 --- a/tutorials/incompressible/pisoFoam/les/pitzDailyDirectMapped/constant/polyMesh/boundary +++ /dev/null @@ -1,63 +0,0 @@ -/*--------------------------------*- C++ -*----------------------------------*\ -| ========= | | -| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: dev | -| \\ / A nd | Web: www.OpenFOAM.com | -| \\/ M anipulation | | -\*---------------------------------------------------------------------------*/ -FoamFile -{ - version 2.0; - format ascii; - class polyBoundaryMesh; - location "constant/polyMesh"; - object boundary; -} -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - - -5 -( -inlet -{ - type directMappedPatch; - nFaces 30; - startFace 27238; - sampleMode nearestCell; - sampleRegion region0; - samplePatch none; - offset ( 0.0495 0 0 ); -} - -outlet -{ - type patch; - nFaces 57; - startFace 27268; -} - -upperWall -{ - type wall; - nFaces 275; - startFace 27325; -} - -lowerWall -{ - type wall; - nFaces 302; - startFace 27600; -} - -frontAndBack -{ - type empty; - nFaces 27570; - startFace 27902; -} - -) - - -// ************************************************************************* // diff --git a/tutorials/incompressible/pisoFoam/les/pitzDailyDirectMapped/system/changeDictionaryDict b/tutorials/incompressible/pisoFoam/les/pitzDailyDirectMapped/system/changeDictionaryDict deleted file mode 100644 index 46b60aa514144e46fc1ffc9854c467b87031d19b..0000000000000000000000000000000000000000 --- a/tutorials/incompressible/pisoFoam/les/pitzDailyDirectMapped/system/changeDictionaryDict +++ /dev/null @@ -1,34 +0,0 @@ -/*--------------------------------*- C++ -*----------------------------------*\ -| ========= | | -| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: dev | -| \\ / A nd | Web: www.OpenFOAM.com | -| \\/ M anipulation | | -\*---------------------------------------------------------------------------*/ -FoamFile -{ - version 2.0; - format ascii; - class dictionary; - location "system"; - object changeDictionaryDict; -} -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -dictionaryReplacement -{ - boundary - { - inlet - { - type directMappedPatch; - offset ( 0.0495 0 0 ); - sampleRegion region0; - sampleMode nearestCell; - samplePatch none; - } - } -} - - -// ************************************************************************* // diff --git a/tutorials/multiphase/cavitatingFoam/les/Allclean b/tutorials/multiphase/cavitatingFoam/les/Allclean deleted file mode 100755 index 68db65d125ca2da943f0c82f7b0938c91ad68030..0000000000000000000000000000000000000000 --- a/tutorials/multiphase/cavitatingFoam/les/Allclean +++ /dev/null @@ -1,30 +0,0 @@ -#!/bin/sh -cd ${0%/*} || exit 1 # run from this directory - -# Source tutorial clean functions -. $WM_PROJECT_DIR/bin/tools/CleanFunctions - -( - cd throttle || exit - - rm -rf constant/polyMesh/sets > /dev/null 2>&1 - rm -rf 0/polyMesh > /dev/null 2>&1 - rm system/topoSetDict > /dev/null 2>&1 - - cleanCase -) - - -( - cd throttle3D || exit - - rm -rf constant/polyMesh/sets > /dev/null 2>&1 - rm -rf 0 > /dev/null 2>&1 - cp -r 0.org 0 - rm system/topoSetDict > /dev/null 2>&1 - rm -rf processor[0-9] > /dev/null 2>&1 - - cleanCase -) - -# ----------------------------------------------------------------- end-of-file diff --git a/tutorials/multiphase/cavitatingFoam/les/Allrun b/tutorials/multiphase/cavitatingFoam/les/Allrun index 9fe67390bd4ae381c0129a7085c5b58367efcf7c..41c1dd5368c4eb73413687e709275158231df6a2 100755 --- a/tutorials/multiphase/cavitatingFoam/les/Allrun +++ b/tutorials/multiphase/cavitatingFoam/les/Allrun @@ -1,50 +1,14 @@ #!/bin/sh cd ${0%/*} || exit 1 # run from this directory -# Source tutorial run functions -. $WM_PROJECT_DIR/bin/tools/RunFunctions - -# Set application name -application="cavitatingFoam" - -refineMeshByCellSet() -{ - while [ $# -ge 1 ] - do - echo "creating cell set for primary zone - $1" - cp system/topoSetDict.$1 system/topoSetDict - topoSet > log.topoSet.$1 2>&1 - - echo "refining primary zone - $1" - refineMesh -dict -overwrite > log.refineMesh.$1 2>&1 - shift - done -} - - ( cd throttle || exit - - runApplication blockMesh - refineMeshByCellSet 1 2 3 - runApplication $application + ./Allrun ) - ( cd throttle3D || exit - - cp -r 0.org 0 - - runApplication blockMesh - refineMeshByCellSet 1 2 3 - - echo "mapping fields from 2D throttle case" - mapFields ../throttle -sourceTime latestTime > log.mapFields 2>&1 - - runApplication decomposePar - runParallel $application 4 - runApplication reconstructPar + ./Allrun ) # ----------------------------------------------------------------- end-of-file diff --git a/tutorials/multiphase/cavitatingFoam/les/throttle/Allclean b/tutorials/multiphase/cavitatingFoam/les/throttle/Allclean new file mode 100755 index 0000000000000000000000000000000000000000..70b255f01d9a086e4407b275bba5e46be028abc5 --- /dev/null +++ b/tutorials/multiphase/cavitatingFoam/les/throttle/Allclean @@ -0,0 +1,12 @@ +#!/bin/sh +cd ${0%/*} || exit 1 # run from this directory + +# Source tutorial clean functions +. $WM_PROJECT_DIR/bin/tools/CleanFunctions + +rm -rf constant/polyMesh/sets > /dev/null 2>&1 +rm -rf 0/polyMesh > /dev/null 2>&1 +rm system/topoSetDict > /dev/null 2>&1 +cleanCase + +# ----------------------------------------------------------------- end-of-file diff --git a/tutorials/multiphase/cavitatingFoam/les/throttle/Allrun b/tutorials/multiphase/cavitatingFoam/les/throttle/Allrun new file mode 100755 index 0000000000000000000000000000000000000000..7b19d67145a4a38e462c4f48160d1ff4c4baeec7 --- /dev/null +++ b/tutorials/multiphase/cavitatingFoam/les/throttle/Allrun @@ -0,0 +1,28 @@ +#!/bin/sh +cd ${0%/*} || exit 1 # run from this directory + +# Source tutorial run functions +. $WM_PROJECT_DIR/bin/tools/RunFunctions + +# Set application name +application="cavitatingFoam" + +refineMeshByCellSet() +{ + while [ $# -ge 1 ] + do + echo "creating cell set for primary zone - $1" + cp system/topoSetDict.$1 system/topoSetDict + topoSet > log.topoSet.$1 2>&1 + + echo "refining primary zone - $1" + refineMesh -dict -overwrite > log.refineMesh.$1 2>&1 + shift + done +} + +runApplication blockMesh +refineMeshByCellSet 1 2 3 +runApplication $application + +# ----------------------------------------------------------------- end-of-file diff --git a/tutorials/multiphase/cavitatingFoam/les/throttle/constant/polyMesh/boundary b/tutorials/multiphase/cavitatingFoam/les/throttle/constant/polyMesh/boundary index 999c16bc8e26ed46ecbb925d88ba148ca59dce11..4732ca525c5cb22f250aa48fa982af069e8e8ac8 100644 --- a/tutorials/multiphase/cavitatingFoam/les/throttle/constant/polyMesh/boundary +++ b/tutorials/multiphase/cavitatingFoam/les/throttle/constant/polyMesh/boundary @@ -21,25 +21,25 @@ FoamFile { type patch; nFaces 51; - startFace 15151; + startFace 35380; } outlet { type patch; nFaces 51; - startFace 15202; + startFace 35431; } walls { type wall; - nFaces 436; - startFace 15253; + nFaces 640; + startFace 35482; } frontBack { type empty; - nFaces 15420; - startFace 15689; + nFaces 35580; + startFace 36122; } ) diff --git a/tutorials/multiphase/cavitatingFoam/les/throttle3D/Allclean b/tutorials/multiphase/cavitatingFoam/les/throttle3D/Allclean new file mode 100755 index 0000000000000000000000000000000000000000..b5c25b61f84e7b7dc0d5251d6d11203e312a2229 --- /dev/null +++ b/tutorials/multiphase/cavitatingFoam/les/throttle3D/Allclean @@ -0,0 +1,14 @@ +#!/bin/sh +cd ${0%/*} || exit 1 # run from this directory + +# Source tutorial clean functions +. $WM_PROJECT_DIR/bin/tools/CleanFunctions + +rm -rf constant/polyMesh/sets > /dev/null 2>&1 +rm -rf 0 > /dev/null 2>&1 +cp -r 0.org 0 +rm system/topoSetDict > /dev/null 2>&1 +rm -rf processor[0-9] > /dev/null 2>&1 +cleanCase + +# ----------------------------------------------------------------- end-of-file diff --git a/tutorials/multiphase/cavitatingFoam/les/throttle3D/Allrun b/tutorials/multiphase/cavitatingFoam/les/throttle3D/Allrun new file mode 100755 index 0000000000000000000000000000000000000000..e93a0560537e6646f9a14dab16a16517f252ee22 --- /dev/null +++ b/tutorials/multiphase/cavitatingFoam/les/throttle3D/Allrun @@ -0,0 +1,36 @@ +#!/bin/sh +cd ${0%/*} || exit 1 # run from this directory + +# Source tutorial run functions +. $WM_PROJECT_DIR/bin/tools/RunFunctions + +# Set application name +application="cavitatingFoam" + +refineMeshByCellSet() +{ + while [ $# -ge 1 ] + do + echo "creating cell set for primary zone - $1" + cp system/topoSetDict.$1 system/topoSetDict + topoSet > log.topoSet.$1 2>&1 + + echo "refining primary zone - $1" + refineMesh -dict -overwrite > log.refineMesh.$1 2>&1 + shift + done +} + +cp -r 0.org 0 + +runApplication blockMesh +refineMeshByCellSet 1 2 3 + +echo "mapping fields from 2D throttle case" +mapFields ../throttle -sourceTime latestTime > log.mapFields 2>&1 + +runApplication decomposePar +runParallel $application 4 +runApplication reconstructPar + +# ----------------------------------------------------------------- end-of-file diff --git a/wmake/wmakeScheduler b/wmake/wmakeScheduler index be5f4ba58bb3e7e273e20792f697833f79291b1a..bfff68053a9da4e1cd2ea0b4f4f58f908a3b5a33 100755 --- a/wmake/wmakeScheduler +++ b/wmake/wmakeScheduler @@ -184,14 +184,14 @@ do # Set colour colour="${colourList[$colourIndex]}" - if [ "$host" = "$HOST" ]; then + if [ "$host" = "$HOSTNAME" ]; then eval $* 2>&1 | colourPipe "$colour" else ssh $host "$sourceFoam 2>/dev/null; cd $PWD && $rcmd" 2>&1 | colourPipe "$colour" fi retval=$? else - if [ "$host" = "$HOST" ]; then + if [ "$host" = "$HOSTNAME" ]; then eval $* 2>&1 else ssh $host "$sourceFoam 2>/dev/null; cd $PWD && $rcmd" 2>&1