diff --git a/bin/tools/RunFunctions b/bin/tools/RunFunctions index 5d7b66cbd9..b73766b5d5 100755 --- a/bin/tools/RunFunctions +++ b/bin/tools/RunFunctions @@ -28,6 +28,18 @@ # Miscellaneous functions for running tutorial cases #------------------------------------------------------------------------------ +# +# Look for '-parallel' in the argument list. +# +isParallel() +{ + for i; do [ "$i" = "-parallel" ] && return 0; done + return 1 +} + +# +# Look for '-test' in the argument list. +# isTest() { for i in "$@"; do diff --git a/tutorials/compressible/sonicFoam/RAS/nacaAirfoil/0/T b/tutorials/compressible/sonicFoam/RAS/nacaAirfoil/0/T index 55a902a6ba..9f946680b0 100644 --- a/tutorials/compressible/sonicFoam/RAS/nacaAirfoil/0/T +++ b/tutorials/compressible/sonicFoam/RAS/nacaAirfoil/0/T @@ -14,32 +14,27 @@ FoamFile } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +#include "include/initialConditions" + dimensions [0 0 0 1 0 0 0]; -internalField uniform 300; +internalField uniform $temperature; boundaryField { - INLE1 + "(inlet|outlet).*" { type inletOutlet; - inletValue uniform 300; - value uniform 300; + inletValue uniform $temperature; + value $internalField; } - OUTL2 - { - type inletOutlet; - inletValue uniform 300; - value uniform 300; - } - - SYMP3 + "sym.*" { type empty; } - WALL10 + "wall.*" { type zeroGradient; } diff --git a/tutorials/compressible/sonicFoam/RAS/nacaAirfoil/0/U b/tutorials/compressible/sonicFoam/RAS/nacaAirfoil/0/U index 441ae6172f..b3c50535e7 100644 --- a/tutorials/compressible/sonicFoam/RAS/nacaAirfoil/0/U +++ b/tutorials/compressible/sonicFoam/RAS/nacaAirfoil/0/U @@ -14,35 +14,37 @@ FoamFile } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +#include "include/initialConditions" + dimensions [0 1 -1 0 0 0 0]; -internalField uniform (600 148.16 0); +internalField uniform $flowVelocity; boundaryField { - INLE1 + "inlet.*" { type supersonicFreestream; - pInf 100000; - TInf 300; - UInf (600 148.16 0); + pInf $pressure; + TInf $temperature; + UInf $flowVelocity; gamma 1.4; - value uniform (600 148.16 0); + value $internalField; } - OUTL2 + "outlet.*" { type inletOutlet; - inletValue uniform (600 148.16 0); - value uniform (600 148.16 0); + inletValue uniform $flowVelocity; + value $internalField; } - SYMP3 + "sym.*" { type empty; } - WALL10 + "wall.*" { type noSlip; } diff --git a/tutorials/compressible/sonicFoam/RAS/nacaAirfoil/0/alphat b/tutorials/compressible/sonicFoam/RAS/nacaAirfoil/0/alphat index b020ec11bc..90fb0644fc 100644 --- a/tutorials/compressible/sonicFoam/RAS/nacaAirfoil/0/alphat +++ b/tutorials/compressible/sonicFoam/RAS/nacaAirfoil/0/alphat @@ -21,21 +21,18 @@ internalField uniform 0; boundaryField { - INLE1 + "(inlet|outlet).*" { type calculated; value uniform 0; } - OUTL2 - { - type calculated; - value uniform 0; - } - SYMP3 + + "sym.*" { type empty; } - WALL10 + + "wall.*" { type compressible::alphatWallFunction; Prt 0.85; diff --git a/tutorials/compressible/sonicFoam/RAS/nacaAirfoil/0/epsilon b/tutorials/compressible/sonicFoam/RAS/nacaAirfoil/0/epsilon index b421b45b78..101105262b 100644 --- a/tutorials/compressible/sonicFoam/RAS/nacaAirfoil/0/epsilon +++ b/tutorials/compressible/sonicFoam/RAS/nacaAirfoil/0/epsilon @@ -15,35 +15,33 @@ FoamFile } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +#include "include/initialConditions" + dimensions [0 2 -3 0 0 0 0]; -internalField uniform 25000; +internalField uniform $turbulentEpsilon; boundaryField { - INLE1 + "(inlet|outlet).*" { type inletOutlet; - inletValue uniform 25000; - value uniform 25000; + inletValue uniform $turbulentEpsilon; + value $internalField; } - OUTL2 - { - type inletOutlet; - inletValue uniform 25000; - value uniform 25000; - } - SYMP3 + + "sym.*" { type empty; } - WALL10 + + "wall.*" { type epsilonWallFunction; Cmu 0.09; kappa 0.41; E 9.8; - value uniform 25000; + value uniform $turbulentEpsilon; } } diff --git a/tutorials/compressible/sonicFoam/RAS/nacaAirfoil/0/include/initialConditions b/tutorials/compressible/sonicFoam/RAS/nacaAirfoil/0/include/initialConditions new file mode 100644 index 0000000000..e00d0cae4f --- /dev/null +++ b/tutorials/compressible/sonicFoam/RAS/nacaAirfoil/0/include/initialConditions @@ -0,0 +1,15 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ + +flowVelocity (600 148.16 0); +pressure 100000; +temperature 300; +turbulentKE 1000; +turbulentEpsilon 25000; + +// ************************************************************************* // diff --git a/tutorials/compressible/sonicFoam/RAS/nacaAirfoil/0/k b/tutorials/compressible/sonicFoam/RAS/nacaAirfoil/0/k index b294820d9d..fccd23b6fa 100644 --- a/tutorials/compressible/sonicFoam/RAS/nacaAirfoil/0/k +++ b/tutorials/compressible/sonicFoam/RAS/nacaAirfoil/0/k @@ -15,32 +15,30 @@ FoamFile } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +#include "include/initialConditions" + dimensions [0 2 -2 0 0 0 0]; -internalField uniform 1000; +internalField uniform $turbulentKE; boundaryField { - INLE1 + "(inlet|outlet).*" { type inletOutlet; - inletValue uniform 1000; - value uniform 1000; + inletValue uniform $turbulentKE; + value $internalField; } - OUTL2 - { - type inletOutlet; - inletValue uniform 1000; - value uniform 1000; - } - SYMP3 + + "sym.*" { type empty; } - WALL10 + + "wall.*" { type kqRWallFunction; - value uniform 1000; + value $internalField; } } diff --git a/tutorials/compressible/sonicFoam/RAS/nacaAirfoil/0/nut b/tutorials/compressible/sonicFoam/RAS/nacaAirfoil/0/nut index 48782b00c3..fbec8785e7 100644 --- a/tutorials/compressible/sonicFoam/RAS/nacaAirfoil/0/nut +++ b/tutorials/compressible/sonicFoam/RAS/nacaAirfoil/0/nut @@ -21,21 +21,18 @@ internalField uniform 0; boundaryField { - INLE1 + "(inlet|outlet).*" { type calculated; value uniform 0; } - OUTL2 - { - type calculated; - value uniform 0; - } - SYMP3 + + "sym.*" { type empty; } - WALL10 + + "wall.*" { type nutkWallFunction; Cmu 0.09; diff --git a/tutorials/compressible/sonicFoam/RAS/nacaAirfoil/0/p b/tutorials/compressible/sonicFoam/RAS/nacaAirfoil/0/p index c0c87ffa37..398442fa78 100644 --- a/tutorials/compressible/sonicFoam/RAS/nacaAirfoil/0/p +++ b/tutorials/compressible/sonicFoam/RAS/nacaAirfoil/0/p @@ -14,34 +14,36 @@ FoamFile } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +#include "include/initialConditions" + dimensions [1 -1 -2 0 0 0 0]; -internalField uniform 100000; +internalField uniform $pressure; boundaryField { - INLE1 + "inlet.*" { type zeroGradient; } - OUTL2 + "outlet.*" { type waveTransmissive; field p; psi thermo:psi; gamma 1.3; - fieldInf 100000; + fieldInf $pressure; lInf 1; - value uniform 100000; + value $internalField; } - SYMP3 + "sym.*" { type empty; } - WALL10 + "wall.*" { type zeroGradient; } diff --git a/tutorials/compressible/sonicFoam/RAS/nacaAirfoil/Allclean b/tutorials/compressible/sonicFoam/RAS/nacaAirfoil/Allclean index 972da44d34..d1c82b1a7c 100755 --- a/tutorials/compressible/sonicFoam/RAS/nacaAirfoil/Allclean +++ b/tutorials/compressible/sonicFoam/RAS/nacaAirfoil/Allclean @@ -5,6 +5,13 @@ cd ${0%/*} || exit 1 # Run from this directory . $WM_PROJECT_DIR/bin/tools/CleanFunctions cleanCase -rm -f constant/polyMesh/boundary > /dev/null 2>&1 +rm -f constant/polyMesh/boundary > /dev/null 2>&1 + +# Don't need these extra files (from star4ToFoam conversion) +rm -f \ + constant/cellTable \ + constant/polyMesh/cellTableId \ + constant/polyMesh/interfaces \ + constant/polyMesh/origCellId > /dev/null 2>&1 #------------------------------------------------------------------------------ diff --git a/tutorials/compressible/sonicFoam/RAS/nacaAirfoil/Allrun b/tutorials/compressible/sonicFoam/RAS/nacaAirfoil/Allrun index 44af4c156c..4b94147c58 100755 --- a/tutorials/compressible/sonicFoam/RAS/nacaAirfoil/Allrun +++ b/tutorials/compressible/sonicFoam/RAS/nacaAirfoil/Allrun @@ -4,13 +4,33 @@ cd ${0%/*} || exit 1 # Run from this directory # Source tutorial run functions . $WM_PROJECT_DIR/bin/tools/RunFunctions -# Get application name -application=$(getApplication) - -runApplication star3ToFoam prostar/nacaAirfoil +# Convert mesh from resources directory +runApplication star4ToFoam -scale 1 \ + $FOAM_TUTORIALS/resources/geometry/nacaAirfoil/nacaAirfoil +# Symmetry plane -> empy sed -i -e 's/symmetry\([)]*;\)/empty\1/' constant/polyMesh/boundary -runApplication $application +# Don't need these extra files (from star4ToFoam conversion) +rm -f \ + constant/cellTable \ + constant/polyMesh/cellTableId \ + constant/polyMesh/interfaces \ + constant/polyMesh/origCellId > /dev/null 2>&1 + + +if isParallel "$@" +then + + # Parallel + runApplication decomposePar + runParallel $(getApplication) + +else + + # Serial + runApplication $(getApplication) + +fi #------------------------------------------------------------------------------ diff --git a/tutorials/compressible/sonicFoam/RAS/nacaAirfoil/prostar/nacaAirfoil.bnd.gz b/tutorials/compressible/sonicFoam/RAS/nacaAirfoil/prostar/nacaAirfoil.bnd.gz deleted file mode 100644 index 4cf2842265..0000000000 Binary files a/tutorials/compressible/sonicFoam/RAS/nacaAirfoil/prostar/nacaAirfoil.bnd.gz and /dev/null differ diff --git a/tutorials/compressible/sonicFoam/RAS/nacaAirfoil/prostar/nacaAirfoil.cel.gz b/tutorials/compressible/sonicFoam/RAS/nacaAirfoil/prostar/nacaAirfoil.cel.gz deleted file mode 100644 index 2cd17bbd7a..0000000000 Binary files a/tutorials/compressible/sonicFoam/RAS/nacaAirfoil/prostar/nacaAirfoil.cel.gz and /dev/null differ diff --git a/tutorials/compressible/sonicFoam/RAS/nacaAirfoil/prostar/nacaAirfoil.vrt.gz b/tutorials/compressible/sonicFoam/RAS/nacaAirfoil/prostar/nacaAirfoil.vrt.gz deleted file mode 100644 index 3d99075fab..0000000000 Binary files a/tutorials/compressible/sonicFoam/RAS/nacaAirfoil/prostar/nacaAirfoil.vrt.gz and /dev/null differ diff --git a/tutorials/compressible/sonicFoam/RAS/nacaAirfoil/system/decomposeParDict b/tutorials/compressible/sonicFoam/RAS/nacaAirfoil/system/decomposeParDict new file mode 100644 index 0000000000..a456e9fc85 --- /dev/null +++ b/tutorials/compressible/sonicFoam/RAS/nacaAirfoil/system/decomposeParDict @@ -0,0 +1,36 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object decomposeParDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +numberOfSubdomains 6; + +method simple; + +simpleCoeffs +{ + n (3 2 1); + delta 0.001; +} + +hierarchicalCoeffs +{ + n (3 2 1); + delta 0.001; + order xyz; +} + + +// ************************************************************************* // diff --git a/tutorials/resources/geometry/nacaAirfoil/README b/tutorials/resources/geometry/nacaAirfoil/README new file mode 100644 index 0000000000..030bcbe400 --- /dev/null +++ b/tutorials/resources/geometry/nacaAirfoil/README @@ -0,0 +1,8 @@ +nacaAirfoil +~~~~~~~~~~~ +* large domain with airfoil section near centre +* extremely non-orthogonal, highly skew mesh refined around the airfoil +* running at Mach 1.78 +* limited corrected 0.5 on all laplacianSchemes because the mesh is so poor +* run to t = 0.02 with nextWrite; change to stopAt endTime to continue running +* deltaT can be increased later in the run to 2e-07 diff --git a/tutorials/resources/geometry/nacaAirfoil/nacaAirfoil.bnd.gz b/tutorials/resources/geometry/nacaAirfoil/nacaAirfoil.bnd.gz new file mode 100644 index 0000000000..46825bc93d Binary files /dev/null and b/tutorials/resources/geometry/nacaAirfoil/nacaAirfoil.bnd.gz differ diff --git a/tutorials/resources/geometry/nacaAirfoil/nacaAirfoil.cel.gz b/tutorials/resources/geometry/nacaAirfoil/nacaAirfoil.cel.gz new file mode 100644 index 0000000000..7cd161bd11 Binary files /dev/null and b/tutorials/resources/geometry/nacaAirfoil/nacaAirfoil.cel.gz differ diff --git a/tutorials/resources/geometry/nacaAirfoil/nacaAirfoil.inp b/tutorials/resources/geometry/nacaAirfoil/nacaAirfoil.inp new file mode 100644 index 0000000000..6130682c0b --- /dev/null +++ b/tutorials/resources/geometry/nacaAirfoil/nacaAirfoil.inp @@ -0,0 +1,15 @@ +! ------------------------------ +! PROSTAR file of NACA airfoil +! 40000 cells, 80860 points +! scaling = meters +! ------------------------------ + +ctable 2 fluid ,,,,,, +ctname 2 fluid + +*set icvo mxv - 1" << nl +vread nacaAirfoil.vrt icvo,,,coded +cread nacaAirfoil.cel icvo,,,add,coded +*set icvo + +! end diff --git a/tutorials/resources/geometry/nacaAirfoil/nacaAirfoil.vrt.gz b/tutorials/resources/geometry/nacaAirfoil/nacaAirfoil.vrt.gz new file mode 100644 index 0000000000..759804cb4d Binary files /dev/null and b/tutorials/resources/geometry/nacaAirfoil/nacaAirfoil.vrt.gz differ