From 35d8078251e34b9604d8bd8b2eb906c449559c8d Mon Sep 17 00:00:00 2001 From: Henry <Henry> Date: Wed, 25 Feb 2015 12:20:12 +0000 Subject: [PATCH] rhoCentralDyMFoam: Add support for morphing-meshes and provide movingCone tutorial case --- .../rhoCentralDyMFoam/rhoCentralDyMFoam.C | 8 + .../rhoCentralDyMFoam/movingCone/0/T | 60 ++++++++ .../rhoCentralDyMFoam/movingCone/0/U | 64 ++++++++ .../rhoCentralDyMFoam/movingCone/0/p | 66 ++++++++ .../movingCone/0/pointMotionUx | 56 +++++++ .../movingCone/constant/dynamicMeshDict | 31 ++++ .../constant/polyMesh/blockMeshDict | 142 ++++++++++++++++++ .../movingCone/constant/polyMesh/boundary | 75 +++++++++ .../constant/thermophysicalProperties | 49 ++++++ .../movingCone/constant/turbulenceProperties | 21 +++ .../movingCone/system/controlDict | 55 +++++++ .../movingCone/system/cuttingPlane | 38 +++++ .../movingCone/system/fvSchemes | 57 +++++++ .../movingCone/system/fvSolution | 94 ++++++++++++ 14 files changed, 816 insertions(+) create mode 100644 tutorials/compressible/rhoCentralDyMFoam/movingCone/0/T create mode 100644 tutorials/compressible/rhoCentralDyMFoam/movingCone/0/U create mode 100644 tutorials/compressible/rhoCentralDyMFoam/movingCone/0/p create mode 100644 tutorials/compressible/rhoCentralDyMFoam/movingCone/0/pointMotionUx create mode 100644 tutorials/compressible/rhoCentralDyMFoam/movingCone/constant/dynamicMeshDict create mode 100644 tutorials/compressible/rhoCentralDyMFoam/movingCone/constant/polyMesh/blockMeshDict create mode 100644 tutorials/compressible/rhoCentralDyMFoam/movingCone/constant/polyMesh/boundary create mode 100644 tutorials/compressible/rhoCentralDyMFoam/movingCone/constant/thermophysicalProperties create mode 100644 tutorials/compressible/rhoCentralDyMFoam/movingCone/constant/turbulenceProperties create mode 100644 tutorials/compressible/rhoCentralDyMFoam/movingCone/system/controlDict create mode 100644 tutorials/compressible/rhoCentralDyMFoam/movingCone/system/cuttingPlane create mode 100644 tutorials/compressible/rhoCentralDyMFoam/movingCone/system/fvSchemes create mode 100644 tutorials/compressible/rhoCentralDyMFoam/movingCone/system/fvSolution diff --git a/applications/solvers/compressible/rhoCentralFoam/rhoCentralDyMFoam/rhoCentralDyMFoam.C b/applications/solvers/compressible/rhoCentralFoam/rhoCentralDyMFoam/rhoCentralDyMFoam.C index 447c3c8d8c1..4f8f95d1195 100644 --- a/applications/solvers/compressible/rhoCentralFoam/rhoCentralDyMFoam/rhoCentralDyMFoam.C +++ b/applications/solvers/compressible/rhoCentralFoam/rhoCentralDyMFoam/rhoCentralDyMFoam.C @@ -128,6 +128,13 @@ int main(int argc, char *argv[]) surfaceScalarField phiv_pos("phiv_pos", U_pos & mesh.Sf()); surfaceScalarField phiv_neg("phiv_neg", U_neg & mesh.Sf()); + // Make fluxes relative to mesh-motion + if (mesh.moving()) + { + phiv_pos -= mesh.phi(); + phiv_neg -= mesh.phi(); + } + volScalarField c(sqrt(thermo.Cp()/thermo.Cv()*rPsi)); surfaceScalarField cSf_pos ( @@ -193,6 +200,7 @@ int main(int argc, char *argv[]) + aSf*p_pos - aSf*p_neg ); + // Make flux for pressure-work absolute if (mesh.moving()) { phiEp += mesh.phi()*(a_pos*p_pos + a_neg*p_neg); diff --git a/tutorials/compressible/rhoCentralDyMFoam/movingCone/0/T b/tutorials/compressible/rhoCentralDyMFoam/movingCone/0/T new file mode 100644 index 00000000000..6cfc5447285 --- /dev/null +++ b/tutorials/compressible/rhoCentralDyMFoam/movingCone/0/T @@ -0,0 +1,60 @@ +/*--------------------------------*- 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 T; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 1 0 0 0]; + +internalField uniform 300; + +boundaryField +{ + movingWall + { + type zeroGradient; + } + + farFieldMoving + { + type zeroGradient; + } + + fixedWall + { + type zeroGradient; + } + + left + { + type inletOutlet; + inletValue $internalField; + } + + farField + { + type zeroGradient; + } + + back + { + type wedge; + } + + front + { + type wedge; + } +} + +// ************************************************************************* // diff --git a/tutorials/compressible/rhoCentralDyMFoam/movingCone/0/U b/tutorials/compressible/rhoCentralDyMFoam/movingCone/0/U new file mode 100644 index 00000000000..2e86739791a --- /dev/null +++ b/tutorials/compressible/rhoCentralDyMFoam/movingCone/0/U @@ -0,0 +1,64 @@ +/*--------------------------------*- 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 volVectorField; + object U; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 -1 0 0 0 0]; + +internalField uniform (0 0 0); + +boundaryField +{ + movingWall + { + type movingWallVelocity; + value $internalField; + } + + farFieldMoving + { + type fixedValue; + value uniform (0 0 0); + } + + fixedWall + { + type fixedValue; + value uniform (0 0 0); + } + + left + { + type pressureInletOutletVelocity; + value $internalField; + } + + farField + { + type fixedValue; + value uniform (0 0 0); + } + + back + { + type wedge; + } + + front + { + type wedge; + } +} + +// ************************************************************************* // diff --git a/tutorials/compressible/rhoCentralDyMFoam/movingCone/0/p b/tutorials/compressible/rhoCentralDyMFoam/movingCone/0/p new file mode 100644 index 00000000000..807dc878667 --- /dev/null +++ b/tutorials/compressible/rhoCentralDyMFoam/movingCone/0/p @@ -0,0 +1,66 @@ +/*--------------------------------*- 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 [1 -1 -2 0 0 0 0]; + +internalField uniform 1e5; + +boundaryField +{ + movingWall + { + type zeroGradient; + } + + farFieldMoving + { + type zeroGradient; + } + + fixedWall + { + type zeroGradient; + } + + left + { + type totalPressure; + p0 $internalField; + U U; + phi phi; + rho none; + psi none; + gamma 1; + value $internalField; + } + + farField + { + type zeroGradient; + } + + back + { + type wedge; + } + + front + { + type wedge; + } +} + +// ************************************************************************* // diff --git a/tutorials/compressible/rhoCentralDyMFoam/movingCone/0/pointMotionUx b/tutorials/compressible/rhoCentralDyMFoam/movingCone/0/pointMotionUx new file mode 100644 index 00000000000..520fbd4b1a0 --- /dev/null +++ b/tutorials/compressible/rhoCentralDyMFoam/movingCone/0/pointMotionUx @@ -0,0 +1,56 @@ +/*--------------------------------*- 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 pointScalarField; + object pointMotionU; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 -1 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + movingWall + { + type uniformFixedValue; + uniformValue constant 160; + } + farFieldMoving + { + type slip; + } + fixedWall + { + type uniformFixedValue; + uniformValue constant 0; + } + left + { + type uniformFixedValue; + uniformValue constant 0; + } + farField + { + type slip; + } + back + { + type wedge; + } + front + { + type wedge; + } +} + +// ************************************************************************* // diff --git a/tutorials/compressible/rhoCentralDyMFoam/movingCone/constant/dynamicMeshDict b/tutorials/compressible/rhoCentralDyMFoam/movingCone/constant/dynamicMeshDict new file mode 100644 index 00000000000..95000b1405e --- /dev/null +++ b/tutorials/compressible/rhoCentralDyMFoam/movingCone/constant/dynamicMeshDict @@ -0,0 +1,31 @@ +/*--------------------------------*- 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 dynamicMeshDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dynamicFvMesh dynamicMotionSolverFvMesh; + +motionSolverLibs ( "libfvMotionSolvers.so" ); + +solver velocityComponentLaplacian; + +velocityComponentLaplacianCoeffs +{ + component x; + diffusivity directional (1 200 0); +} + + +// ************************************************************************* // diff --git a/tutorials/compressible/rhoCentralDyMFoam/movingCone/constant/polyMesh/blockMeshDict b/tutorials/compressible/rhoCentralDyMFoam/movingCone/constant/polyMesh/blockMeshDict new file mode 100644 index 00000000000..af8f8bfda3d --- /dev/null +++ b/tutorials/compressible/rhoCentralDyMFoam/movingCone/constant/polyMesh/blockMeshDict @@ -0,0 +1,142 @@ +/*--------------------------------*- 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 0.001; + +vertices +( + (-7.5 0 0) + (-7 0 0) + (-3.5 0 0) + (0 0 0) + (-7.5 0.75 -0.032745707) + (-7 0.75 -0.032745707) + (-3.5 2 -0.087321886) + (0 2 -0.087321886) + (-7.5 2.5 -0.10915236) + (-7 2.5 -0.10915236) + (-3.5 2.5 -0.10915236) + (0 2.5 -0.10915236) + (-7.5 0.75 0.032745707) + (-7 0.75 0.032745707) + (-3.5 2 0.087321886) + (0 2 0.087321886) + (-7.5 2.5 0.10915236) + (-7 2.5 0.10915236) + (-3.5 2.5 0.10915236) + (0 2.5 0.10915236) +); + +blocks +( + hex (0 1 5 4 0 1 13 12) (15 15 1) simpleGrading (1 1 1) + hex (2 3 7 6 2 3 15 14) (20 20 1) simpleGrading (2 0.25 1) + hex (4 5 9 8 12 13 17 16) (15 15 1) simpleGrading (1 1 1) + hex (5 6 10 9 13 14 18 17) (50 15 1) simpleGrading (1 1 1) + hex (6 7 11 10 14 15 19 18) (20 15 1) simpleGrading (2 1 1) +); + +edges +( +); + +boundary +( + movingWall + { + type wall; + faces + ( + (1 5 13 1) + (5 6 14 13) + (2 2 14 6) + ); + } + farFieldMoving + { + type patch; + faces + ( + (9 17 18 10) + ); + } + fixedWall + { + type wall; + faces + ( + (3 7 15 3) + (7 11 19 15) + ); + } + axis + { + type empty; + faces + ( + (0 1 1 0) + (2 3 3 2) + ); + } + left + { + type patch; + faces + ( + (0 0 12 4) + (4 12 16 8) + ); + } + farField + { + type patch; + faces + ( + (8 16 17 9) + (10 18 19 11) + ); + } + back + { + type wedge; + faces + ( + (0 4 5 1) + (2 6 7 3) + (4 8 9 5) + (5 9 10 6) + (6 10 11 7) + ); + } + front + { + type wedge; + faces + ( + (0 1 13 12) + (2 3 15 14) + (12 13 17 16) + (13 14 18 17) + (14 15 19 18) + ); + } +); + +mergePatchPairs +( +); + +// ************************************************************************* // diff --git a/tutorials/compressible/rhoCentralDyMFoam/movingCone/constant/polyMesh/boundary b/tutorials/compressible/rhoCentralDyMFoam/movingCone/constant/polyMesh/boundary new file mode 100644 index 00000000000..73ab6c4061a --- /dev/null +++ b/tutorials/compressible/rhoCentralDyMFoam/movingCone/constant/polyMesh/boundary @@ -0,0 +1,75 @@ +/*--------------------------------*- 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 polyBoundaryMesh; + location "constant/polyMesh"; + object boundary; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +8 +( + movingWall + { + type wall; + inGroups 1(wall); + nFaces 85; + startFace 3665; + } + farFieldMoving + { + type patch; + nFaces 50; + startFace 3750; + } + fixedWall + { + type wall; + inGroups 1(wall); + nFaces 35; + startFace 3800; + } + axis + { + type empty; + inGroups 1(empty); + nFaces 0; + startFace 3835; + } + left + { + type patch; + nFaces 30; + startFace 3835; + } + farField + { + type patch; + nFaces 35; + startFace 3865; + } + back + { + type wedge; + inGroups 1(wedge); + nFaces 1900; + startFace 3900; + } + front + { + type wedge; + inGroups 1(wedge); + nFaces 1900; + startFace 5800; + } +) + +// ************************************************************************* // diff --git a/tutorials/compressible/rhoCentralDyMFoam/movingCone/constant/thermophysicalProperties b/tutorials/compressible/rhoCentralDyMFoam/movingCone/constant/thermophysicalProperties new file mode 100644 index 00000000000..582e7e1ac1e --- /dev/null +++ b/tutorials/compressible/rhoCentralDyMFoam/movingCone/constant/thermophysicalProperties @@ -0,0 +1,49 @@ +/*--------------------------------*- 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 thermophysicalProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +thermoType +{ + type hePsiThermo; + mixture pureMixture; + transport const; + thermo hConst; + equationOfState perfectGas; + specie specie; + energy sensibleInternalEnergy; +} + +mixture +{ + specie + { + nMoles 1; + molWeight 28.9; + } + thermodynamics + { + Cp 1007; + Hf 2.544e+06; + } + transport + { + mu 1e-3; + Pr 0.7; + } +} + + +// ************************************************************************* // diff --git a/tutorials/compressible/rhoCentralDyMFoam/movingCone/constant/turbulenceProperties b/tutorials/compressible/rhoCentralDyMFoam/movingCone/constant/turbulenceProperties new file mode 100644 index 00000000000..c2c3b28a1b4 --- /dev/null +++ b/tutorials/compressible/rhoCentralDyMFoam/movingCone/constant/turbulenceProperties @@ -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 dictionary; + location "constant"; + object turbulenceProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +simulationType laminar; + + +// ************************************************************************* // diff --git a/tutorials/compressible/rhoCentralDyMFoam/movingCone/system/controlDict b/tutorials/compressible/rhoCentralDyMFoam/movingCone/system/controlDict new file mode 100644 index 00000000000..9458edb8dd8 --- /dev/null +++ b/tutorials/compressible/rhoCentralDyMFoam/movingCone/system/controlDict @@ -0,0 +1,55 @@ +/*--------------------------------*- 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 rhoCentralDyMFoam; + +startFrom startTime; + +startTime 0; + +stopAt endTime; + +endTime 0.00002; + +deltaT 1e-08; + +writeControl adjustableRunTime; + +writeInterval 5e-7; + +purgeWrite 0; + +writeFormat binary; + +writePrecision 6; + +writeCompression off; + +timeFormat general; + +timePrecision 6; + +runTimeModifiable true; + +adjustTimeStep yes; + +maxCo 0.2; + +maxDeltaT 1; + + +// ************************************************************************* // diff --git a/tutorials/compressible/rhoCentralDyMFoam/movingCone/system/cuttingPlane b/tutorials/compressible/rhoCentralDyMFoam/movingCone/system/cuttingPlane new file mode 100644 index 00000000000..29b42ee9832 --- /dev/null +++ b/tutorials/compressible/rhoCentralDyMFoam/movingCone/system/cuttingPlane @@ -0,0 +1,38 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ + +cuttingPlane +{ + type surfaces; + functionObjectLibs ("libsampling.so"); + + outputControl outputTime; + + surfaceFormat vtk; + fields ( p U ); + + interpolationScheme cellPoint; + + surfaces + ( + zNormal + { + type cuttingPlane; + planeType pointAndNormal; + pointAndNormalDict + { + basePoint (0 0 0); + normalVector (0 0 1); + } + interpolate true; + } + ); +} + + +// ************************************************************************* // diff --git a/tutorials/compressible/rhoCentralDyMFoam/movingCone/system/fvSchemes b/tutorials/compressible/rhoCentralDyMFoam/movingCone/system/fvSchemes new file mode 100644 index 00000000000..ff46e854e69 --- /dev/null +++ b/tutorials/compressible/rhoCentralDyMFoam/movingCone/system/fvSchemes @@ -0,0 +1,57 @@ +/*--------------------------------*- 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 fvSchemes; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +fluxScheme Kurganov; + +ddtSchemes +{ + default Euler; +} + +gradSchemes +{ + default Gauss linear; +} + +divSchemes +{ + default none; + div(tauMC) Gauss linear; +} + +laplacianSchemes +{ + default Gauss linear corrected; + + laplacian(diffusivity,cellMotionU) Gauss linear uncorrected; +} + +interpolationSchemes +{ + default linear; + reconstruct(rho) vanLeer; + reconstruct(U) vanLeerV; + reconstruct(T) vanLeer; +} + +snGradSchemes +{ + default corrected; +} + + +// ************************************************************************* // diff --git a/tutorials/compressible/rhoCentralDyMFoam/movingCone/system/fvSolution b/tutorials/compressible/rhoCentralDyMFoam/movingCone/system/fvSolution new file mode 100644 index 00000000000..5161002b216 --- /dev/null +++ b/tutorials/compressible/rhoCentralDyMFoam/movingCone/system/fvSolution @@ -0,0 +1,94 @@ +/*--------------------------------*- 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 fvSolution; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +solvers +{ + p + { + solver PBiCG; + preconditioner DILU; + tolerance 1e-06; + relTol 0.01; + } + + pFinal + { + $p; + relTol 0; + } + + pcorr + { + solver PCG; + preconditioner DIC; + tolerance 1e-2; + relTol 0; + } + + "rho.*" + { + solver diagonal; + tolerance 1e-05; + relTol 0; + } + + "(U|h|e|R|k|epsilon|omega)" + { + solver smoothSolver; + smoother symGaussSeidel; + tolerance 1e-05; + relTol 0.1; + } + + "(U|h|e|R|k|epsilon|omega)Final" + { + $U; + relTol 0; + } + + cellMotionUx + { + solver PCG; + preconditioner DIC; + tolerance 1e-08; + relTol 0; + } +} + +PIMPLE +{ + momentumPredictor yes; + correctPhi yes; + nOuterCorrectors 2; + nCorrectors 2; + transonic yes; + nNonOrthogonalCorrectors 0; + + rhoMin 0.1; + rhoMax 100.0; +} + +relaxationFactors +{ + equations + { + ".*" 1; + } +} + + +// ************************************************************************* // -- GitLab