Compare commits

...
Sign in to create a new pull request.

8 commits

Author SHA1 Message Date
ignis
2eae98a42e update NOxFoam tutorial cases according to solver changes 2018-02-01 17:30:31 +09:00
ignis
a97927e6a1 removed trash files 2018-02-01 16:50:16 +09:00
ignis
5ac3bc47ea removed thermal NOx solver and add fuel NOx switch to thermal-fuel NOx solver 2018-02-01 14:37:28 +09:00
ignis
bfbb887274 SOxFoam tutorial case update according to the solver update 2018-01-31 00:41:53 +09:00
ignis
f3a6d8b525 SOxFoam multi fuel support and direct read lagrangian source 2018-01-31 00:30:28 +09:00
Yeongdo Park
28a67ebe20 Merge branch 'tutorials' into 'NOxSOx'
NOxFoam, SOxFoam tutorial cases were uploaded.

See merge request combustion-postech/OpenFOAM-4.x!15
2018-01-27 20:45:42 +00:00
dhkim
1d17c99199 Tutorial cases were uploaded. 2018-01-25 22:19:52 +09:00
dhkim
fa2fa99978 Post-processing solvers are uploaded. 2018-01-23 23:59:03 +09:00
79 changed files with 2139698 additions and 0 deletions

View file

@ -0,0 +1,5 @@
NOxFoam.C
EXE = $(FOAM_APPBIN)/NOxFoam

View file

@ -0,0 +1,10 @@
EXE_INC = \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I${LIB_SRC}/meshTools/lnInclude \
-I$(LIB_SRC)/sampling/lnInclude \
EXE_LIBS = \
-lfiniteVolume \
-lmeshTools \
-lfvOptions \
-lsampling

View file

@ -0,0 +1,17 @@
// NH3 transport equation
while (simple.correctNonOrthogonal())
{
fvScalarMatrix NH3Eqn
(
fvm::ddt(rho, NH3)
+ fvm::div(phi, NH3)
- fvm::laplacian(mut, NH3)
==
Snh3
);
NH3Eqn.relax();
fvOptions.constrain(NH3Eqn);
NH3Eqn.solve();
fvOptions.correct(NH3);
}

View file

@ -0,0 +1,17 @@
// NO transport equation
while (simple.correctNonOrthogonal())
{
fvScalarMatrix NOEqn
(
fvm::ddt(rho, NO)
+ fvm::div(phi, NO)
- fvm::laplacian(mut, NO)
==
Sno
);
NOEqn.relax();
fvOptions.constrain(NOEqn);
NOEqn.solve();
fvOptions.correct(NO);
}

View file

@ -0,0 +1,80 @@
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2013-2016 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
OpenFOAM is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Application
NOxFoam
Description
\*---------------------------------------------------------------------------*/
#include "fvCFD.H"
#include "fvOptions.H"
#include "simpleControl.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
int main(int argc, char *argv[])
{
#include "setRootCase.H"
#include "createTime.H"
#include "createMesh.H"
#include "createControl.H"
#include "createFields.H"
#include "createFvOptions.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Info<< "\nStarting time loop\n" << endl;
if(instantaneousRadicals)
{
Info<< "Instantaneous mass fraction field will be used for O, OH radicals" << endl;
}
else
{
Info<< "Partial Equilibrium Approach is selected for O, OH radicals" << endl;
}
while (simple.loop())
{
Info<< "Time = " << runTime.timeName() << nl << endl;
#include "SourceCalc.H"
#include "NH3Eqn.H"
#include "NOEqn.H"
runTime.write();
Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s"
<< " ClockTime = " << runTime.elapsedClockTime() << " s"
<< nl << endl;
}
Info<< "End\n" << endl;
return 0;
}
// ************************************************************************* //

View file

@ -0,0 +1,42 @@
Xno = rho*NO/Wno; // Molar concentration of NO [mol/m^3]
// Calculation of source term. (Thermal NO)
forAll (mesh.cells(),celli)
{
SthermNO[celli] = Wno.value()*2*kf1[celli]*Xo[celli]*Xn2[celli]*
((1-(kr1[celli]*kr2[celli]*Xno[celli]*Xno[celli])/
(kf1[celli]*Xn2[celli]*kf2[celli]*Xo2[celli]))/
(1+(kr1[celli]*Xno[celli])/
(kf2[celli]*Xo2[celli]+kf3[celli]*Xoh[celli])))
/runTime.time().deltaTValue();
}
Sno = SthermNO;
if (calculateFuelNOx)
{
Xnh3 = rho*NH3/Wnh3; // Molar concentration of nh3[mol/m^3]
forAll (mesh.cells(),celli)
{
// Conversion rate of NH3
R1[celli] = A1*Xnh3[celli]*Foam::pow(Xo2[celli],a[celli])*Foam::exp(-E1/(RR*T[celli])); // [1/s]
R2[celli] = A2*Xnh3[celli]*Xno[celli]*Foam::exp(-E2/(RR*T[celli])); // [1/s]
}
// NH3 sinks
Snh3_1 = -R1*Wnh3*p/(Rgas*T); // NH3 consumption -> NO (oxidation)
Snh3_2 = -R2*Wnh3*p/(Rgas*T); // NH3 consumption -> N2 (reduction)
// net NH3 source (NH3 production, consumption 1, and consumption 2)
Snh3 = Snh3_p + Snh3_1 + Snh3_2;
// Fuel NO
// Calculation of source term. (Fuel NO)
SfuelNO_1 = R1*Wno*p/(Rgas*T); // NH3 + O2 -> NO (source)
SfuelNO_2 = -R2*Wno*p/(Rgas*T); // NH3 + NO -> N2 (sink)
SfuelNO = SfuelNO_1 + SfuelNO_2; // Sum of fuel NO source terms
// Sum of NO Sources (source of thermal NO and fuel NO)
Sno += SfuelNO;
}

View file

@ -0,0 +1,660 @@
IOdictionary NOxProperties
(
IOobject
(
"NOxProperties",
runTime.constant(),
mesh,
IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
);
wordList fuelSourceNames(NOxProperties.lookup("fuelSourceNames"));
PtrList<volScalarField::Internal> fuelSources(fuelSourceNames.size());
forAll (fuelSources, si)
{
fuelSources.set
(
si,
new volScalarField::Internal
(
IOobject
(
fuelSourceNames[si],
runTime.timeName(),
mesh,
IOobject::MUST_READ,
IOobject::AUTO_WRITE
),
mesh
)
);
}
scalarField nitrogenMassInFuels(NOxProperties.lookup("nitrogenMassInFuels"));
bool instantaneousRadicals
(
NOxProperties.lookupOrDefault("instantaneousRadicals", true)
);
bool calculateFuelNOx
(
NOxProperties.lookupOrDefault("calculateFuelNOx", false)
);
volScalarField T
(
IOobject
(
"T",
runTime.timeName(),
mesh,
IOobject::MUST_READ,
IOobject::AUTO_WRITE
),
mesh
);
volScalarField rho
(
IOobject
(
"rho",
runTime.timeName(),
mesh,
IOobject::MUST_READ,
IOobject::AUTO_WRITE
),
mesh
);
volScalarField p
(
IOobject
(
"p",
runTime.timeName(),
mesh,
IOobject::MUST_READ,
IOobject::AUTO_WRITE
),
mesh
);
Info<< "\nReading field U\n" << endl;
volVectorField U
(
IOobject
(
"U",
runTime.timeName(),
mesh,
IOobject::MUST_READ,
IOobject::AUTO_WRITE
),
mesh
);
Info<< "Reading/calculating face flux field phi\n" << endl;
surfaceScalarField phi
(
IOobject
(
"phi",
runTime.timeName(),
mesh,
IOobject::READ_IF_PRESENT,
IOobject::AUTO_WRITE
),
linearInterpolate(rho*U) & mesh.Sf()
);
volScalarField nut
(
IOobject
(
"nut",
runTime.timeName(),
mesh,
IOobject::MUST_READ,
IOobject::AUTO_WRITE
),
mesh
);
volScalarField mut
(
IOobject
(
"mut",
runTime.timeName(),
mesh,
IOobject::NO_READ,
IOobject::AUTO_WRITE
),
rho * nut
);
volScalarField Xno
(
IOobject
(
"Xno",
runTime.timeName(),
mesh,
IOobject::READ_IF_PRESENT,
IOobject::NO_WRITE
),
mesh,
dimensionedScalar("Xno",dimMoles/dimVolume,0.0)
);
volScalarField Xn2
(
IOobject
(
"Xn2",
runTime.timeName(),
mesh,
IOobject::NO_READ,
IOobject::NO_WRITE
),
mesh,
dimensionedScalar("Xn2",dimMoles/dimVolume,0.0)
);
volScalarField Xo2
(
IOobject
(
"Xo2",
runTime.timeName(),
mesh,
IOobject::NO_READ,
IOobject::NO_WRITE
),
mesh,
dimensionedScalar("Xo2",dimMoles/dimVolume,0.0)
);
volScalarField Xh2o
(
IOobject
(
"Xh2o",
runTime.timeName(),
mesh,
IOobject::NO_READ,
IOobject::NO_WRITE
),
mesh,
dimensionedScalar("Xh2o",dimMoles/dimVolume,0.0)
);
volScalarField Xnh3
(
IOobject
(
"Xnh3",
runTime.timeName(),
mesh,
IOobject::NO_READ,
IOobject::NO_WRITE
),
mesh,
dimensionedScalar("Xnh3",dimMoles/dimVolume,0.0)
);
volScalarField Xo
(
IOobject
(
"Xo",
runTime.timeName(),
mesh,
IOobject::NO_READ,
IOobject::NO_WRITE
),
mesh,
dimensionedScalar("Xo",dimMoles/dimVolume,0.0)
);
volScalarField Xoh
(
IOobject
(
"Xoh",
runTime.timeName(),
mesh,
IOobject::NO_READ,
IOobject::NO_WRITE
),
mesh,
dimensionedScalar("Xoh",dimMoles/dimVolume,0.0)
);
volScalarField NO
(
IOobject
(
"NO",
runTime.timeName(),
mesh,
IOobject::MUST_READ,
IOobject::AUTO_WRITE
),
mesh
);
volScalarField N2
(
IOobject
(
"N2",
runTime.timeName(),
mesh,
IOobject::MUST_READ,
IOobject::AUTO_WRITE
),
mesh
);
volScalarField O2
(
IOobject
(
"O2",
runTime.timeName(),
mesh,
IOobject::MUST_READ,
IOobject::AUTO_WRITE
),
mesh
);
volScalarField H2O
(
IOobject
(
"H2O",
runTime.timeName(),
mesh,
IOobject::MUST_READ,
IOobject::AUTO_WRITE
),
mesh
);
volScalarField O
(
IOobject
(
"O",
runTime.timeName(),
mesh,
IOobject::MUST_READ,
IOobject::AUTO_WRITE
),
mesh
);
volScalarField OH
(
IOobject
(
"OH",
runTime.timeName(),
mesh,
IOobject::MUST_READ,
IOobject::AUTO_WRITE
),
mesh
);
volScalarField NH3
(
IOobject
(
"NH3",
runTime.timeName(),
mesh,
IOobject::READ_IF_PRESENT,
IOobject::NO_WRITE
),
mesh,
dimensionedScalar("NH3",dimless,0.0)
);
if (calculateFuelNOx)
{
NH3.writeOpt() = IOobject::AUTO_WRITE;
}
volScalarField Sno
(
IOobject
(
"Sno",
runTime.timeName(),
mesh,
IOobject::NO_READ,
IOobject::AUTO_WRITE
),
mesh,
dimensionedScalar("Sno",dimDensity/dimTime,0.0)
);
volScalarField SthermNO
(
IOobject
(
"SthermNO",
runTime.timeName(),
mesh,
IOobject::NO_READ,
IOobject::AUTO_WRITE
),
mesh,
dimensionedScalar("SthermNO",dimDensity/dimTime,0.0)
);
volScalarField SfuelNO
(
IOobject
(
"SfuelNO",
runTime.timeName(),
mesh,
IOobject::NO_READ,
IOobject::AUTO_WRITE
),
mesh,
dimensionedScalar("SfuelNO",dimDensity/dimTime,0.0)
);
volScalarField SfuelNO_1
(
IOobject
(
"SfuelNO_1",
runTime.timeName(),
mesh,
IOobject::NO_READ,
IOobject::AUTO_WRITE
),
mesh,
dimensionedScalar("SfuelNO_1",dimDensity/dimTime,0.0)
);
volScalarField SfuelNO_2
(
IOobject
(
"SfuelNO_2",
runTime.timeName(),
mesh,
IOobject::NO_READ,
IOobject::AUTO_WRITE
),
mesh,
dimensionedScalar("SfuelNO_2",dimDensity/dimTime,0.0)
);
volScalarField a
(
IOobject
(
"a",
runTime.timeName(),
mesh,
IOobject::NO_READ,
IOobject::AUTO_WRITE
),
mesh,
dimensionedScalar("a",dimless,0.0)
);
volScalarField R1
(
IOobject
(
"R1",
runTime.timeName(),
mesh,
IOobject::NO_READ,
IOobject::AUTO_WRITE
),
mesh,
dimensionedScalar("R1",dimless/dimTime,0.0)
);
volScalarField R2
(
IOobject
(
"R2",
runTime.timeName(),
mesh,
IOobject::NO_READ,
IOobject::AUTO_WRITE
),
mesh,
dimensionedScalar("R1",dimless/dimTime,0.0)
);
volScalarField Snh3_p
(
IOobject
(
"Snh3_p",
runTime.timeName(),
mesh,
IOobject::NO_READ,
IOobject::AUTO_WRITE
),
mesh,
dimensionedScalar("Snh3_p",dimDensity/dimTime,0.0)
);
volScalarField Snh3_1
(
IOobject
(
"Snh3_1",
runTime.timeName(),
mesh,
IOobject::NO_READ,
IOobject::AUTO_WRITE
),
mesh,
dimensionedScalar("Snh3_1",dimDensity/dimTime,0.0)
);
volScalarField Snh3_2
(
IOobject
(
"Snh3_2",
runTime.timeName(),
mesh,
IOobject::NO_READ,
IOobject::AUTO_WRITE
),
mesh,
dimensionedScalar("Snh3_2",dimDensity/dimTime,0.0)
);
volScalarField Snh3
(
IOobject
(
"Snh3",
runTime.timeName(),
mesh,
IOobject::NO_READ,
IOobject::AUTO_WRITE
),
mesh,
dimensionedScalar("Snh3",dimDensity/dimTime,0.0)
);
volScalarField kf1
(
IOobject
(
"kf1",
runTime.timeName(),
mesh,
IOobject::NO_READ,
IOobject::AUTO_WRITE
),
mesh,
dimensionedScalar("kf1",dimVolume/dimTime/dimMoles,0.0)
);
volScalarField kf2
(
IOobject
(
"kf2",
runTime.timeName(),
mesh,
IOobject::NO_READ,
IOobject::AUTO_WRITE
),
mesh,
dimensionedScalar("kf2",dimVolume/dimTime/dimMoles,0.0)
);
volScalarField kf3
(
IOobject
(
"kf3",
runTime.timeName(),
mesh,
IOobject::NO_READ,
IOobject::AUTO_WRITE
),
mesh,
dimensionedScalar("kf3",dimVolume/dimTime/dimMoles,0.0)
);
volScalarField kr1
(
IOobject
(
"kr1",
runTime.timeName(),
mesh,
IOobject::NO_READ,
IOobject::AUTO_WRITE
),
mesh,
dimensionedScalar("kr1",dimVolume/dimTime/dimMoles,0.0)
);
volScalarField kr2
(
IOobject
(
"kr2",
runTime.timeName(),
mesh,
IOobject::NO_READ,
IOobject::AUTO_WRITE
),
mesh,
dimensionedScalar("kr2",dimVolume/dimTime/dimMoles,0.0)
);
const dimensionedScalar Wno ("Wno", dimMass/dimMoles, 0.030006); // Molecular weight of NO [kg/mol]
const dimensionedScalar Wn2 ("Wn2", dimMass/dimMoles, 0.028013); // Molecular weight of N2 [kg/mol]
const dimensionedScalar Wo2 ("Wo2", dimMass/dimMoles, 0.031998); // Molecular weight of O2 [kg/mol]
const dimensionedScalar Wh2o ("Wh2o", dimMass/dimMoles, 0.018015); // Molecular weight of H2O[kg/mol]
const dimensionedScalar Wo ("Wo", dimMass/dimMoles, 0.015999); // Molecular weight of O [kg/mol]
const dimensionedScalar Woh ("Woh", dimMass/dimMoles, 0.017008); // Molecular weight of OH [kg/mol]
const dimensionedScalar Wnh3 ("Wnh3", dimMass/dimMoles, 0.017031); // Molecular weight of NH3[kg/mol]
const dimensionedScalar Wn ("Wn", dimMass/dimMoles, 0.014007); // Molecular weight of N [kg/mol]
const dimensionedScalar Rgas (Foam::constant::physicoChemical::R);
const scalar RR = Rgas.value(); // Universal gas constant [J/(mol*K)]
const scalar A1 = 4.0E+06; // [1/s]
const scalar A2 = 1.8E+08; // [1/s]
const scalar E1 = 133947.2; // [J/mol]
const scalar E2 = 113017.95; // [J/mol]
// molar concentrations
Xn2 = rho*N2/Wn2; // Molar concentration of N2 [mol/m^3]
Xo2 = rho*O2/Wo2; // Molar concentration of O2 [mol/m^3]
Xh2o = rho*H2O/Wh2o; // Molar concentration of H2O[mol/m^3]
// O,OH molar concentrations
if(instantaneousRadicals)
{
Xo = rho*O/Wo; // Molar concentration of O [mol/m^3]
Xoh = rho*OH/Woh; // Molar concentration of OH[mol/m^3]
}
else
{
forAll (mesh.cells(),celli)
{
// Molar concentration of O [mol/m^3], Partial Equilibrium Approach
Xo[celli] = 36.64 * Foam::pow(T[celli],0.5)
* Foam::pow(Xo2[celli],0.5) * Foam::exp(-27123.0/T[celli]);
// Molar concentration of OH [mol/m^3], Partial Equilibrium Approach
Xoh[celli] = 2.129E+02 * Foam::pow(T[celli],-0.57) * Foam::exp(-4595.0/T[celli])
* Foam::pow(Xo[celli],0.5) * Foam::pow(Xh2o[celli],0.5);
}
}
forAll (mesh.cells(),celli)
{
// Thermal NO
// Reaction rate constants [m^3/(mol*s)]
kf1[celli] = 1.8E+08*Foam::exp(-38370/T[celli]);
kf2[celli] = 1.8E+04*T[celli]*Foam::exp(-4680/T[celli]);
kf3[celli] = 7.1E+07*Foam::exp(-450/T[celli]);
kr1[celli] = 3.8E+07*Foam::exp(-425/T[celli]);
kr2[celli] = 3.81E+03*T[celli]*Foam::exp(-20820/T[celli]);
}
// a, Order of Reaction "NH3 + O2 -> NO"
forAll (mesh.cells(),celli)
{
if (Xo2[celli] <= 4.1E-03)
{
a[celli] = 1.0;
}
else if ( Xo2[celli] > 4.1E-03 and Xo2[celli] <= 1.11E-02 )
{
a[celli] = -3.95 - 0.9*Foam::log(Xo2[celli]);
}
else if ( Xo2[celli] > 1.11E-02 and Xo2[celli] <= 0.03 )
{
a[celli] = -0.35 - 0.1*Foam::log(Xo2[celli]);
}
else // if ( Xo2[celli] > 0.03 )
{
a[celli] = 0.0;
}
}
// NH3 source
forAll (mesh.cells(),celli)
{
scalar nh3Source = 0.0;
forAll (fuelSources, si)
{
nh3Source += fuelSources[si][celli] * nitrogenMassInFuels[si];
}
Snh3_p[celli] = nh3Source*Wnh3.value()/Wn.value()/mesh.V()[celli]; // NH3 production
}

View file

@ -0,0 +1,4 @@
SOxFoam.C
EXE = $(FOAM_USER_APPBIN)/SOxFoam

View file

@ -0,0 +1,11 @@
EXE_INC = \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I${LIB_SRC}/meshTools/lnInclude \
-I$(LIB_SRC)/sampling/lnInclude \
EXE_LIBS = \
-lfiniteVolume \
-lmeshTools \
-lfvOptions \
-lsampling

View file

@ -0,0 +1,88 @@
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2013-2016 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
OpenFOAM is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Application
simpleReactingParcelFoam
Description
Steady state solver for compressible, turbulent flow with reacting,
multiphase particle clouds and optional sources/constraints.
\*---------------------------------------------------------------------------*/
#include "fvCFD.H"
#include "fvOptions.H"
#include "simpleControl.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
int main(int argc, char *argv[])
{
#include "setRootCase.H"
#include "createTime.H"
#include "createMesh.H"
#include "createControl.H"
#include "createFields.H"
#include "createFvOptions.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Info<< "\nStarting time loop\n" << endl;
while (simple.loop())
{
Info<< "Time = " << runTime.timeName() << nl << endl;
#include "calculateSso2.H"
while (simple.correctNonOrthogonal())
{
fvScalarMatrix SO2Eqn
(
fvm::ddt(rho, SO2)
+ fvm::div(phi, SO2)
- fvm::laplacian(mut, SO2)
==
Sso2
);
SO2Eqn.relax();
fvOptions.constrain(SO2Eqn);
SO2Eqn.solve();
fvOptions.correct(SO2);
}
runTime.write();
Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s"
<< " ClockTime = " << runTime.elapsedClockTime() << " s"
<< nl << endl;
}
Info<< "End\n" << endl;
return 0;
}
// ************************************************************************* //

View file

@ -0,0 +1,14 @@
const scalar Wso2 = 0.064066; // Molecular weight of SO2[kg/mol]
const scalar Ws = 0.032065; // Molecular weight of S [kg/mol]
forAll (mesh.cells(),celli)
{
scalar sulfurSource = 0.0;
forAll (fuelSources, si)
{
sulfurSource += fuelSources[si][celli] * sulfurMassInFuels[si];
}
Sso2[celli] = sulfurSource*Wso2/Ws/mesh.V()[celli];
}

View file

@ -0,0 +1,130 @@
volScalarField rho
(
IOobject
(
"rho",
runTime.timeName(),
mesh,
IOobject::MUST_READ,
IOobject::AUTO_WRITE
),
mesh
);
volVectorField U
(
IOobject
(
"U",
runTime.timeName(),
mesh,
IOobject::MUST_READ,
IOobject::AUTO_WRITE
),
mesh
);
surfaceScalarField phi
(
IOobject
(
"phi",
runTime.timeName(),
mesh,
IOobject::READ_IF_PRESENT,
IOobject::AUTO_WRITE
),
linearInterpolate(rho*U) & mesh.Sf()
);
volScalarField nut
(
IOobject
(
"nut",
runTime.timeName(),
mesh,
IOobject::MUST_READ,
IOobject::AUTO_WRITE
),
mesh
);
volScalarField mut
(
IOobject
(
"mut",
runTime.timeName(),
mesh,
IOobject::NO_READ,
IOobject::AUTO_WRITE
),
rho * nut
);
volScalarField SO2
(
IOobject
(
"SO2",
runTime.timeName(),
mesh,
IOobject::MUST_READ,
IOobject::AUTO_WRITE
),
mesh
);
volScalarField Sso2
(
IOobject
(
"Sso2",
runTime.timeName(),
mesh,
IOobject::MUST_READ,
IOobject::AUTO_WRITE
),
mesh,
dimensionedScalar("Sso2",dimDensity/dimTime,0.0)
);
IOdictionary SOxProperties
(
IOobject
(
"SOxProperties",
runTime.constant(),
mesh,
IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
);
wordList fuelSourceNames(SOxProperties.lookup("fuelSourceNames"));
PtrList<volScalarField::Internal> fuelSources(fuelSourceNames.size());
forAll (fuelSources, si)
{
fuelSources.set
(
si,
new volScalarField::Internal
(
IOobject
(
fuelSourceNames[si],
runTime.timeName(),
mesh,
IOobject::MUST_READ,
IOobject::AUTO_WRITE
),
mesh
)
);
}
scalarField sulfurMassInFuels(SOxProperties.lookup("sulfurMassInFuels"));

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,25 @@
/*--------------------------------*- 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 dictionary;
location "constant";
object SOxProperties;
}
fuelSourceNames ( reactingCloud1:rhoTrans_C7H16 );
nitrogenMassInFuels ( 0.01 );
instantaneousRadicals false;
calculateFuelNOx false;
// ************************************************************************* //

View file

@ -0,0 +1,70 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 2.3.x |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class polyBoundaryMesh;
location "1/polyMesh";
object boundary;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
6
(
INLET
{
type patch;
nFaces 279;
startFace 88864;
}
WALL
{
type wall;
nFaces 360;
startFace 89143;
}
SLIPWALL
{
type wall;
nFaces 1062;
startFace 89503;
}
OUTLET
{
type patch;
nFaces 477;
startFace 90565;
}
CYCLIC_half0
{
type cyclic;
inGroups 1(cyclic);
nFaces 2009;
startFace 91042;
matchTolerance 0.0001;
transform rotational;
neighbourPatch CYCLIC_half1;
rotationAxis (1 0 0);
rotationCentre (0 0 0);
}
CYCLIC_half1
{
type cyclic;
inGroups 1(cyclic);
nFaces 2009;
startFace 93051;
matchTolerance 0.0001;
transform rotational;
neighbourPatch CYCLIC_half0;
rotationAxis (1 0 0);
rotationCentre (0 0 0);
}
)
// ************************************************************************* //

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,21 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 2.3.x |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class regIOobject;
location "1/polyMesh";
object pointZones;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
0
()
// ************************************************************************* //

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,49 @@
/*--------------------------------*- 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;
location "system";
object controlDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
application NOxFoam;
startFoam latestTime;
startTime 0;
stopAt endTime;
endTime 2000;
deltaT 1;
writeControl timeStep;
writeInterval 100;
purgeWrite 0;
writeFormat ascii;
writePrecision 10;
writeCompression uncompressed;
timeFormat general;
timePrecision 6;
runTimeModifiable yes;
// ************************************************************************* //

View file

@ -0,0 +1,78 @@
// The FOAM Project // File: decomposeParDict
/*
-------------------------------------------------------------------------------
========= | dictionary
\\ / |
\\ / | Name: decomposeParDict
\\ / | Family: FoamX configuration file
\\/ |
F ield | FOAM version: 2.1
O peration | Product of Nabla Ltd.
A and |
M anipulation | Email: Enquiries@Nabla.co.uk
-------------------------------------------------------------------------------
*/
// FoamX Case Dictionary.
FoamFile
{
version 2.0;
format ascii;
// root "/home/warhol/chris/foam/chris2.1/run/tutorials/interFoam";
// case "damBreak";
// instance "system";
// local "";
class dictionary;
object decomposeParDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
numberOfSubdomains 24; //12;
method scotch; //metis;
simpleCoeffs
{
n (1 1 2);
delta 0.001;
}
hierarchicalCoeffs
{
n (1 1 1);
delta 0.001;
order xyz;
}
metisCoeffs
{
processorWeights
(
1
1
1
1
1
1
1
);
}
manualCoeffs
{
dataFile "";
}
distributed no;
roots
(
);
// ************************************************************************* //

View file

@ -0,0 +1,55 @@
/*--------------------------------*- 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.0;
format ascii;
class dictionary;
location "system";
object fvSchemes;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
ddtSchemes
{
default steadyState;
}
gradSchemes
{
default Gauss linear;
}
divSchemes
{
default none;
div(phi,NO) bounded Gauss linear;
}
laplacianSchemes
{
default Gauss linear uncorrected;
}
interpolationSchemes
{
default linear;
}
snGradSchemes
{
default uncorrected;
}
wallDist
{
method meshWave;
}
// ************************************************************************* //

View file

@ -0,0 +1,51 @@
/*--------------------------------*- 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.0;
format ascii;
class dictionary;
location "system";
object fvSolution;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
solvers
{
NO
{
solver smoothSolver;
smoother GaussSeidel;
tolerance 0;
relTol 0.1;
maxIter 20;
}
}
SIMPLE
{
nCorrectors 2;
nNonOrthogonalCorrectors 0;
rhoMin 0.1;
rhoMax 1.5;
}
relaxationFactors
{
fields
{
}
equations
{
".*" 0.7;
}
}
// ************************************************************************* //

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,52 @@
/*--------------------------------*- 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.0;
format ascii;
class volScalarField;
location "2100";
object H2O;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 0;
boundaryField
{
INLET
{
type fixedValue;
value uniform 0;
}
WALL
{
type zeroGradient;
}
SLIPWALL
{
type zeroGradient;
}
OUTLET
{
type zeroGradient;
}
CYCLIC_half0
{
type cyclic;
}
CYCLIC_half1
{
type cyclic;
}
}
// ************************************************************************* //

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,25 @@
/*--------------------------------*- 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 dictionary;
location "constant";
object SOxProperties;
}
fuelSourceNames ( reactingCloud1:rhoTrans_C7H16 );
nitrogenMassInFuels ( 0.01 );
instantaneousRadicals false;
calculateFuelNOx true;
// ************************************************************************* //

View file

@ -0,0 +1,70 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 2.3.x |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class polyBoundaryMesh;
location "1/polyMesh";
object boundary;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
6
(
INLET
{
type patch;
nFaces 279;
startFace 88864;
}
WALL
{
type wall;
nFaces 360;
startFace 89143;
}
SLIPWALL
{
type wall;
nFaces 1062;
startFace 89503;
}
OUTLET
{
type patch;
nFaces 477;
startFace 90565;
}
CYCLIC_half0
{
type cyclic;
inGroups 1(cyclic);
nFaces 2009;
startFace 91042;
matchTolerance 0.0001;
transform rotational;
neighbourPatch CYCLIC_half1;
rotationAxis (1 0 0);
rotationCentre (0 0 0);
}
CYCLIC_half1
{
type cyclic;
inGroups 1(cyclic);
nFaces 2009;
startFace 93051;
matchTolerance 0.0001;
transform rotational;
neighbourPatch CYCLIC_half0;
rotationAxis (1 0 0);
rotationCentre (0 0 0);
}
)
// ************************************************************************* //

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,21 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 2.3.x |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class regIOobject;
location "1/polyMesh";
object pointZones;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
0
()
// ************************************************************************* //

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,49 @@
/*--------------------------------*- 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;
location "system";
object controlDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
application NOxFoam;
startFoam latestTime;
startTime 0;
stopAt endTime;
endTime 50000;
deltaT 1;
writeControl timeStep;
writeInterval 1000;
purgeWrite 0;
writeFormat ascii;
writePrecision 10;
writeCompression uncompressed;
timeFormat general;
timePrecision 6;
runTimeModifiable yes;
// ************************************************************************* //

View file

@ -0,0 +1,57 @@
// The FOAM Project // File: decomposeParDict
/*
-------------------------------------------------------------------------------
========= | dictionary
\\ / |
\\ / | Name: decomposeParDict
\\ / | Family: FoamX configuration file
\\/ |
F ield | FOAM version: 2.1
O peration | Product of Nabla Ltd.
A and |
M anipulation | Email: Enquiries@Nabla.co.uk
-------------------------------------------------------------------------------
*/
// FoamX Case Dictionary.
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object decomposeParDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
numberOfSubdomains 24;
method scotch;
simpleCoeffs
{
n (1 1 2);
delta 0.001;
}
hierarchicalCoeffs
{
n (1 1 1);
delta 0.001;
order xyz;
}
manualCoeffs
{
dataFile "";
}
distributed no;
roots
(
);
// ************************************************************************* //

View file

@ -0,0 +1,56 @@
/*--------------------------------*- 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.0;
format ascii;
class dictionary;
location "system";
object fvSchemes;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
ddtSchemes
{
default steadyState;
}
gradSchemes
{
default Gauss linear;
}
divSchemes
{
default none;
div(phi,NO) bounded Gauss linearUpwind grad(NO);
div(phi,NH3) bounded Gauss linearUpwind grad(NH3);
}
laplacianSchemes
{
default Gauss linear uncorrected;
}
interpolationSchemes
{
default linear;
}
snGradSchemes
{
default uncorrected;
}
wallDist
{
method meshWave;
}
// ************************************************************************* //

View file

@ -0,0 +1,51 @@
/*--------------------------------*- 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.0;
format ascii;
class dictionary;
location "system";
object fvSolution;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
solvers
{
"(NO|NH3)"
{
solver smoothSolver;
smoother GaussSeidel;
tolerance 0;
relTol 0.1;
maxIter 20;
}
}
SIMPLE
{
nCorrectors 2;
nNonOrthogonalCorrectors 0;
rhoMin 0.1;
rhoMax 1.5;
}
relaxationFactors
{
fields
{
}
equations
{
NH3 0.001;
NO 0.01;
}
}
// ************************************************************************* //

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,21 @@
/*--------------------------------*- 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 dictionary;
location "constant";
object SOxProperties;
}
fuelSourceNames ( reactingCloud1:rhoTrans_C7H16 );
sulfurMassInFuels ( 0.01 );
// ************************************************************************* //

View file

@ -0,0 +1,70 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 2.3.x |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class polyBoundaryMesh;
location "1/polyMesh";
object boundary;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
6
(
INLET
{
type patch;
nFaces 279;
startFace 88864;
}
WALL
{
type wall;
nFaces 360;
startFace 89143;
}
SLIPWALL
{
type wall;
nFaces 1062;
startFace 89503;
}
OUTLET
{
type patch;
nFaces 477;
startFace 90565;
}
CYCLIC_half0
{
type cyclic;
inGroups 1(cyclic);
nFaces 2009;
startFace 91042;
matchTolerance 0.0001;
transform rotational;
neighbourPatch CYCLIC_half1;
rotationAxis (1 0 0);
rotationCentre (0 0 0);
}
CYCLIC_half1
{
type cyclic;
inGroups 1(cyclic);
nFaces 2009;
startFace 93051;
matchTolerance 0.0001;
transform rotational;
neighbourPatch CYCLIC_half0;
rotationAxis (1 0 0);
rotationCentre (0 0 0);
}
)
// ************************************************************************* //

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,21 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 2.3.x |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class regIOobject;
location "1/polyMesh";
object pointZones;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
0
()
// ************************************************************************* //

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,49 @@
/*--------------------------------*- 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;
location "system";
object controlDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
application SOxFoam;
startFoam latestTime;
startTime 0;
stopAt endTime;
endTime 3000;
deltaT 1;
writeControl timeStep;
writeInterval 300;
purgeWrite 0;
writeFormat ascii;
writePrecision 10;
writeCompression uncompressed;
timeFormat general;
timePrecision 6;
runTimeModifiable yes;
// ************************************************************************* //

View file

@ -0,0 +1,78 @@
// The FOAM Project // File: decomposeParDict
/*
-------------------------------------------------------------------------------
========= | dictionary
\\ / |
\\ / | Name: decomposeParDict
\\ / | Family: FoamX configuration file
\\/ |
F ield | FOAM version: 2.1
O peration | Product of Nabla Ltd.
A and |
M anipulation | Email: Enquiries@Nabla.co.uk
-------------------------------------------------------------------------------
*/
// FoamX Case Dictionary.
FoamFile
{
version 2.0;
format ascii;
// root "/home/warhol/chris/foam/chris2.1/run/tutorials/interFoam";
// case "damBreak";
// instance "system";
// local "";
class dictionary;
object decomposeParDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
numberOfSubdomains 24; //12;
method scotch; //metis;
simpleCoeffs
{
n (1 1 2);
delta 0.001;
}
hierarchicalCoeffs
{
n (1 1 1);
delta 0.001;
order xyz;
}
metisCoeffs
{
processorWeights
(
1
1
1
1
1
1
1
);
}
manualCoeffs
{
dataFile "";
}
distributed no;
roots
(
);
// ************************************************************************* //

View file

@ -0,0 +1,55 @@
/*--------------------------------*- 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.0;
format ascii;
class dictionary;
location "system";
object fvSchemes;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
ddtSchemes
{
default steadyState;
}
gradSchemes
{
default Gauss linear;
}
divSchemes
{
default none;
div(phi,SO2) bounded Gauss linearUpwind grad(SO2);
}
laplacianSchemes
{
default Gauss linear uncorrected;
}
interpolationSchemes
{
default linear;
}
snGradSchemes
{
default uncorrected;
}
wallDist
{
method meshWave;
}
// ************************************************************************* //

View file

@ -0,0 +1,51 @@
/*--------------------------------*- 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.0;
format ascii;
class dictionary;
location "system";
object fvSolution;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
solvers
{
SO2
{
solver smoothSolver;
smoother GaussSeidel;
tolerance 0;
relTol 0.1;
maxIter 20;
}
}
SIMPLE
{
nCorrectors 2;
nNonOrthogonalCorrectors 0;
rhoMin 0.1;
rhoMax 1.5;
}
relaxationFactors
{
fields
{
}
equations
{
".*" 0.7;
}
}
// ************************************************************************* //