Merge branch 'master' of ssh://hunt//home/noisy3/OpenFOAM/OpenFOAM-dev

This commit is contained in:
graham
2010-10-08 20:35:39 +01:00
59 changed files with 1335 additions and 721 deletions

View File

@ -0,0 +1,10 @@
cd ${0%/*} || exit 1 # run from this directory
m4 constant/polyMesh/blockMeshDict.m4 > constant/polyMesh/blockMeshDict
# Source tutorial run functions
. $WM_PROJECT_DIR/bin/tools/RunFunctions
runApplication blockMesh
runApplication rhoPimpleFoam

View File

@ -94,7 +94,8 @@ PIMPLE
nCorrectors 2;
nNonOrthogonalCorrectors 0;
momentumPredictor yes;
pMin pMin [ 1 -1 -2 0 0 0 0 ] 1000;
rhoMin rhoMin [ 1 -3 0 0 0 ] 0.5;
rhoMax rhoMax [ 1 -3 0 0 0 ] 2.0;
pRefCell 0;
pRefValue 1e5;
}

View File

@ -0,0 +1 @@
../angledDuctImplicit/Allrun

View File

@ -47,5 +47,25 @@ graphFormat raw;
runTimeModifiable true;
functions
{
residualControl1
{
type residualControl;
functionObjectLibs ( "libjobControl.so" );
outputControl timeStep;
outputInterval 1;
maxResiduals
{
p 1e-2;
U 1e-4;
T 1e-3;
// possibly check turbulence fields
"(k|epsilon|omega)" 1e-3;
}
}
}
// ************************************************************************* //

View File

@ -34,7 +34,6 @@ divSchemes
div(phi,h) Gauss upwind;
div(phi,epsilon) Gauss upwind;
div(phi,k) Gauss upwind;
div(phid,p) Gauss linear;
}
laplacianSchemes

View File

@ -57,7 +57,8 @@ solvers
SIMPLE
{
nNonOrthogonalCorrectors 0;
pMin pMin [ 1 -1 -2 0 0 0 0 ] 100;
rhoMin rhoMin [ 1 -3 0 0 0 ] 1.0;
rhoMax rhoMax [ 1 -3 0 0 0 ] 1.5;
}
relaxationFactors

View File

@ -0,0 +1,10 @@
cd ${0%/*} || exit 1 # run from this directory
m4 constant/polyMesh/blockMeshDict.m4 > constant/polyMesh/blockMeshDict
# Source tutorial run functions
. $WM_PROJECT_DIR/bin/tools/RunFunctions
runApplication blockMesh
runApplication rhoPorousSimpleFoam

View File

@ -31,11 +31,11 @@ FoamFile
f f [0 -1 0 0 0 0 0] (0 0 0);
}
thermalModel
{
type fixedTemperature;
thermalModel none; // fixedTemperature;
T T [0 0 0 1 0] 350;
fixedTemperatureCoeffs
{
T 350;
}
}
)

View File

@ -47,5 +47,25 @@ graphFormat raw;
runTimeModifiable true;
functions
{
residualControl1
{
type residualControl;
functionObjectLibs ( "libjobControl.so" );
outputControl timeStep;
outputInterval 1;
maxResiduals
{
p 1e-3;
U 1e-4;
T 1e-3;
// possibly check turbulence fields
"(k|epsilon|omega)" 1e-3;
}
}
}
// ************************************************************************* //

View File

@ -34,7 +34,6 @@ divSchemes
div(phi,h) Gauss upwind;
div(phi,epsilon) Gauss upwind;
div(phi,k) Gauss upwind;
div(phid,p) Gauss linear;
}
laplacianSchemes

View File

@ -51,7 +51,8 @@ SIMPLE
{
nUCorrectors 2;
nNonOrthogonalCorrectors 0;
pMin pMin [ 1 -1 -2 0 0 0 0 ] 100;
rhoMin rhoMin [ 1 -3 0 0 0 ] 0.5;
rhoMax rhoMAx [ 1 -3 0 0 0 ] 2.0;
}
relaxationFactors

View File

@ -171,9 +171,10 @@ solvers
SIMPLE
{
nNonOrthogonalCorrectors 0;
pMin pMin [1 -1 -2 0 0 0 0] 10000;
transonic yes;
nNonOrthogonalCorrectors 0;
rhoMin rhoMin [1 -3 0 0 0] 0.1;
rhoMax rhoMax [1 -3 0 0 0] 1.0;
transonic yes;
}
relaxationFactors

View File

@ -1,443 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: dev |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
object T;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 1 0 0 0];
internalField uniform 300;
boundaryField
{
floor
{
type fixedValue;
value nonuniform List<scalar>
400
(
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
600
600
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
600
600
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
300
)
;
}
ceiling
{
type fixedValue;
value uniform 300;
}
fixedWalls
{
type zeroGradient;
}
}
// ************************************************************************* //

View File

@ -1,39 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: dev |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
object T;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 1 0 0 0];
internalField uniform 300;
boundaryField
{
floor
{
type fixedValue;
value uniform 300;
}
ceiling
{
type fixedValue;
value uniform 300;
}
fixedWalls
{
type zeroGradient;
}
}
// ************************************************************************* //

View File

@ -56,8 +56,8 @@ functions
maxResiduals
{
p_rgh 1e-2;
U 1e-4;
T 1e-3;
U 1e-3;
h 1e-3;
// possibly check turbulence fields
"(k|epsilon|omega)" 1e-3;

View File

@ -57,8 +57,8 @@ functions
maxResiduals
{
p_rgh 1e-2;
U 1e-4;
T 1e-3;
U 1e-3;
h 1e-3;
// possibly check turbulence fields
"(k|epsilon|omega)" 1e-3;

View File

@ -57,8 +57,9 @@ functions
maxResiduals
{
p_rgh 1e-2;
U 1e-4;
T 1e-3;
U 1e-3;
h 1e-3;
G 1e-3;
// possibly check turbulence fields
"(k|epsilon|omega)" 1e-3;

View File

@ -57,8 +57,9 @@ functions
maxResiduals
{
p_rgh 1e-2;
U 1e-4;
T 1e-3;
U 1e-3;
h 1e-3;
G 1e-3;
// possibly check turbulence fields
"(k|epsilon|omega)" 1e-3;

View File

@ -1,11 +1,11 @@
cellSet heater new boxToCell (-0.01 0 -100 )(0.01 0.01 100)
cellSet heater add boxToCell (-0.01 -100 -0.01)(0.01 0.01 0.01)
cellSet heater new boxToCell (-0.01001 0 -100 )(0.01001 0.00999 100)
cellSet heater add boxToCell (-0.01001 -100 -0.01001)(0.01001 0.00999 0.01001)
cellZoneSet heater new setToCellZone heater
cellSet leftSolid new boxToCell (-100 0 -100 )(-0.01 0.01 100)
cellSet leftSolid new boxToCell (-100 0 -100 )(-0.01001 0.00999 100)
cellZoneSet leftSolid new setToCellZone leftSolid
cellSet rightSolid new boxToCell (0.01 0 -100 )(100 0.01 100)
cellSet rightSolid new boxToCell (0.01001 0 -100 )(100 0.00999 100)
cellZoneSet rightSolid new setToCellZone rightSolid
cellSet topAir new boxToCell (-100 0.01 -100 )(100 100 100)
cellSet topAir new boxToCell (-100 0.00999 -100 )(100 100 100)
cellZoneSet topAir new setToCellZone topAir
cellSet bottomAir clear
cellSet bottomAir add cellToCell heater

View File

@ -18,9 +18,16 @@ solvers
{
rho
{
solver PCG
solver PCG;
preconditioner DIC;
tolerance 1e-8;
relTol 0.1;
}
rhoFinal
{
$rho;
tolerance 1e-8;
relTol 0;
}

View File

@ -18,9 +18,16 @@ solvers
{
rho
{
solver PCG
solver PCG;
preconditioner DIC;
tolerance 1e-7;
relTol 0.1;
}
rhoFinal
{
$rho;
tolerance 1e-7;
relTol 0;
}

View File

@ -35,8 +35,7 @@ solvers
pFinal
{
solver PCG;
preconditioner DIC;
$p;
tolerance 1e-06;
relTol 0;
}
@ -46,6 +45,13 @@ solvers
solver PBiCG;
preconditioner DILU;
tolerance 1e-05;
relTol 0.1;
}
UFinal
{
$U;
tolerance 1e-05;
relTol 0;
}

View File

@ -32,16 +32,9 @@ solvers
pFinal
{
solver GAMG;
$p;
tolerance 1e-7;
relTol 0;
smoother GaussSeidel;
nPreSweeps 0;
nPostSweeps 2;
cacheAgglomeration on;
agglomerator faceAreaPair;
nCellsInCoarsestLevel 10;
mergeLevels 1;
}
"(U|k|omega)"
@ -49,6 +42,13 @@ solvers
solver PBiCG;
preconditioner DILU;
tolerance 1e-06;
relTol 0.1;
}
"(U|k|omega)Final"
{
$U;
tolerance 1e-06;
relTol 0;
}

View File

@ -0,0 +1 @@
../angledDuctImplicit/Allrun

View File

@ -0,0 +1,10 @@
cd ${0%/*} || exit 1 # run from this directory
m4 constant/polyMesh/blockMeshDict.m4 > constant/polyMesh/blockMeshDict
# Source tutorial run functions
. $WM_PROJECT_DIR/bin/tools/RunFunctions
runApplication blockMesh
runApplication porousSimpleFoam

View File

@ -0,0 +1,165 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: dev |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
`format' ascii;
class dictionary;
object blockMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// block definition for a porosity with an angled inlet/outlet
// the porosity is not aligned with the main axes
//
dnl> -----------------------------------------------------------------
dnl> <STANDARD DEFINTIONS>
dnl>
changecom(//)changequote([,]) dnl>
define(calc, [esyscmd(perl -e 'print ($1)')]) dnl>
define(VCOUNT, 0) dnl>
define(vlabel, [[// ]pt VCOUNT ($1) define($1, VCOUNT)define([VCOUNT], incr(VCOUNT))]) dnl>
dnl>
define(hex2D, hex ($1b $2b $3b $4b $1f $2f $3f $4f)) dnl>
define(quad2D, ($1f $1b $2b $2f)) dnl>
define(frontQuad, ($1f $2f $3f $4f)) dnl>
define(backQuad, ($4b $3b $2b $1b)) dnl>
dnl>
dnl> </STANDARD DEFINTIONS>
dnl> -----------------------------------------------------------------
dnl>
define(ncells, 20) dnl>
define(ninlet, 15) dnl>
define(nporo, 20) dnl>
define(noutlet, 20) dnl>
dnl>
define(x0,0) dnl>
define(y0,0) dnl>
define(y0,0) dnl>
define(Cos,0.7071067812) dnl> == cos(45)
define(Sin,0.7071067812) dnl> == sin(45)
dnl>
define(width,50) dnl>
define(zBack,calc(-width/2)) dnl>
define(zFront,calc(width/2)) dnl>
define(leninlet,150)dnl>
define(lenporo,100)dnl>
define(lenoutlet,100)dnl>
dnl>
define(xhyp,calc(Sin*width)) dnl>
define(yhyp,calc(Cos*width)) dnl>
define(xinlet,leninlet)dnl>
define(xporo,calc(Cos*lenporo)) dnl>
define(yporo,calc(Sin*lenporo)) dnl>
define(xoutlet,calc(xporo + Cos*lenoutlet)) dnl>
define(youtlet,calc(yporo + Sin*lenoutlet)) dnl>
dnl>
convertToMeters 0.001;
vertices
(
// inlet region
( -xinlet y0 zBack ) vlabel(in1b)
( -xinlet yhyp zBack ) vlabel(in2b)
( -xinlet y0 zFront ) vlabel(in1f)
( -xinlet yhyp zFront ) vlabel(in2f)
// join inlet->outlet
( x0 y0 zBack ) vlabel(join1b)
( -xhyp yhyp zBack ) vlabel(join2b)
( x0 y0 zFront ) vlabel(join1f)
( -xhyp yhyp zFront ) vlabel(join2f)
// porosity ends ->outlet
( xporo yporo zBack ) vlabel(poro1b)
( calc(xporo - xhyp) calc(yporo + yhyp) zBack ) vlabel(poro2b)
( xporo yporo zFront ) vlabel(poro1f)
( calc(xporo - xhyp) calc(yporo + yhyp) zFront ) vlabel(poro2f)
// outlet
( xoutlet youtlet zBack ) vlabel(out1b)
( calc(xoutlet - xhyp) calc(youtlet + yhyp) zBack ) vlabel(out2b)
( xoutlet youtlet zFront ) vlabel(out1f)
( calc(xoutlet - xhyp) calc(youtlet + yhyp) zFront ) vlabel(out2f)
);
blocks
(
// inlet block
hex2D(in1, join1, join2, in2)
inlet ( ninlet ncells ncells ) simpleGrading (1 1 1)
// porosity block
hex2D(join1, poro1, poro2, join2)
porosity ( nporo ncells ncells ) simpleGrading (1 1 1)
// outlet block
hex2D(poro1, out1, out2, poro2)
outlet ( noutlet ncells ncells ) simpleGrading (1 1 1)
);
edges
(
);
patches
(
// is there no way of defining all my 'defaultFaces' to be 'wall'?
wall front
(
// inlet block
frontQuad(in1, join1, join2, in2)
// outlet block
frontQuad(poro1, out1, out2, poro2)
)
wall back
(
// inlet block
backQuad(in1, join1, join2, in2)
// outlet block
backQuad(poro1, out1, out2, poro2)
)
wall wall
(
// inlet block
quad2D(in1, join1)
quad2D(join2, in2)
// outlet block
quad2D(poro1, out1)
quad2D(out2, poro2)
)
wall porosityWall
(
// porosity block
frontQuad(join1, poro1, poro2, join2)
// porosity block
backQuad(join1, poro1, poro2, join2)
// porosity block
quad2D(join1, poro1)
quad2D(poro2, join2)
)
patch inlet
(
quad2D(in2, in1)
)
patch outlet
(
quad2D(out2, out1)
)
);
mergePatchPairs
(
);
// ************************************************************************* //

View File

@ -46,4 +46,60 @@ timePrecision 6;
runTimeModifiable true;
functions
{
// Make sure all fields for functionObjects are loaded. Prevents any
// problems running with execFlowFunctionObjects.
readFields
{
// Where to load it from (if not already in solver)
functionObjectLibs ("libfieldFunctionObjects.so");
type readFields;
fields (p U k);
}
streamLines
{
type streamLine;
// Output every
outputControl outputTime;
// outputInterval 10;
setFormat vtk; //gnuplot; //xmgr; //raw; //jplot;
// Velocity field to use for tracking.
U U;
// Tracked forwards (+U) or backwards (-U)
trackForward true;
// Names of fields to sample. Should contain above velocity field!
fields (p U k);
// Cells particles can travel before being removed
lifeTime 1000;
// Cloud name to use
cloudName particleTracks;
// Seeding method. See the sampleSets in sampleDict.
seedSampleSet uniform; //cloud;//triSurfaceMeshPointSet;
uniformCoeffs
{
type uniform;
axis x; //distance;
// Note: tracks slightly offset so as not to be on a face
start (-1.001 1E-7 0.0011);
end (-1.001 1E-7 1.0011);
nPoints 20;
}
}
}
// ************************************************************************* //

View File

@ -33,7 +33,7 @@ PhaseChangeModel LiquidEvaporation;
DevolatilisationModel ConstantRateDevolatilisation;
SurfaceReactionModel COxidationDiffusionLimitedRate;
SurfaceReactionModel COxidationKineticDiffusionLimitedRate;
PostProcessingModel none;
@ -167,10 +167,12 @@ ConstantRateDevolatilisationCoeffs
volatileResidualCoeff 0.001;
}
COxidationDiffusionLimitedRateCoeffs
COxidationKineticDiffusionLimitedRateCoeffs
{
Sb Sb [ 0 0 0 0 0 ] 1;
D D [ 0 2 -1 0 0 ] 1.5e-05;
Sb Sb [ 0 0 0 0 0 ] 2.667;
C1 C1 [ 0 0 0 0 0] 5.0E-12;
C2 C2 [ 0 0 0 0 0] 0.002;
E E [ 0 0 0 0 0] 7.9E+07;
}

View File

@ -20,10 +20,10 @@ FoamFile
{
active true;
timeStart 0.15;
duration 0.1;
duration 0.2;
selectionMode cellSet;
volumeMode absolute;
fieldData 10000;
fieldData 15000;
cellSet ignitionCells;
}
);

View File

@ -34,10 +34,17 @@ solvers
p
{
solver PBiCG;
preconditioner DILU;
solver GAMG;
tolerance 1e-06;
relTol 0.1;
relTol 0.01;
smoother GaussSeidel;
nPreSweeps 0;
nPostSweeps 2;
nBottomSweeps 2;
cacheAgglomeration false;
nCellsInCoarsestLevel 10;
agglomerator faceAreaPair;
mergeLevels 1;
}
pFinal
@ -82,7 +89,7 @@ solvers
PISO
{
transonic yes;
nCorrectors 2;
nCorrectors 3;
nNonOrthogonalCorrectors 0;
momentumPredictor yes;
}

View File

@ -15,38 +15,18 @@ FoamFile
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
//surfaceFilmModel kinematicSingleLayer;
surfaceFilmModel thermoSingleLayer;
filmRegionName wallFilmRegion;
active true;
kinematicSingleLayerCoeffs
{
thermoModel constant;
rho0 rho0 [1 -3 0 0 0] 1000;
mu0 mu0 [1 -1 -1 0 0] 1e-3;
sigma0 sigma0 [1 0 -2 0 0] 0.07;
deltaStable deltaStable [0 1 0 0 0] 0.0005;
Cf 0.005;
injectionModel removeInjection; // none; // cloudInjection;
}
thermoSingleLayerCoeffs
{
thermoModel singleComponent; // constant
liquid H2O;
// thermoModel constant;
// rho0 rho0 [1 -3 0 0 0] 1000;
// mu0 mu0 [1 -1 -1 0 0] 1e-3;
// sigma0 sigma0 [1 0 -2 0 0] 0.07;
// cp0 cp0 [0 2 -2 -1 0] 4187;
deltaStable deltaStable [0 1 0 0 0] 0;
Cf 0.005;
upperSurfaceModels
@ -75,7 +55,9 @@ thermoSingleLayerCoeffs
{
cloudName reactingCloud1;
particlesPerParcel 100.0;
deltaStable 0.0;
particlesPerParcel 100.0;
parcelPDF
{

View File

@ -288,9 +288,6 @@ meshQualityControls
// Set to 180 to disable.
maxConcave 80;
//- Minimum projected area v.s. actual area. Set to -1 to disable.
minFlatness 0.5;
//- Minimum pyramid volume. Is absolute volume of cell pyramid.
// Set to very negative number (e.g. -1E30) to disable.
minVol 1e-20;