From b95c4f9ee747423dc11d04a438cdeac8b746d852 Mon Sep 17 00:00:00 2001 From: andy Date: Fri, 24 Jan 2014 12:38:08 +0000 Subject: [PATCH 1/5] ENH: lagrangian tutorial updates --- .../counterFlowFlame2D/system/fvSolution | 2 +- .../MPPICFoam/column/system/fvSolution | 2 +- .../cylinder/system/fvSolution | 19 ++++++++--- .../constant/reactingCloud1Properties | 6 ++-- .../hotBoxes/system/fvSolution | 6 ++-- .../splashPanel/system/fvSolution | 33 +++++++++++------- .../system/wallFilmRegion/fvSolution | 10 +++--- .../filter/system/fvSolution | 20 +++++++++-- .../parcelInBox/system/fvSolution | 18 ++++++++-- .../verticalChannel/system/fvSolution | 32 ++++++++++------- .../sprayFoam/aachenBomb/system/fvSolution | 34 +++++++++++-------- 11 files changed, 120 insertions(+), 62 deletions(-) diff --git a/tutorials/lagrangian/LTSReactingParcelFoam/counterFlowFlame2D/system/fvSolution b/tutorials/lagrangian/LTSReactingParcelFoam/counterFlowFlame2D/system/fvSolution index 205e4f6276..615fe1fe28 100644 --- a/tutorials/lagrangian/LTSReactingParcelFoam/counterFlowFlame2D/system/fvSolution +++ b/tutorials/lagrangian/LTSReactingParcelFoam/counterFlowFlame2D/system/fvSolution @@ -25,7 +25,7 @@ solvers p { solver GAMG; - tolerance 0; + tolerance 1e-6; relTol 0.1; smoother GaussSeidel; nPreSweeps 0; diff --git a/tutorials/lagrangian/MPPICFoam/column/system/fvSolution b/tutorials/lagrangian/MPPICFoam/column/system/fvSolution index 3603be1ce2..3d4ac58294 100644 --- a/tutorials/lagrangian/MPPICFoam/column/system/fvSolution +++ b/tutorials/lagrangian/MPPICFoam/column/system/fvSolution @@ -20,7 +20,7 @@ solvers p { solver GAMG; - tolerance 0; + tolerance 1e-6; relTol 0.01; smoother GaussSeidel; nPreSweeps 0; diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/cylinder/system/fvSolution b/tutorials/lagrangian/reactingParcelFilmFoam/cylinder/system/fvSolution index b2d6387581..0891259e10 100644 --- a/tutorials/lagrangian/reactingParcelFilmFoam/cylinder/system/fvSolution +++ b/tutorials/lagrangian/reactingParcelFilmFoam/cylinder/system/fvSolution @@ -32,15 +32,16 @@ solvers relTol 0; } - "(U|h)" + U { solver smoothSolver; smoother symGaussSeidel; tolerance 0; relTol 0.1; + maxIter 50; } - "(U|h)Final" + UFinal { $U; relTol 0; @@ -73,9 +74,19 @@ solvers relTol 0; } - "(Yi|O2|N2|H2O)" + "(h|Yi|O2|N2|H2O)" { - $hFinal; + solver PBiCG; + preconditioner DILU; + tolerance 1e-6; + relTol 0; + } + hFinal + { + solver PBiCG; + preconditioner DILU; + tolerance 1e-6; + relTol 0; } } diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/constant/reactingCloud1Properties b/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/constant/reactingCloud1Properties index c9d32f4468..e2ea29a4f8 100644 --- a/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/constant/reactingCloud1Properties +++ b/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/constant/reactingCloud1Properties @@ -83,12 +83,12 @@ subModels ((0.6 0.35 1.45) (0 0 -1)) ); - massTotal 10; + massTotal 5; parcelsPerInjector 20000; parcelsPerSecond 500; parcelBasisType mass; - flowRateProfile constant 0.1; - Umag constant 3.0; + flowRateProfile constant 1; + Umag constant 1; thetaInner constant 0; thetaOuter constant 45; diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/system/fvSolution b/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/system/fvSolution index 331f1752d7..94c21573c2 100644 --- a/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/system/fvSolution +++ b/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/system/fvSolution @@ -34,9 +34,9 @@ solvers "(U|h|k|epsilon)" { - solver smoothSolver; - smoother symGaussSeidel; - tolerance 0; + solver PBiCG; + preconditioner DILU; + tolerance 1e-5; relTol 0.1; } diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/system/fvSolution b/tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/system/fvSolution index be992a7810..1933c385ed 100644 --- a/tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/system/fvSolution +++ b/tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/system/fvSolution @@ -32,31 +32,27 @@ solvers relTol 0; } - "(U|h)" + U { solver smoothSolver; smoother symGaussSeidel; tolerance 0; relTol 0.1; + maxIter 50; } - "(U|h)Final" + UFinal { $U; relTol 0; tolerance 1e-05; } - "(k|epsilon)" - { - $UFinal; - } - p_rgh { solver GAMG; tolerance 0; - relTol 0.1; + relTol 0.01; smoother GaussSeidel; nPreSweeps 0; nPostSweeps 2; @@ -64,18 +60,29 @@ solvers nCellsInCoarsestLevel 10; agglomerator faceAreaPair; mergeLevels 1; + maxIter 50; } p_rghFinal { $p_rgh; - tolerance 1e-06; + tolerance 1e-05; relTol 0; } - "(Yi|O2|N2|H2O)" + "(h|Yi|O2|N2|H2O)" { - $hFinal; + solver PBiCG; + preconditioner DILU; + tolerance 1e-6; + relTol 0; + } + hFinal + { + solver PBiCG; + preconditioner DILU; + tolerance 1e-6; + relTol 0; } } @@ -90,11 +97,11 @@ relaxationFactors { fields { - ".*Final" 1; + ".*" 1; } equations { - ".*Final" 1; + ".*" 1; } } diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/system/wallFilmRegion/fvSolution b/tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/system/wallFilmRegion/fvSolution index e52ac35a05..91c65c4206 100644 --- a/tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/system/wallFilmRegion/fvSolution +++ b/tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/system/wallFilmRegion/fvSolution @@ -19,15 +19,15 @@ solvers { "(Uf|hf|deltaf\*rhof)" { - solver smoothSolver; - smoother symGaussSeidel; + solver PBiCG; + preconditioner DILU; tolerance 1e-10; relTol 0; } deltaf { - solver smoothSolver; - smoother symGaussSeidel; + solver PBiCG; + preconditioner DILU; tolerance 1e-10; relTol 0; } @@ -46,9 +46,11 @@ relaxationFactors { fields { + ".*" 1; } equations { + ".*" 1; } } diff --git a/tutorials/lagrangian/reactingParcelFoam/filter/system/fvSolution b/tutorials/lagrangian/reactingParcelFoam/filter/system/fvSolution index 85d0e7b998..1ec56c204c 100644 --- a/tutorials/lagrangian/reactingParcelFoam/filter/system/fvSolution +++ b/tutorials/lagrangian/reactingParcelFoam/filter/system/fvSolution @@ -32,7 +32,7 @@ solvers relTol 0; } - "(U|h|k|epsilon)" + "(U|k|epsilon)" { solver smoothSolver; smoother symGaussSeidel; @@ -40,7 +40,7 @@ solvers relTol 0.1; } - "(U|h|k|epsilon)Final" + "(U|k|epsilon)Final" { $U; tolerance 1e-06; @@ -70,7 +70,21 @@ solvers "(Yi|O2|N2|H2O)" { - $hFinal; + solver PBiCG; + preconditioner DILU; + tolerance 1e-6; + relTol 0; + } + + h + { + $Yi; + relTol 0.1; + } + + hFinal + { + $Yi; } } diff --git a/tutorials/lagrangian/reactingParcelFoam/parcelInBox/system/fvSolution b/tutorials/lagrangian/reactingParcelFoam/parcelInBox/system/fvSolution index a42e10c1b5..806319cad3 100644 --- a/tutorials/lagrangian/reactingParcelFoam/parcelInBox/system/fvSolution +++ b/tutorials/lagrangian/reactingParcelFoam/parcelInBox/system/fvSolution @@ -32,7 +32,7 @@ solvers relTol 0; } - "(U|h|k|epsilon)" + "(U|k|epsilon)" { solver smoothSolver; smoother symGaussSeidel; @@ -40,7 +40,7 @@ solvers relTol 0.1; } - "(U|h|k|epsilon)Final" + "(U|k|epsilon)Final" { $U; tolerance 1e-05; @@ -71,7 +71,19 @@ solvers "(Yi|O2|N2|H2O)" { - $hFinal; + solver PBiCG; + preconditioner DILU; + tolerance 1e-6; + relTol 0; + } + h + { + $Yi; + relTol 0.1; + } + hFinal + { + $Yi; } } diff --git a/tutorials/lagrangian/reactingParcelFoam/verticalChannel/system/fvSolution b/tutorials/lagrangian/reactingParcelFoam/verticalChannel/system/fvSolution index d77e5f75e9..f75a11b10c 100644 --- a/tutorials/lagrangian/reactingParcelFoam/verticalChannel/system/fvSolution +++ b/tutorials/lagrangian/reactingParcelFoam/verticalChannel/system/fvSolution @@ -32,7 +32,7 @@ solvers relTol 0; } - "(U|h|k|omega)" + "(U|k|omega)" { solver smoothSolver; smoother symGaussSeidel; @@ -40,7 +40,7 @@ solvers relTol 0.1; } - "(U|h|k|omega)Final" + "(U|k|omega)Final" { $U; tolerance 1e-06; @@ -59,7 +59,6 @@ solvers nCellsInCoarsestLevel 10; agglomerator faceAreaPair; mergeLevels 1; - maxIter 50; } pFinal @@ -71,23 +70,31 @@ solvers "(Yi|O2|N2|H2O)" { - $hFinal; + solver PBiCG; + preconditioner DILU; + tolerance 1e-6; + relTol 0; + } + h + { + $Yi; + relTol 0.1; + } + hFinal + { + $Yi; } } PIMPLE { - nCorrectors 3; + transonic no; + nOuterCorrectors 1; + nCorrectors 2; nNonOrthogonalCorrectors 0; momentumPredictor yes; } -potentialFlow -{ - // used for potentialFoam initialisation - nNonOrthogonalCorrectors 5; -} - relaxationFactors { fields @@ -95,8 +102,9 @@ relaxationFactors } equations { - ".*" 1; + ".*Final" 1; } } + // ************************************************************************* // diff --git a/tutorials/lagrangian/sprayFoam/aachenBomb/system/fvSolution b/tutorials/lagrangian/sprayFoam/aachenBomb/system/fvSolution index b9bb909f5b..51cbc83c22 100644 --- a/tutorials/lagrangian/sprayFoam/aachenBomb/system/fvSolution +++ b/tutorials/lagrangian/sprayFoam/aachenBomb/system/fvSolution @@ -32,11 +32,11 @@ solvers relTol 0; } - "(U|h)" + "(U|k|epsilon)" { solver smoothSolver; smoother symGaussSeidel; - tolerance 1e-05; + tolerance 1e-06; relTol 0.1; } @@ -61,26 +61,30 @@ solvers relTol 0; } - "(U|h)Final" + "(U|k|epsilon)Final" { $U; - tolerance 1e-05; + tolerance 1e-06; relTol 0; } - "(k|epsilon)" - { - $U; - } - - "(k|epsilon)Final" - { - $UFinal; - } - "(Yi|O2|N2|H2O)" { - $UFinal; + solver PBiCG; + preconditioner DILU; + tolerance 1e-6; + relTol 0; + } + + h + { + $Yi; + relTol 0.1; + } + + hFinal + { + $Yi; } } From 73e876c7fb766a71217f4753e605c99d73926096 Mon Sep 17 00:00:00 2001 From: andy Date: Fri, 24 Jan 2014 15:21:10 +0000 Subject: [PATCH 2/5] ENH: tutorial update - incompressible --- .../SRFSimpleFoam/mixer/system/fvSolution | 46 +---------- .../boundaryLaunderSharma/system/fvSchemes | 8 +- .../boundaryLaunderSharma/system/fvSolution | 30 +------ .../boundaryWallFunctions/system/fvSchemes | 8 +- .../boundaryWallFunctions/system/fvSolution | 30 +------ .../system/fvSchemes | 10 +-- .../system/fvSolution | 38 +-------- .../icoFoam/cavity/system/fvSolution | 4 +- .../icoFoam/cavityClipped/system/fvSolution | 4 +- .../icoFoam/cavityGrade/system/fvSolution | 4 +- .../icoFoam/elbow/system/fvSolution | 4 +- .../offsetCylinder/system/fvSolution | 18 +++-- .../movingCone/system/fvSolution | 26 ++++-- .../system/fvSolution | 6 +- .../system/fvSolution | 4 +- .../pimpleFoam/TJunction/system/fvSolution | 4 +- .../pimpleFoam/TJunctionFan/system/fvSolution | 4 +- .../pimpleFoam/channel395/system/fvSolution | 22 +++-- .../elipsekkLOmega/system/fvSolution | 15 ++-- .../pimpleFoam/pitzDaily/system/fvSolution | 6 +- .../les/motorBike/lesFiles/fvSolution | 80 ++++--------------- .../les/motorBike/motorBike/system/fvSolution | 37 +++------ .../pisoFoam/les/pitzDaily/system/fvSolution | 46 ++++------- .../les/pitzDailyMapped/system/fvSolution | 52 ++++-------- .../pisoFoam/ras/cavity/system/fvSolution | 51 +++--------- .../ras/cavityCoupledU/system/fvSolution | 43 +++------- .../squareBump/system/fvSolution | 4 +- .../simpleFoam/pipeCyclic/system/fvSolution | 14 +--- .../simpleFoam/pitzDaily/system/fvSolution | 48 +++-------- .../pitzDailyExptInlet/system/fvSolution | 48 +++-------- 30 files changed, 202 insertions(+), 512 deletions(-) diff --git a/tutorials/incompressible/SRFSimpleFoam/mixer/system/fvSolution b/tutorials/incompressible/SRFSimpleFoam/mixer/system/fvSolution index d3b6f9d65b..99306fab01 100644 --- a/tutorials/incompressible/SRFSimpleFoam/mixer/system/fvSolution +++ b/tutorials/incompressible/SRFSimpleFoam/mixer/system/fvSolution @@ -25,50 +25,10 @@ solvers relTol 0.01; } - Urel + "(Urel|k|epsilon|omega|R|nuTilda)" { - solver PBiCG; - preconditioner DILU; - tolerance 1e-05; - relTol 0.1; - } - - k - { - solver PBiCG; - preconditioner DILU; - tolerance 1e-05; - relTol 0.1; - } - - epsilon - { - solver PBiCG; - preconditioner DILU; - tolerance 1e-05; - relTol 0.1; - } - - omega - { - solver PBiCG; - preconditioner DILU; - tolerance 1e-05; - relTol 0.1; - } - - R - { - solver PBiCG; - preconditioner DILU; - tolerance 1e-05; - relTol 0.1; - } - - nuTilda - { - solver PBiCG; - preconditioner DILU; + solver smoothSolver; + smoother symGaussSeidel; tolerance 1e-05; relTol 0.1; } diff --git a/tutorials/incompressible/boundaryFoam/boundaryLaunderSharma/system/fvSchemes b/tutorials/incompressible/boundaryFoam/boundaryLaunderSharma/system/fvSchemes index 893d5e28e7..815e258200 100644 --- a/tutorials/incompressible/boundaryFoam/boundaryLaunderSharma/system/fvSchemes +++ b/tutorials/incompressible/boundaryFoam/boundaryLaunderSharma/system/fvSchemes @@ -28,10 +28,10 @@ gradSchemes divSchemes { default none; - div(phi,k) Gauss linear; - div(phi,epsilon) Gauss linear; - div(phi,R) Gauss linear; - div(phi,nuTilda) Gauss linear; + div(phi,k) bounded Gauss linear; + div(phi,epsilon) bounded Gauss linear; + div(phi,R) bounded Gauss linear; + div(phi,nuTilda) bounded Gauss linear; div((nuEff*dev(T(grad(U))))) Gauss linear; } diff --git a/tutorials/incompressible/boundaryFoam/boundaryLaunderSharma/system/fvSolution b/tutorials/incompressible/boundaryFoam/boundaryLaunderSharma/system/fvSolution index 8ffa1bc5ff..ae4d2879b3 100644 --- a/tutorials/incompressible/boundaryFoam/boundaryLaunderSharma/system/fvSolution +++ b/tutorials/incompressible/boundaryFoam/boundaryLaunderSharma/system/fvSolution @@ -25,34 +25,10 @@ solvers relTol 0; } - k + "(k|epsilon|R|nuTilda)" { - solver PBiCG; - preconditioner DILU; - tolerance 1e-06; - relTol 0; - } - - epsilon - { - solver PBiCG; - preconditioner DILU; - tolerance 1e-06; - relTol 0; - } - - R - { - solver PBiCG; - preconditioner DILU; - tolerance 1e-06; - relTol 0; - } - - nuTilda - { - solver PBiCG; - preconditioner DILU; + solver smoothSolver; + smoother symGaussSeidel; tolerance 1e-06; relTol 0; } diff --git a/tutorials/incompressible/boundaryFoam/boundaryWallFunctions/system/fvSchemes b/tutorials/incompressible/boundaryFoam/boundaryWallFunctions/system/fvSchemes index 893d5e28e7..815e258200 100644 --- a/tutorials/incompressible/boundaryFoam/boundaryWallFunctions/system/fvSchemes +++ b/tutorials/incompressible/boundaryFoam/boundaryWallFunctions/system/fvSchemes @@ -28,10 +28,10 @@ gradSchemes divSchemes { default none; - div(phi,k) Gauss linear; - div(phi,epsilon) Gauss linear; - div(phi,R) Gauss linear; - div(phi,nuTilda) Gauss linear; + div(phi,k) bounded Gauss linear; + div(phi,epsilon) bounded Gauss linear; + div(phi,R) bounded Gauss linear; + div(phi,nuTilda) bounded Gauss linear; div((nuEff*dev(T(grad(U))))) Gauss linear; } diff --git a/tutorials/incompressible/boundaryFoam/boundaryWallFunctions/system/fvSolution b/tutorials/incompressible/boundaryFoam/boundaryWallFunctions/system/fvSolution index 16b9956a58..671565adb9 100644 --- a/tutorials/incompressible/boundaryFoam/boundaryWallFunctions/system/fvSolution +++ b/tutorials/incompressible/boundaryFoam/boundaryWallFunctions/system/fvSolution @@ -25,34 +25,10 @@ solvers relTol 0; } - k + "(k|epsilon|R|nuTilda)" { - solver PBiCG; - preconditioner DILU; - tolerance 1e-06; - relTol 0; - } - - epsilon - { - solver PBiCG; - preconditioner DILU; - tolerance 1e-06; - relTol 0; - } - - R - { - solver PBiCG; - preconditioner DILU; - tolerance 1e-06; - relTol 0; - } - - nuTilda - { - solver PBiCG; - preconditioner DILU; + solver smoothSolver; + smoother symGaussSeidel; tolerance 1e-06; relTol 0; } diff --git a/tutorials/incompressible/boundaryFoam/boundaryWallFunctionsProfile/system/fvSchemes b/tutorials/incompressible/boundaryFoam/boundaryWallFunctionsProfile/system/fvSchemes index 83e4172fbb..1d00381423 100644 --- a/tutorials/incompressible/boundaryFoam/boundaryWallFunctionsProfile/system/fvSchemes +++ b/tutorials/incompressible/boundaryFoam/boundaryWallFunctionsProfile/system/fvSchemes @@ -28,11 +28,11 @@ gradSchemes divSchemes { default none; - div(phi,k) Gauss linear; - div(phi,epsilon) Gauss linear; - div(phi,omega) Gauss linear; - div(phi,R) Gauss linear; - div(phi,nuTilda) Gauss linear; + div(phi,k) bounded Gauss linear; + div(phi,epsilon) bounded Gauss linear; + div(phi,omega) bounded Gauss linear; + div(phi,R) bounded Gauss linear; + div(phi,nuTilda) bounded Gauss linear; div((nuEff*dev(T(grad(U))))) Gauss linear; } diff --git a/tutorials/incompressible/boundaryFoam/boundaryWallFunctionsProfile/system/fvSolution b/tutorials/incompressible/boundaryFoam/boundaryWallFunctionsProfile/system/fvSolution index 050b262898..58ede59f1e 100644 --- a/tutorials/incompressible/boundaryFoam/boundaryWallFunctionsProfile/system/fvSolution +++ b/tutorials/incompressible/boundaryFoam/boundaryWallFunctionsProfile/system/fvSolution @@ -25,42 +25,10 @@ solvers relTol 0; } - k + "(k|epsilon|omega|R|nuTilda)" { - solver PBiCG; - preconditioner DILU; - tolerance 1e-06; - relTol 0; - } - - epsilon - { - solver PBiCG; - preconditioner DILU; - tolerance 1e-06; - relTol 0; - } - - omega - { - solver PBiCG; - preconditioner DILU; - tolerance 1e-06; - relTol 0; - } - - R - { - solver PBiCG; - preconditioner DILU; - tolerance 1e-06; - relTol 0; - } - - nuTilda - { - solver PBiCG; - preconditioner DILU; + solver smoothSolver; + smoother symGaussSeidel; tolerance 1e-06; relTol 0; } diff --git a/tutorials/incompressible/icoFoam/cavity/system/fvSolution b/tutorials/incompressible/icoFoam/cavity/system/fvSolution index cc4750f16c..f9e556f155 100644 --- a/tutorials/incompressible/icoFoam/cavity/system/fvSolution +++ b/tutorials/incompressible/icoFoam/cavity/system/fvSolution @@ -27,8 +27,8 @@ solvers U { - solver PBiCG; - preconditioner DILU; + solver smoothSolver; + smoother symGaussSeidel; tolerance 1e-05; relTol 0; } diff --git a/tutorials/incompressible/icoFoam/cavityClipped/system/fvSolution b/tutorials/incompressible/icoFoam/cavityClipped/system/fvSolution index cc4750f16c..f9e556f155 100644 --- a/tutorials/incompressible/icoFoam/cavityClipped/system/fvSolution +++ b/tutorials/incompressible/icoFoam/cavityClipped/system/fvSolution @@ -27,8 +27,8 @@ solvers U { - solver PBiCG; - preconditioner DILU; + solver smoothSolver; + smoother symGaussSeidel; tolerance 1e-05; relTol 0; } diff --git a/tutorials/incompressible/icoFoam/cavityGrade/system/fvSolution b/tutorials/incompressible/icoFoam/cavityGrade/system/fvSolution index cc4750f16c..f9e556f155 100644 --- a/tutorials/incompressible/icoFoam/cavityGrade/system/fvSolution +++ b/tutorials/incompressible/icoFoam/cavityGrade/system/fvSolution @@ -27,8 +27,8 @@ solvers U { - solver PBiCG; - preconditioner DILU; + solver smoothSolver; + smoother symGaussSeidel; tolerance 1e-05; relTol 0; } diff --git a/tutorials/incompressible/icoFoam/elbow/system/fvSolution b/tutorials/incompressible/icoFoam/elbow/system/fvSolution index b843da009f..009414f72c 100644 --- a/tutorials/incompressible/icoFoam/elbow/system/fvSolution +++ b/tutorials/incompressible/icoFoam/elbow/system/fvSolution @@ -27,8 +27,8 @@ solvers U { - solver PBiCG; - preconditioner DILU; + solver smoothSolver; + smoother symGaussSeidel; tolerance 1e-05; relTol 0; } diff --git a/tutorials/incompressible/nonNewtonianIcoFoam/offsetCylinder/system/fvSolution b/tutorials/incompressible/nonNewtonianIcoFoam/offsetCylinder/system/fvSolution index 49c4c17faa..0d3d3d41f3 100644 --- a/tutorials/incompressible/nonNewtonianIcoFoam/offsetCylinder/system/fvSolution +++ b/tutorials/incompressible/nonNewtonianIcoFoam/offsetCylinder/system/fvSolution @@ -19,16 +19,22 @@ solvers { p { - solver PCG; - preconditioner DIC; - tolerance 1e-06; - relTol 0; + solver GAMG; + tolerance 0; + relTol 0.1; + smoother GaussSeidel; + nPreSweeps 0; + nPostSweeps 2; + cacheAgglomeration true; + nCellsInCoarsestLevel 10; + agglomerator faceAreaPair; + mergeLevels 1; } U { - solver PBiCG; - preconditioner DILU; + solver smoothSolver; + smoother symGaussSeidel; tolerance 1e-05; relTol 0; } diff --git a/tutorials/incompressible/pimpleDyMFoam/movingCone/system/fvSolution b/tutorials/incompressible/pimpleDyMFoam/movingCone/system/fvSolution index 6c9287ac8c..1002548e26 100644 --- a/tutorials/incompressible/pimpleDyMFoam/movingCone/system/fvSolution +++ b/tutorials/incompressible/pimpleDyMFoam/movingCone/system/fvSolution @@ -19,18 +19,30 @@ solvers { pcorr { - solver PCG; - preconditioner DIC; + solver GAMG; tolerance 0.02; relTol 0; + smoother GaussSeidel; + nPreSweeps 0; + nPostSweeps 2; + cacheAgglomeration no; + nCellsInCoarsestLevel 10; + agglomerator faceAreaPair; + mergeLevels 1; } p { - solver PCG; - preconditioner DIC; - tolerance 1e-06; + solver GAMG; + tolerance 0; relTol 0.01; + smoother GaussSeidel; + nPreSweeps 0; + nPostSweeps 2; + cacheAgglomeration no; + nCellsInCoarsestLevel 10; + agglomerator faceAreaPair; + mergeLevels 1; } pFinal @@ -42,8 +54,8 @@ solvers U { - solver PBiCG; - preconditioner DILU; + solver smoothSolver; + smoother symGaussSeidel; tolerance 1e-05; relTol 0.1; } diff --git a/tutorials/incompressible/pimpleDyMFoam/wingMotion/wingMotion2D_pimpleDyMFoam/system/fvSolution b/tutorials/incompressible/pimpleDyMFoam/wingMotion/wingMotion2D_pimpleDyMFoam/system/fvSolution index 0340484469..60cc53cf31 100644 --- a/tutorials/incompressible/pimpleDyMFoam/wingMotion/wingMotion2D_pimpleDyMFoam/system/fvSolution +++ b/tutorials/incompressible/pimpleDyMFoam/wingMotion/wingMotion2D_pimpleDyMFoam/system/fvSolution @@ -24,7 +24,7 @@ solvers smoother GaussSeidel; nPreSweeps 0; nPostSweeps 2; - cacheAgglomeration on; + cacheAgglomeration true; agglomerator faceAreaPair; nCellsInCoarsestLevel 10; mergeLevels 1; @@ -46,8 +46,8 @@ solvers "(U|k|omega)" { - solver PBiCG; - preconditioner DILU; + solver smoothSolver; + smoother symGaussSeidel; tolerance 1e-06; relTol 0.1; } diff --git a/tutorials/incompressible/pimpleDyMFoam/wingMotion/wingMotion_snappyHexMesh/system/fvSolution b/tutorials/incompressible/pimpleDyMFoam/wingMotion/wingMotion_snappyHexMesh/system/fvSolution index 7c31faeadb..850c27e7cd 100644 --- a/tutorials/incompressible/pimpleDyMFoam/wingMotion/wingMotion_snappyHexMesh/system/fvSolution +++ b/tutorials/incompressible/pimpleDyMFoam/wingMotion/wingMotion_snappyHexMesh/system/fvSolution @@ -19,8 +19,8 @@ solvers { p { - solver PBiCG; - preconditioner DILU; + solver smoothSolver; + smoother symGaussSeidel; tolerance 1e-12; relTol 0; } diff --git a/tutorials/incompressible/pimpleFoam/TJunction/system/fvSolution b/tutorials/incompressible/pimpleFoam/TJunction/system/fvSolution index 8e0f165060..7812980b34 100644 --- a/tutorials/incompressible/pimpleFoam/TJunction/system/fvSolution +++ b/tutorials/incompressible/pimpleFoam/TJunction/system/fvSolution @@ -43,8 +43,8 @@ solvers "(U|k|epsilon)" { - solver PBiCG; - preconditioner DILU; + solver smoothSolver; + smoother symGaussSeidel; tolerance 1e-05; relTol 0.1; } diff --git a/tutorials/incompressible/pimpleFoam/TJunctionFan/system/fvSolution b/tutorials/incompressible/pimpleFoam/TJunctionFan/system/fvSolution index 8e0f165060..7812980b34 100644 --- a/tutorials/incompressible/pimpleFoam/TJunctionFan/system/fvSolution +++ b/tutorials/incompressible/pimpleFoam/TJunctionFan/system/fvSolution @@ -43,8 +43,8 @@ solvers "(U|k|epsilon)" { - solver PBiCG; - preconditioner DILU; + solver smoothSolver; + smoother symGaussSeidel; tolerance 1e-05; relTol 0.1; } diff --git a/tutorials/incompressible/pimpleFoam/channel395/system/fvSolution b/tutorials/incompressible/pimpleFoam/channel395/system/fvSolution index cc56bcbe20..3beda0be2d 100644 --- a/tutorials/incompressible/pimpleFoam/channel395/system/fvSolution +++ b/tutorials/incompressible/pimpleFoam/channel395/system/fvSolution @@ -19,24 +19,30 @@ solvers { p { - solver PCG; - preconditioner DIC; - tolerance 1e-06; - relTol 0.05; + solver GAMG; + tolerance 0; + relTol 0.1; + smoother GaussSeidel; + nPreSweeps 0; + nPostSweeps 2; + cacheAgglomeration true; + nCellsInCoarsestLevel 10; + agglomerator faceAreaPair; + mergeLevels 1; } pFinal { - solver PCG; - preconditioner DIC; + $p; + smoother DICGaussSeidel; tolerance 1e-06; relTol 0; } "(U|k)" { - solver PBiCG; - preconditioner DILU; + solver smoothSolver; + smoother symGaussSeidel; tolerance 1e-05; relTol 0.1; } diff --git a/tutorials/incompressible/pimpleFoam/elipsekkLOmega/system/fvSolution b/tutorials/incompressible/pimpleFoam/elipsekkLOmega/system/fvSolution index b7fb9bc5f9..395e3f2cf2 100644 --- a/tutorials/incompressible/pimpleFoam/elipsekkLOmega/system/fvSolution +++ b/tutorials/incompressible/pimpleFoam/elipsekkLOmega/system/fvSolution @@ -21,8 +21,8 @@ solvers { solver GAMG; tolerance 1e-06; - relTol 0.01; - smoother GaussSeidel; + relTol 0.1; + smoother DICGaussSeidel; cacheAgglomeration true; nCellsInCoarsestLevel 10; agglomerator faceAreaPair; @@ -31,20 +31,15 @@ solvers pFinal { - solver GAMG; + $p; tolerance 1e-06; relTol 0; - smoother GaussSeidel; - cacheAgglomeration true; - nCellsInCoarsestLevel 10; - agglomerator faceAreaPair; - mergeLevels 1; } "(U|kl|kt|omega)" { - solver PBiCG; - preconditioner DILU; + solver smoothSolver; + smoother symGaussSeidel; tolerance 1e-06; relTol 0.01; } diff --git a/tutorials/incompressible/pimpleFoam/pitzDaily/system/fvSolution b/tutorials/incompressible/pimpleFoam/pitzDaily/system/fvSolution index 880d7bef7b..9de4397498 100644 --- a/tutorials/incompressible/pimpleFoam/pitzDaily/system/fvSolution +++ b/tutorials/incompressible/pimpleFoam/pitzDaily/system/fvSolution @@ -23,7 +23,7 @@ solvers tolerance 1e-7; relTol 0.01; - smoother GaussSeidel; + smoother DICGaussSeidel; cacheAgglomeration true; nCellsInCoarsestLevel 10; @@ -39,8 +39,8 @@ solvers "(U|k|epsilon)" { - solver PBiCG; - preconditioner DILU; + solver smoothSolver; + smoother symGaussSeidel; tolerance 1e-05; relTol 0.1; } diff --git a/tutorials/incompressible/pisoFoam/les/motorBike/lesFiles/fvSolution b/tutorials/incompressible/pisoFoam/les/motorBike/lesFiles/fvSolution index c8105e447d..19904d0a37 100644 --- a/tutorials/incompressible/pisoFoam/les/motorBike/lesFiles/fvSolution +++ b/tutorials/incompressible/pisoFoam/les/motorBike/lesFiles/fvSolution @@ -18,76 +18,34 @@ solvers { p { - solver GAMG; - tolerance 1e-6; - relTol 0.1; + solver GAMG; + tolerance 1e-6; + relTol 0.1; - smoother GaussSeidel; - nPreSweeps 0; - nPostSweeps 2; + smoother GaussSeidel; + nPreSweeps 0; + nPostSweeps 2; cacheAgglomeration true; nCellsInCoarsestLevel 50;//10; - agglomerator faceAreaPair; - mergeLevels 1; + agglomerator faceAreaPair; + mergeLevels 1; }; pFinal { - solver GAMG; - tolerance 1e-6; - relTol 0; - - smoother GaussSeidel; - nPreSweeps 0; - nPostSweeps 2; - - cacheAgglomeration true; - - nCellsInCoarsestLevel 50;//10; - agglomerator faceAreaPair; - mergeLevels 1; + $p; + tolerance 1e-6; + relTol 0; }; - U + "(U|k|B|nuTilda)" { - solver PBiCG; - preconditioner DILU; - tolerance 1e-08; - relTol 0; - }; - - UFinal - { - solver PBiCG; - preconditioner DILU; - tolerance 1e-08; - relTol 0; - }; - - k - { - solver PBiCG; - preconditioner DILU; - tolerance 1e-07; - relTol 0; - }; - - B - { - solver PBiCG; - preconditioner DILU; - tolerance 1e-07; - relTol 0; - }; - - nuTilda - { - solver PBiCG; - preconditioner DILU; - tolerance 1e-07; - relTol 0; + solver smoothSolver; + smoother GaussSeidel; + tolerance 1e-07; + relTol 0; }; } @@ -97,12 +55,6 @@ PISO nNonOrthogonalCorrectors 1; } -PIMPLE -{ - nCorrectors 2; - nNonOrthogonalCorrectors 1; -} - relaxationFactors { "U.*" 1; diff --git a/tutorials/incompressible/pisoFoam/les/motorBike/motorBike/system/fvSolution b/tutorials/incompressible/pisoFoam/les/motorBike/motorBike/system/fvSolution index de3282b0fe..de4bd756b9 100644 --- a/tutorials/incompressible/pisoFoam/les/motorBike/motorBike/system/fvSolution +++ b/tutorials/incompressible/pisoFoam/les/motorBike/motorBike/system/fvSolution @@ -30,37 +30,20 @@ solvers nCellsInCoarsestLevel 10; mergeLevels 1; } - U + + pFinal + { + $p; + tolerance 1e-6; + relTol 0; + }; + + "(U|nuTilda)" { solver smoothSolver; smoother GaussSeidel; tolerance 1e-08; relTol 0.1; - nSweeps 1; - } - k - { - solver smoothSolver; - smoother GaussSeidel; - tolerance 1e-08; - relTol 0.1; - nSweeps 1; - } - omega - { - solver smoothSolver; - smoother GaussSeidel; - tolerance 1e-08; - relTol 0.1; - nSweeps 1; - } - nuTilda - { - solver smoothSolver; - smoother GaussSeidel; - nSweeps 2; - tolerance 1e-08; - relT 0.1; } } @@ -78,8 +61,6 @@ relaxationFactors { p 0.3; U 0.5; - k 0.7; - omega 0.7; nuTilda 0.5; } diff --git a/tutorials/incompressible/pisoFoam/les/pitzDaily/system/fvSolution b/tutorials/incompressible/pisoFoam/les/pitzDaily/system/fvSolution index c25efa4212..1ae8d1c803 100644 --- a/tutorials/incompressible/pisoFoam/les/pitzDaily/system/fvSolution +++ b/tutorials/incompressible/pisoFoam/les/pitzDaily/system/fvSolution @@ -19,48 +19,30 @@ solvers { p { - solver PCG; - preconditioner DIC; + solver GAMG; tolerance 1e-06; - relTol 0.05; + relTol 0.1; + smoother GaussSeidel; + nPreSweeps 0; + nPostSweeps 2; + cacheAgglomeration on; + agglomerator faceAreaPair; + nCellsInCoarsestLevel 10; + mergeLevels 1; } pFinal { - solver PCG; - preconditioner DIC; + $p; + smoother DICGaussSeidel; tolerance 1e-06; relTol 0; } - U + "(U|k|B|nuTilda)" { - solver PBiCG; - preconditioner DILU; - tolerance 1e-05; - relTol 0; - } - - k - { - solver PBiCG; - preconditioner DILU; - tolerance 1e-05; - relTol 0; - } - - B - { - solver PBiCG; - preconditioner DILU; - tolerance 1e-05; - relTol 0; - } - - nuTilda - { - solver PBiCG; - preconditioner DILU; + solver smoothSolver; + smoother GaussSeidel; tolerance 1e-05; relTol 0; } diff --git a/tutorials/incompressible/pisoFoam/les/pitzDailyMapped/system/fvSolution b/tutorials/incompressible/pisoFoam/les/pitzDailyMapped/system/fvSolution index c25efa4212..3c6eb61dd2 100644 --- a/tutorials/incompressible/pisoFoam/les/pitzDailyMapped/system/fvSolution +++ b/tutorials/incompressible/pisoFoam/les/pitzDailyMapped/system/fvSolution @@ -19,48 +19,30 @@ solvers { p { - solver PCG; - preconditioner DIC; - tolerance 1e-06; - relTol 0.05; + solver GAMG; + tolerance 1e-07; + relTol 0.1; + smoother GaussSeidel; + nPreSweeps 0; + nPostSweeps 2; + cacheAgglomeration on; + agglomerator faceAreaPair; + nCellsInCoarsestLevel 10; + mergeLevels 1; } pFinal { - solver PCG; - preconditioner DIC; - tolerance 1e-06; + $p; + smoother DICGaussSeidel; + tolerance 1e-6; relTol 0; - } + }; - U + "(U|k|B|nuTilda)" { - solver PBiCG; - preconditioner DILU; - tolerance 1e-05; - relTol 0; - } - - k - { - solver PBiCG; - preconditioner DILU; - tolerance 1e-05; - relTol 0; - } - - B - { - solver PBiCG; - preconditioner DILU; - tolerance 1e-05; - relTol 0; - } - - nuTilda - { - solver PBiCG; - preconditioner DILU; + solver smoothSolver; + smoother GaussSeidel; tolerance 1e-05; relTol 0; } diff --git a/tutorials/incompressible/pisoFoam/ras/cavity/system/fvSolution b/tutorials/incompressible/pisoFoam/ras/cavity/system/fvSolution index a067dc6fab..983e6dd804 100644 --- a/tutorials/incompressible/pisoFoam/ras/cavity/system/fvSolution +++ b/tutorials/incompressible/pisoFoam/ras/cavity/system/fvSolution @@ -19,56 +19,29 @@ solvers { p { - solver PCG; - preconditioner DIC; + solver GAMG; tolerance 1e-06; relTol 0.1; + smoother GaussSeidel; + nPreSweeps 0; + nPostSweeps 2; + cacheAgglomeration on; + agglomerator faceAreaPair; + nCellsInCoarsestLevel 10; + mergeLevels 1; } pFinal { - solver PCG; - preconditioner DIC; + $p; tolerance 1e-06; relTol 0; } - U + "(U|k|epsilon|R|nuTilda)" { - solver PBiCG; - preconditioner DILU; - tolerance 1e-05; - relTol 0; - } - - k - { - solver PBiCG; - preconditioner DILU; - tolerance 1e-05; - relTol 0; - } - - epsilon - { - solver PBiCG; - preconditioner DILU; - tolerance 1e-05; - relTol 0; - } - - R - { - solver PBiCG; - preconditioner DILU; - tolerance 1e-05; - relTol 0; - } - - nuTilda - { - solver PBiCG; - preconditioner DILU; + solver smoothSolver; + smoother GaussSeidel; tolerance 1e-05; relTol 0; } diff --git a/tutorials/incompressible/pisoFoam/ras/cavityCoupledU/system/fvSolution b/tutorials/incompressible/pisoFoam/ras/cavityCoupledU/system/fvSolution index a115a11a44..f54b30c2e8 100644 --- a/tutorials/incompressible/pisoFoam/ras/cavityCoupledU/system/fvSolution +++ b/tutorials/incompressible/pisoFoam/ras/cavityCoupledU/system/fvSolution @@ -19,16 +19,21 @@ solvers { p { - solver PCG; - preconditioner DIC; + solver GAMG; tolerance 1e-06; relTol 0.1; + smoother GaussSeidel; + nPreSweeps 0; + nPostSweeps 2; + cacheAgglomeration on; + agglomerator faceAreaPair; + nCellsInCoarsestLevel 10; + mergeLevels 1; } pFinal { - solver PCG; - preconditioner DIC; + $p; tolerance 1e-06; relTol 0; } @@ -42,34 +47,10 @@ solvers relTol (0 0 0); } - k + "(k|epsilon|R|nuTilda)" { - solver PBiCG; - preconditioner DILU; - tolerance 1e-05; - relTol 0; - } - - epsilon - { - solver PBiCG; - preconditioner DILU; - tolerance 1e-05; - relTol 0; - } - - R - { - solver PBiCG; - preconditioner DILU; - tolerance 1e-05; - relTol 0; - } - - nuTilda - { - solver PBiCG; - preconditioner DILU; + solver smoothSolver; + smoother GaussSeidel; tolerance 1e-05; relTol 0; } diff --git a/tutorials/incompressible/shallowWaterFoam/squareBump/system/fvSolution b/tutorials/incompressible/shallowWaterFoam/squareBump/system/fvSolution index 76309729fe..aa5358894e 100644 --- a/tutorials/incompressible/shallowWaterFoam/squareBump/system/fvSolution +++ b/tutorials/incompressible/shallowWaterFoam/squareBump/system/fvSolution @@ -33,8 +33,8 @@ solvers hU { - solver PBiCG; - preconditioner DILU; + solver smoothSolver; + smoother GaussSeidel; tolerance 1e-10; relTol 0.1; } diff --git a/tutorials/incompressible/simpleFoam/pipeCyclic/system/fvSolution b/tutorials/incompressible/simpleFoam/pipeCyclic/system/fvSolution index 5d305469b4..155643b2f4 100644 --- a/tutorials/incompressible/simpleFoam/pipeCyclic/system/fvSolution +++ b/tutorials/incompressible/simpleFoam/pipeCyclic/system/fvSolution @@ -32,13 +32,7 @@ solvers pFinal { - solver GAMG; - smoother GaussSeidel; - cacheAgglomeration true; - nCellsInCoarsestLevel 10; - agglomerator faceAreaPair; - mergeLevels 1; - + $p; tolerance 1e-06; relTol 0; } @@ -46,16 +40,14 @@ solvers "(U|k|epsilon)" { solver smoothSolver; - smoother GaussSeidel; + smoother symGaussSeidel; tolerance 1e-05; relTol 0.1; } "(U|k|epsilon)Final" { - solver PBiCG; - preconditioner DILU; - + $U; tolerance 1e-05; relTol 0; } diff --git a/tutorials/incompressible/simpleFoam/pitzDaily/system/fvSolution b/tutorials/incompressible/simpleFoam/pitzDaily/system/fvSolution index 55696bd510..ed2f5b2fe9 100644 --- a/tutorials/incompressible/simpleFoam/pitzDaily/system/fvSolution +++ b/tutorials/incompressible/simpleFoam/pitzDaily/system/fvSolution @@ -19,48 +19,22 @@ solvers { p { - solver PCG; - preconditioner DIC; + solver GAMG; tolerance 1e-06; - relTol 0.01; - } - - U - { - solver PBiCG; - preconditioner DILU; - tolerance 1e-05; relTol 0.1; + smoother GaussSeidel; + nPreSweeps 0; + nPostSweeps 2; + cacheAgglomeration on; + agglomerator faceAreaPair; + nCellsInCoarsestLevel 10; + mergeLevels 1; } - k + "(U|k|epsilon|R|nuTilda)" { - solver PBiCG; - preconditioner DILU; - tolerance 1e-05; - relTol 0.1; - } - - epsilon - { - solver PBiCG; - preconditioner DILU; - tolerance 1e-05; - relTol 0.1; - } - - R - { - solver PBiCG; - preconditioner DILU; - tolerance 1e-05; - relTol 0.1; - } - - nuTilda - { - solver PBiCG; - preconditioner DILU; + solver smoothSolver; + smoother symGaussSeidel; tolerance 1e-05; relTol 0.1; } diff --git a/tutorials/incompressible/simpleFoam/pitzDailyExptInlet/system/fvSolution b/tutorials/incompressible/simpleFoam/pitzDailyExptInlet/system/fvSolution index 55696bd510..ed2f5b2fe9 100644 --- a/tutorials/incompressible/simpleFoam/pitzDailyExptInlet/system/fvSolution +++ b/tutorials/incompressible/simpleFoam/pitzDailyExptInlet/system/fvSolution @@ -19,48 +19,22 @@ solvers { p { - solver PCG; - preconditioner DIC; + solver GAMG; tolerance 1e-06; - relTol 0.01; - } - - U - { - solver PBiCG; - preconditioner DILU; - tolerance 1e-05; relTol 0.1; + smoother GaussSeidel; + nPreSweeps 0; + nPostSweeps 2; + cacheAgglomeration on; + agglomerator faceAreaPair; + nCellsInCoarsestLevel 10; + mergeLevels 1; } - k + "(U|k|epsilon|R|nuTilda)" { - solver PBiCG; - preconditioner DILU; - tolerance 1e-05; - relTol 0.1; - } - - epsilon - { - solver PBiCG; - preconditioner DILU; - tolerance 1e-05; - relTol 0.1; - } - - R - { - solver PBiCG; - preconditioner DILU; - tolerance 1e-05; - relTol 0.1; - } - - nuTilda - { - solver PBiCG; - preconditioner DILU; + solver smoothSolver; + smoother symGaussSeidel; tolerance 1e-05; relTol 0.1; } From aa135c2fbb340d02e8bdb9db2288b99247bbf2b2 Mon Sep 17 00:00:00 2001 From: andy Date: Fri, 24 Jan 2014 15:58:38 +0000 Subject: [PATCH 3/5] ENH: film phase change model - updated for restarts --- .../thermo/phaseChangeModel/noPhaseChange/noPhaseChange.C | 8 +++++++- .../thermo/phaseChangeModel/noPhaseChange/noPhaseChange.H | 5 ++++- .../phaseChangeModel/phaseChangeModel/phaseChangeModel.C | 7 ++++++- 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/noPhaseChange/noPhaseChange.C b/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/noPhaseChange/noPhaseChange.C index bf585579f6..bb9e5b9ccd 100644 --- a/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/noPhaseChange/noPhaseChange.C +++ b/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/noPhaseChange/noPhaseChange.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -60,6 +60,12 @@ noPhaseChange::~noPhaseChange() // * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * // +bool noPhaseChange::active() const +{ + return false; +} + + void noPhaseChange::correctModel ( const scalar, diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/noPhaseChange/noPhaseChange.H b/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/noPhaseChange/noPhaseChange.H index 8403ca9d7f..65a3a56636 100644 --- a/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/noPhaseChange/noPhaseChange.H +++ b/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/noPhaseChange/noPhaseChange.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -85,6 +85,9 @@ public: // Evolution + //- Return the model 'active' status - default active = true + virtual bool active() const; + //- Correct virtual void correctModel ( diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/phaseChangeModel/phaseChangeModel.C b/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/phaseChangeModel/phaseChangeModel.C index ffc66761be..aae14e76ec 100644 --- a/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/phaseChangeModel/phaseChangeModel.C +++ b/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/phaseChangeModel/phaseChangeModel.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -81,6 +81,11 @@ void phaseChangeModel::correct volScalarField& dEnergy ) { + if (!active()) + { + return; + } + correctModel ( dt, From 9a73599edd7abf1b16cd8c7a6669d547596fd356 Mon Sep 17 00:00:00 2001 From: andy Date: Fri, 24 Jan 2014 15:59:45 +0000 Subject: [PATCH 4/5] ENH: tutorial update --- .../lagrangian/reactingParcelFilmFoam/splashPanel/0.org/H2O | 4 +++- .../lagrangian/reactingParcelFilmFoam/splashPanel/0.org/N2 | 4 +++- .../lagrangian/reactingParcelFilmFoam/splashPanel/0.org/O2 | 4 +++- .../lagrangian/reactingParcelFilmFoam/splashPanel/0.org/T | 5 +++-- 4 files changed, 12 insertions(+), 5 deletions(-) diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/0.org/H2O b/tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/0.org/H2O index 7c3d6d0044..cb57caaa92 100644 --- a/tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/0.org/H2O +++ b/tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/0.org/H2O @@ -24,7 +24,9 @@ boundaryField { sides { - type zeroGradient; + type inletOutlet; + inletValue $internalField; + value $internalField; } region0_to_wallFilmRegion_wallFilmFaces { diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/0.org/N2 b/tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/0.org/N2 index 501241274a..ef7ff824ab 100644 --- a/tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/0.org/N2 +++ b/tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/0.org/N2 @@ -24,7 +24,9 @@ boundaryField { sides { - type zeroGradient; + type inletOutlet; + inletValue $internalField; + value $internalField; } region0_to_wallFilmRegion_wallFilmFaces { diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/0.org/O2 b/tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/0.org/O2 index e581261f29..a9c3ccf847 100644 --- a/tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/0.org/O2 +++ b/tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/0.org/O2 @@ -24,7 +24,9 @@ boundaryField { sides { - type zeroGradient; + type inletOutlet; + inletValue $internalField; + value $internalField; } region0_to_wallFilmRegion_wallFilmFaces { diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/0.org/T b/tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/0.org/T index 26121abcf9..52d3650d61 100644 --- a/tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/0.org/T +++ b/tutorials/lagrangian/reactingParcelFilmFoam/splashPanel/0.org/T @@ -23,8 +23,9 @@ boundaryField { sides { - type fixedValue; - value uniform 300; + type inletOutlet; + inletValue $internalField; + value $internalField; } region0_to_wallFilmRegion_wallFilmFaces { From 4096a013f3c4275bae41924d175c370f94ac0a97 Mon Sep 17 00:00:00 2001 From: william Date: Fri, 24 Jan 2014 16:13:07 +0000 Subject: [PATCH 5/5] ENH: MPPICFoam: Added cyclone tutorial --- .../lagrangian/MPPICFoam/cyclone/0/U.air | 46 +++ .../lagrangian/MPPICFoam/cyclone/0/k.air | 44 +++ .../lagrangian/MPPICFoam/cyclone/0/nut.air | 42 +++ tutorials/lagrangian/MPPICFoam/cyclone/0/p | 46 +++ .../lagrangian/MPPICFoam/cyclone/Allclean | 7 + tutorials/lagrangian/MPPICFoam/cyclone/Allrun | 15 + .../lagrangian/MPPICFoam/cyclone/constant/g | 21 ++ .../cyclone/constant/kinematicCloudProperties | 184 +++++++++++ .../cyclone/constant/polyMesh/blockMeshDict | 63 ++++ .../cyclone/constant/transportProperties | 25 ++ .../cyclone/constant/triSurface/README | 4 + .../cyclone/constant/turbulenceProperties.air | 35 ++ .../MPPICFoam/cyclone/system/controlDict | 48 +++ .../MPPICFoam/cyclone/system/decomposeParDict | 28 ++ .../MPPICFoam/cyclone/system/fvSchemes | 60 ++++ .../MPPICFoam/cyclone/system/fvSolution | 88 +++++ .../cyclone/system/snappyHexMeshDict | 305 ++++++++++++++++++ tutorials/resources/geometry/cyclone.stl.gz | Bin 0 -> 7926 bytes 18 files changed, 1061 insertions(+) create mode 100644 tutorials/lagrangian/MPPICFoam/cyclone/0/U.air create mode 100644 tutorials/lagrangian/MPPICFoam/cyclone/0/k.air create mode 100644 tutorials/lagrangian/MPPICFoam/cyclone/0/nut.air create mode 100644 tutorials/lagrangian/MPPICFoam/cyclone/0/p create mode 100755 tutorials/lagrangian/MPPICFoam/cyclone/Allclean create mode 100755 tutorials/lagrangian/MPPICFoam/cyclone/Allrun create mode 100644 tutorials/lagrangian/MPPICFoam/cyclone/constant/g create mode 100644 tutorials/lagrangian/MPPICFoam/cyclone/constant/kinematicCloudProperties create mode 100644 tutorials/lagrangian/MPPICFoam/cyclone/constant/polyMesh/blockMeshDict create mode 100644 tutorials/lagrangian/MPPICFoam/cyclone/constant/transportProperties create mode 100644 tutorials/lagrangian/MPPICFoam/cyclone/constant/triSurface/README create mode 100644 tutorials/lagrangian/MPPICFoam/cyclone/constant/turbulenceProperties.air create mode 100644 tutorials/lagrangian/MPPICFoam/cyclone/system/controlDict create mode 100644 tutorials/lagrangian/MPPICFoam/cyclone/system/decomposeParDict create mode 100644 tutorials/lagrangian/MPPICFoam/cyclone/system/fvSchemes create mode 100644 tutorials/lagrangian/MPPICFoam/cyclone/system/fvSolution create mode 100644 tutorials/lagrangian/MPPICFoam/cyclone/system/snappyHexMeshDict create mode 100644 tutorials/resources/geometry/cyclone.stl.gz diff --git a/tutorials/lagrangian/MPPICFoam/cyclone/0/U.air b/tutorials/lagrangian/MPPICFoam/cyclone/0/U.air new file mode 100644 index 0000000000..ec35c05a70 --- /dev/null +++ b/tutorials/lagrangian/MPPICFoam/cyclone/0/U.air @@ -0,0 +1,46 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format binary; + class volVectorField; + location "0"; + object U.air; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 -1 0 0 0 0]; + +internalField uniform (0 0 0); + +boundaryField +{ + inlet + { + type fixedValue; + value uniform (-10 0 0); + } + + outlet + { + type pressureInletOutletVelocity; + phi phi.air; + inletValue uniform (0 0 0); + value uniform (0 0 0); + } + + walls + { + type fixedValue; + value uniform (0 0 0); + } +} + + +// ************************************************************************* // diff --git a/tutorials/lagrangian/MPPICFoam/cyclone/0/k.air b/tutorials/lagrangian/MPPICFoam/cyclone/0/k.air new file mode 100644 index 0000000000..28fbdabab5 --- /dev/null +++ b/tutorials/lagrangian/MPPICFoam/cyclone/0/k.air @@ -0,0 +1,44 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + object k.air; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -2 0 0 0 0]; + +internalField uniform 1; + +boundaryField +{ + inlet + { + type fixedValue; + value $internalField; + } + + outlet + { + type inletOutlet; + phi phi.air; + inletValue $internalField; + value $internalField; + } + + walls + { + type kqRWallFunction; + value $internalField; + } +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/tutorials/lagrangian/MPPICFoam/cyclone/0/nut.air b/tutorials/lagrangian/MPPICFoam/cyclone/0/nut.air new file mode 100644 index 0000000000..ce5e04cb5e --- /dev/null +++ b/tutorials/lagrangian/MPPICFoam/cyclone/0/nut.air @@ -0,0 +1,42 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + object nut.air; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -1 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + inlet + { + type calculated; + value $internalField; + } + + outlet + { + type calculated; + value $internalField; + } + + walls + { + type nutkWallFunction; + value $internalField; + } +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/tutorials/lagrangian/MPPICFoam/cyclone/0/p b/tutorials/lagrangian/MPPICFoam/cyclone/0/p new file mode 100644 index 0000000000..bd1652aef9 --- /dev/null +++ b/tutorials/lagrangian/MPPICFoam/cyclone/0/p @@ -0,0 +1,46 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + object p; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -2 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + inlet + { + type fixedFluxPressure; + phi phi.air; + value $internalField; + } + + outlet + { + type fixedValue; + phi phi.air; + value uniform 0; + } + + walls + { + type fixedFluxPressure; + phi phi.air; + value $internalField; + } +} + + +// ************************************************************************* // diff --git a/tutorials/lagrangian/MPPICFoam/cyclone/Allclean b/tutorials/lagrangian/MPPICFoam/cyclone/Allclean new file mode 100755 index 0000000000..2f40581670 --- /dev/null +++ b/tutorials/lagrangian/MPPICFoam/cyclone/Allclean @@ -0,0 +1,7 @@ +#!/bin/sh + +. $WM_PROJECT_DIR/bin/tools/CleanFunctions + +# rm -f constant/triSurface/cyclone.stl.gz > /dev/null 2>&1 + +cleanCase diff --git a/tutorials/lagrangian/MPPICFoam/cyclone/Allrun b/tutorials/lagrangian/MPPICFoam/cyclone/Allrun new file mode 100755 index 0000000000..0ee008964e --- /dev/null +++ b/tutorials/lagrangian/MPPICFoam/cyclone/Allrun @@ -0,0 +1,15 @@ +#!/bin/bash + +cd ${0%/*} || exit 1 + +. $WM_PROJECT_DIR/bin/tools/RunFunctions + +cp $FOAM_TUTORIALS/resources/geometry/cyclone.stl.gz constant/triSurface + +runApplication blockMesh + +runApplication snappyHexMesh -overwrite + +runApplication decomposePar + +runParallel MPPICFoam $(echo processor* | wc -w) diff --git a/tutorials/lagrangian/MPPICFoam/cyclone/constant/g b/tutorials/lagrangian/MPPICFoam/cyclone/constant/g new file mode 100644 index 0000000000..c80141a8bd --- /dev/null +++ b/tutorials/lagrangian/MPPICFoam/cyclone/constant/g @@ -0,0 +1,21 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class uniformDimensionedVectorField; + location "constant"; + object g; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 -2 0 0 0 0]; +value ( 0 0 -9.81 ); + +// ************************************************************************* // diff --git a/tutorials/lagrangian/MPPICFoam/cyclone/constant/kinematicCloudProperties b/tutorials/lagrangian/MPPICFoam/cyclone/constant/kinematicCloudProperties new file mode 100644 index 0000000000..ddf2bd4747 --- /dev/null +++ b/tutorials/lagrangian/MPPICFoam/cyclone/constant/kinematicCloudProperties @@ -0,0 +1,184 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object particleProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +solution +{ + active true; + coupled true; + transient yes; + cellValueSourceCorrection on; + + maxCo 1.0; + + interpolationSchemes + { + rho.air cell; + U.air cellPoint; + mu.air cell; + } + + averagingMethod dual; + + integrationSchemes + { + U Euler; + } + + sourceTerms + { + schemes + { + U semiImplicit 1; + } + } +} + +constantProperties +{ + rho0 1000; + alphaMax 0.9; +} + +subModels +{ + particleForces + { + ErgunWenYuDrag + { + alphac alpha.air; + } + gravity; + } + + injectionModels + { + model1 + { + type patchInjection; + parcelBasisType fixed; + patchName inlet; + U0 (-10 0 0); + nParticle 500000; + parcelsPerSecond 244462; + sizeDistribution + { + type normal; + normalDistribution + { + expectation 50e-6; + variance 20e-6; + minValue 10e-6; + maxValue 90e-6; + } + } + flowRateProfile constant 1; + massTotal 0; + SOI 1; + duration 4; + } + } + + dispersionModel none; + + patchInteractionModel localInteraction; + + localInteractionCoeffs + { + patches + ( + walls + { + type rebound; + e 0.97; + mu 0.09; + } + inlet + { + type rebound; + e 0.97; + mu 0.09; + } + outlet + { + type escape; + } + ); + } + + heatTransferModel none; + + surfaceFilmModel none; + + packingModel implicit; + + explicitCoeffs + { + particleStressModel + { + type HarrisCrighton; + alphaPacked 0.6; + pSolid 10.0; + beta 2.0; + eps 1.0e-7; + } + correctionLimitingMethod + { + type absolute; + e 0.9; + } + } + + implicitCoeffs + { + alphaMin 0.0001; + rhoMin 1.0; + applyGravity false; + particleStressModel + { + type HarrisCrighton; + alphaPacked 0.6; + pSolid 5.0; + beta 2.0; + eps 1.0e-2; + } + } + + dampingModel none; + + isotropyModel stochastic; + + stochasticCoeffs + { + timeScaleModel + { + type isotropic; + alphaPacked 0.6; + e 0.9; + } + } + + stochasticCollisionModel none; + + radiation off; +} + + +cloudFunctions +{} + + +// ************************************************************************* // diff --git a/tutorials/lagrangian/MPPICFoam/cyclone/constant/polyMesh/blockMeshDict b/tutorials/lagrangian/MPPICFoam/cyclone/constant/polyMesh/blockMeshDict new file mode 100644 index 0000000000..869d237672 --- /dev/null +++ b/tutorials/lagrangian/MPPICFoam/cyclone/constant/polyMesh/blockMeshDict @@ -0,0 +1,63 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object blockMeshDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +convertToMeters 1; + +vertices +( + + (-0.55 -0.55 -1 ) + ( 0.55 -0.55 -1 ) + ( 0.55 0.55 -1 ) + (-0.55 0.55 -1 ) + + (-0.55 -0.55 1.1) + ( 0.55 -0.55 1.1) + ( 0.55 0.55 1.1) + (-0.55 0.55 1.1) +); + +blocks +( + hex (0 1 2 3 4 5 6 7) (33 33 63) simpleGrading (1 1 1) +); + +edges +( +); + +boundary +( + inlet + { + type patch; + faces + ( + (1 2 6 5) + ); + } + + outlet + { + type patch; + faces + ( + (4 5 6 7) + ); + } +); + +// ************************************************************************* // diff --git a/tutorials/lagrangian/MPPICFoam/cyclone/constant/transportProperties b/tutorials/lagrangian/MPPICFoam/cyclone/constant/transportProperties new file mode 100644 index 0000000000..4a765004b6 --- /dev/null +++ b/tutorials/lagrangian/MPPICFoam/cyclone/constant/transportProperties @@ -0,0 +1,25 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object transportProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +contiuousPhaseName air; + +rho.air 1.2; + +transportModel Newtonian; +nu 1.568e-05; + +// ************************************************************************* // diff --git a/tutorials/lagrangian/MPPICFoam/cyclone/constant/triSurface/README b/tutorials/lagrangian/MPPICFoam/cyclone/constant/triSurface/README new file mode 100644 index 0000000000..dbf3b73d5f --- /dev/null +++ b/tutorials/lagrangian/MPPICFoam/cyclone/constant/triSurface/README @@ -0,0 +1,4 @@ +Folder to house tri-surfaces + +The Allrun script copies the surface from the $FOAM_TUTORIALS/resources/geometry +folder diff --git a/tutorials/lagrangian/MPPICFoam/cyclone/constant/turbulenceProperties.air b/tutorials/lagrangian/MPPICFoam/cyclone/constant/turbulenceProperties.air new file mode 100644 index 0000000000..e9b36c8dc4 --- /dev/null +++ b/tutorials/lagrangian/MPPICFoam/cyclone/constant/turbulenceProperties.air @@ -0,0 +1,35 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object turbulenceProperties.air; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +simulationType LES; + +LES +{ + LESModel kEqn; + + turbulence on; + printCoeffs on; + + delta cubeRootVol; + + cubeRootVolCoeffs + { + } +} + + +// ************************************************************************* // diff --git a/tutorials/lagrangian/MPPICFoam/cyclone/system/controlDict b/tutorials/lagrangian/MPPICFoam/cyclone/system/controlDict new file mode 100644 index 0000000000..33bfb938f0 --- /dev/null +++ b/tutorials/lagrangian/MPPICFoam/cyclone/system/controlDict @@ -0,0 +1,48 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object controlDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +application MPPICFoam; + +startFrom latestTime; + +startTime 0; + +stopAt endTime; + +endTime 7; + +deltaT 2e-4; + +writeControl runTime; + +writeInterval 0.1; + +purgeWrite 0; + +writeFormat binary; + +writePrecision 6; + +writeCompression uncompressed; + +timeFormat general; + +timePrecision 6; + +runTimeModifiable yes; + +// ************************************************************************* // diff --git a/tutorials/lagrangian/MPPICFoam/cyclone/system/decomposeParDict b/tutorials/lagrangian/MPPICFoam/cyclone/system/decomposeParDict new file mode 100644 index 0000000000..999e461500 --- /dev/null +++ b/tutorials/lagrangian/MPPICFoam/cyclone/system/decomposeParDict @@ -0,0 +1,28 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object decomposeParDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +numberOfSubdomains 12; + +method simple; + +simpleCoeffs +{ + n ( 2 2 3 ); + delta 0.001; +} + +// ************************************************************************* // diff --git a/tutorials/lagrangian/MPPICFoam/cyclone/system/fvSchemes b/tutorials/lagrangian/MPPICFoam/cyclone/system/fvSchemes new file mode 100644 index 0000000000..85e5e37b62 --- /dev/null +++ b/tutorials/lagrangian/MPPICFoam/cyclone/system/fvSchemes @@ -0,0 +1,60 @@ +/*--------------------------------*- 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; + object fvSchemes; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +ddtSchemes +{ + default Euler; +} + +gradSchemes +{ + default Gauss linear; +} + +divSchemes +{ + default none; + div(alphaPhic,U.air) Gauss linearUpwindV unlimited; + div(((alpha.air*nuEff)*dev2(T(grad(U.air))))) Gauss linear; + div(phiGByA,kinematicCloud:alpha) Gauss linear; + div(((alpha.air*nuEff.air)*dev2(T(grad(U.air))))) Gauss linear; + div(alphaPhic,epsilon.air) Gauss limitedLinear 1; + div(alphaPhic,k.air) Gauss limitedLinear 1; +} + +laplacianSchemes +{ + default Gauss linear corrected; +} + +interpolationSchemes +{ + default linear; +} + +snGradSchemes +{ + default corrected; +} + +fluxRequired +{ + default no; + p; + kinematicCloud:alpha; +} + +// ************************************************************************* // diff --git a/tutorials/lagrangian/MPPICFoam/cyclone/system/fvSolution b/tutorials/lagrangian/MPPICFoam/cyclone/system/fvSolution new file mode 100644 index 0000000000..570323a4bb --- /dev/null +++ b/tutorials/lagrangian/MPPICFoam/cyclone/system/fvSolution @@ -0,0 +1,88 @@ +/*--------------------------------*- 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 fvSolution; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +solvers +{ + p + { + solver GAMG; + tolerance 1e-06; + relTol 0.01; + smoother GaussSeidel; + cacheAgglomeration true; + nCellsInCoarsestLevel 10; + agglomerator faceAreaPair; + mergeLevels 1; + } + + pFinal + { + solver GAMG; + tolerance 1e-06; + relTol 0; + smoother GaussSeidel; + cacheAgglomeration true; + nCellsInCoarsestLevel 10; + agglomerator faceAreaPair; + mergeLevels 1; + } + + "(U|k|epsilon|omega).air" + { + solver smoothSolver; + smoother symGaussSeidel; + tolerance 1e-05; + relTol 0.1; + } + + "(U|k|epsilon|omega).airFinal" + { + solver smoothSolver; + smoother symGaussSeidel; + tolerance 1e-05; + relTol 0.1; + } + + kinematicCloud:alpha + { + solver GAMG; + tolerance 1e-06; + relTol 0.1; + smoother GaussSeidel; + cacheAgglomeration true; + nCellsInCoarsestLevel 10; + agglomerator faceAreaPair; + mergeLevels 1; + } +} + +PIMPLE +{ + nOuterCorrectors 1; + nCorrectors 2; + momentumPredictor yes; + nNonOrthogonalCorrectors 0; + pRefCell 0; + pRefValue 0; +} + +relaxationFactors +{ +} + + +// ************************************************************************* // diff --git a/tutorials/lagrangian/MPPICFoam/cyclone/system/snappyHexMeshDict b/tutorials/lagrangian/MPPICFoam/cyclone/system/snappyHexMeshDict new file mode 100644 index 0000000000..2497646405 --- /dev/null +++ b/tutorials/lagrangian/MPPICFoam/cyclone/system/snappyHexMeshDict @@ -0,0 +1,305 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object snappyHexMeshDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +// Which of the steps to run +castellatedMesh true; +snap true; +addLayers false; + + + +// Geometry. Definition of all surfaces. All surfaces are of class +// searchableSurface. +// Surfaces are used +// - to specify refinement for any mesh cell intersecting it +// - to specify refinement for any mesh cell inside/outside/near +// - to 'snap' the mesh boundary to the surface +geometry +{ + cyclone.stl + { + type triSurfaceMesh; + name walls; + regions + { + solid + { + name walls; + } + } + } +}; + + + +// Settings for the castellatedMesh generation. +castellatedMeshControls +{ + // Refinement parameters + // ~~~~~~~~~~~~~~~~~~~~~ + + // If local number of cells is >= maxLocalCells on any processor + // switches from from refinement followed by balancing + // (current method) to (weighted) balancing before refinement. + maxLocalCells 100000; + + // Overall cell limit (approximately). Refinement will stop immediately + // upon reaching this number so a refinement level might not complete. + // Note that this is the number of cells before removing the part which + // is not 'visible' from the keepPoint. The final number of cells might + // actually be a lot less. + maxGlobalCells 2000000; + + // The surface refinement loop might spend lots of iterations refining just a + // few cells. This setting will cause refinement to stop if <= minimumRefine + // are selected for refinement. Note: it will at least do one iteration + // (unless the number of cells to refine is 0) + minRefinementCells 0; + + // Allow a certain level of imbalance during refining + // (since balancing is quite expensive) + // Expressed as fraction of perfect balance (= overall number of cells / + // nProcs). 0=balance always. + maxLoadUnbalance 0.10; + + // Number of buffer layers between different levels. + // 1 means normal 2:1 refinement restriction, larger means slower + // refinement. + nCellsBetweenLevels 2; + + + // Explicit feature edge refinement + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + // Specifies a level for any cell intersected by its edges. + // This is a featureEdgeMesh, read from constant/triSurface for now. + features + ( + ); + + + // Surface based refinement + // ~~~~~~~~~~~~~~~~~~~~~~~~ + + // Specifies two levels for every surface. The first is the minimum level, + // every cell intersecting a surface gets refined up to the minimum level. + // The second level is the maximum level. Cells that 'see' multiple + // intersections where the intersections make an + // angle > resolveFeatureAngle get refined up to the maximum level. + + refinementSurfaces + { + walls + { + level (0 0); + patchInfo + { + type wall; + } + } + } + + // Resolve sharp angles + resolveFeatureAngle 30; + + + // Region-wise refinement + // ~~~~~~~~~~~~~~~~~~~~~~ + + // Specifies refinement level for cells in relation to a surface. One of + // three modes + // - distance. 'levels' specifies per distance to the surface the + // wanted refinement level. The distances need to be specified in + // descending order. + // - inside. 'levels' is only one entry and only the level is used. All + // cells inside the surface get refined up to the level. The surface + // needs to be closed for this to be possible. + // - outside. Same but cells outside. + + refinementRegions + { + } + + + // Mesh selection + // ~~~~~~~~~~~~~~ + + // After refinement patches get added for all refinementSurfaces and + // all cells intersecting the surfaces get put into these patches. The + // section reachable from the locationInMesh is kept. + // NOTE: This point should never be on a face, always inside a cell, even + // after refinement. + locationInMesh (0.001 0.001 0.001); + + + // Whether any faceZones (as specified in the refinementSurfaces) + // are only on the boundary of corresponding cellZones or also allow + // free-standing zone faces. Not used if there are no faceZones. + allowFreeStandingZoneFaces true; +} + + + +// Settings for the snapping. +snapControls +{ + //- Number of patch smoothing iterations before finding correspondence + // to surface + nSmoothPatch 3; + + //- Relative distance for points to be attracted by surface feature point + // or edge. True distance is this factor times local + // maximum edge length. + tolerance 2.0; + + //- Number of mesh displacement relaxation iterations. + nSolveIter 300; + + //- Maximum number of snapping relaxation iterations. Should stop + // before upon reaching a correct mesh. + nRelaxIter 5; + + // Feature snapping + + //- Number of feature edge snapping iterations. + // Leave out altogether to disable. + nFeatureSnapIter 10; + + //- Detect (geometric only) features by sampling the surface + // (default=false). + implicitFeatureSnap true; + + //- Use castellatedMeshControls::features (default = true) + explicitFeatureSnap false; + + //- Detect points on multiple surfaces (only for explicitFeatureSnap) + multiRegionFeatureSnap false; +} + + + +// Settings for the layer addition. +addLayersControls +{ + // Are the thickness parameters below relative to the undistorted + // size of the refined cell outside layer (true) or absolute sizes (false). + relativeSizes true; + + // Per final patch (so not geometry!) the layer information + layers + { + } + + // Expansion factor for layer mesh + expansionRatio 1.0; + + // Wanted thickness of final added cell layer. If multiple layers + // is the + // thickness of the layer furthest away from the wall. + // Relative to undistorted size of cell outside layer. + // is the thickness of the layer furthest away from the wall. + // See relativeSizes parameter. + finalLayerThickness 0.5; + + // Minimum thickness of cell layer. If for any reason layer + // cannot be above minThickness do not add layer. + // Relative to undistorted size of cell outside layer. + minThickness 0.2; + + // If points get not extruded do nGrow layers of connected faces that are + // also not grown. This helps convergence of the layer addition process + // close to features. + // Note: changed(corrected) w.r.t 17x! (didn't do anything in 17x) + nGrow 0; + + // Advanced settings + + // When not to extrude surface. 0 is flat surface, 90 is when two faces + // are perpendicular + featureAngle 60; + + // At non-patched sides allow mesh to slip if extrusion direction makes + // angle larger than slipFeatureAngle. + slipFeatureAngle 30; + + // Maximum number of snapping relaxation iterations. Should stop + // before upon reaching a correct mesh. + nRelaxIter 5; + + // Number of smoothing iterations of surface normals + nSmoothSurfaceNormals 1; + + // Number of smoothing iterations of interior mesh movement direction + nSmoothNormals 3; + + // Smooth layer thickness over surface patches + nSmoothThickness 10; + + // Stop layer growth on highly warped cells + maxFaceThicknessRatio 0.5; + + // Reduce layer growth where ratio thickness to medial + // distance is large + maxThicknessToMedialRatio 0.3; + + // Angle used to pick up medial axis points + // Note: changed(corrected) w.r.t 17x! 90 degrees corresponds to 130 in 17x. + minMedianAxisAngle 90; + + + // Create buffer region for new layer terminations + nBufferCellsNoExtrude 0; + + + // Overall max number of layer addition iterations. The mesher will exit + // if it reaches this number of iterations; possibly with an illegal + // mesh. + nLayerIter 50; +} + + + +// Generic mesh quality settings. At any undoable phase these determine +// where to undo. +meshQualityControls +{ + #include "$WM_PROJECT_DIR/etc/caseDicts/meshQualityDict" + + + // Advanced + + //- Number of error distribution iterations + nSmoothScale 4; + //- amount to scale back displacement at error points + errorReduction 0.75; +} + + + +// Advanced + +// Write flags +writeFlags +( + layerSets +); + +// Merge tolerance. Is fraction of overall bounding box of initial mesh. +// Note: the write tolerance needs to be higher than this. +mergeTolerance 1e-6; + + +// ************************************************************************* // diff --git a/tutorials/resources/geometry/cyclone.stl.gz b/tutorials/resources/geometry/cyclone.stl.gz new file mode 100644 index 0000000000000000000000000000000000000000..b8a99ab573254e14630f68c25cf5bb8f8b253667 GIT binary patch literal 7926 zcmYM2bx;&s*!GuRK)Sn;?vmOiq(K^_Q*!B!r5mIK1f-FW?(S3?q>&JiSYYXnSD$ab z_x%OnwTxaIYoHI8~91u7i`&$!$Wa(?^=x5?>5|8g|~f4Mz&rlEPcyLq|2 zS{wnr++OrNKR-lWFJ=1ASQp1&IX(yl9!(56In=Y#j}LsSd$^hY^Kt zrj)U$k$kcs7b<%Ft2r`A4DuvO8AN^$$rSe3d_RO2^eX|jG8D8@EpJQ~Nk@HNGCU-6yK{v}8xeU*8;h zR8n&%z%}=?#z0APK{p9X@uw<|#aP&0Co{Q;Yf| zySmc(;Ea#GSy21y20ic|dcLDs9^G$lV@BH9zm&tD&x4>Qw$}eDNEJ@b@F@7=ShCTU zIe)y;_*r$TyS*qey}k-T!v>V3+1%8B7|&zyqj}gdfis(+VZvnFfHws+`>_sM+>jy^ z=2&Y|Unmq-x#3x#(rj6|(czvVWa;RF_<;$6rkGo+sc_5+l%9=@CDpW3$xoWWu1er% zhwu^dMb27h(|)f^Buyb~O4}On{U)|7>Z#>XquVp#%{z{?RT)HdY6`Vzf&UD( zi&GZ`x>KZoPM~VBro|a@%4t3jNq^!S?=q8XBtMDXuaD=J&9JWgF=8IO)6|&g3i9r= z_!4z+Lb$@tCo+lBlj+sUL?m3+?4#qsO|oJJpMMt*jssJQyoe~kZFY&BWcixkan^|tg`tU_V zdVL^jmMqeQbr#eEA$N)mctlufN*m#~1=l`ZFh`c_O}&+;#T==&B09)z@l-`F2%s!?}HysCgUad6X@q(X`xl8)BX8dcBDLM97X>IUqBRYhKXm z9Ui4*fGF*1|28xo;H*-I{iTX`i0F^yjM6}?H*j<9oAE&zkF^zO0MNg;aHR+UsDH2? z8-<33%=?nPR&K2tnX!qxOCNPWRginn#{B>TWdoLZRxM-zfU?X+Ypb3b-_BaXangFj zmaA_FKL^v#vNHDRJqO>((9>uk{1D=zv_YqAY_DQ{gNO#vTKGg65~fB8dxsJ{1xUI_ zTYZO;6qwW$e$0x1xNywZ66WI!;2nm5w%;~}lV%MoKEzXDA_MJDY-99*$n$Yd61UhD zK831>FinU(muz`y$VQl4yfApCf7S3En)QU~KK>TYo3cW5Zw zqu@aYnBS55XNiTfR%^#eWed(+$Gq)4Bt<&FGb-Q1#2DiO;dk7oJZZ@)>0YJoE5=I^ z`Xv%6q`WaTWt%G3+I-MKXGQz;?0&(||8IL{xU_T)y1ZBcg(@-_t=vMgI+9>8FT)SM zi2PwLkOt~WJ)ri)#qB8m4_c$u@c}=_%Lm!qbZ7wbKR4N)NKi*zUa5S#I_lO+iK#aU zPvbIHg1k`itNx~hjbW}egC@i6=S-RkSyc^xbp;Yu*eukC8qyx2^D_le>Z4NEbVTcZxTUQh_qJ%YPb0 z)-L3xu(oEI4V+JWk{_AyZbVe((I1>_Z#&ujSNMQ>s*Spmj zn33oErJ>gaa(UTGLRy`WYa)*l=}=U9^A&NRX=d&rAY^N0|G@ok$5T$}angUHm+?Q* zPOPmrNx*Lj&cegkqm{RIqv#YAa)x=?TS0KRH1h1c2zg(+z4t&RzMz+n^YOIJc4sJl z=RuZx`u^t~t|`T1b6#44$ti%#-jAJc`8{X7mD7W(gaT*;y0KwMhve+}{gY9K@2N3`)n>`!4!K@P3eljpX<9EL5zfU5RSSt@$8wu= zYUrMI&4ViZoQOq#T=_-^okQIPRIS_!vdmsYuZskjZ7%FxD%pg@4h?$zeH9U@yq^Rp zv!|P{jD=h1P^(|m;Mc_a`f4iII?C};NJ&+%%&oYfi|kimk5@%_^p!&%OE6zLqg~zn zKI?@vRFXxfdRM`}%TLc7TAOaK!~Q95=gqylYA8)iCHdAz?Adwxb-uxLx?lTh(qcMUgH;As zf4r>K=jD_9HX>gfO&p5u3W(x;6a3nYW@(q=4Xst=&k&$L;R$+dEuacQ=$h^tZ{`=L;IyrN~`GqgKO7ahw8q5{_R}2dN z<_|ud04J>e`SoyvL}gn&jwFCEG!$OPefo6#5ivBPblxPzKvj8Pmm@LQ%Px^AQayI;w!XX% z5CpXFZ?qr%y9gYwAFDE2n3p+Osn8g#z!AaPM58k%u83g~Jp>mEjQ(XMNao?M%5amE z5(7k|)i&wQNwn6ptgr?=XycO*h!8aolBeh~qI5ODi@JaHr$G-|$NzL4+Pt@f*j0r9 zCkw``wWcp*Kn5!_3&8*OTh(xK2+=jF;DlrG zFhhQ&f@#7m;X0lu(wOu+?b#*baij{pz|xISCD`{0f&RdE>L?d!jK!o)Oiy9`SJoQQ z7cwLQ3vf`dI?*66=y;khR_}T_ZFb5o^*^4>t8ol4i{M!lfi`ppuS_W1;(%GWX0LfSf=~v~E~V z?hHW4TZupwXk0OcOC?Y!53VIY%pQu_&uVy6E)?F}B$rG~@tHo_%I`266Gfc?PFZ{6 z2?dY0;_1-W&%10OB1Lz%O#|j5r(0Ga^KJ|m$jMcqhU6!1;7=+ zzRR>?N3Vr36hhN0@VuVG`uV(u7?VqwD3cPTvW>}&D%m`Y3h4rF&8QZQ+rsM(#uFR}LVeSKIUT2ff$VnxM%Te6$K4asPY z>8CWl{xd}E{nX~pX`F3+`6fV}kN%N`z?YpDq7|0FBL0uWxDzGp@`;1G8!SwBFXw^Y zdF$n%C6!PnR{9skxEWRBuP@LypFSvaV8&b-G%1R~CzFr=AWPx1cfJsbS}H$@N|DK|{J29@lE z`>r~pZH6O(XGrzLW)>-La=OyyInX{6XE|cC%AzjEIan3c>QigLCkIoxgMGZ$| zeFpNB$t7Ud=zM2A-vKbG_e(jVaGqhRmJh=wh^Hfx0UG+WkD?BP9CBQh_Rpv4Tn|1x zB8|)_h_Ts{L0*kg!~`VRZ0nSoxmI>k%=tFCELpsrf8NmzGL|e=SgJ(8&ek}-%TKo=89GAE7P`f0vcKyAi{wBO% zW`tJxt(ijT7mr9<5_%c(eSWw7!Lvy|0dx;LJftY1J~ec=S+Y>0XfONxDce?pk<+nh z#_1_y8=f^7(ks}kBs{Dq%u)~UA}VMVtTo%l44ToB<_y1t`bt<2hJRk zMT1D@5H3!O*;yDt75+}~Ut5yhJUB1Y=XEs=i%cpwgP0c&el>*j|7z+Iw2^WrFaWD! zD4ckbIOWziyk7g7evj}SAX-$}15#*YCu-}Z)Spsb_cfb5e&PsMEy!;_e;GoYu9Cnh zQD*M==cl`0oC4ZJ7Iv+by<_+bVX4P4Y5 zndFA#jKOteiL1MzG`iD{ONjqS@&0{3RdB!WN<-zw9c!_PRa7|>cKVl8_AhOvP zmv8z1IbBCkA}5NGq@jsQ6Z%pOibVQ+63raDs9OB2)kWx;5CMx17vZ&Le)i`0WWyio zn+wp>z`|jFG&frRX0v;PJZa4J)&=AsS*g%Kk`Ja=xW!&|H(c;BxiM^^Su$Uyf)dA- zw||MUox@rc8S%C*DTg=L+)TMV9%J^bn%q)>==h#~ppceAjn!@fMU>AEpalFU2dm+I*a0_jfpfC^u&u} z^t2Qz>E!Yi6@Xi>8@#PMqZRzVHdtqoQS+8e!i@FBRkB_3xske#hH}GsjuHjl{!39` z;fjGz_hRJTSM2AjrWd3Onzjg{ttnPSc9hT8SX?Gl?GIydR!{d=(ZnO@;!_NPP&#Q{ z%-SyG=sloNND_M#-D5m;Eq(|UNV@WAwkG8cgyYb9=(*8b`jtlUFM8qP9rv?IKJ?iS z5-nMTTIphDRCw$gE=|(61sl0rtN;54e|>+7!dO|7SYp^qvQOP6PhBu&i@?sjbY_WW zD2%C*lrAv^@)i|5{Hu`E9ZOf#I-X?aG1yX3MO=B@x}=JlZFsyE461!S zRPBZsYLMtR{V+`+y)yfiVft5}%qBf|zu$Rt<9T$gX5ARvF`$RoFfi!USpAU}5*ItI zWbd!WS=!kaJSs+5x(ha&r>IpdJ74`^qlq&4t`i3Y?WI zIlD^)5IndHBMV>`nTH;H!?|1SkFRoSA~dfao+Sqj7rl(VYqSY_dKwfh;=3pkFT@)U zbZ1VW`SQl_{fbTPh*8#WV~Lb`C;{^#;|*3(%hzw)t6W8$p4e*F_;Y@YCZ5YC=hn0$ z&SCaFAzWO*6MKjqE=$y@c^6;GhdYTK04M<)zoPfmCLEY;)^KN^0Mm>k9w(?n36&WB zN0K}K2+Ku;Voofv$2XNb$;9Vi?Y(k6@fuj~1I}HH{58wa$B~lZAJM}(l_x+8QPqw@ z4TC6&00mfro3T<`k!xA)*C}ZR^Bg>6&vu@-@QTQXQ&Ykd%;m42#O}f5rM!Ny*>?Kq zLyraJZa*R);NJJc7&i%wx_36FcvNqSH2X#Afrs&mL<4p@Yg=Oi@1NAGm07*x?O6+h zZ7y{TgpoCJW)?M1o3H~O5Tjrb|EyE{RrD)?C8UF7sDMKiUP3Jf&$YQI@hs6voYKj^uJ;n*%i zca>?QYqe|18D4vWW*M7?J0u;=c61_R08fQ!#8Nr1rf6aS9%Kx-x7~8iL>6fZBI>0V zzTuLhNeN~*c8?&;k&`Bodv>giM^?~|?T;T#DZMV=)Yb;Oi3vxmIe^u>?7}9GPv0LP z3y#I6SWgNee78eUz)0V{`T-QP9JKlxHtM<1f;8?NEzSV?$R*UP;W4ZXdp0Qc4I_1{lcAP1n%L zwEhjnD-$nKgh-f+K|%lb67Pk^y}#qR*572Pg1dq}C@rVT01=DGqZ&TUvAKVFrS4!{ z(NvWFX@2tFWz(4ag(H=E7Ix}LYK(y5D+z1`Pm6srEbz?gfQR_xyo(Llc{>`7LT3{# z*JEY0a9qrtLPM|MrRQRL;2@>+Y|6aEd#(z#dPDe0Q$bGAJ}IH+(HdLC@ZWgKY0PNC|u9 ziG7PIB)*Srqvtp>$bu;!#e=7-p~_o^49b+E|>t(aV&y5E_KlYtOa zOGtQBs!(y4Dt-v8NwI=Dje8Nj+0$8TKz%1<)x22d9oyt{)IRthYkIcW<=7@qQG27e zW|ocs((I2&Sp`H7#RoG=FD0zNv7U+exZ;bHR$!Lc6hj{}D^j;Q8$QG2fX zPs;1Gj-6cM`(Is5MNlh(HmSlS;K?}r)h@~6sM!RaWJfpR?43NpeIHPqQ7KGwf#AE+ z*Wjfun-gZ+sf-0-kJ*g0j%ueLY7bt|3)a5rTb)?mX%8EBRFRx2bwu-DxWvcL66_KT zvl7ffeugSzCH!cqH!(`m)zF-iz|5-HJYA(m+4qwgtdlS=n7|+$S#UYKp&(Gul%+KE zpWXm@mZAx@MFl%r9TMC=EN(F(Gkz?WIsFmdrpFe~{C4nr+s6q7Zc{p&bPQURNw6&u zCFaJjhECzm*D8Oddt zWkvkYd@H&=+o`JksbqDlbr#N;=)b!$2ym>4Iw!&+0*U0P$74Y&19cw;orZr%tPY&d z6bkXfakW^>!#I4Dz53kONxgzq4QBoM$8dP1^bJe?h@j~F@OQ*MPe1$=tBn)j&O@rW zYwNEog`9#8rhg7;dYcoVlw1d{F>U)qKOKo+yQ%ZRMSfyD*=qqb_~WD;ep*JWX{%~I zXqO>|@-w2X-ae;r07qg0`_0dVIE>KXYoL3g=v-fvW2xVWT*OiO=z%kOEE{2+727q- z(dN5uCzkiDk#ZP?TDH3kd)=<%I2Jxx1aESCS?$R)5O1iwD5_#Ef)C`l*kX=V?x)E* ze+QX-%EaVH$PPX8+mk6>TH~SeUW*tIcXY_9r!#Tkd|&DfKxNVS`bUL7|$EI=0-{&l#gvsR_vpPR6RVdMQ=hdo7s_`OMO>QuVw6gZGu_0!5|F zIb~>5S};h?1Xu7}pHJ=bAR-@wwKYzPTktnXy z+e9texrtRhon7e5HZ+&#%5)*k{&9qzy0W~X`ZlqgO(d!MS<|t{Yeu$*a=ks#Ve0FDgc_}`mxz|OP5q!xp*fB<7LbeDv2X9&Y=cVt19Zz_nZf zFC#(_jEk{)<^&)2SoZ^RSdD29oI)>>BJpK5u!N-A3Mu(R zICzOb_Q{@J$}^!chO7IAC;gMohtB5Ynd(3qn(TFw{%9Ntq~bCbD7%;3BB|G`5~`%< zbAarW^Sb3eZaNpilb4Ud1!=&F5-NOTd*YS%nuidT@F%2G+VpQr567ou6PBln?0Ao& zAGew?Ufy77DV!so;-*hh`HG2G`M#2bFol|?2d*Q-uUd;7vv7T0DeoC}QROa(qvkc^ z_t7*TQf}f{Uil~^SHCD|D#u zTE2zScvG-T7B_KSY~FSBxcYIFWW=Sd%#{AMc~r37o0}vGQ(;>cY@|0aNqD{0;mU%@ z=Uqq7%vF8ce{eMp;E8YX#oGF@S zF0D3VaN4&Yi&X-k2*V8u`~QwV3W@*v5XX(QhfyhkMZvQ=A<8lyv?97+vN5&ELoN#5 zYPXZS*oly%MA?_POZhUmNXCCu(nI1>?aJR&*9hW5utu3Ii8uQjD#A{Vl=5zqA;VD+ zac{1u%tL3h&_gs9D-c6AgJ22F&jhG7^0Tso02L;JD6SiT!?B;ZEc#^C&lS%wv}%hb ztcOy_Q*|^L+FL`zG0VzWb{e)FvRe>HN=m?tcuwLtgCkP!gB0u>X8%-8M zAi`;U)jU`C)~q4RmMSI)M!|ZPZBICPCM|}2O!ZVHu2I+TI)}^@p$LIUHm2fyxew8y z28A&G-I(+WpCkH#VpTeMZwfvNTPr9_K2w%t!<~y~te$budj;@D99jU|UDnYfWn*_y*dljH9!@pJ-i)NqwZQq*KTYN; zL-2NhbJp807-@5wX{EABn^ctD#kRz@_bvIm2`vC+`)?Kp z#v9(?dZn$_oJ*c1GzV zV(np0&o&K#5p@lSQ6;gcMkTI_UZS`NiM*fqmm)Oyr6WtCN!#=Ho^W37w{L