commit 3a2e8ad3ecbe1145ff13070bf8f759838cacbce6 Author: ignis Date: Sun Nov 11 04:06:48 2018 +0900 Initial commit copy of KAUST case diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5d468f4 --- /dev/null +++ b/.gitignore @@ -0,0 +1,15 @@ +.*.swp +*.gz +log.* +job.[0-9]*.out +postProcessing +*~ +processor* +[0-9]* +[0-9]*.[0-9]* +!0.org +constant/extendedFeatureEdgeMesh +*.eMesh +constant/polyMesh/* +!constant/polyMesh/blockMeshDict +constant/cellToRegion diff --git a/0.org/CH4 b/0.org/CH4 new file mode 100644 index 0000000..c38600e --- /dev/null +++ b/0.org/CH4 @@ -0,0 +1,72 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 4.x | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2; + format ascii; + class volScalarField; + location "0"; + object CH4; +} + +dimensions [ 0 0 0 0 0 0 0 ]; + +internalField uniform 0; + +boundaryField +{ + nzLow + { + type fixedValue; + value uniform 0.14046; + } + nzUpp + { + type fixedValue; + value uniform 0; + } + coLow + { + type fixedValue; + value uniform 0; + } + coUpp + { + type fixedValue; + value uniform 0; + } + waLow + { + type zeroGradient; + } + waUpp + { + type zeroGradient; + } + outlet + { + type inletOutlet; + inletValue uniform 0; + value uniform 0; + } + front + { + type wedge; + } + back + { + type wedge; + } + axis + { + type empty; + } +} + + +// ************************************************************************* // diff --git a/0.org/N2 b/0.org/N2 new file mode 100644 index 0000000..cefaf10 --- /dev/null +++ b/0.org/N2 @@ -0,0 +1,72 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 4.x | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2; + format ascii; + class volScalarField; + location "0"; + object N2; +} + +dimensions [ 0 0 0 0 0 0 0 ]; + +internalField uniform 1; + +boundaryField +{ + nzLow + { + type fixedValue; + value uniform 0.85954; + } + nzUpp + { + type fixedValue; + value uniform 0.440011; + } + coLow + { + type fixedValue; + value uniform 1; + } + coUpp + { + type fixedValue; + value uniform 1; + } + waLow + { + type zeroGradient; + } + waUpp + { + type zeroGradient; + } + outlet + { + type inletOutlet; + inletValue uniform 1; + value uniform 1; + } + front + { + type wedge; + } + back + { + type wedge; + } + axis + { + type empty; + } +} + + +// ************************************************************************* // diff --git a/0.org/O2 b/0.org/O2 new file mode 100644 index 0000000..ecadb76 --- /dev/null +++ b/0.org/O2 @@ -0,0 +1,72 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 4.x | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2; + format ascii; + class volScalarField; + location "0"; + object O2; +} + +dimensions [ 0 0 0 0 0 0 0 ]; + +internalField uniform 0; + +boundaryField +{ + nzLow + { + type fixedValue; + value uniform 0; + } + nzUpp + { + type fixedValue; + value uniform 0.559989; + } + coLow + { + type fixedValue; + value uniform 0; + } + coUpp + { + type fixedValue; + value uniform 0; + } + waLow + { + type zeroGradient; + } + waUpp + { + type zeroGradient; + } + outlet + { + type inletOutlet; + inletValue uniform 0; + value uniform 0; + } + front + { + type wedge; + } + back + { + type wedge; + } + axis + { + type empty; + } +} + + +// ************************************************************************* // diff --git a/0.org/T b/0.org/T new file mode 100644 index 0000000..1be6b33 --- /dev/null +++ b/0.org/T @@ -0,0 +1,72 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 4.x | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2; + format ascii; + class volScalarField; + location "0"; + object T; +} + +dimensions [ 0 0 0 1 0 0 0 ]; + +internalField uniform 300; + +boundaryField +{ + nzLow + { + type fixedValue; + value uniform 300; + } + nzUpp + { + type fixedValue; + value uniform 300; + } + coLow + { + type fixedValue; + value uniform 300; + } + coUpp + { + type fixedValue; + value uniform 300; + } + waLow + { + type zeroGradient; + } + waUpp + { + type zeroGradient; + } + outlet + { + type inletOutlet; + inletValue uniform 300; + value uniform 300; + } + front + { + type wedge; + } + back + { + type wedge; + } + axis + { + type empty; + } +} + + +// ************************************************************************* // diff --git a/0.org/U b/0.org/U new file mode 100644 index 0000000..3278f44 --- /dev/null +++ b/0.org/U @@ -0,0 +1,71 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 4.x | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2; + format ascii; + class volVectorField; + location "0"; + object U; +} + +dimensions [ 0 1 -1 0 0 0 0 ]; + +internalField uniform ( 0 0 0 ); + +boundaryField +{ + nzLow + { + type fixedValue; + value uniform ( 0.0 0.2 0 ); + } + nzUpp + { + type fixedValue; + value uniform ( 0 -0.2 0 ); + } + coLow + { + type fixedValue; + value uniform ( 0.0 0.2 0 ); + } + coUpp + { + type fixedValue; + value uniform ( 0 -0.2 0 ); + } + waLow + { + type slip; + } + waUpp + { + type slip; + } + outlet + { + type pressureInletOutletVelocity; + value uniform ( 0 0 0 ); + } + front + { + type wedge; + } + back + { + type wedge; + } + axis + { + type empty; + } +} + + +// ************************************************************************* // diff --git a/0.org/Ydefault b/0.org/Ydefault new file mode 100644 index 0000000..36e8055 --- /dev/null +++ b/0.org/Ydefault @@ -0,0 +1,72 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 4.x | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2; + format ascii; + class volScalarField; + location "0.0038885"; + object H; +} + +dimensions [ 0 0 0 0 0 0 0 ]; + +internalField uniform 0; + +boundaryField +{ + nzLow + { + type fixedValue; + value uniform 0; + } + nzUpp + { + type fixedValue; + value uniform 0; + } + coLow + { + type fixedValue; + value uniform 0; + } + coUpp + { + type fixedValue; + value uniform 0; + } + waLow + { + type zeroGradient; + } + waUpp + { + type zeroGradient; + } + outlet + { + type inletOutlet; + inletValue uniform 0; + value uniform 0; + } + front + { + type wedge; + } + back + { + type wedge; + } + axis + { + type empty; + } +} + + +// ************************************************************************* // diff --git a/0.org/alphat b/0.org/alphat new file mode 100644 index 0000000..f734e31 --- /dev/null +++ b/0.org/alphat @@ -0,0 +1,70 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 4.x | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2; + format ascii; + class volScalarField; + location "0"; + object alphat; +} + +dimensions [ 1 -1 -1 0 0 0 0 ]; + +internalField uniform 0; + +boundaryField +{ + nzLow + { + type fixedValue; + value uniform 0; + } + nzUpp + { + type fixedValue; + value uniform 0; + } + coLow + { + type fixedValue; + value uniform 0; + } + coUpp + { + type fixedValue; + value uniform 0; + } + waLow + { + type zeroGradient; + } + waUpp + { + type zeroGradient; + } + outlet + { + type zeroGradient; + } + front + { + type wedge; + } + back + { + type wedge; + } + axis + { + type empty; + } +} + + +// ************************************************************************* // diff --git a/0.org/p b/0.org/p new file mode 100644 index 0000000..da9dd17 --- /dev/null +++ b/0.org/p @@ -0,0 +1,71 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 4.x | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2; + format ascii; + class volScalarField; + location "0"; + object p; +} + +dimensions [ 1 -1 -2 0 0 0 0 ]; + +internalField uniform 101325; + +boundaryField +{ + nzLow + { + type zeroGradient; + } + nzUpp + { + type zeroGradient; + } + coLow + { + type zeroGradient; + } + coUpp + { + type zeroGradient; + } + waLow + { + type zeroGradient; + } + waUpp + { + type zeroGradient; + } + outlet + { + type totalPressure; + rho none; + psi none; + gamma 1; + p0 uniform 101325; + value uniform 101325; + } + front + { + type wedge; + } + back + { + type wedge; + } + axis + { + type empty; + } +} + + +// ************************************************************************* // diff --git a/constant/chemistryProperties b/constant/chemistryProperties new file mode 100644 index 0000000..8f45f6f --- /dev/null +++ b/constant/chemistryProperties @@ -0,0 +1,41 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.4.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object chemistryProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +chemistryType +{ + chemistrySolver ode; // EulerImplicit; // + chemistryThermo psi; +} + +chemistry on; + +initialChemicalTimeStep 1e-10; + +EulerImplicitCoeffs +{ + cTauChem 1; + equilibriumRateLimiter off; +} + +odeCoeffs +{ + solver rodas23; + absTol 1e-12; + relTol 0.01; +} + +// ************************************************************************* // diff --git a/constant/combustionProperties b/constant/combustionProperties new file mode 100644 index 0000000..a98ef7d --- /dev/null +++ b/constant/combustionProperties @@ -0,0 +1,28 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.4.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object combustionProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +combustionModel laminar; + +active true; // false; // + +laminarCoeffs +{ + integrateReactionRate true; +} + + +// ************************************************************************* // diff --git a/constant/g b/constant/g new file mode 100644 index 0000000..d569a1e --- /dev/null +++ b/constant/g @@ -0,0 +1,22 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.4.0 | +| \\ / 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 0 ); + + +// ************************************************************************* // diff --git a/constant/polyMesh/blockMeshDict b/constant/polyMesh/blockMeshDict new file mode 100644 index 0000000..18dce07 --- /dev/null +++ b/constant/polyMesh/blockMeshDict @@ -0,0 +1,184 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.3.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object blockMeshDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +convertToMeters 1e-3; // 1 m / 1000 mm + +vertices +( +( 0.0000000000000e+00 -5.0000000000000e+00 -0.0000000000000e+00 ) // 0 +( 4.9998096153209e+00 -5.0000000000000e+00 -4.3632677491870e-02 ) // 1 +( 4.9998096153209e+00 5.0000000000000e+00 -4.3632677491870e-02 ) // 2 +( 0.0000000000000e+00 5.0000000000000e+00 -0.0000000000000e+00 ) // 3 +( 4.9998096153209e+00 -5.0000000000000e+00 4.3632677491870e-02 ) // 4 +( 4.9998096153209e+00 5.0000000000000e+00 4.3632677491870e-02 ) // 5 +( 4.9998096153209e+00 -5.0000000000000e+00 -4.3632677491870e-02 ) // 6 +( 9.9996192306417e+00 -5.0000000000000e+00 -8.7265354983739e-02 ) // 7 +( 9.9996192306417e+00 5.0000000000000e+00 -8.7265354983739e-02 ) // 8 +( 4.9998096153209e+00 5.0000000000000e+00 -4.3632677491870e-02 ) // 9 +( 4.9998096153209e+00 -5.0000000000000e+00 4.3632677491870e-02 ) // 10 +( 9.9996192306417e+00 -5.0000000000000e+00 8.7265354983739e-02 ) // 11 +( 9.9996192306417e+00 5.0000000000000e+00 8.7265354983739e-02 ) // 12 +( 4.9998096153209e+00 5.0000000000000e+00 4.3632677491870e-02 ) // 13 +( 9.9996192306417e+00 -5.0000000000000e+00 -8.7265354983739e-02 ) // 14 +( 3.9998476922567e+01 -5.0000000000000e+00 -3.4906141993496e-01 ) // 15 +( 3.9998476922567e+01 5.0000000000000e+00 -3.4906141993496e-01 ) // 16 +( 9.9996192306417e+00 5.0000000000000e+00 -8.7265354983739e-02 ) // 17 +( 9.9996192306417e+00 -5.0000000000000e+00 8.7265354983739e-02 ) // 18 +( 3.9998476922567e+01 -5.0000000000000e+00 3.4906141993496e-01 ) // 19 +( 3.9998476922567e+01 5.0000000000000e+00 3.4906141993496e-01 ) // 20 +( 9.9996192306417e+00 5.0000000000000e+00 8.7265354983739e-02 ) // 21 +) +; + +blocks +( + hex ( 0 1 2 3 0 4 5 3 ) ( 50 100 1 ) simpleGrading ( 1 1 1 ) // inner + hex ( 6 7 8 9 10 11 12 13 ) ( 50 100 1 ) simpleGrading ( 1 1 1 ) // coflow + hex ( 14 15 16 17 18 19 20 21 ) ( 300 100 1 ) simpleGrading ( 1 1 1 ) // outer +) +; + +edges +( +); + +boundary +( + nzLow + { + type patch; + faces + ( + (0 1 4 0) // inner down + ); + } + nzUpp + { + type patch; + faces + ( + (2 3 3 5) // inner up + ); + } + coLow + { + type patch; + faces + ( + ( 6 7 11 10) // coflow down + ); + } + coUpp + { + type patch; + faces + ( + ( 8 9 13 12) // coflow up + ); + } + waLow + { + type patch; + faces + ( + (14 15 19 18) // outer down + ); + } + waUpp + { + type patch; + faces + ( + (16 17 21 20) // outer up + ); + } + outlet + { + type patch; + faces + ( + (15 16 20 19) // outer right + ); + } + front + { + type wedge; + faces + ( + (0 4 5 3) // inner front + (10 11 12 13) // coflow front + (18 19 20 21) // outer front + ); + } + back + { + type wedge; + faces + ( + (0 3 2 1) // inner back + (6 9 8 7) // coflow back + (14 17 16 15) // outer back + ); + } + axis + { + type empty; + faces + ( + (3 0 0 3) // inner left = axis + ); + } + dummy1 + { + type empty; + faces + ( + (1 2 5 4) // inner right + ); + } + dummy2 + { + type empty; + faces + ( + ( 9 6 10 13) // coflow left + ); + } + dummy3 + { + type empty; + faces + ( + ( 7 8 12 11) // coflow right + ); + } + dummy4 + { + type empty; + faces + ( + (17 14 18 21) // outer left + ); + } +); + +mergePatchPairs +( + (dummy1 dummy2) + (dummy3 dummy4) +); + +// ************************************************************************* // diff --git a/constant/thermophysicalProperties b/constant/thermophysicalProperties new file mode 100644 index 0000000..63c5209 --- /dev/null +++ b/constant/thermophysicalProperties @@ -0,0 +1,37 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.4.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object thermophysicalProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +thermoType +{ + type hePsiThermo; + mixture reactingMixture; + transport sutherland; + thermo janaf; + energy sensibleEnthalpy; + equationOfState perfectGas; + specie specie; +} + +inertSpecie N2; + +chemistryReader foamChemistryReader; + +foamChemistryFile "$FOAM_CASE/constant/prager/grimech30.foam"; + +foamChemistryThermoFile "$FOAM_CASE/constant/prager/thermo30.foam"; + +// ************************************************************************* // diff --git a/constant/turbulenceProperties b/constant/turbulenceProperties new file mode 100644 index 0000000..f74143b --- /dev/null +++ b/constant/turbulenceProperties @@ -0,0 +1,21 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.4.0 | +| \\ / 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/system/controlDict b/system/controlDict new file mode 100644 index 0000000..1427149 --- /dev/null +++ b/system/controlDict @@ -0,0 +1,93 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.4.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object controlDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +application reactingFoam; + +startFrom startTime; // latestTime; // + +startTime 0; + +stopAt endTime; // noWriteNow; // nextWrite; // writeNow; // + +endTime 0.5; + +deltaT 1.0e-6; + +writeControl adjustableRunTime; // clockTime; // timeStep; // + +writeInterval 1000; // 10000; // 0.05; // 0.000078; //3600; // + +purgeWrite 0; + +/* +secondaryWriteControl timeStep; //clockTime; // + +secondaryWriteInterval 501; // 3600; // + +secondaryPurgeWrite 1; +*/ + +secondaryWriteControl clockTime; // timeStep; // + +secondaryWriteInterval 3000; // 1; + +secondaryPurgeWrite 2; + +writeFormat ascii; + +writePrecision 6; + +writeCompression off; + +timeFormat general; + +timePrecision 8; + +runTimeModifiable true; + +adjustTimeStep no; + +maxCo 0.4; + + +functions +{ + fieldMinMax1 + { + type fieldMinMax; + functionObjectLibs ("libfieldFunctionObjects.so"); + /* + region defaultRegion; + enabled yes; + timeStart 0; + timeEnd 10; + outputControl outputTime; + outputInterval 1; + */ + write no; + log yes; + location yes; + mode magnitude; + fields + ( + p + Phi + ); + } +} + +// ************************************************************************* // diff --git a/system/decomposeParDict b/system/decomposeParDict new file mode 100644 index 0000000..a703707 --- /dev/null +++ b/system/decomposeParDict @@ -0,0 +1,62 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.2.2 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object decomposeParDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +numberOfSubdomains 100; + +// method manual; +method simple; +// method scotch; + +simpleCoeffs +{ + // n ( 4 5 1 ); + n ( 100 1 1 ); + delta 0.001; +} + + +/* +simpleCoeffs +{ + n ( 1 2 2 ); + delta 0.001; +} +*/ + +hierarchicalCoeffs +{ + n ( 1 1 1 ); + delta 0.001; + order xyz; +} + +scotchCoeffs +{ + +} + +manualCoeffs +{ + dataFile "manualDecomposition-24"; +} + +distributed no; + +roots ( ); + + +// ************************************************************************* // diff --git a/system/fvOptions b/system/fvOptions new file mode 100644 index 0000000..7122a9f --- /dev/null +++ b/system/fvOptions @@ -0,0 +1,40 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.4.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object fvOptions; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +source1 +{ + type fixedTemperatureConstraint; + active false; + timeStart 0.0; + duration 0.1; + selectionMode cellSet; + cellSet ignitionCells; + + fixedTemperatureConstraintCoeffs + { + mode uniform; + temperature table + 2 + ( + (0 300) + (0.01 2000) + ) + ; + } +} + +// ************************************************************************* // diff --git a/system/fvSchemes b/system/fvSchemes new file mode 100644 index 0000000..c207593 --- /dev/null +++ b/system/fvSchemes @@ -0,0 +1,76 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.4.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object fvSchemes; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +ddtSchemes +{ + default Euler; +} + +gradSchemes +{ + default Gauss linear; +} + +divSchemes +{ + default none; + +/* + div(phi,U) Gauss linearUpwindV cellLimited 1; + div(phi,Yi_h) Gauss linearUpwind cellLimited 1; + div(phi,K) Gauss linearUpwind cellLimited 1; + div(phid,p) Gauss linearUpwind cellLimited 1; + div(phi,epsilon) Gauss linearUpwind cellLimited 1; + div(phi,k) Gauss linearUpwind cellLimited 1; + div((muEff*dev2(T(grad(U))))) Gauss linear; + div((interpolate((((De|ng)|Te)*grad(Te)))&S),ne) Gauss linearUpwind cellLimited 1; + div(ve,ne) Gauss linearUpwind cellLimited 1; +*/ + div(phi,U) Gauss limitedLinearV 1; + div(phi,Yi_h) Gauss limitedLinear 1; + div(phi,K) Gauss limitedLinear 1; + div(phid,p) Gauss limitedLinear 1; + div(phi,epsilon) Gauss limitedLinear 1; + div(phi,k) Gauss limitedLinear 1; + div((muEff*dev2(T(grad(U))))) Gauss linear; + div((interpolate((((De|ng)|Te)*grad(Te)))&S),ne) Gauss limitedLinear 1; + div(ve,ne) Gauss limitedLinear 1; +} + +laplacianSchemes +{ + default Gauss linear orthogonal; +} + +interpolationSchemes +{ + default linear; +} + +snGradSchemes +{ + default orthogonal; +} + +fluxRequired +{ + default no; + p; +} + + +// ************************************************************************* // diff --git a/system/fvSolution b/system/fvSolution new file mode 100644 index 0000000..df6ab76 --- /dev/null +++ b/system/fvSolution @@ -0,0 +1,95 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.4.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object fvSolution; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +solvers +{ + "rho.*" + { + solver diagonal; + } + + p + { + solver PCG; + preconditioner DIC; + tolerance 1e-6; + relTol 0.1; + } + + pFinal + { + $p; + tolerance 1e-6; + relTol 0.0; + } + + "(U|h|k|epsilon)" + { + solver PBiCG; + preconditioner DILU; + tolerance 1e-6; + relTol 0.1; + } + + "(U|h|k|epsilon)Final" + { + $U; + relTol 0; + } + + Yi + { + solver smoothSolver; + smoother DILU; + tolerance 1e-6; + relTol 0; + // $hFinal; + } + + ne + { + $Yi; + tolerance 1e-9; + nNeSubCycles 1000; + } + + Phi + { + solver PCG; + preconditioner DIC; + tolerance 1e-08; + relTol 0.2; + } + + PhiFinal + { + $Phi; + tolerance 1e-08; + relTol 0.0; + } +} + +PIMPLE +{ + momentumPredictor no; + nOuterCorrectors 1; + nCorrectors 2; + nNonOrthogonalCorrectors 0; +} + + +// ************************************************************************* // diff --git a/system/manDecomp.py b/system/manDecomp.py new file mode 100644 index 0000000..193ebc6 --- /dev/null +++ b/system/manDecomp.py @@ -0,0 +1,26 @@ +# coding: utf-8 +import numpy as np + +''' +y1 = np.arange(0, 30e-3, 1.5e-3) +y2 = np.arange(30e-3, 41e-3, 2.5e-3) +''' +y1 = [] +y2 = np.linspace(0, 40.0e-3, 81) + +y = np.hstack((y1, y2)) + +form = ''' + boxToCell + {{ + box ({0} -1 -1) ({1} 1 1); + + fieldValues + ( + volScalarFieldValue cellDist {2} + ); + }} +''' + +for i, yi in enumerate(y[:-1]): + print form.format(yi, y[i+1], i) diff --git a/system/setFieldsDict b/system/setFieldsDict new file mode 100644 index 0000000..32429ec --- /dev/null +++ b/system/setFieldsDict @@ -0,0 +1,294 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.4.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object setFieldsDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +defaultFieldValues +( + // volScalarFieldValue alpha1 0 + // volVectorFieldValue U (0 0 0) +); + +regions +( + // Set cell values + // (does zerogradient on boundaries) + + boxToCell + { + box (-1 0.0 -1) (1 0.0003125 1); + + fieldValues + ( + volScalarFieldValue cellDist 0 + ); + } + + + boxToCell + { + box (-1 0.0003125 -1) (1 0.000625 1); + + fieldValues + ( + volScalarFieldValue cellDist 1 + ); + } + + + boxToCell + { + box (-1 0.000625 -1) (1 0.0009375 1); + + fieldValues + ( + volScalarFieldValue cellDist 2 + ); + } + + + boxToCell + { + box (-1 0.0009375 -1) (1 0.00125 1); + + fieldValues + ( + volScalarFieldValue cellDist 3 + ); + } + + + boxToCell + { + box (-1 0.00125 -1) (1 0.0015625 1); + + fieldValues + ( + volScalarFieldValue cellDist 4 + ); + } + + + boxToCell + { + box (-1 0.0015625 -1) (1 0.001875 1); + + fieldValues + ( + volScalarFieldValue cellDist 5 + ); + } + + + boxToCell + { + box (-1 0.001875 -1) (1 0.0021875 1); + + fieldValues + ( + volScalarFieldValue cellDist 6 + ); + } + + + boxToCell + { + box (-1 0.0021875 -1) (1 0.0025 1); + + fieldValues + ( + volScalarFieldValue cellDist 7 + ); + } + + + boxToCell + { + box (-1 0.0025 -1) (1 0.0028125 1); + + fieldValues + ( + volScalarFieldValue cellDist 8 + ); + } + + + boxToCell + { + box (-1 0.0028125 -1) (1 0.003125 1); + + fieldValues + ( + volScalarFieldValue cellDist 9 + ); + } + + + boxToCell + { + box (-1 0.003125 -1) (1 0.0034375 1); + + fieldValues + ( + volScalarFieldValue cellDist 10 + ); + } + + + boxToCell + { + box (-1 0.0034375 -1) (1 0.00375 1); + + fieldValues + ( + volScalarFieldValue cellDist 11 + ); + } + + + boxToCell + { + box (-1 0.00375 -1) (1 0.0040625 1); + + fieldValues + ( + volScalarFieldValue cellDist 12 + ); + } + + + boxToCell + { + box (-1 0.0040625 -1) (1 0.004375 1); + + fieldValues + ( + volScalarFieldValue cellDist 13 + ); + } + + + boxToCell + { + box (-1 0.004375 -1) (1 0.0046875 1); + + fieldValues + ( + volScalarFieldValue cellDist 14 + ); + } + + + boxToCell + { + box (-1 0.0046875 -1) (1 0.005 1); + + fieldValues + ( + volScalarFieldValue cellDist 15 + ); + } + + + boxToCell + { + box (-1 0.005 -1) (1 0.0053125 1); + + fieldValues + ( + volScalarFieldValue cellDist 16 + ); + } + + + boxToCell + { + box (-1 0.0053125 -1) (1 0.005625 1); + + fieldValues + ( + volScalarFieldValue cellDist 17 + ); + } + + + boxToCell + { + box (-1 0.005625 -1) (1 0.0059375 1); + + fieldValues + ( + volScalarFieldValue cellDist 18 + ); + } + + + boxToCell + { + box (-1 0.0059375 -1) (1 0.00625 1); + + fieldValues + ( + volScalarFieldValue cellDist 19 + ); + } + + + boxToCell + { + box (-1 0.00625 -1) (1 0.0065625 1); + + fieldValues + ( + volScalarFieldValue cellDist 20 + ); + } + + + boxToCell + { + box (-1 0.0065625 -1) (1 0.006875 1); + + fieldValues + ( + volScalarFieldValue cellDist 21 + ); + } + + + boxToCell + { + box (-1 0.006875 -1) (1 0.0071875 1); + + fieldValues + ( + volScalarFieldValue cellDist 22 + ); + } + + + boxToCell + { + box (-1 0.0071875 -1) (1 0.0075 1); + + fieldValues + ( + volScalarFieldValue cellDist 23 + ); + } + + +); + + diff --git a/system/topoSetDict b/system/topoSetDict new file mode 100644 index 0000000..70e215d --- /dev/null +++ b/system/topoSetDict @@ -0,0 +1,425 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 2.4.0 | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object topoSetDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +// List of actions. Each action is a dictionary with e.g. +// // name of set +// name c0; +// +// // type: pointSet/faceSet/cellSet/faceZoneSet/cellZoneSet +// type cellSet; +// +// // action to perform on set. Two types: +// // - require no source : clear/invert/remove +// // clear : clears set or zone +// // invert : select all currently non-selected elements +// // remove : removes set or zone +// // - require source : new/add/delete/subset +// // new : create new set or zone from source +// // add : add source to contents +// // delete : deletes source from contents +// // subset : keeps elements both in contents and source +// action new; +// +// The source entry varies according to the type of set: +// +// cellSet +// ~~~~~~~ +// +// // Select by explicitly providing cell labels +// source labelToCell; +// sourceInfo +// { +// value (12 13 56); // labels of cells +// } +// +// // Copy elements from cellSet +// source cellToCell; +// sourceInfo +// { +// set c1; +// } +// +// // Cells in cell zone +// source zoneToCell; +// sourceInfo +// { +// name ".*Zone"; // Name of cellZone, regular expressions allowed +// } +// +// // Cells on master or slave side of faceZone +// source faceZoneToCell; +// sourceInfo +// { +// name ".*Zone"; // Name of faceZone, regular expressions allowed +// option master; // master/slave +// } +// +// // Select based on faceSet +// source faceToCell; +// sourceInfo +// { +// set f0; // Name of faceSet +// +// //option neighbour; // cell with neighbour in faceSet +// //option owner; // ,, owner +// option any; // cell with any face in faceSet +// //option all; // cell with all faces in faceSet +// } +// +// // Select based on pointSet +// source pointToCell; +// sourceInfo +// { +// set p0; +// option any; // cell with any point in pointSet +// //option edge; // cell with an edge with both points in pointSet +// } +// +// // Select based on cellShape +// source shapeToCell; +// sourceInfo +// { +// type hex; // hex/wedge/prism/pyr/tet/tetWedge/splitHex +// } +// +// // Cells with cell centre within box ('box') or multiple boxes ('boxes') +// source boxToCell; +// sourceInfo +// { +// box (0 0 0) (1 1 1); +// //boxes ((0 0 0) (1 1 1) (10 10 10)(11 11 11)); +// } +// +// // Cells with cell centre within box +// // Is skewed, rotated box. Given as origin and three spanning vectors. +// source rotatedBoxToCell; +// sourceInfo +// { +// origin (0.2 0.2 -10); +// i (0.2 0.2 0); +// j (-0.2 0.2 0); +// k (10 10 10); +// } +// +// // Cells with centre within cylinder +// source cylinderToCell; +// sourceInfo +// { +// p1 (0.2 0.2 -10); // start point on cylinder axis +// p2 (0.2 0.2 0); // end point on cylinder axis +// radius 5.0; +// } +// +// // Cells with centre within sphere +// source sphereToCell; +// sourceInfo +// { +// centre (0.2 0.2 -10); +// radius 5.0; +// } +// +// // Cells with cellCentre nearest to coordinates +// source nearestToCell; +// sourceInfo +// { +// points ((0 0 0) (1 1 1)(2 2 2)); +// } +// +// // Select based on surface +// source surfaceToCell; +// sourceInfo +// { +// file "www.avl.com-geometry.stl"; +// useSurfaceOrientation false; // use closed surface inside/outside +// // test (ignores includeCut, +// // outsidePoints) +// outsidePoints ((-99 -99 -59)); // definition of outside +// includeCut false; // cells cut by surface +// includeInside false; // cells not on outside of surf +// includeOutside false; // cells on outside of surf +// nearDistance -1; // cells with centre near surf +// // (set to -1 if not used) +// curvature 0.9; // cells within nearDistance +// // and near surf curvature +// // (set to -100 if not used) +// } +// +// // values of field within certain range +// source fieldToCell; +// sourceInfo +// { +// fieldName U; // Note: uses mag(U) since volVectorField +// min 0.1; +// max 0.5; +// } +// +// // Mesh region (non-face connected part of (subset of)mesh) +// source regionToCell; +// sourceInfo +// { +// set c0; // optional name of cellSet giving mesh subset +// insidePoints ((1 2 3)); // points inside region to select +// nErode 0; // optional number of layers to erode +// // selection +// } +// +// // Cells underneath plane such that volume is reached. E.g. for use +// // in setFields to set the level given a wanted volume. +// source targetVolumeToCell; +// sourceInfo +// { +// volume 2e-05; +// normal (0 1 0); // usually in direction of gravity +// } +// +// +// +// faceSet +// ~~~~~~~ +// +// // Copy elements from faceSet +// source faceToFace; +// sourceInfo +// { +// set f1; +// } +// +// // Select based on cellSet +// source cellToFace; +// sourceInfo +// { +// set c0; +// option all; // All faces of cells +// //option both; // Only faces whose owner&neighbour are in cellSet +// } +// +// // Select based on pointSet +// source pointToFace; +// sourceInfo +// { +// set p0; +// option any; // Faces using any point in pointSet +// //option all // Faces with all points in pointSet +// //option edge // Faces with two consecutive points in pointSet +// } +// +// // Select by explicitly providing face labels +// source labelToFace; +// sourceInfo +// { +// value (12 13 56); // labels of faces +// } +// +// // All faces of patch +// source patchToFace; +// sourceInfo +// { +// name ".*Wall"; // Name of patch or patch group, +// // (regular expressions allowed) +// } +// +// // All boundary faces +// source boundaryToFace; +// sourceInfo +// { +// } +// +// // All faces of faceZone +// source zoneToFace; +// sourceInfo +// { +// name ".*Zone1"; // Name of faceZone, regular expressions allowed +// } +// +// // Faces with face centre within box ('box') or multiple boxes ('boxes') +// source boxToFace; +// sourceInfo +// { +// box (0 0 0) (1 1 1); +// //boxes ((0 0 0) (1 1 1) (10 10 10)(11 11 11)); +// } +// +// // Faces with normal to within certain angle aligned with vector. +// source normalToFace; +// sourceInfo +// { +// normal (0 0 1); // Vector +// cos 0.01; // Tolerance (max cos of angle) +// } +// +// // Walk on faces in faceSet, starting from face nearest given position +// source regionToFace; +// sourceInfo +// { +// set f0; +// nearPoint (0.1 0.1 0.005); +// } +// +// +// +// pointSet +// ~~~~~~~ +// +// // Copy elements from pointSet +// source pointToPoint; +// sourceInfo +// { +// set p1; +// } +// +// // Select based on cellSet +// source cellToPoint; +// sourceInfo +// { +// set c0; +// option all; // all points of cell +// } +// +// // Select based on faceSet +// source faceToPoint; +// sourceInfo +// { +// set f0; // name of faceSet +// option all; // all points of face +// } +// +// // Select by explicitly providing point labels +// source labelToPoint; +// sourceInfo +// { +// value (12 13 56); // labels of points +// } +// +// // All points in pointzone +// source zoneToPoint; +// sourceInfo +// { +// name ".*Zone"; // name of pointZone, regular expressions allowed +// } +// +// // Points nearest to coordinates +// source nearestToPoint; +// sourceInfo +// { +// points ((0 0 0) (1 1 1)); +// } +// +// // Points with coordinate within box ('box') or multiple boxes ('boxes') +// source boxToPoint; +// sourceInfo +// { +// box (0 0 0) (1 1 1); +// //boxes ((0 0 0) (1 1 1) (10 10 10)(11 11 11)); +// } +// +// // Select based on surface +// source surfaceToPoint; +// sourceInfo +// { +// file "www.avl.com-geometry.stl"; +// nearDistance 0.1; // points near to surface +// includeInside false; // points on inside of surface +// // (requires closed surface with consistent +// // normals) +// includeOutside false; // ,, outside ,, +// } +// +// +// +// +// cellZoneSet +// ~~~~~~~~~~~ +// (mirrors operations on a cellSet into a cellZone) +// +// // Select based on cellSet +// source setToCellZone; +// sourceInfo +// { +// set c0; // name of cellSet +// } +// +// +// +// faceZoneSet +// ~~~~~~~~~~~ +// // Select based on faceSet without orientation +// source setToFaceZone; +// sourceInfo +// { +// faceSet f0; // name of faceSet +// } +// +// // Select based on faceSet, using cellSet to determine orientation +// source setsToFaceZone; +// sourceInfo +// { +// faceSet f0; // name of faceSet +// cellSet c0; // name of cellSet of slave side +// flip false; // optional: flip the faceZone (so now the cellSet +// // is the master side) +// } +// +// // Select based on surface. Orientation from normals on surface +// { +// name fz0; +// type faceZoneSet; +// action new; +// source searchableSurfaceToFaceZone; +// sourceInfo +// { +// surface searchableSphere; +// centre (0.05 0.05 0.005); +// radius 0.025; +// //name sphere.stl; // Optional name if surface triSurfaceMesh +// } +// } +// +// +// +// pointZoneSet +// ~~~~~~~~~~~~ +// (mirrors operations on a pointSet into a pointZone) +// +// // Select based on pointSet +// source setToPointZone; +// sourceInfo +// { +// set p0; // name of pointSet +// } +// +// +// + +actions +( + // Example:pick up internal faces on outside of cellSet + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + // Load initial cellSet + { + name ignitionCells; + type cellZoneSet; + action new; + source boxToCell; + sourceInfo + { + box (-0.001 -0.001 -1) (0.001 0.001 1); + } + } + +); + +// ************************************************************************* //