From 9fa8b85056229c7e6e9f2f53d231a665172c2f7f Mon Sep 17 00:00:00 2001 From: Will Bainbridge Date: Tue, 15 Nov 2022 15:59:44 +0000 Subject: [PATCH] tutorials: multiphaseEuler: Added hydrofoil tutorial This serves as an example of cavitation modelling with the multiphaseEuler module. This case also contains validation of the pressure profile along the hydrofoil against experimental data. Based on a case contributed by Petteri Peltonen, VTT. --- .../modules/multiphaseEuler/hydrofoil/0/T.gas | 49 ++++ .../multiphaseEuler/hydrofoil/0/T.liquid | 49 ++++ .../multiphaseEuler/hydrofoil/0/U.gas.orig | 46 ++++ .../multiphaseEuler/hydrofoil/0/U.liquid.orig | 46 ++++ .../multiphaseEuler/hydrofoil/0/alpha.gas | 49 ++++ .../multiphaseEuler/hydrofoil/0/alpha.liquid | 49 ++++ .../multiphaseEuler/hydrofoil/0/alphat.gas | 57 ++++ .../multiphaseEuler/hydrofoil/0/alphat.liquid | 57 ++++ .../modules/multiphaseEuler/hydrofoil/0/k.gas | 51 ++++ .../multiphaseEuler/hydrofoil/0/k.liquid | 52 ++++ .../multiphaseEuler/hydrofoil/0/nut.gas | 49 ++++ .../multiphaseEuler/hydrofoil/0/nut.liquid | 49 ++++ .../multiphaseEuler/hydrofoil/0/omega.gas | 60 ++++ .../multiphaseEuler/hydrofoil/0/omega.liquid | 59 ++++ .../modules/multiphaseEuler/hydrofoil/0/p | 49 ++++ .../modules/multiphaseEuler/hydrofoil/0/p_rgh | 47 ++++ .../multiphaseEuler/hydrofoil/Allclean | 7 + .../modules/multiphaseEuler/hydrofoil/Allrun | 20 ++ .../hydrofoil/constant/fvModels | 28 ++ .../multiphaseEuler/hydrofoil/constant/g | 20 ++ .../geometry/NACAMOD66_6deg_lower.stl.gz | Bin 0 -> 3026 bytes .../geometry/NACAMOD66_6deg_tip.stl.gz | Bin 0 -> 6831 bytes .../geometry/NACAMOD66_6deg_upper.stl.gz | Bin 0 -> 4108 bytes .../hydrofoil/constant/momentumTransport.gas | 28 ++ .../constant/momentumTransport.liquid | 28 ++ .../hydrofoil/constant/phaseProperties | 118 ++++++++ .../hydrofoil/constant/physicalProperties.gas | 46 ++++ .../constant/physicalProperties.liquid | 50 ++++ .../hydrofoil/system/blockMeshDict | 257 ++++++++++++++++++ .../hydrofoil/system/controlDict | 63 +++++ .../hydrofoil/system/decomposeParDict | 21 ++ .../hydrofoil/system/fvConstraints | 24 ++ .../hydrofoil/system/fvSchemes | 68 +++++ .../hydrofoil/system/fvSolution | 100 +++++++ .../hydrofoil/system/hydrofoilPressure | 149 ++++++++++ .../hydrofoil/validation/createGraph | 48 ++++ 36 files changed, 1893 insertions(+) create mode 100644 tutorials/modules/multiphaseEuler/hydrofoil/0/T.gas create mode 100644 tutorials/modules/multiphaseEuler/hydrofoil/0/T.liquid create mode 100644 tutorials/modules/multiphaseEuler/hydrofoil/0/U.gas.orig create mode 100644 tutorials/modules/multiphaseEuler/hydrofoil/0/U.liquid.orig create mode 100644 tutorials/modules/multiphaseEuler/hydrofoil/0/alpha.gas create mode 100644 tutorials/modules/multiphaseEuler/hydrofoil/0/alpha.liquid create mode 100644 tutorials/modules/multiphaseEuler/hydrofoil/0/alphat.gas create mode 100644 tutorials/modules/multiphaseEuler/hydrofoil/0/alphat.liquid create mode 100644 tutorials/modules/multiphaseEuler/hydrofoil/0/k.gas create mode 100644 tutorials/modules/multiphaseEuler/hydrofoil/0/k.liquid create mode 100644 tutorials/modules/multiphaseEuler/hydrofoil/0/nut.gas create mode 100644 tutorials/modules/multiphaseEuler/hydrofoil/0/nut.liquid create mode 100644 tutorials/modules/multiphaseEuler/hydrofoil/0/omega.gas create mode 100644 tutorials/modules/multiphaseEuler/hydrofoil/0/omega.liquid create mode 100644 tutorials/modules/multiphaseEuler/hydrofoil/0/p create mode 100644 tutorials/modules/multiphaseEuler/hydrofoil/0/p_rgh create mode 100755 tutorials/modules/multiphaseEuler/hydrofoil/Allclean create mode 100755 tutorials/modules/multiphaseEuler/hydrofoil/Allrun create mode 100644 tutorials/modules/multiphaseEuler/hydrofoil/constant/fvModels create mode 100644 tutorials/modules/multiphaseEuler/hydrofoil/constant/g create mode 100644 tutorials/modules/multiphaseEuler/hydrofoil/constant/geometry/NACAMOD66_6deg_lower.stl.gz create mode 100644 tutorials/modules/multiphaseEuler/hydrofoil/constant/geometry/NACAMOD66_6deg_tip.stl.gz create mode 100644 tutorials/modules/multiphaseEuler/hydrofoil/constant/geometry/NACAMOD66_6deg_upper.stl.gz create mode 100644 tutorials/modules/multiphaseEuler/hydrofoil/constant/momentumTransport.gas create mode 100644 tutorials/modules/multiphaseEuler/hydrofoil/constant/momentumTransport.liquid create mode 100644 tutorials/modules/multiphaseEuler/hydrofoil/constant/phaseProperties create mode 100644 tutorials/modules/multiphaseEuler/hydrofoil/constant/physicalProperties.gas create mode 100644 tutorials/modules/multiphaseEuler/hydrofoil/constant/physicalProperties.liquid create mode 100644 tutorials/modules/multiphaseEuler/hydrofoil/system/blockMeshDict create mode 100644 tutorials/modules/multiphaseEuler/hydrofoil/system/controlDict create mode 100644 tutorials/modules/multiphaseEuler/hydrofoil/system/decomposeParDict create mode 100644 tutorials/modules/multiphaseEuler/hydrofoil/system/fvConstraints create mode 100644 tutorials/modules/multiphaseEuler/hydrofoil/system/fvSchemes create mode 100644 tutorials/modules/multiphaseEuler/hydrofoil/system/fvSolution create mode 100644 tutorials/modules/multiphaseEuler/hydrofoil/system/hydrofoilPressure create mode 100755 tutorials/modules/multiphaseEuler/hydrofoil/validation/createGraph diff --git a/tutorials/modules/multiphaseEuler/hydrofoil/0/T.gas b/tutorials/modules/multiphaseEuler/hydrofoil/0/T.gas new file mode 100644 index 0000000000..ec5afe5875 --- /dev/null +++ b/tutorials/modules/multiphaseEuler/hydrofoil/0/T.gas @@ -0,0 +1,49 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: dev + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object T.gas; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 1 0 0 0]; + +internalField uniform 293.15; + +boundaryField +{ + #includeEtc "caseDicts/setConstraintTypes" + + inlet + { + type fixedValue; + value $internalField; + } + outlet + { + type inletOutlet; + phi phi.gas; + inletValue $internalField; + value $internalField; + } + hydrofoil + { + type zeroGradient; + } + walls + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/tutorials/modules/multiphaseEuler/hydrofoil/0/T.liquid b/tutorials/modules/multiphaseEuler/hydrofoil/0/T.liquid new file mode 100644 index 0000000000..0407bf043a --- /dev/null +++ b/tutorials/modules/multiphaseEuler/hydrofoil/0/T.liquid @@ -0,0 +1,49 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: dev + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object T.liquid; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 1 0 0 0]; + +internalField uniform 293.15; + +boundaryField +{ + #includeEtc "caseDicts/setConstraintTypes" + + inlet + { + type fixedValue; + value $internalField; + } + outlet + { + type inletOutlet; + phi phi.liquid; + inletValue $internalField; + value $internalField; + } + hydrofoil + { + type zeroGradient; + } + walls + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/tutorials/modules/multiphaseEuler/hydrofoil/0/U.gas.orig b/tutorials/modules/multiphaseEuler/hydrofoil/0/U.gas.orig new file mode 100644 index 0000000000..cdb30a35ad --- /dev/null +++ b/tutorials/modules/multiphaseEuler/hydrofoil/0/U.gas.orig @@ -0,0 +1,46 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: dev + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volVectorField; + location "0"; + object U.gas; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 -1 0 0 0 0]; + +internalField uniform (5.33 0 0); + +boundaryField +{ + #includeEtc "caseDicts/setConstraintTypes" + + inlet + { + type fixedValue; + value uniform (5.33 0 0); + } + outlet + { + type zeroGradient; + } + hydrofoil + { + type noSlip; + } + walls + { + type noSlip; + } +} + + +// ************************************************************************* // diff --git a/tutorials/modules/multiphaseEuler/hydrofoil/0/U.liquid.orig b/tutorials/modules/multiphaseEuler/hydrofoil/0/U.liquid.orig new file mode 100644 index 0000000000..ee78804820 --- /dev/null +++ b/tutorials/modules/multiphaseEuler/hydrofoil/0/U.liquid.orig @@ -0,0 +1,46 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: dev + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volVectorField; + location "0"; + object U.liquid; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 -1 0 0 0 0]; + +internalField uniform (5.33 0 0); + +boundaryField +{ + #includeEtc "caseDicts/setConstraintTypes" + + inlet + { + type fixedValue; + value uniform (5.33 0 0); + } + outlet + { + type zeroGradient; + } + hydrofoil + { + type noSlip; + } + walls + { + type noSlip; + } +} + + +// ************************************************************************* // diff --git a/tutorials/modules/multiphaseEuler/hydrofoil/0/alpha.gas b/tutorials/modules/multiphaseEuler/hydrofoil/0/alpha.gas new file mode 100644 index 0000000000..c850ac1c2c --- /dev/null +++ b/tutorials/modules/multiphaseEuler/hydrofoil/0/alpha.gas @@ -0,0 +1,49 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: dev + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object alpha.gas; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + #includeEtc "caseDicts/setConstraintTypes" + + inlet + { + type fixedValue; + value uniform 0; + } + outlet + { + type inletOutlet; + phi phi.gas; + inletValue uniform 0; + value uniform 0; + } + hydrofoil + { + type zeroGradient; + } + walls + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/tutorials/modules/multiphaseEuler/hydrofoil/0/alpha.liquid b/tutorials/modules/multiphaseEuler/hydrofoil/0/alpha.liquid new file mode 100644 index 0000000000..bc54b10e67 --- /dev/null +++ b/tutorials/modules/multiphaseEuler/hydrofoil/0/alpha.liquid @@ -0,0 +1,49 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: dev + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object alpha.liquid; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 0 0 0 0]; + +internalField uniform 1.0; + +boundaryField +{ + #includeEtc "caseDicts/setConstraintTypes" + + inlet + { + type fixedValue; + value $internalField; + } + outlet + { + type inletOutlet; + phi phi.liquid; + inletValue uniform 1; + value uniform 1; + } + hydrofoil + { + type zeroGradient; + } + walls + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/tutorials/modules/multiphaseEuler/hydrofoil/0/alphat.gas b/tutorials/modules/multiphaseEuler/hydrofoil/0/alphat.gas new file mode 100644 index 0000000000..75775e3f26 --- /dev/null +++ b/tutorials/modules/multiphaseEuler/hydrofoil/0/alphat.gas @@ -0,0 +1,57 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: dev + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object alphat.gas; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 -1 -1 0 0 0 0]; + +internalField uniform 1e-8; + +boundaryField +{ + #includeEtc "caseDicts/setConstraintTypes" + + inlet + { + type calculated; + value uniform 1e-8; + } + outlet + { + type calculated; + value uniform 1e-8; + } + hydrofoil + { + type compressible::alphatPhaseJayatillekeWallFunction; + Prt 0.85; + Cmu 0.09; + kappa 0.41; + E 9.8; + value uniform 0; + } + walls + { + type compressible::alphatPhaseJayatillekeWallFunction; + Prt 0.85; + Cmu 0.09; + kappa 0.41; + E 9.8; + value uniform 0; + } +} + + +// ************************************************************************* // diff --git a/tutorials/modules/multiphaseEuler/hydrofoil/0/alphat.liquid b/tutorials/modules/multiphaseEuler/hydrofoil/0/alphat.liquid new file mode 100644 index 0000000000..1ca935c585 --- /dev/null +++ b/tutorials/modules/multiphaseEuler/hydrofoil/0/alphat.liquid @@ -0,0 +1,57 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: dev + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object alphat.liquid; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [ 1 -1 -1 0 0 0 0 ]; + +internalField uniform 1e-08; + +boundaryField +{ + #includeEtc "caseDicts/setConstraintTypes" + + inlet + { + type fixedValue; + value uniform 0; + } + outlet + { + type calculated; + value uniform 1e-08; + } + hydrofoil + { + type compressible::alphatPhaseJayatillekeWallFunction; + Prt 0.85; + Cmu 0.09; + kappa 0.41; + E 9.8; + value uniform 0; + } + walls + { + type compressible::alphatPhaseJayatillekeWallFunction; + Prt 0.85; + Cmu 0.09; + kappa 0.41; + E 9.8; + value uniform 0; + } +} + + +// ************************************************************************* // diff --git a/tutorials/modules/multiphaseEuler/hydrofoil/0/k.gas b/tutorials/modules/multiphaseEuler/hydrofoil/0/k.gas new file mode 100644 index 0000000000..7d977934c2 --- /dev/null +++ b/tutorials/modules/multiphaseEuler/hydrofoil/0/k.gas @@ -0,0 +1,51 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: dev + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object k.gas; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -2 0 0 0 0]; + +internalField uniform 0.0042613; + +boundaryField +{ + #includeEtc "caseDicts/setConstraintTypes" + + inlet + { + type fixedValue; + value $internalField; + } + outlet + { + type inletOutlet; + phi phi.gas; + inletValue $internalField; + value $internalField; + } + hydrofoil + { + type kqRWallFunction; + value $internalField; + } + walls + { + type kqRWallFunction; + value $internalField; + } +} + + +// ************************************************************************* // diff --git a/tutorials/modules/multiphaseEuler/hydrofoil/0/k.liquid b/tutorials/modules/multiphaseEuler/hydrofoil/0/k.liquid new file mode 100644 index 0000000000..9ec37cc5b2 --- /dev/null +++ b/tutorials/modules/multiphaseEuler/hydrofoil/0/k.liquid @@ -0,0 +1,52 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: dev + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object k.liquid; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -2 0 0 0 0]; + +internalField uniform 0.0042613; + +boundaryField +{ + #includeEtc "caseDicts/setConstraintTypes" + + inlet + { + type fixedValue; + value $internalField; + + } + outlet + { + type inletOutlet; + phi phi.liquid; + inletValue $internalField; + value $internalField; + } + hydrofoil + { + type kqRWallFunction; + value $internalField; + } + walls + { + type kqRWallFunction; + value $internalField; + } +} + + +// ************************************************************************* // diff --git a/tutorials/modules/multiphaseEuler/hydrofoil/0/nut.gas b/tutorials/modules/multiphaseEuler/hydrofoil/0/nut.gas new file mode 100644 index 0000000000..9f3b3c397e --- /dev/null +++ b/tutorials/modules/multiphaseEuler/hydrofoil/0/nut.gas @@ -0,0 +1,49 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: dev + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object nut.gas; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -1 0 0 0 0]; + +internalField uniform 9.993764000E-07; + +boundaryField +{ + #includeEtc "caseDicts/setConstraintTypes" + + inlet + { + type calculated; + value $internalField; + } + outlet + { + type calculated; + value $internalField; + } + hydrofoil + { + type nutUSpaldingWallFunction; + value $internalField; + } + walls + { + type nutUSpaldingWallFunction; + value $internalField; + } +} + + +// ************************************************************************* // diff --git a/tutorials/modules/multiphaseEuler/hydrofoil/0/nut.liquid b/tutorials/modules/multiphaseEuler/hydrofoil/0/nut.liquid new file mode 100644 index 0000000000..05a29fa91f --- /dev/null +++ b/tutorials/modules/multiphaseEuler/hydrofoil/0/nut.liquid @@ -0,0 +1,49 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: dev + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object nut.liquid; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -1 0 0 0 0]; + +internalField uniform 9.993764000E-07; + +boundaryField +{ + #includeEtc "caseDicts/setConstraintTypes" + + inlet + { + type calculated; + value $internalField; + } + outlet + { + type calculated; + value $internalField; + } + hydrofoil + { + type nutUSpaldingWallFunction; + value $internalField; + } + walls + { + type nutUSpaldingWallFunction; + value $internalField; + } +} + + +// ************************************************************************* // diff --git a/tutorials/modules/multiphaseEuler/hydrofoil/0/omega.gas b/tutorials/modules/multiphaseEuler/hydrofoil/0/omega.gas new file mode 100644 index 0000000000..ad361c0bad --- /dev/null +++ b/tutorials/modules/multiphaseEuler/hydrofoil/0/omega.gas @@ -0,0 +1,60 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: dev + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object omega.gas; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 -1 0 0 0 0]; + +internalField uniform 355.3333333; + +boundaryField +{ + #includeEtc "caseDicts/setConstraintTypes" + + inlet + { + type fixedValue; + value $internalField; + + } + outlet + { + type inletOutlet; + phi phi.liquid; + inletValue $internalField; + value $internalField; + } + hydrofoil + { + type omegaWallFunction; + Cmu 0.09; + kappa 0.41; + E 9.8; + blended on; + value $internalField; + } + walls + { + type omegaWallFunction; + Cmu 0.09; + kappa 0.41; + E 9.8; + blended on; + value $internalField; + } +} + + +// ************************************************************************* // diff --git a/tutorials/modules/multiphaseEuler/hydrofoil/0/omega.liquid b/tutorials/modules/multiphaseEuler/hydrofoil/0/omega.liquid new file mode 100644 index 0000000000..0529839074 --- /dev/null +++ b/tutorials/modules/multiphaseEuler/hydrofoil/0/omega.liquid @@ -0,0 +1,59 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: dev + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object omega.liquid; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 -1 0 0 0 0]; + +internalField uniform 355.3333333; + +boundaryField +{ + #includeEtc "caseDicts/setConstraintTypes" + + inlet + { + type fixedValue; + value $internalField; + } + outlet + { + type inletOutlet; + phi phi.liquid; + inletValue $internalField; + value $internalField; + } + hydrofoil + { + type omegaWallFunction; + Cmu 0.09; + kappa 0.41; + E 9.8; + blended on; + value $internalField; + } + walls + { + type omegaWallFunction; + Cmu 0.09; + kappa 0.41; + E 9.8; + blended on; + value $internalField; + } +} + + +// ************************************************************************* // diff --git a/tutorials/modules/multiphaseEuler/hydrofoil/0/p b/tutorials/modules/multiphaseEuler/hydrofoil/0/p new file mode 100644 index 0000000000..360ab5ce19 --- /dev/null +++ b/tutorials/modules/multiphaseEuler/hydrofoil/0/p @@ -0,0 +1,49 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: dev + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object p; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 -1 -2 0 0 0 0]; + +internalField uniform 1e5; + +boundaryField +{ + #includeEtc "caseDicts/setConstraintTypes" + + inlet + { + type calculated; + value $internalField; + } + outlet + { + type calculated; + value $internalField; + } + hydrofoil + { + type calculated; + value $internalField; + } + walls + { + type calculated; + value $internalField; + } +} + + +// ************************************************************************* // diff --git a/tutorials/modules/multiphaseEuler/hydrofoil/0/p_rgh b/tutorials/modules/multiphaseEuler/hydrofoil/0/p_rgh new file mode 100644 index 0000000000..f2ec3cab33 --- /dev/null +++ b/tutorials/modules/multiphaseEuler/hydrofoil/0/p_rgh @@ -0,0 +1,47 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: dev + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object p_rgh; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 -1 -2 0 0 0 0]; + +internalField uniform 1e5; + +boundaryField +{ + #includeEtc "caseDicts/setConstraintTypes" + + inlet + { + type fixedFluxPressure; + } + outlet + { + type prghPressure; + p $internalField; + value $internalField; + } + hydrofoil + { + type fixedFluxPressure; + } + walls + { + type fixedFluxPressure; + } +} + + +// ************************************************************************* // diff --git a/tutorials/modules/multiphaseEuler/hydrofoil/Allclean b/tutorials/modules/multiphaseEuler/hydrofoil/Allclean new file mode 100755 index 0000000000..77bdf0f3ff --- /dev/null +++ b/tutorials/modules/multiphaseEuler/hydrofoil/Allclean @@ -0,0 +1,7 @@ +#!/bin/sh + +cd ${0%/*} || exit 1 + +. $WM_PROJECT_DIR/bin/tools/CleanFunctions + +cleanCase && rm -rf 0/phi 0/U 0/uniform 0/yPlus.liquid validation/*.eps diff --git a/tutorials/modules/multiphaseEuler/hydrofoil/Allrun b/tutorials/modules/multiphaseEuler/hydrofoil/Allrun new file mode 100755 index 0000000000..4adb9f2fd4 --- /dev/null +++ b/tutorials/modules/multiphaseEuler/hydrofoil/Allrun @@ -0,0 +1,20 @@ +#!/bin/sh +cd ${0%/*} || exit 1 # run from this directory + +# Source tutorial run functions +. $WM_PROJECT_DIR/bin/tools/RunFunctions + +runApplication blockMesh + +cp 0/U.liquid.orig 0/U +runApplication potentialFoam -pName p_rgh +cp 0/U 0/U.gas +cp 0/U 0/U.liquid + +runApplication decomposePar +runParallel $(getApplication) +runApplication reconstructPar + +validation/createGraph + +#------------------------------------------------------------------------------ diff --git a/tutorials/modules/multiphaseEuler/hydrofoil/constant/fvModels b/tutorials/modules/multiphaseEuler/hydrofoil/constant/fvModels new file mode 100644 index 0000000000..b0c49f3e93 --- /dev/null +++ b/tutorials/modules/multiphaseEuler/hydrofoil/constant/fvModels @@ -0,0 +1,28 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: dev + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class dictionary; + object fvOptions; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +phaseTurbulenceStabilisation +{ + type phaseTurbulenceStabilisation; + + libs ("libmultiphaseEulerFoamFvModels.so"); + + phase gas; + + alphaInversion 0.1; +} + + +// ************************************************************************* // diff --git a/tutorials/modules/multiphaseEuler/hydrofoil/constant/g b/tutorials/modules/multiphaseEuler/hydrofoil/constant/g new file mode 100644 index 0000000000..a11e931c9a --- /dev/null +++ b/tutorials/modules/multiphaseEuler/hydrofoil/constant/g @@ -0,0 +1,20 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: dev + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + format ascii; + class uniformDimensionedVectorField; + object g; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 -2 0 0 0 0]; +value (0 -9.81 0); + + +// ************************************************************************* // diff --git a/tutorials/modules/multiphaseEuler/hydrofoil/constant/geometry/NACAMOD66_6deg_lower.stl.gz b/tutorials/modules/multiphaseEuler/hydrofoil/constant/geometry/NACAMOD66_6deg_lower.stl.gz new file mode 100644 index 0000000000000000000000000000000000000000..96ab117bba7d84b01dfc9aecf19220ef59ac4d58 GIT binary patch literal 3026 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 literal 0 HcmV?d00001 diff --git a/tutorials/modules/multiphaseEuler/hydrofoil/constant/geometry/NACAMOD66_6deg_tip.stl.gz b/tutorials/modules/multiphaseEuler/hydrofoil/constant/geometry/NACAMOD66_6deg_tip.stl.gz new file mode 100644 index 0000000000000000000000000000000000000000..237c31f20a2602f181e87044fe810b15b2bfa189 GIT binary patch literal 6831 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 /dev/null 2>&1 +then + echo 'gnuplot not found - skipping graph creation' >&2 + exit 1 +fi + +lowerFile=postProcessing/hydrofoilPressure/$(foamListTimes -latestTime)/lower.xy +upperFile=postProcessing/hydrofoilPressure/$(foamListTimes -latestTime)/upper.xy + +gnuplot<