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 "veryInhomogeneousMixture.H"
00027 #include <finiteVolume/fvMesh.H>
00028
00029
00030
00031 template<class ThermoType>
00032 const char* Foam::veryInhomogeneousMixture<ThermoType>::specieNames_[3] =
00033 {"ft", "fu", "bprog"};
00034
00035
00036
00037
00038 template<class ThermoType>
00039 Foam::veryInhomogeneousMixture<ThermoType>::veryInhomogeneousMixture
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 fu_(Y("fu")),
00062 b_(Y("bprog"))
00063 {}
00064
00065
00066
00067
00068 template<class ThermoType>
00069 const ThermoType& Foam::veryInhomogeneousMixture<ThermoType>::mixture
00070 (
00071 const scalar ft,
00072 const scalar fu
00073 ) const
00074 {
00075 if (ft < 0.0001)
00076 {
00077 return oxidant_;
00078 }
00079 else
00080 {
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::veryInhomogeneousMixture<ThermoType>::read
00095 (
00096 const dictionary& thermoDict
00097 )
00098 {
00099 fuel_ = ThermoType(thermoDict.lookup("fuel"));
00100 oxidant_ = ThermoType(thermoDict.lookup("oxidant"));
00101 products_ = ThermoType(thermoDict.lookup("burntProducts"));
00102 }
00103
00104
00105