ENH: Optimization of

1) fvDOM BC. greyDiffusiveRadiationMixedFvPatchScalarField.C
	2) radiationProperties and fvSolution for rays in fvDOM model
	3) radiativeIntensityRay.C using weighted residuals.
This commit is contained in:
Sergio Ferraris
2013-05-28 11:32:54 +01:00
parent 6f03f36cf1
commit 672194747e
20 changed files with 323 additions and 156 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,22 +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 +51,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 +79,7 @@ greyMeanAbsorptionEmissionCoeffs
H2O
{
Tcommon 300;
Tcommon 200;
invTemp true;
Tlow 200;
Thigh 2500;
@ -104,7 +106,7 @@ greyMeanAbsorptionEmissionCoeffs
C3H8//CH4
{
Tcommon 300;
Tcommon 200;
Tlow 200;
Thigh 2000;
invTemp false;
@ -131,7 +133,7 @@ greyMeanAbsorptionEmissionCoeffs
O2
{
Tcommon 300;
Tcommon 200;
invTemp true;
Tlow 200;
Thigh 2500;
@ -159,7 +161,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;
}