ENH: Added simpleFoam 'simpleCar' tutorial showing example of explict porosity fvOption

This commit is contained in:
Andrew Heather
2015-12-23 12:09:33 +00:00
parent f0c3e8d599
commit 4c603aeadf
15 changed files with 896 additions and 0 deletions

View File

@ -0,0 +1,47 @@
/*--------------------------------*- 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 volVectorField;
object U;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 1 -1 0 0 0 0];
internalField uniform (10 0 0);
boundaryField
{
inlet
{
type fixedValue;
value uniform (10 0 0);
}
outlet
{
type pressureInletOutletVelocity;
value $internalField;
}
"(body|upperWall|lowerWall)"
{
type fixedValue;
value uniform (0 0 0);
}
frontAndBack
{
type empty;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,64 @@
/*--------------------------------*- 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 volScalarField;
location "0";
object epsilon;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 2 -3 0 0 0 0];
internalField uniform 0.125;
boundaryField
{
inlet
{
type fixedValue;
value uniform 0.125;
}
outlet
{
type zeroGradient;
}
upperWall
{
type epsilonWallFunction;
value uniform 0.125;
Cmu 0.09;
kappa 0.41;
E 9.8;
}
lowerWall
{
type epsilonWallFunction;
value uniform 0.125;
Cmu 0.09;
kappa 0.41;
E 9.8;
}
body
{
type epsilonWallFunction;
value uniform 0.125;
Cmu 0.09;
kappa 0.41;
E 9.8;
}
frontAndBack
{
type empty;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,55 @@
/*--------------------------------*- 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 volScalarField;
location "0";
object k;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 2 -2 0 0 0 0];
internalField uniform 0.375;
boundaryField
{
inlet
{
type fixedValue;
value uniform 0.375;
}
outlet
{
type zeroGradient;
}
upperWall
{
type kqRWallFunction;
value uniform 0.375;
}
lowerWall
{
type kqRWallFunction;
value uniform 0.375;
}
body
{
type kqRWallFunction;
value uniform 0.375;
}
frontAndBack
{
type empty;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,65 @@
/*--------------------------------*- 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 volScalarField;
location "0";
object nut;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 2 -1 0 0 0 0];
internalField uniform 0;
boundaryField
{
inlet
{
type calculated;
value uniform 0;
}
outlet
{
type calculated;
value uniform 0;
}
upperWall
{
type nutkWallFunction;
Cmu 0.09;
kappa 0.41;
E 9.8;
value uniform 0;
}
lowerWall
{
type nutkWallFunction;
Cmu 0.09;
kappa 0.41;
E 9.8;
value uniform 0;
}
body
{
type nutkWallFunction;
Cmu 0.09;
kappa 0.41;
E 9.8;
value uniform 0;
}
frontAndBack
{
type empty;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,45 @@
/*--------------------------------*- 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 volScalarField;
object p;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 2 -2 0 0 0 0];
internalField uniform 0;
boundaryField
{
inlet
{
type zeroGradient;
}
outlet
{
type fixedValue;
value uniform 0;
}
"(body|upperWall|lowerWall)"
{
type zeroGradient;
}
frontAndBack
{
type empty;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,11 @@
#!/bin/sh
cd ${0%/*} || exit 1 # Run from this directory
# Source tutorial run functions
. $WM_PROJECT_DIR/bin/tools/RunFunctions
runApplication blockMesh
runApplication topoSet
runApplication $(getApplication)
# ----------------------------------------------------------------- end-of-file

View File

@ -0,0 +1,39 @@
/*--------------------------------*- 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 "constant";
object transportProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
transportModel Newtonian;
nu nu [ 0 2 -1 0 0 0 0 ] 1e-05;
CrossPowerLawCoeffs
{
nu0 nu0 [ 0 2 -1 0 0 0 0 ] 1e-06;
nuInf nuInf [ 0 2 -1 0 0 0 0 ] 1e-06;
m m [ 0 0 1 0 0 0 0 ] 1;
n n [ 0 0 0 0 0 0 0 ] 1;
}
BirdCarreauCoeffs
{
nu0 nu0 [ 0 2 -1 0 0 0 0 ] 1e-06;
nuInf nuInf [ 0 2 -1 0 0 0 0 ] 1e-06;
k k [ 0 0 1 0 0 0 0 ] 0;
n n [ 0 0 0 0 0 0 0 ] 1;
}
// ************************************************************************* //

View File

@ -0,0 +1,28 @@
/*--------------------------------*- 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;
object turbulenceProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
simulationType RAS;
RAS
{
RASModel kEpsilon;
turbulence on;
printCoeffs on;
}
// ************************************************************************* //

View File

@ -0,0 +1,196 @@
/*--------------------------------*- 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;
object blockMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
convertToMeters 1;
vertices
(
( 0.0 0.0 0.1) // 0
( 2.1 0.0 0.1) // 1
( 2.5 0.0 0.1) // 2
( 3.0 0.0 0.1) // 3
( 5.0 0.0 0.1) // 4
(10.0 0.0 0.1) // 5
( 0.0 0.3 0.1) // 6
( 2.1 0.3 0.1) // 7
( 2.5 0.3 0.1) // 8
( 3.0 0.3 0.1) // 9
( 5.0 0.3 0.1) // 10
(10.0 0.3 0.1) // 11
( 0.0 0.4 0.1) // 12
( 2.0 0.4 0.1) // 13
( 2.4 0.4 0.1) // 14
( 0.0 0.8 0.1) // 15
( 2.0 0.8 0.1) // 16
( 2.6 0.8 0.1) // 17
( 0.0 0.9 0.1) // 18
( 2.1 0.9 0.1) // 19
( 3.0 1.0 0.1) // 20
( 3.6 1.5 0.1) // 21
( 4.4 1.5 0.1) // 22
( 5.0 1.0 0.1) // 23
(10.0 1.0 0.1) // 24
( 0.0 3.0 0.1) // 25
( 1.2 3.0 0.1) // 26
( 2.2 3.0 0.1) // 27
( 3.1 3.0 0.1) // 28
( 4.5 3.0 0.1) // 29
( 5.5 3.0 0.1) // 30
(10.0 3.0 0.1) // 31
( 0.0 0.0 0.0) // 32
( 2.1 0.0 0.0) // 33
( 2.5 0.0 0.0) // 34
( 3.0 0.0 0.0) // 35
( 5.0 0.0 0.0) // 36
(10.0 0.0 0.0) // 37
( 0.0 0.3 0.0) // 38
( 2.1 0.3 0.0) // 39
( 2.5 0.3 0.0) // 40
( 3.0 0.3 0.0) // 41
( 5.0 0.3 0.0) // 42
(10.0 0.3 0.0) // 43
( 0.0 0.4 0.0) // 44
( 2.0 0.4 0.0) // 45
( 2.4 0.4 0.0) // 46
( 0.0 0.8 0.0) // 47
( 2.0 0.8 0.0) // 48
( 2.6 0.8 0.0) // 49
( 0.0 0.9 0.0) // 50
( 2.1 0.9 0.0) // 51
( 3.0 1.0 0.0) // 52
( 3.6 1.5 0.0) // 53
( 4.4 1.5 0.0) // 54
( 5.0 1.0 0.0) // 55
(10.0 1.0 0.0) // 56
( 0.0 3.0 0.0) // 57
( 1.2 3.0 0.0) // 58
( 2.2 3.0 0.0) // 59
( 3.1 3.0 0.0) // 60
( 4.5 3.0 0.0) // 61
( 5.5 3.0 0.0) // 62
(10.0 3.0 0.0) // 63
);
blocks
(
hex ( 0 6 7 1 32 38 39 33) ( 8 40 1) simpleGrading (1 1 1) // 0
hex ( 1 7 8 2 33 39 40 34) ( 8 10 1) simpleGrading (1 1 1) // 1
hex ( 2 8 9 3 34 40 41 35) ( 8 10 1) simpleGrading (1 1 1) // 2
hex ( 3 9 10 4 35 41 42 36) ( 8 40 1) simpleGrading (1 1 1) // 3
hex ( 4 10 11 5 36 42 43 37) ( 8 100 1) simpleGrading (1 1 1) // 4
hex (10 23 24 11 42 55 56 43) ( 15 100 1) simpleGrading (1 1 1) // 5
hex (23 30 31 24 55 62 63 56) ( 40 100 1) simpleGrading (1 1 1) // 6
hex (22 29 30 23 54 61 62 55) ( 40 20 1) simpleGrading (1 1 1) // 7
hex (21 28 29 22 53 60 61 54) ( 40 25 1) simpleGrading (1 1 1) // 8
hex (20 27 28 21 52 59 60 53) ( 40 20 1) simpleGrading (1 1 1) // 9
hex (19 26 27 20 51 58 59 52) ( 40 20 1) simpleGrading (1 1 1) // 10
hex (18 25 26 19 50 57 58 51) ( 40 40 1) simpleGrading (1 1 1) // 11
hex (15 18 19 16 47 50 51 48) ( 3 40 1) simpleGrading (1 1 1) // 12
hex (12 15 16 13 44 47 48 45) ( 10 40 1) simpleGrading (1 1 1) // 13
hex ( 6 12 13 7 38 44 45 39) ( 3 40 1) simpleGrading (1 1 1) // 14
hex (13 16 17 14 45 48 49 46) ( 10 10 1) simpleGrading (1 1 1) // 15
hex (14 17 9 8 46 49 41 40) ( 10 10 1) simpleGrading (1 1 1) // 16
);
edges
(
arc 10 23 (5.15 0.7 0.1)
arc 42 55 (5.15 0.7 0.0)
);
defaultPatch
{
name frontAndBack;
type empty;
}
boundary
(
inlet
{
type patch;
faces
(
( 0 6 38 32)
( 6 12 44 38)
(12 15 47 44)
(15 18 50 47)
(18 25 57 50)
);
}
outlet
{
type patch;
faces
(
(5 37 43 11)
(11 43 56 24)
(24 56 63 31)
);
}
upperWall
{
type wall;
faces
(
(25 26 58 57)
(26 27 59 58)
(27 28 60 59)
(28 29 61 60)
(29 30 62 61)
(30 31 63 62)
);
}
lowerWall
{
type wall;
faces
(
(0 32 33 1)
(1 33 34 2)
(2 34 35 3)
(3 35 36 4)
(4 36 37 5)
);
}
body
{
type wall;
faces
(
(7 8 40 39)
(14 46 40 8)
(13 45 46 14)
(7 39 45 13)
(16 17 49 48)
(17 9 41 49)
(9 10 42 41)
(10 42 55 23)
(22 54 55 23)
(21 53 54 22)
(20 52 53 21)
(19 51 52 20)
(16 48 51 19)
);
}
);
mergePatchPairs
(
);
// ************************************************************************* //

View File

@ -0,0 +1,82 @@
/*--------------------------------*- 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 controlDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
application simpleFoam;
startFrom startTime;
startTime 0;
stopAt endTime;
endTime 5000;
deltaT 1;
writeControl timeStep;
writeInterval 100;
purgeWrite 10;
writeFormat ascii;
writePrecision 6;
writeCompression off;
timeFormat general;
timePrecision 6;
runTimeModifiable true;
functions
{
forceCoeffs1
{
type forceCoeffs;
functionObjectLibs ( "libforces.so" );
outputControl outputTime;
writeFields true;
patches (body);
pName p;
UName U;
rhoName rhoInf; // Indicates incompressible
log true;
rhoInf 1; // Redundant for incompressible
liftDir (0 1 0);
dragDir (1 0 0);
CofR (3.5 0 0); // Axle midpoint on ground
pitchAxis (0 0 1);
magUInf 10;
lRef 4; // Wheelbase length
Aref 1; // Estimated
porosity on;
binData
{
nBin 20; // output data into 20 bins
direction (1 0 0); // bin direction
cumulative yes;
}
}
}
// ************************************************************************* //

View File

@ -0,0 +1,43 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: plus |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
forceCoeffs1
{
type forceCoeffs;
functionObjectLibs ( "libforces.so" );
outputControl outputTime;
writeFields true;
patches (body);
pName p;
UName U;
rhoName rhoInf; // Indicates incompressible
log true;
rhoInf 1; // Redundant for incompressible
liftDir (0 1 0);
dragDir (1 0 0);
CofR (3.5 0 0); // Axle midpoint on ground
pitchAxis (0 0 1);
magUInf 10;
lRef 4; // Wheelbase length
Aref 1; // Estimated
porosity on;
binData
{
nBin 20; // output data into 20 bins
direction (1 0 0); // bin direction
cumulative yes;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,50 @@
/*--------------------------------*- 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 fvOptions;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
porosity1
{
type explicitPorositySource;
active true;
explicitPorositySourceCoeffs
{
type DarcyForchheimer;
selectionMode cellZone;
cellZone porousZone;
DarcyForchheimerCoeffs
{
d d [0 -2 0 0 0 0 0] (5e7 -1000 -1000);
f f [0 -1 0 0 0 0 0] (0 0 0);
coordinateSystem
{
type cartesian;
origin (0 0 0);
coordinateRotation
{
type axesRotation;
e1 (1 0 0);
e2 (0 1 0);
}
}
}
}
}
//************************************************************************* //

View File

@ -0,0 +1,59 @@
/*--------------------------------*- 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 fvSchemes;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
ddtSchemes
{
default steadyState;
}
gradSchemes
{
default Gauss linear;
}
divSchemes
{
default none;
div(phi,U) bounded Gauss upwind;
div(phi,k) bounded Gauss upwind;
div(phi,epsilon) bounded Gauss upwind;
div((nuEff*dev2(T(grad(U))))) Gauss linear;
}
laplacianSchemes
{
default Gauss linear corrected;
}
interpolationSchemes
{
default linear;
}
snGradSchemes
{
default corrected;
}
fluxRequired
{
default no;
p;
}
// ************************************************************************* //

View File

@ -0,0 +1,70 @@
/*--------------------------------*- 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 fvSolution;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
solvers
{
p
{
solver GAMG;
tolerance 1e-06;
relTol 0.1;
smoother GaussSeidel;
nPreSweeps 0;
nPostSweeps 2;
cacheAgglomeration on;
agglomerator faceAreaPair;
nCellsInCoarsestLevel 10;
mergeLevels 1;
}
"(U|k|epsilon|R|nuTilda)"
{
solver smoothSolver;
smoother symGaussSeidel;
tolerance 1e-05;
relTol 0.1;
}
}
SIMPLE
{
nNonOrthogonalCorrectors 0;
residualControl
{
p 1e-2;
U 1e-4;
"(k|epsilon)" 1e-4;
}
}
relaxationFactors
{
fields
{
p 0.3;
}
equations
{
U 0.7;
k 0.7;
epsilon 0.7;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,42 @@
/*--------------------------------*- 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;
object topoSetDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
actions
(
{
name porousCells;
type cellSet;
action new;
source boxToCell;
sourceInfo
{
box (2.05 0.4 -1) (2.1 0.85 1);
}
}
{
name porousZone;
type cellZoneSet;
action new;
source setToCellZone;
sourceInfo
{
set porousCells;
}
}
);
// ************************************************************************* //