From d5301772f7357eeabc7c9b73084c38f3310ccbd2 Mon Sep 17 00:00:00 2001 From: sergio Date: Thu, 15 Dec 2016 12:36:48 -0800 Subject: [PATCH 1/6] Update of interCondensingEvaporatingFoam and its tutorial --- .../interCondensingEvaporatingFoam/UEqn.H | 1 - .../continuityError.H | 12 ---- .../createFields.H | 21 +------ .../interCondensingEvaporatingFoam/eEqn.H | 2 - .../interCondensatingEvaporatingFoam.C | 14 +++-- .../interCondensingEvaporatingFoam/pEqn.H | 5 +- .../constant/constant.C | 12 ++-- .../condensatingVessel/0/T | 10 +--- .../condensatingVessel/0/epsilon | 56 +++++++++++++++++++ .../condensatingVessel/0/k | 2 +- .../condensatingVessel/0/p | 53 ++++++++++++++++++ .../condensatingVessel/Allrun | 4 +- .../constant/thermophysicalProperties | 2 +- .../constant/transportProperties | 2 +- .../constant/turbulenceProperties | 2 +- .../condensatingVessel/system/controlDict | 10 ++-- .../condensatingVessel/system/fvSchemes | 13 +++-- .../condensatingVessel/system/fvSolution | 10 +++- 18 files changed, 157 insertions(+), 74 deletions(-) delete mode 100644 applications/solvers/multiphase/interCondensingEvaporatingFoam/continuityError.H create mode 100644 tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/0/epsilon create mode 100644 tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/0/p diff --git a/applications/solvers/multiphase/interCondensingEvaporatingFoam/UEqn.H b/applications/solvers/multiphase/interCondensingEvaporatingFoam/UEqn.H index 1e27597292..249c5a3cb1 100644 --- a/applications/solvers/multiphase/interCondensingEvaporatingFoam/UEqn.H +++ b/applications/solvers/multiphase/interCondensingEvaporatingFoam/UEqn.H @@ -2,7 +2,6 @@ ( fvm::ddt(rho, U) + fvm::div(rhoPhi, U) - - fvm::Sp(fvc::ddt(rho) + fvc::div(rhoPhi), U) + turbulence->divDevRhoReff(rho, U) ); diff --git a/applications/solvers/multiphase/interCondensingEvaporatingFoam/continuityError.H b/applications/solvers/multiphase/interCondensingEvaporatingFoam/continuityError.H deleted file mode 100644 index 9a33fb896d..0000000000 --- a/applications/solvers/multiphase/interCondensingEvaporatingFoam/continuityError.H +++ /dev/null @@ -1,12 +0,0 @@ -volScalarField contErr(fvc::ddt(rho) + fvc::div(rhoPhi)); - -scalar sumLocalContErr = runTime.deltaTValue()* - mag(contErr)().weightedAverage(mesh.V()).value(); - -scalar globalContErr = runTime.deltaTValue()* - contErr.weightedAverage(mesh.V()).value(); - -Info<< "time step continuity errors : sum local = " << sumLocalContErr - << ", global = " << globalContErr - << endl; - diff --git a/applications/solvers/multiphase/interCondensingEvaporatingFoam/createFields.H b/applications/solvers/multiphase/interCondensingEvaporatingFoam/createFields.H index 20d3677bfc..c0e2adcb51 100644 --- a/applications/solvers/multiphase/interCondensingEvaporatingFoam/createFields.H +++ b/applications/solvers/multiphase/interCondensingEvaporatingFoam/createFields.H @@ -28,20 +28,6 @@ #include "createPhi.H" - // Create p before the thermo - volScalarField p - ( - IOobject - ( - "p", - runTime.timeName(), - mesh, - IOobject::NO_READ, - IOobject::AUTO_WRITE - ), - p_rgh - ); - // Creating e based thermo autoPtr thermo; thermo.set(new twoPhaseMixtureEThermo(U, phi)); @@ -54,9 +40,10 @@ volScalarField& T = thermo->T(); volScalarField& e = thermo->he(); + e.oldTime(); // Correct e from T and alpha - thermo->correct(); + //thermo->correct(); volScalarField& alpha1(thermo->alpha1()); volScalarField& alpha2(thermo->alpha2()); @@ -80,7 +67,6 @@ ); rho.oldTime(); - // Construct interface from alpha1 distribution interfaceProperties interface ( @@ -100,8 +86,7 @@ volScalarField gh("gh", g & mesh.C()); surfaceScalarField ghf("ghf", g & mesh.Cf()); - //Update p with rho - p = p_rgh + rho*gh; + volScalarField& p = thermo->p(); label pRefCell = 0; scalar pRefValue = 0.0; diff --git a/applications/solvers/multiphase/interCondensingEvaporatingFoam/eEqn.H b/applications/solvers/multiphase/interCondensingEvaporatingFoam/eEqn.H index 291d574d8a..386e4cdff9 100644 --- a/applications/solvers/multiphase/interCondensingEvaporatingFoam/eEqn.H +++ b/applications/solvers/multiphase/interCondensingEvaporatingFoam/eEqn.H @@ -14,9 +14,7 @@ fvScalarMatrix eEqn ( fvm::ddt(rho, e) - + fvc::ddt(rho, K) + fvc::div(rhoPhi, K) + fvm::div(rhoPhi, e) - - fvm::Sp(fvc::ddt(rho) + fvc::div(rhoPhi), e) - fvm::laplacian(kappaEff/cp, e) + pDivU ); diff --git a/applications/solvers/multiphase/interCondensingEvaporatingFoam/interCondensatingEvaporatingFoam.C b/applications/solvers/multiphase/interCondensingEvaporatingFoam/interCondensatingEvaporatingFoam.C index 2fb0013224..362e4d0132 100644 --- a/applications/solvers/multiphase/interCondensingEvaporatingFoam/interCondensatingEvaporatingFoam.C +++ b/applications/solvers/multiphase/interCondensingEvaporatingFoam/interCondensatingEvaporatingFoam.C @@ -63,20 +63,21 @@ int main(int argc, char *argv[]) pimpleControl pimple(mesh); #include "readGravitationalAcceleration.H" - #include "initContinuityErrs.H" #include "createFields.H" #include "createFvOptions.H" #include "createTimeControls.H" #include "CourantNo.H" #include "setInitialDeltaT.H" + turbulence->validate(); + // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // Info<< "\nStarting time loop\n" << endl; while (runTime.run()) { - #include "readTimeControls.H" + #include "createTimeControls.H" #include "CourantNo.H" #include "setDeltaT.H" @@ -101,9 +102,12 @@ int main(int argc, char *argv[]) dimensionedScalar("0", dimMass/dimTime, 0) ); - #include "alphaEqnSubCycle.H" mixture->correct(); + #include "alphaEqnSubCycle.H" + + solve(fvm::ddt(rho) + fvc::div(rhoPhi)); + #include "UEqn.H" #include "eEqn.H" @@ -113,14 +117,14 @@ int main(int argc, char *argv[]) #include "pEqn.H" } - #include "continuityError.H" - if (pimple.turbCorr()) { turbulence->correct(); } } + rho = alpha1*rho1 + alpha2*rho2; + runTime.write(); Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s" diff --git a/applications/solvers/multiphase/interCondensingEvaporatingFoam/pEqn.H b/applications/solvers/multiphase/interCondensingEvaporatingFoam/pEqn.H index 62de089533..366dc78a12 100644 --- a/applications/solvers/multiphase/interCondensingEvaporatingFoam/pEqn.H +++ b/applications/solvers/multiphase/interCondensingEvaporatingFoam/pEqn.H @@ -1,9 +1,7 @@ { volScalarField rAU("rAU", 1.0/UEqn.A()); surfaceScalarField rAUf("rAUf", fvc::interpolate(rAU)); - volVectorField HbyA(constrainHbyA(rAU*UEqn.H(), U, p_rgh)); - surfaceScalarField phiHbyA ( "phiHbyA", @@ -53,8 +51,7 @@ } } - - p == p_rgh + rho*gh; + p = p_rgh + rho*gh; if (p_rgh.needReference()) { diff --git a/applications/solvers/multiphase/interCondensingEvaporatingFoam/temperaturePhaseChangeTwoPhaseMixtures/constant/constant.C b/applications/solvers/multiphase/interCondensingEvaporatingFoam/temperaturePhaseChangeTwoPhaseMixtures/constant/constant.C index 6d3f21c2fb..c215b3d21c 100644 --- a/applications/solvers/multiphase/interCondensingEvaporatingFoam/temperaturePhaseChangeTwoPhaseMixtures/constant/constant.C +++ b/applications/solvers/multiphase/interCondensingEvaporatingFoam/temperaturePhaseChangeTwoPhaseMixtures/constant/constant.C @@ -78,8 +78,8 @@ Foam::temperaturePhaseChangeTwoPhaseMixtures::constant::mDotAlphal() const return Pair> ( - coeffC_*mixture_.rho2()*max(TSat - T, T0), - -coeffE_*mixture_.rho1()*max(T - TSat, T0) + coeffC_*mixture_.rho2()*max(TSat - T.oldTime(), T0), + -coeffE_*mixture_.rho1()*max(T.oldTime() - TSat, T0) ); } @@ -112,8 +112,8 @@ Foam::temperaturePhaseChangeTwoPhaseMixtures::constant::mDot() const return Pair> ( - coeffC_*mixture_.rho2()*limitedAlpha2*max(TSat - T, T0), - coeffE_*mixture_.rho1()*limitedAlpha1*max(T - TSat, T0) + coeffC_*mixture_.rho2()*limitedAlpha2*max(TSat - T.oldTime(), T0), + coeffE_*mixture_.rho1()*limitedAlpha1*max(T.oldTime() - TSat, T0) ); } @@ -144,8 +144,8 @@ Foam::temperaturePhaseChangeTwoPhaseMixtures::constant::mDotDeltaT() const return Pair> ( - coeffC_*mixture_.rho2()*limitedAlpha2*pos(TSat - T), - coeffE_*mixture_.rho1()*limitedAlpha1*pos(T - TSat) + coeffC_*mixture_.rho2()*limitedAlpha2*pos(TSat - T.oldTime()), + coeffE_*mixture_.rho1()*limitedAlpha1*pos(T.oldTime() - TSat) ); } diff --git a/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/0/T b/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/0/T index e909b4147c..b2e7a71174 100644 --- a/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/0/T +++ b/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/0/T @@ -16,7 +16,7 @@ FoamFile dimensions [0 0 0 1 0 0 0]; -internalField uniform 368; +internalField uniform 375; boundaryField { @@ -32,12 +32,8 @@ boundaryField } left { - type compressible::turbulentHeatFluxTemperature; - heatSource flux; - q uniform -40e3; - kappaMethod fluidThermo; - kappa none; - value $internalField; + type fixedValue; + value uniform 360; } right { diff --git a/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/0/epsilon b/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/0/epsilon new file mode 100644 index 0000000000..4229ae55f6 --- /dev/null +++ b/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/0/epsilon @@ -0,0 +1,56 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object epsilon; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -3 0 0 0 0]; + +internalField uniform 1; + +boundaryField +{ + bottom + { + type epsilonWallFunction; + value $internalField; + } + + top + { + type inletOutlet; + inletValue $internalField; + value $internalField; + } + + left + { + type epsilonWallFunction; + value $internalField; + } + + right + { + type epsilonWallFunction; + value $internalField; + } + + frontAndBack + { + type empty; + } +} + + +// ************************************************************************* // diff --git a/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/0/k b/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/0/k index 7d9331b849..2aa6a1370b 100644 --- a/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/0/k +++ b/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/0/k @@ -17,7 +17,7 @@ FoamFile dimensions [ 0 2 -2 0 0 0 0 ]; -internalField uniform 2e-3; +internalField uniform 0.1; boundaryField { diff --git a/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/0/p b/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/0/p new file mode 100644 index 0000000000..6e70556c85 --- /dev/null +++ b/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/0/p @@ -0,0 +1,53 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + object p; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [ 1 -1 -2 0 0 0 0 ]; + +internalField uniform 1e5; + +boundaryField +{ + bottom + { + type calculated; + value $internalField; + } + + top + { + type calculated; + value $internalField; + } + + left + { + type calculated; + value $internalField; + } + + right + { + type calculated; + value $internalField; + } + + frontAndBack + { + type empty; + } +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/Allrun b/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/Allrun index 8a77ff8076..ebc19b3d2a 100755 --- a/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/Allrun +++ b/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/Allrun @@ -4,7 +4,9 @@ cd ${0%/*} || exit 1 # Run from this directory # Source tutorial run functions . $WM_PROJECT_DIR/bin/tools/RunFunctions +application=$(getApplication) + runApplication blockMesh -runApplication $(getApplication) +runApplication $application #------------------------------------------------------------------------------ diff --git a/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/constant/thermophysicalProperties b/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/constant/thermophysicalProperties index 928e6bcdff..843e4e92e7 100644 --- a/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/constant/thermophysicalProperties +++ b/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/constant/thermophysicalProperties @@ -16,6 +16,6 @@ FoamFile TSat TSat [0 0 0 1 0] 366; // saturation temperature -pDivU true; +pDivU false; // ************************************************************************* // diff --git a/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/constant/transportProperties b/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/constant/transportProperties index 7b11306833..a6ad8621d4 100644 --- a/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/constant/transportProperties +++ b/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/constant/transportProperties @@ -17,7 +17,7 @@ FoamFile phases (liquid vapour);// FC-72 -sigma sigma [1 0 -2 0 0 0 0] 0.07; +sigma sigma [1 0 -2 0 0 0 0] 0.0; liquid { diff --git a/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/constant/turbulenceProperties b/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/constant/turbulenceProperties index 9907248c08..d791c09a0c 100644 --- a/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/constant/turbulenceProperties +++ b/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/constant/turbulenceProperties @@ -19,7 +19,7 @@ simulationType RAS; RAS { - RASModel kOmega; + RASModel kOmegaSST; turbulence on; printCoeffs on; diff --git a/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/system/controlDict b/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/system/controlDict index 108ca5fe82..8038616849 100644 --- a/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/system/controlDict +++ b/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/system/controlDict @@ -25,11 +25,11 @@ stopAt endTime; endTime 4; -deltaT 1e-5; +deltaT 1e-4; writeControl adjustableRunTime; -writeInterval 1e-1; +writeInterval 0.1; purgeWrite 0; @@ -45,11 +45,9 @@ timePrecision 6; runTimeModifiable yes; -adjustTimeStep yes; +adjustTimeStep no; -maxCo 6.0; - -maxAlphaCo 6.0; +maxCo 1.0; maxDeltaT 1e-2; diff --git a/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/system/fvSchemes b/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/system/fvSchemes index 305d727946..b00f7a636d 100644 --- a/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/system/fvSchemes +++ b/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/system/fvSchemes @@ -29,10 +29,11 @@ divSchemes { default none; - div(rhoPhi,U) Gauss linear; - div(phi,omega) Gauss linear; - div(phi,k) Gauss linear; - div(rhoPhi,e) Gauss linear; + div(rhoPhi,U) Gauss upwind; + div(phi,omega) Gauss upwind; + div(phi,epsilon) Gauss upwind; + div(phi,k) Gauss upwind; + div(rhoPhi,e) Gauss upwind; div(rhoPhi,K) Gauss upwind; div(phi,alpha) Gauss vanLeer; div(phirb,alpha) Gauss linear; @@ -42,7 +43,7 @@ divSchemes laplacianSchemes { - default Gauss linear orthogonal; + default Gauss linear corrected; } interpolationSchemes @@ -52,7 +53,7 @@ interpolationSchemes snGradSchemes { - default orthogonal; + default corrected; } wallDist diff --git a/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/system/fvSolution b/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/system/fvSolution index 52d1527ecc..0099e72397 100644 --- a/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/system/fvSolution +++ b/tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel/system/fvSolution @@ -17,9 +17,14 @@ FoamFile solvers { + ".*(rho|rhoFinal)" + { + solver diagonal; + } + "alpha.liquid.*" { - cAlpha 1; + cAlpha 0; nAlphaCorr 2; nAlphaSubCycles 2; @@ -55,6 +60,7 @@ solvers nCellsInCoarsestLevel 10; agglomerator faceAreaPair; mergeLevels 1; + maxIter 100; }; p_rghFinal @@ -111,7 +117,7 @@ PIMPLE { momentumPredictor false; nOuterCorrectors 1; - nCorrectors 3; + nCorrectors 2; nNonOrthogonalCorrectors 0; } From 78da6865c6b55ce79d1266fa0cd16c0cfe9cf807 Mon Sep 17 00:00:00 2001 From: Mark Olesen Date: Thu, 15 Dec 2016 15:15:56 +0100 Subject: [PATCH 2/6] COMP: reduce warnings when building sloan renumber - boost uses old-style casts for null and others --- src/renumber/SloanRenumber/Make/options | 1 + 1 file changed, 1 insertion(+) diff --git a/src/renumber/SloanRenumber/Make/options b/src/renumber/SloanRenumber/Make/options index bf9567fef2..b76ce9a4bc 100644 --- a/src/renumber/SloanRenumber/Make/options +++ b/src/renumber/SloanRenumber/Make/options @@ -1,4 +1,5 @@ EXE_INC = \ + ${c++LESSWARN} \ -I$(BOOST_ARCH_PATH)/include \ -I$(LIB_SRC)/meshTools/lnInclude \ -I$(LIB_SRC)/parallel/decompose/decompositionMethods/lnInclude \ From 500dc5d3a3f4262d659748ebf9f051cede3ff2ec Mon Sep 17 00:00:00 2001 From: Mark Olesen Date: Thu, 15 Dec 2016 15:48:09 +0100 Subject: [PATCH 3/6] DEFEATURE: remove unused fvMesh constructor using cellShapes --- src/finiteVolume/fvMesh/fvMesh.C | 48 -------------------------------- src/finiteVolume/fvMesh/fvMesh.H | 18 ++---------- 2 files changed, 2 insertions(+), 64 deletions(-) diff --git a/src/finiteVolume/fvMesh/fvMesh.C b/src/finiteVolume/fvMesh/fvMesh.C index 3342910ab1..544f66035f 100644 --- a/src/finiteVolume/fvMesh/fvMesh.C +++ b/src/finiteVolume/fvMesh/fvMesh.C @@ -331,54 +331,6 @@ Foam::fvMesh::fvMesh(const IOobject& io) } -Foam::fvMesh::fvMesh -( - const IOobject& io, - const Xfer& points, - const cellShapeList& shapes, - const faceListList& boundaryFaces, - const wordList& boundaryPatchNames, - const PtrList& boundaryDicts, - const word& defaultBoundaryPatchName, - const word& defaultBoundaryPatchType, - const bool syncPar -) -: - polyMesh - ( - io, - points, - shapes, - boundaryFaces, - boundaryPatchNames, - boundaryDicts, - defaultBoundaryPatchName, - defaultBoundaryPatchType, - syncPar - ), - surfaceInterpolation(*this), - fvSchemes(static_cast(*this)), - fvSolution(static_cast(*this)), - data(static_cast(*this)), - boundary_(*this, boundaryMesh()), - lduPtr_(nullptr), - curTimeIndex_(time().timeIndex()), - VPtr_(nullptr), - V0Ptr_(nullptr), - V00Ptr_(nullptr), - SfPtr_(nullptr), - magSfPtr_(nullptr), - CPtr_(nullptr), - CfPtr_(nullptr), - phiPtr_(nullptr) -{ - if (debug) - { - InfoInFunction << "Constructing fvMesh from cellShapes" << endl; - } -} - - Foam::fvMesh::fvMesh ( const IOobject& io, diff --git a/src/finiteVolume/fvMesh/fvMesh.H b/src/finiteVolume/fvMesh/fvMesh.H index 3625af35f7..94a6f68f21 100644 --- a/src/finiteVolume/fvMesh/fvMesh.H +++ b/src/finiteVolume/fvMesh/fvMesh.H @@ -157,10 +157,10 @@ class fvMesh //- Disallow construct as copy - fvMesh(const fvMesh&); + fvMesh(const fvMesh&) = delete; //- Disallow assignment - void operator=(const fvMesh&); + void operator=(const fvMesh&) = delete; public: @@ -180,20 +180,6 @@ public: //- Construct from IOobject explicit fvMesh(const IOobject& io); - //- Construct from cellShapes with boundary. - fvMesh - ( - const IOobject& io, - const Xfer& points, - const cellShapeList& shapes, - const faceListList& boundaryFaces, - const wordList& boundaryPatchNames, - const PtrList& boundaryDicts, - const word& defaultBoundaryPatchName, - const word& defaultBoundaryPatchType, - const bool syncPar = true - ); - //- Construct from components without boundary. // Boundary is added using addFvPatches() member function fvMesh From a32a915d2e5d7f16fce5a9cce3c1c4c9145470ef Mon Sep 17 00:00:00 2001 From: Mark Olesen Date: Thu, 15 Dec 2016 19:07:05 +0100 Subject: [PATCH 4/6] BUG: polyMesh removeFiles side-effect for blockMesh viewer (issue #346) - polyMesh constructor from cell shapes invoked 'removeFiles'. This may or may not be what the caller wants or expects. With the ParaView blockMesh viewer, this behaviour causes deletion of all mesh data (points, faces, etc) when the viewer is refreshed. Triggered even when just building the blockMesh topology. - only a few places that construct a polyMesh from cell shapes (mostly mesh conversion utilities). Ensure that the file removal (if any) occurs in the application and *not* as a side-effect of calling the polyMesh constructor. -- blockMesh (application) - The placement of the removeFiles seems to also remove freshly generated sets (Bug or feature to remove sets?) +-----------------------+---------------+------------------+ | Application | Constructor | removeFiles | | | (patch info) | new / existing | +-----------------------+---------------+------------------+ | blockMesh | dictionary | existing | | ansysToFoam | names | new | | cfx4ToFoam | dictionary | new | | fluentMeshToFoam | names | new | | gambitToFoam | dictionary | new | | gmshToFoam | names | new | | ideasUnvToFoam | names | new | | kivaToFoam | dictionary | new | | mshToFoam | names | new | | netgenNeutralToFoam | names | new | | plot3dToFoam | names | new | | tetgenToFoam | names | new | | vtkUnstructuredToFoam | names | new | +-----------------------+---------------+------------------+ --- .../mesh/conversion/ansysToFoam/ansysToFoam.L | 1 + .../utilities/mesh/conversion/cfx4ToFoam/cfx4ToFoam.C | 1 + .../conversion/fluentMeshToFoam/fluentMeshToFoam.L | 3 +++ .../mesh/conversion/gambitToFoam/gambitToFoam.L | 1 + .../utilities/mesh/conversion/gmshToFoam/gmshToFoam.C | 3 +++ .../mesh/conversion/ideasUnvToFoam/ideasUnvToFoam.C | 10 +++++----- .../mesh/conversion/kivaToFoam/readKivaGrid.H | 1 + .../utilities/mesh/conversion/mshToFoam/mshToFoam.C | 2 +- .../netgenNeutralToFoam/netgenNeutralToFoam.C | 5 ++--- .../mesh/conversion/plot3dToFoam/plot3dToFoam.C | 1 + .../mesh/conversion/tetgenToFoam/tetgenToFoam.C | 4 ++-- .../vtkUnstructuredToFoam/vtkUnstructuredToFoam.C | 2 +- src/OpenFOAM/meshes/polyMesh/polyMeshFromShapeMesh.C | 6 ------ 13 files changed, 22 insertions(+), 18 deletions(-) diff --git a/applications/utilities/mesh/conversion/ansysToFoam/ansysToFoam.L b/applications/utilities/mesh/conversion/ansysToFoam/ansysToFoam.L index 5c4c321850..3268db2108 100644 --- a/applications/utilities/mesh/conversion/ansysToFoam/ansysToFoam.L +++ b/applications/utilities/mesh/conversion/ansysToFoam/ansysToFoam.L @@ -702,6 +702,7 @@ int main(int argc, char *argv[]) IOstream::defaultPrecision(max(10u, IOstream::defaultPrecision())); Info<< "Writing polyMesh" << endl; + pShapeMesh.removeFiles(); pShapeMesh.write(); Info<< nl << "end" << endl; diff --git a/applications/utilities/mesh/conversion/cfx4ToFoam/cfx4ToFoam.C b/applications/utilities/mesh/conversion/cfx4ToFoam/cfx4ToFoam.C index 45477dd4fb..ee5b4f073b 100644 --- a/applications/utilities/mesh/conversion/cfx4ToFoam/cfx4ToFoam.C +++ b/applications/utilities/mesh/conversion/cfx4ToFoam/cfx4ToFoam.C @@ -753,6 +753,7 @@ int main(int argc, char *argv[]) IOstream::defaultPrecision(max(10u, IOstream::defaultPrecision())); Info<< "Writing polyMesh" << endl; + pShapeMesh.removeFiles(); pShapeMesh.write(); Info<< "End\n" << endl; diff --git a/applications/utilities/mesh/conversion/fluentMeshToFoam/fluentMeshToFoam.L b/applications/utilities/mesh/conversion/fluentMeshToFoam/fluentMeshToFoam.L index 5a0ebc94aa..fbb98236c8 100644 --- a/applications/utilities/mesh/conversion/fluentMeshToFoam/fluentMeshToFoam.L +++ b/applications/utilities/mesh/conversion/fluentMeshToFoam/fluentMeshToFoam.L @@ -1177,6 +1177,9 @@ int main(int argc, char *argv[]) patchPhysicalTypes ); + // Remove files now, to ensure all mesh files written are consistent. + pShapeMesh.removeFiles(); + //dont write mesh yet, otherwise preservePatchTypes will be broken //and zones wont be written //checkmesh done after patch addition as well diff --git a/applications/utilities/mesh/conversion/gambitToFoam/gambitToFoam.L b/applications/utilities/mesh/conversion/gambitToFoam/gambitToFoam.L index f9ce3c3423..ff3ae5737e 100644 --- a/applications/utilities/mesh/conversion/gambitToFoam/gambitToFoam.L +++ b/applications/utilities/mesh/conversion/gambitToFoam/gambitToFoam.L @@ -865,6 +865,7 @@ int main(int argc, char *argv[]) IOstream::defaultPrecision(max(10u, IOstream::defaultPrecision())); Info<< "Writing polyMesh" << endl; + pShapeMesh.removeFiles(); pShapeMesh.write(); Info<< "\nEnd\n" << endl; diff --git a/applications/utilities/mesh/conversion/gmshToFoam/gmshToFoam.C b/applications/utilities/mesh/conversion/gmshToFoam/gmshToFoam.C index a1d4f55668..f6c84fbb1a 100644 --- a/applications/utilities/mesh/conversion/gmshToFoam/gmshToFoam.C +++ b/applications/utilities/mesh/conversion/gmshToFoam/gmshToFoam.C @@ -942,6 +942,9 @@ int main(int argc, char *argv[]) boundaryPatchPhysicalTypes ); + // Remove files now, to ensure all mesh files written are consistent. + mesh.removeFiles(); + repatchPolyTopoChanger repatcher(mesh); // Now use the patchFaces to patch up the outside faces of the mesh. diff --git a/applications/utilities/mesh/conversion/ideasUnvToFoam/ideasUnvToFoam.C b/applications/utilities/mesh/conversion/ideasUnvToFoam/ideasUnvToFoam.C index 6c3c2451e0..e4c9fb7bf9 100644 --- a/applications/utilities/mesh/conversion/ideasUnvToFoam/ideasUnvToFoam.C +++ b/applications/utilities/mesh/conversion/ideasUnvToFoam/ideasUnvToFoam.C @@ -1158,8 +1158,6 @@ int main(int argc, char *argv[]) Info<< endl; - - // Construct mesh polyMesh mesh ( @@ -1179,8 +1177,10 @@ int main(int argc, char *argv[]) wordList(0) // boundaryPatchPhysicalTypes ); + // Remove files now, to ensure all mesh files written are consistent. + mesh.removeFiles(); - if (faceZones.size() > 0 || cellZones.size() > 0) + if (faceZones.size() || cellZones.size()) { Info << "Adding cell and face zones" << endl; @@ -1188,7 +1188,7 @@ int main(int argc, char *argv[]) List fZones(faceZones.size()); List cZones(cellZones.size()); - if (cellZones.size() > 0) + if (cellZones.size()) { forAll(cellZones.toc(), cnt) { @@ -1205,7 +1205,7 @@ int main(int argc, char *argv[]) ); } } - if (faceZones.size() > 0) + if (faceZones.size()) { const labelList& own = mesh.faceOwner(); const labelList& nei = mesh.faceNeighbour(); diff --git a/applications/utilities/mesh/conversion/kivaToFoam/readKivaGrid.H b/applications/utilities/mesh/conversion/kivaToFoam/readKivaGrid.H index 994f0c57a7..d291b83139 100644 --- a/applications/utilities/mesh/conversion/kivaToFoam/readKivaGrid.H +++ b/applications/utilities/mesh/conversion/kivaToFoam/readKivaGrid.H @@ -575,6 +575,7 @@ polyMesh pShapeMesh ); Info << "Writing polyMesh" << endl; +pShapeMesh.removeFiles(); pShapeMesh.write(); fileName czPath diff --git a/applications/utilities/mesh/conversion/mshToFoam/mshToFoam.C b/applications/utilities/mesh/conversion/mshToFoam/mshToFoam.C index 28e99a7a1d..2bc7e4fd7e 100644 --- a/applications/utilities/mesh/conversion/mshToFoam/mshToFoam.C +++ b/applications/utilities/mesh/conversion/mshToFoam/mshToFoam.C @@ -156,9 +156,9 @@ int main(int argc, char *argv[]) Info<< "Writing mesh ..." << endl; + mesh.removeFiles(); mesh.write(); - Info<< "End\n" << endl; return 0; diff --git a/applications/utilities/mesh/conversion/netgenNeutralToFoam/netgenNeutralToFoam.C b/applications/utilities/mesh/conversion/netgenNeutralToFoam/netgenNeutralToFoam.C index d953cc9782..c7f8d86a20 100644 --- a/applications/utilities/mesh/conversion/netgenNeutralToFoam/netgenNeutralToFoam.C +++ b/applications/utilities/mesh/conversion/netgenNeutralToFoam/netgenNeutralToFoam.C @@ -313,11 +313,10 @@ int main(int argc, char *argv[]) patchPhysicalTypes ); - Info<< "Writing mesh to " << runTime.constant() << endl << endl; - + Info<< "Writing mesh ..." << endl; + mesh.removeFiles(); mesh.write(); - Info<< "End\n" << endl; return 0; diff --git a/applications/utilities/mesh/conversion/plot3dToFoam/plot3dToFoam.C b/applications/utilities/mesh/conversion/plot3dToFoam/plot3dToFoam.C index ac62937367..1a24ab8623 100644 --- a/applications/utilities/mesh/conversion/plot3dToFoam/plot3dToFoam.C +++ b/applications/utilities/mesh/conversion/plot3dToFoam/plot3dToFoam.C @@ -262,6 +262,7 @@ int main(int argc, char *argv[]) IOstream::defaultPrecision(max(10u, IOstream::defaultPrecision())); Info<< "Writing polyMesh" << endl; + pShapeMesh.removeFiles(); pShapeMesh.write(); Info<< "End\n" << endl; diff --git a/applications/utilities/mesh/conversion/tetgenToFoam/tetgenToFoam.C b/applications/utilities/mesh/conversion/tetgenToFoam/tetgenToFoam.C index 39d8ff5a76..b7b80d576c 100644 --- a/applications/utilities/mesh/conversion/tetgenToFoam/tetgenToFoam.C +++ b/applications/utilities/mesh/conversion/tetgenToFoam/tetgenToFoam.C @@ -342,7 +342,6 @@ int main(int argc, char *argv[]) const polyMesh& mesh = meshPtr; - if (readFaceFile) { label nPatches = 0; @@ -474,7 +473,7 @@ int main(int argc, char *argv[]) boundaryPatch.setSize(facei); - // Print region to patch mapping + // Print region to patch mapping Info<< "Regions:" << endl; forAllConstIter(Map