Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #include "inhomogeneousMixture.H"
00027 #include <finiteVolume/fvMesh.H>
00028
00029
00030
00031 template<class ThermoType>
00032 const char* Foam::inhomogeneousMixture<ThermoType>::specieNames_[2] =
00033 {"ft", "bprog"};
00034
00035
00036
00037
00038 template<class ThermoType>
00039 Foam::inhomogeneousMixture<ThermoType>::inhomogeneousMixture
00040 (
00041 const dictionary& thermoDict,
00042 const fvMesh& mesh
00043 )
00044 :
00045 basicMultiComponentMixture
00046 (
00047 thermoDict,
00048 speciesTable(nSpecies_, specieNames_),
00049 mesh
00050 ),
00051
00052 stoicRatio_(thermoDict.lookup("stoichiometricAirFuelMassRatio")),
00053
00054 fuel_(thermoDict.lookup("fuel")),
00055 oxidant_(thermoDict.lookup("oxidant")),
00056 products_(thermoDict.lookup("burntProducts")),
00057
00058 mixture_("mixture", fuel_),
00059
00060 ft_(Y("ft")),
00061 b_(Y("bprog"))
00062 {}
00063
00064
00065
00066
00067 template<class ThermoType>
00068 const ThermoType& Foam::inhomogeneousMixture<ThermoType>::mixture
00069 (
00070 const scalar ft,
00071 const scalar b
00072 ) const
00073 {
00074 if (ft < 0.0001)
00075 {
00076 return oxidant_;
00077 }
00078 else
00079 {
00080 scalar fu = b*ft + (1.0 - b)*fres(ft, stoicRatio().value());
00081 scalar ox = 1 - ft - (ft - fu)*stoicRatio().value();
00082 scalar pr = 1 - fu - ox;
00083
00084 mixture_ = fu/fuel_.W()*fuel_;
00085 mixture_ += ox/oxidant_.W()*oxidant_;
00086 mixture_ += pr/products_.W()*products_;
00087
00088 return mixture_;
00089 }
00090 }
00091
00092
00093 template<class ThermoType>
00094 void Foam::inhomogeneousMixture<ThermoType>::read(const dictionary& thermoDict)
00095 {
00096 stoicRatio_ = thermoDict.lookup("stoichiometricAirFuelMassRatio");
00097
00098 fuel_ = ThermoType(thermoDict.lookup("fuel"));
00099 oxidant_ = ThermoType(thermoDict.lookup("oxidant"));
00100 products_ = ThermoType(thermoDict.lookup("burntProducts"));
00101 }
00102
00103
00104