Merge branch 'master' of ssh://opencfd:8007/home/dm4/OpenFOAM/OpenFOAM-dev

This commit is contained in:
Henry
2013-06-02 22:30:36 +01:00
235 changed files with 13310 additions and 1854 deletions

View File

@ -0,0 +1,41 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: dev |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
object G;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [1 0 -3 0 0 0 0];
internalField uniform 0;
boundaryField
{
".*"
{
type MarshakRadiation;
T T;
emissivityMode lookup;
emissivity uniform 1.0;
value uniform 0;
}
"(region0_to.*)"
{
type MarshakRadiation;
T T;
emissivityMode solidRadiation;
value uniform 0;
}
}
// ************************************************************************* //

View File

@ -24,21 +24,24 @@ fvDOMCoeffs
{
nPhi 3; // azimuthal angles in PI/2 on X-Y.(from Y to X)
nTheta 6; // polar angles in PI (from Z to X-Y plane)
convergence 1e-4; // convergence criteria for radiation iteration
maxIter 2; // maximum number of iterations
convergence 0.05; // convergence criteria for radiation iteration
maxIter 3; // maximum number of iterations
cacheDiv true; // cache the div of the RTE equation.
// NOTE: Caching div is "only" accurate if the upwind scheme is used in
// div(Ji,Ii_h)
}
// Number of flow iterations per radiation iteration
solverFreq 10;
absorptionEmissionModel constantAbsorptionEmission;
//absorptionEmissionModel greyMeanAbsorptionEmission;
constantAbsorptionEmissionCoeffs
{
absorptivity absorptivity [ 0 -1 0 0 0 0 0 ] 0.01;
emissivity emissivity [ 0 -1 0 0 0 0 0 ] 0.01;
E E [ 1 -1 -3 0 0 0 0 ] 0;
absorptivity absorptivity [ m^-1 ] 0.01;
emissivity emissivity [ m^-1 ] 0.01;
E E [ kg m^-1 s^-3 ] 0;
}
greyMeanAbsorptionEmissionCoeffs
@ -49,7 +52,7 @@ greyMeanAbsorptionEmissionCoeffs
CO2
{
Tcommon 300; //Common Temp
Tcommon 200; //Common Temp
invTemp true; //Is the polynomio using inverse temperature.
Tlow 200; //Low Temp
Thigh 2500; //High Temp
@ -77,7 +80,7 @@ greyMeanAbsorptionEmissionCoeffs
H2O
{
Tcommon 300;
Tcommon 200;
invTemp true;
Tlow 200;
Thigh 2500;
@ -104,7 +107,7 @@ greyMeanAbsorptionEmissionCoeffs
C3H8//CH4
{
Tcommon 300;
Tcommon 200;
Tlow 200;
Thigh 2000;
invTemp false;
@ -131,7 +134,7 @@ greyMeanAbsorptionEmissionCoeffs
O2
{
Tcommon 300;
Tcommon 200;
invTemp true;
Tlow 200;
Thigh 2500;
@ -159,7 +162,7 @@ greyMeanAbsorptionEmissionCoeffs
N2
{
Tcommon 300;
Tcommon 200;
invTemp true;
Tlow 200;
Thigh 2500;

View File

@ -16,7 +16,7 @@ FoamFile
application fireFoam;
startFrom startTime;
startFrom latestTime;
startTime 0;
@ -28,11 +28,11 @@ deltaT 0.03;
writeControl adjustableRunTime;
writeInterval 1;
writeInterval 0.5;
purgeWrite 0;
writeFormat ascii;
writeFormat binary;
writePrecision 12;

View File

@ -34,7 +34,7 @@ solvers
p_rgh
{
solver GAMG;
tolerance 1e-5;
tolerance 1e-7;
relTol 0.01;
smoother GaussSeidel;
cacheAgglomeration true;
@ -45,28 +45,25 @@ solvers
p_rghFinal
{
solver GAMG;
tolerance 1e-6;
$p_rgh;
tolerance 1e-7;
relTol 0;
smoother GaussSeidel;
cacheAgglomeration true;
nCellsInCoarsestLevel 10;
agglomerator faceAreaPair;
mergeLevels 1;
};
"(U|k)"
"(U|Yi|k|h|omega)"
{
solver PBiCG;
preconditioner DILU;
tolerance 1e-6;
relTol 0.01;
tolerance 1e-7;
relTol 0.1;
nSweeps 1;
};
"(U|k)Final"
"(U|Yi|k|h|omega)Final"
{
$U;
tolerance 1e-7;
relTol 0;
};
@ -84,18 +81,21 @@ solvers
solver GAMG;
tolerance 1e-4;
relTol 0;
smoother DILU;
smoother symGaussSeidel;
cacheAgglomeration true;
nCellsInCoarsestLevel 10;
agglomerator faceAreaPair;
mergeLevels 1;
mergeLevels 1;
maxIter 1;
nPreSweeps 0;
nPostSweeps 1;
}
G
"(G)Final"
{
solver PCG;
preconditioner DIC;
tolerance 1e-06;
tolerance 1e-04;
relTol 0;
}
@ -104,8 +104,8 @@ solvers
PIMPLE
{
momentumPredictor yes;
nOuterCorrectors 2;
nCorrectors 1;
nOuterCorrectors 1;
nCorrectors 3;
nNonOrthogonalCorrectors 0;
}
@ -117,7 +117,7 @@ relaxationFactors
equations
{
"(U|k).*" 1;
"(C3H8|O2|H2O|CO2|h).*" 1;
"(C3H8|O2|H2O|CO2|h).*" 1;
}
}

View File

@ -19,10 +19,14 @@ radiationModel fvDOM;
fvDOMCoeffs
{
nPhi 4; // azimuthal angles in PI/2 on X-Y.(from Y to X)
nTheta 0; // polar angles in PI (from Z to X-Y plane)
convergence 1e-3; // convergence criteria for radiation iteration
maxIter 1; // maximum number of iterations
nPhi 4; // azimuthal angles in PI/2 on X-Y.(from Y to X)
nTheta 0; // polar angles in PI (from Z to X-Y plane)
convergence 1e-2; // convergence criteria for radiation iteration
maxIter 4; // maximum number of iterations
cacheDiv true; // cache the div of the RTE equation.
// NOTE: Caching div is "only" accurate if the upwind scheme is used in
// div(Ji,Ii_h)
}
// Number of flow iterations per radiation iteration
@ -32,9 +36,9 @@ absorptionEmissionModel greyMeanAbsorptionEmission;
constantAbsorptionEmissionCoeffs
{
absorptivity absorptivity [ 0 -1 0 0 0 0 0 ] 0.1;
emissivity emissivity [ 0 -1 0 0 0 0 0 ] 0.1;
E E [ 1 -1 -3 0 0 0 0 ] 0;
absorptivity absorptivity [ m^-1 ] 0.01;
emissivity emissivity [ m^-1 ] 0.01;
E E [ kg m^-1 s^-3 ] 0;
}
greyMeanAbsorptionEmissionCoeffs
@ -45,7 +49,7 @@ greyMeanAbsorptionEmissionCoeffs
CO2
{
Tcommon 300; //Common Temp
Tcommon 200; //Common Temp
invTemp true; //Is the polynomio using inverse temperature.
Tlow 200; //Low Temp
Thigh 2500; //High Temp
@ -73,7 +77,7 @@ greyMeanAbsorptionEmissionCoeffs
H2O
{
Tcommon 300;
Tcommon 200;
invTemp true;
Tlow 200;
Thigh 2500;
@ -100,7 +104,7 @@ greyMeanAbsorptionEmissionCoeffs
CH4
{
Tcommon 300;
Tcommon 200;
Tlow 200;
Thigh 2500;
invTemp false;
@ -127,7 +131,7 @@ greyMeanAbsorptionEmissionCoeffs
O2
{
Tcommon 300;
Tcommon 200;
invTemp true;
Tlow 200;
Thigh 2500;
@ -155,7 +159,7 @@ greyMeanAbsorptionEmissionCoeffs
N2
{
Tcommon 300;
Tcommon 200;
invTemp true;
Tlow 200;
Thigh 2500;

View File

@ -48,8 +48,6 @@ runTimeModifiable yes;
adjustTimeStep yes;
maxCo 0.25;
maxDeltaT 0.1;
maxCo 0.5;
// ************************************************************************* //

View File

@ -72,21 +72,24 @@ solvers
Ii
{
solver GAMG;
solver GAMG;
tolerance 1e-4;
relTol 0;
smoother DILU;
relTol 0.1;
smoother symGaussSeidel;
cacheAgglomeration true;
nCellsInCoarsestLevel 10;
agglomerator faceAreaPair;
mergeLevels 1;
agglomerator faceAreaPair;
mergeLevels 1;
maxIter 3;
nPreSweeps 0;
nPostSweeps 1;
}
G
{
solver PCG;
preconditioner DIC;
tolerance 1e-06;
tolerance 1e-04;
relTol 0;
}
@ -108,7 +111,7 @@ relaxationFactors
equations
{
"(U|k).*" 1;
"(C3H8|O2|H2O|CO2|h).*" 0.9;
"(C3H8|O2|H2O|CO2|h).*" 1;
}
}

View File

@ -25,7 +25,7 @@ boundaryField
type greyDiffusiveRadiation;
T T;
emissivityMode lookup;
emissivity uniform 1.0;
emissivity uniform 1;
value uniform 0;
}
}

View File

@ -20,10 +20,14 @@ radiationModel fvDOM;
fvDOMCoeffs
{
nPhi 2; // azimuthal angles in PI/2 on X-Y.(from Y to X)
nTheta 2; // polar angles in PI (from Z to X-Y plane)
convergence 1e-3; // convergence criteria for radiation iteration
maxIter 10; // maximum number of iterations
nPhi 2; // azimuthal angles in PI/2 on X-Y.(from Y to X)
nTheta 2; // polar angles in PI (from Z to X-Y plane)
convergence 1e-1; // convergence criteria for radiation iteration
maxIter 1; // maximum number of iterations
cacheDiv true; // cache the div of the RTE equation.
// NOTE: Caching div is "only" accurate if the upwind scheme is used in
// div(Ji,Ii_h)
}
// Number of flow iterations per radiation iteration
@ -33,9 +37,9 @@ absorptionEmissionModel greyMeanAbsorptionEmission;
constantAbsorptionEmissionCoeffs
{
absorptivity absorptivity [ 0 -1 0 0 0 0 0 ] 0.01;
emissivity emissivity [ 0 -1 0 0 0 0 0 ] 0.01;
E E [ 1 -1 -3 0 0 0 0 ] 0;
absorptivity absorptivity [ m^-1 ] 0.01;
emissivity emissivity [ m^-1 ] 0.01;
E E [ kg m^-1 s^-3 ] 0;
}
greyMeanAbsorptionEmissionCoeffs
@ -46,7 +50,7 @@ greyMeanAbsorptionEmissionCoeffs
CO2
{
Tcommon 300; //Common Temp
Tcommon 200; //Common Temp
invTemp true; //Is the polynomio using inverse temperature.
Tlow 200; //Low Temp
Thigh 2500; //High Temp
@ -74,7 +78,7 @@ greyMeanAbsorptionEmissionCoeffs
H2O
{
Tcommon 300;
Tcommon 200;
invTemp true;
Tlow 200;
Thigh 2500;
@ -101,7 +105,7 @@ greyMeanAbsorptionEmissionCoeffs
CH4
{
Tcommon 300;
Tcommon 200;
Tlow 200;
Thigh 2500;
invTemp false;
@ -128,7 +132,7 @@ greyMeanAbsorptionEmissionCoeffs
O2
{
Tcommon 300;
Tcommon 200;
invTemp true;
Tlow 200;
Thigh 2500;
@ -156,7 +160,7 @@ greyMeanAbsorptionEmissionCoeffs
N2
{
Tcommon 300;
Tcommon 200;
invTemp true;
Tlow 200;
Thigh 2500;

View File

@ -22,13 +22,13 @@ startTime 0.0;
stopAt endTime;
endTime 2.75;
endTime 0.75;
deltaT 0.001;
writeControl adjustableRunTime;
writeInterval 0.05;
writeInterval 0.5;
purgeWrite 0;
@ -48,7 +48,7 @@ runTimeModifiable yes;
adjustTimeStep yes;
maxCo 0.2;
maxCo 0.5;
maxDeltaT 0.1;

View File

@ -66,12 +66,14 @@ solvers
solver GAMG;
tolerance 1e-4;
relTol 0;
smoother DILU;
smoother symGaussSeidel;
cacheAgglomeration true;
nCellsInCoarsestLevel 10;
agglomerator faceAreaPair;
mergeLevels 1;
maxIter 20;
agglomerator faceAreaPair;
mergeLevels 1;
maxIter 1;
nPreSweeps 0;
nPostSweeps 1;
}
G
@ -88,7 +90,7 @@ PIMPLE
{
momentumPredictor yes;
nOuterCorrectors 1;
nCorrectors 2;
nCorrectors 3;
nNonOrthogonalCorrectors 0;
}

View File

@ -49,13 +49,6 @@ adjustTimeStep no;
functions
{
dsmcFields1
{
type dsmcFields;
functionObjectLibs ( "libutilityFunctionObjects.so" );
enabled true;
outputControl outputTime;
}
fieldAverage1
{
type fieldAverage;
@ -121,6 +114,13 @@ functions
}
);
}
dsmcFields1
{
type dsmcFields;
functionObjectLibs ( "libutilityFunctionObjects.so" );
enabled true;
outputControl outputTime;
}
}
// ************************************************************************* //

View File

@ -49,13 +49,6 @@ adjustTimeStep no;
functions
{
dsmcFields1
{
type dsmcFields;
functionObjectLibs ( "libutilityFunctionObjects.so" );
enabled true;
outputControl outputTime;
}
fieldAverage1
{
type fieldAverage;
@ -121,6 +114,13 @@ functions
}
);
}
dsmcFields1
{
type dsmcFields;
functionObjectLibs ( "libutilityFunctionObjects.so" );
enabled true;
outputControl outputTime;
}
}
// ************************************************************************* //

View File

@ -49,13 +49,6 @@ adjustTimeStep no;
functions
{
dsmcFields1
{
type dsmcFields;
functionObjectLibs ( "libutilityFunctionObjects.so" );
enabled true;
outputControl outputTime;
}
fieldAverage1
{
type fieldAverage;
@ -121,6 +114,13 @@ functions
}
);
}
dsmcFields1
{
type dsmcFields;
functionObjectLibs ( "libutilityFunctionObjects.so" );
enabled true;
outputControl outputTime;
}
}
// ************************************************************************* //

View File

@ -49,14 +49,6 @@ adjustTimeStep no;
functions
{
dsmcFields1
{
type dsmcFields;
functionObjectLibs ( "libutilityFunctionObjects.so" );
enabled true;
outputControl outputTime;
}
fieldAverage1
{
type fieldAverage;
@ -123,6 +115,14 @@ functions
);
}
dsmcFields1
{
type dsmcFields;
functionObjectLibs ( "libutilityFunctionObjects.so" );
enabled true;
outputControl outputTime;
}
forces1
{
type forces;

View File

@ -0,0 +1,67 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: dev |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volVectorField;
location "0";
object U;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 1 -1 0 0 0 0];
internalField uniform (0 0 0);
boundaryField
{
inlet
{
type fixedValue;
value uniform (1 0 0);
}
outlet
{
type pressureInletOutletVelocity;
value uniform (0 0 0);
}
walls
{
// type fixedValue;
type movingWallVelocity;
value uniform (0 0 0);
}
defaultFaces
{
type empty;
}
ACMI1_blockage
{
type fixedValue;
value uniform (0 0 0);
}
ACMI1_couple
{
type cyclicACMI;
value uniform (0 0 0);
}
ACMI2_blockage
{
type fixedValue;
value uniform (0 0 0);
}
ACMI2_couple
{
type cyclicACMI;
value uniform (0 0 0);
}
}
// ************************************************************************* //

View File

@ -0,0 +1,67 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: dev |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "0";
object epsilon;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 2 -3 0 0 0 0];
internalField uniform 1.8e-3;
boundaryField
{
inlet
{
type fixedValue;
value $internalField;
}
outlet
{
type inletOutlet;
inletValue $internalField;
value $internalField;
}
walls
{
type epsilonWallFunction;
value $internalField;
}
defaultFaces
{
type empty;
}
ACMI1_blockage
{
type epsilonWallFunction;
value $internalField;
}
ACMI1_couple
{
type cyclicACMI;
value $internalField;
}
ACMI2_blockage
{
type epsilonWallFunction;
value $internalField;
}
ACMI2_couple
{
type cyclicACMI;
value $internalField;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,67 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: dev |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "0";
object k;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 2 -2 0 0 0 0];
internalField uniform 3.75e-3;
boundaryField
{
inlet
{
type fixedValue;
value $internalField;
}
outlet
{
type inletOutlet;
inletValue $internalField;
value $internalField;
}
walls
{
type kqRWallFunction;
value $internalField;
}
defaultFaces
{
type empty;
}
ACMI1_blockage
{
type kqRWallFunction;
value $internalField;
}
ACMI1_couple
{
type cyclicACMI;
value $internalField;
}
ACMI2_blockage
{
type kqRWallFunction;
value $internalField;
}
ACMI2_couple
{
type cyclicACMI;
value $internalField;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,70 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: dev |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "0";
object p;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 2 -2 0 0 0 0];
internalField uniform 0;
boundaryField
{
inlet
{
type zeroGradient;
}
outlet
{
type fixedValue;
value uniform 0;
}
walls
{
type zeroGradient;
}
couple1
{
type zeroGradient;
}
couple2
{
type zeroGradient;
}
defaultFaces
{
type empty;
}
ACMI1_blockage
{
type zeroGradient;
}
ACMI1_couple
{
type cyclicACMI;
value uniform 0;
}
ACMI2_blockage
{
type zeroGradient;
}
ACMI2_couple
{
type cyclicACMI;
value uniform 0;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,9 @@
#!/bin/sh
cd ${0%/*} || exit 1 # run from this directory
# Source tutorial clean functions
. $WM_PROJECT_DIR/bin/tools/CleanFunctions
cleanCase
rm -rf 0

View File

@ -0,0 +1,9 @@
#!/bin/sh
cd ${0%/*} || exit 1 # run from this directory
# Source tutorial run functions
. $WM_PROJECT_DIR/bin/tools/RunFunctions
./Allrun.pre
runApplication $(getApplication)

View File

@ -0,0 +1,13 @@
#!/bin/sh
cd ${0%/*} || exit 1 # run from this directory
# Source tutorial run functions
. $WM_PROJECT_DIR/bin/tools/RunFunctions
./Allrun.pre
runApplication decomposePar
runParallel $(getApplication) 4
runApplication reconstructPar

View File

@ -0,0 +1,17 @@
#!/bin/sh
cd ${0%/*} || exit 1 # run from this directory
# Source tutorial run functions
. $WM_PROJECT_DIR/bin/tools/RunFunctions
runApplication blockMesh
runApplication topoSet -constant
# split the mesh to generate the ACMI coupled patches
runApplication createBaffles -overwrite
# remove zero-sized patches
runApplication createPatch -overwrite
cp -rf 0.org 0

View File

@ -0,0 +1,104 @@
oscillatingInletACMI2D
This tutorial case gives an example of the Arbitrarily Coupled Mesh Interface
(ACMI) usage. The mesh is composed of two mesh regions: an inlet channel which
oscillates in the +/- Y-direction, and a fixed mesh region.
Each ACMI patch requires the specification of a 'non-overlapping' patch. In
this example, the non-overlapping patches are described as walls, e.g. taken
from the constant/polyMesh/boundary file:
1. First ACMI poatch pair applied to the inlet channel outlet
ACMI1_blockage
{
type wall;
nFaces 40;
startFace 43680;
}
ACMI1_couple
{
type cyclicACMI;
nFaces 40;
startFace 43720;
matchTolerance 0.0001;
transform noOrdering;
neighbourPatch ACMI2_couple;
nonOverlapPatch ACMI1_blockage;
}
1. Second ACMI poatch pair applied to the fixed mesh region inlet
ACMI2_blockage
{
type wall;
nFaces 96;
startFace 43760;
}
ACMI2_couple
{
type cyclicACMI;
nFaces 96;
startFace 43856;
matchTolerance 0.0001;
transform noOrdering;
neighbourPatch ACMI1_couple;
nonOverlapPatch ACMI2_blockage;
}
In the above, the ACMI1_blockage and ACMI1_couple patches occupy the same space,
with duplicate points, edges and faces. The ACMI2_blockage and ACMI2_couple
patches are created similarly.
The duplicate patches are initially created using the createBaffles utility.
Firstly, the original (non-duplicated) patch faces are collected into zones
using the topoSet utility.
Each ACMI/no-overlapping patch pair is specified using a master-slave approach.
However, since we are generating boundary patches (which are always master
patches) the slave patches are simply defined using 'dummy' entries, e.g.:
type faceZone;
zoneName couple1Faces;
patches
{
// create blockage patch
master
{
//- Master side patch
name ACMI1_blockage;
type wall;
}
slave1 // dummy entries only
{
//- Slave side patch
name ACMI1_blockage;
type wall;
}
// create cyclic ACMI patch
master2
{
//- Master side patch
name ACMI1_couple;
type cyclicACMI;
matchTolerance 0.0001;
neighbourPatch ACMI2_couple;
nonOverlapPatch ACMI1_blockage;
transform noOrdering;
}
slave2 // dummy entries only
{
//- Slave side patch
name ACMI1_couple;
type patch;
}
}
Boundary conditions must then be applied to all geometric patches in the usual,
manner, and the cases can be executed in parallel (as shown when running the
Allrun-parallel script) without any speacial treatment, i.e. the case set-up is
the same as when operating in serial mode.

View File

@ -0,0 +1,25 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: dev |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "constant";
object RASProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
RASModel kEpsilon;
turbulence on;
printCoeffs on;
// ************************************************************************* //

View File

@ -0,0 +1,36 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: dev |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "constant";
object dynamicMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dynamicFvMesh solidBodyMotionFvMesh;
motionSolverLibs ( "libfvMotionSolvers.so" );
solidBodyMotionFvMeshCoeffs
{
cellZone inletChannel;
solidBodyMotionFunction oscillatingLinearMotion;
oscillatingLinearMotionCoeffs
{
amplitude (0 0.5 0);
omega 3.14; // rad/s (.5 rps)
}
}
// ************************************************************************* //

View File

@ -0,0 +1,103 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: dev |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object blockMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
convertToMeters 1;
vertices
(
(0 0.3 0)
(1 0.3 0)
(1 0.7 0)
(0 0.7 0)
(0 0.3 0.1)
(1 0.3 0.1)
(1 0.7 0.1)
(0 0.7 0.1)
(1 0 0)
(3 0 0)
(3 1 0)
(1 1 0)
(1 0 0.1)
(3 0 0.1)
(3 1 0.1)
(1 1 0.1)
);
blocks
(
// hex (0 1 2 3 4 5 6 7) (20 20 1) simpleGrading (1 1 1)
// hex (8 9 10 11 12 13 14 15) (40 48 1) simpleGrading (1 1 1)
hex (0 1 2 3 4 5 6 7) (80 40 1) simpleGrading (1 1 1)
hex (8 9 10 11 12 13 14 15) (80 96 1) simpleGrading (1 1 1)
);
edges
(
);
boundary
(
inlet
{
type patch;
faces
(
(0 4 7 3)
);
}
outlet
{
type patch;
faces
(
(10 14 13 9)
);
}
walls
{
type wall;
faces
(
(3 7 6 2)
(1 5 4 0)
(11 15 14 10)
(9 13 12 8)
);
}
couple1
{
type patch;
faces
(
(2 6 5 1)
);
}
couple2
{
type patch;
faces
(
(8 12 15 11)
);
}
);
mergePatchPairs
(
);
// ************************************************************************* //

View File

@ -0,0 +1,81 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: dev |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class polyBoundaryMesh;
location "constant/polyMesh";
object boundary;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
8
(
inlet
{
type patch;
nFaces 40;
startFace 21464;
}
outlet
{
type patch;
nFaces 96;
startFace 21504;
}
walls
{
type wall;
nFaces 320;
startFace 21600;
}
defaultFaces
{
type empty;
inGroups 1(empty);
nFaces 21760;
startFace 21920;
}
ACMI1_blockage
{
type wall;
nFaces 40;
startFace 43680;
}
ACMI1_couple
{
type cyclicACMI;
inGroups 1(cyclicACMI);
nFaces 40;
startFace 43720;
matchTolerance 0.0001;
transform noOrdering;
neighbourPatch ACMI2_couple;
nonOverlapPatch ACMI1_blockage;
}
ACMI2_blockage
{
type wall;
nFaces 96;
startFace 43760;
}
ACMI2_couple
{
type cyclicACMI;
inGroups 1(cyclicACMI);
nFaces 96;
startFace 43856;
matchTolerance 0.0001;
transform noOrdering;
neighbourPatch ACMI1_couple;
nonOverlapPatch ACMI2_blockage;
}
)
// ************************************************************************* //

View File

@ -0,0 +1,22 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: dev |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "constant";
object transportProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
transportModel Newtonian;
nu nu [ 0 2 -1 0 0 0 0 ] 1e-6;
// ************************************************************************* //

View File

@ -0,0 +1,21 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: dev |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "constant";
object turbulenceProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
simulationType RASModel;
// ************************************************************************* //

View File

@ -0,0 +1,53 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: dev |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object controlDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
application pimpleDyMFoam;
startFrom latestTime;
startTime 0;
stopAt endTime;
endTime 5;
deltaT 0.005;
writeControl adjustableRunTime;
writeInterval 0.05;
purgeWrite 0;
writeFormat ascii;
writePrecision 6;
writeCompression off;
timeFormat general;
timePrecision 6;
runTimeModifiable true;
adjustTimeStep true;
maxCo 0.5;
// ************************************************************************* //

View File

@ -0,0 +1,111 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: dev |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object createBafflesDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// Whether to convert internal faces only (so leave boundary faces intact).
// This is only relevant if your face selection type can pick up boundary
// faces.
internalFacesOnly false;
// Baffles to create.
baffles
{
// NOTE: cyclicAMI patches MUST BE defined PRIOR to their associted
// blockage patches
ACMI1
{
//- Use predefined faceZone to select faces and orientation.
type faceZone;
zoneName couple1Faces;
patches
{
master
{
//- Master side patch
name ACMI1_couple;
type cyclicACMI;
matchTolerance 0.0001;
neighbourPatch ACMI2_couple;
nonOverlapPatch ACMI1_blockage;
transform noOrdering;
}
slave // not used since we're manipulating a boundary patch
{
//- Slave side patch
name ACMI1_couple;
type patch;
}
master2
{
//- Master side patch
name ACMI1_blockage;
type wall;
}
slave2 // not used since we're manipulating a boundary patch
{
//- Slave side patch
name ACMI1_blockage;
type wall;
}
}
}
ACMI2
{
//- Use predefined faceZone to select faces and orientation.
type faceZone;
zoneName couple2Faces;
patches
{
master
{
//- Master side patch
name ACMI2_couple;
type cyclicACMI;
matchTolerance 0.0001;
neighbourPatch ACMI1_couple;
nonOverlapPatch ACMI2_blockage;
transform noOrdering;
}
slave // not used since we're manipulating a boundary patch
{
//- Slave side patch
name ACMI2_couple;
type patch;
}
master2
{
//- Master side patch
name ACMI2_blockage;
type wall;
}
slave2 // not used since we're manipulating a boundary patch
{
//- Slave side patch
name ACMI2_blockage;
type wall;
}
}
}
}
// ************************************************************************* //

View File

@ -0,0 +1,54 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: dev |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object createPatchDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// This application/dictionary controls:
// - optional: create new patches from boundary faces (either given as
// a set of patches or as a faceSet)
// - always: order faces on coupled patches such that they are opposite. This
// is done for all coupled faces, not just for any patches created.
// - optional: synchronise points on coupled patches.
// 1. Create cyclic:
// - specify where the faces should come from
// - specify the type of cyclic. If a rotational specify the rotationAxis
// and centre to make matching easier
// - always create both halves in one invocation with correct 'neighbourPatch'
// setting.
// - optionally pointSync true to guarantee points to line up.
// 2. Correct incorrect cyclic:
// This will usually fail upon loading:
// "face 0 area does not match neighbour 2 by 0.0100005%"
// " -- possible face ordering problem."
// - in polyMesh/boundary file:
// - loosen matchTolerance of all cyclics to get case to load
// - or change patch type from 'cyclic' to 'patch'
// and regenerate cyclic as above
// Do a synchronisation of coupled points after creation of any patches.
// Note: this does not work with points that are on multiple coupled patches
// with transformations (i.e. cyclics).
pointSync false;
// Patches to create.
patches
(
// none
);
// ************************************************************************* //

View File

@ -0,0 +1,30 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: dev |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object decomposeParDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
numberOfSubdomains 4;
method scotch;
hierarchicalCoeffs
{
n (1 4 1);
delta 0.001;
order xyz;
}
// ************************************************************************* //

View File

@ -0,0 +1,63 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: dev |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object fvSchemes;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
ddtSchemes
{
default Euler;
}
gradSchemes
{
default Gauss linear;
grad(p) Gauss linear;
grad(U) cellLimited Gauss linear 1;
}
divSchemes
{
default none;
// div(phi,U) Gauss upwind;
div(phi,U) Gauss linearUpwind grad(U);
div(phi,k) Gauss upwind;
div(phi,epsilon) Gauss upwind;
div((nuEff*dev(T(grad(U))))) Gauss linear;
}
laplacianSchemes
{
default Gauss linear limited corrected 0.33;
}
interpolationSchemes
{
default linear;
}
snGradSchemes
{
default limited corrected 0.33;
}
fluxRequired
{
default no;
pcorr ;
p ;
}
// ************************************************************************* //

View File

@ -0,0 +1,80 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: dev |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object fvSolution;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
solvers
{
pcorr
{
solver GAMG;
tolerance 1e-2;
relTol 0;
smoother GaussSeidel;
cacheAgglomeration no;
nCellsInCoarsestLevel 10;
agglomerator faceAreaPair;
mergeLevels 1;
maxIter 50;
}
p
{
$pcorr;
tolerance 1e-5;
relTol 0.01;
}
pFinal
{
$p;
tolerance 1e-6;
relTol 0;
}
"(U|k|epsilon)"
{
solver smoothSolver;
smoother symGaussSeidel;
tolerance 1e-6;
relTol 0.1;
}
"(U|k|epsilon)Final"
{
$U;
tolerance 1e-6;
relTol 0;
}
}
PIMPLE
{
correctPhi no;
nOuterCorrectors 1;
nCorrectors 2;
nNonOrthogonalCorrectors 0;
}
relaxationFactors
{
// "(U|k|epsilon).*" 1;
}
cache
{
grad(U);
}
// ************************************************************************* //

View File

@ -0,0 +1,89 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: dev |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object topoSetDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
actions
(
// Get both sides of ami
// ~~~~~~~~~~~~~~~~~~~~~
// Create faceZone for patch couple1
{
name couple1Faces;
type faceSet;
action new;
source patchToFace;
sourceInfo
{
name couple1;
}
}
{
name couple1Faces;
type faceZoneSet;
action new;
source setToFaceZone;
sourceInfo
{
faceSet couple1Faces;
}
}
// Create faceZone for patch couple2
{
name couple2Faces;
type faceSet;
action new;
source patchToFace;
sourceInfo
{
name couple2;
}
}
{
name couple2Faces;
type faceZoneSet;
action new;
source setToFaceZone;
sourceInfo
{
faceSet couple2Faces;
}
}
// Create cellZone for moving cells in inlet channel
{
name inletChannel;
type cellSet;
action new;
source boxToCell;
sourceInfo
{
box (-100 -100 -100) (1.0001 100 100);
}
}
{
name inletChannel;
type cellZoneSet;
action new;
source setToCellZone;
sourceInfo
{
set inletChannel;
}
}
);
// ************************************************************************* //

View File

@ -25,10 +25,11 @@ kEpsilonCoeffs
Cmu 0.09;
C1 1.44;
C2 1.92;
C3 -0.33;
sigmak 1.0;
sigmaEps 1.11; //Original value:1.44
Prt 1.0;
//NOTE: See "On the use of the k-Epsilon model in commercial CFD software
// to model the neutral atmospheric boundary layer". J. of wind engineering
// and inductrial aerodymanics 95(2007) 355-269 by
// D.M. Hargreaves and N.G. Wright
}
// ************************************************************************* //

View File

@ -88,6 +88,7 @@ subModels
inputFile "parcelInjectionProperties";
duration 20.0;
parcelsPerSecond 50;
randomise true;
}
}

View File

@ -29,17 +29,17 @@ thermoSingleLayerCoeffs
deltaWet 1e-4;
hydrophilic no;
forces
(
surfaceShear
thermocapillary
);
surfaceShearCoeffs
turbulence laminar;
laminarCoeffs
{
Cf 0.005;
}
forces
(
thermocapillary
);
injectionModels ();
phaseChangeModel none;

View File

@ -33,6 +33,12 @@ thermoSingleLayerCoeffs
radiationModel none;
turbulence laminar;
laminarCoeffs
{
Cf 0.005;
}
upperSurfaceModels
{
/*
@ -56,16 +62,10 @@ thermoSingleLayerCoeffs
forces
(
surfaceShear
thermocapillary
contactAngle
);
surfaceShearCoeffs
{
Cf 0.005;
}
contactAngleCoeffs
{
Ccf 0.085;

View File

@ -33,14 +33,18 @@ kinematicSingleLayerCoeffs
injectionModels ();
turbulence laminar;
laminarCoeffs
{
Cf 0.001;
}
forces
(
contactAngle
surfaceShear
thermocapillary
);
contactAngleCoeffs
{
Ccf 1;
@ -58,9 +62,4 @@ kinematicSingleLayerCoeffs
zeroForcePatches ();
}
surfaceShearCoeffs
{
Cf 0.001;
}
}

View File

@ -88,6 +88,7 @@ subModels
inputFile "parcelInjectionProperties";
duration 10.0;
parcelsPerSecond 200;
randomise true;
}
}

View File

@ -30,17 +30,17 @@ thermoSingleLayerCoeffs
deltaWet 1e-4;
hydrophilic no;
forces
(
surfaceShear
thermocapillary
);
surfaceShearCoeffs
turbulence laminar;
laminarCoeffs
{
Cf 0.005;
}
forces
(
thermocapillary
);
injectionModels
();

View File

@ -93,6 +93,7 @@ subModels
inputFile "parcelInjectionProperties";
duration 1.0;
parcelsPerSecond 250;
randomise true;
}
}

View File

@ -56,9 +56,11 @@ constantProperties
{
T0 320;
// place holders for rho0 and Cp0 - reset from liquid props using T0
// place holders for rho0, Cp0 and sigma0
// - reset from liquid props using T0
rho0 1000;
Cp0 4187;
sigma0 0.02;
youngsModulus 1e9;
poissonsRatio 0.35;