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 "dieselMixture.H"
00027 #include <finiteVolume/fvMesh.H>
00028
00029
00030
00031 template<class ThermoType>
00032 const char* Foam::dieselMixture<ThermoType>::specieNames_[2] = {"ft", "fu"};
00033
00034
00035
00036
00037 template<class ThermoType>
00038 Foam::dieselMixture<ThermoType>::dieselMixture
00039 (
00040 const dictionary& thermoDict,
00041 const fvMesh& mesh
00042 )
00043 :
00044 basicMultiComponentMixture
00045 (
00046 thermoDict,
00047 speciesTable(nSpecies_, specieNames_),
00048 mesh
00049 ),
00050
00051 stoicRatio_(thermoDict.lookup("stoichiometricAirFuelMassRatio")),
00052
00053 fuel_(thermoDict.lookup("fuel")),
00054 oxidant_(thermoDict.lookup("oxidant")),
00055 products_(thermoDict.lookup("burntProducts")),
00056
00057 mixture_("mixture", fuel_),
00058
00059 ft_(Y("ft")),
00060 fu_(Y("fu"))
00061 {}
00062
00063
00064
00065
00066 template<class ThermoType>
00067 const ThermoType& Foam::dieselMixture<ThermoType>::mixture
00068 (
00069 const scalar ft,
00070 const scalar fu
00071 ) const
00072 {
00073 if (ft < 0.0001)
00074 {
00075 return oxidant_;
00076 }
00077 else
00078 {
00079 scalar ox = 1 - ft - (ft - fu)*stoicRatio().value();
00080 scalar pr = 1 - fu - ox;
00081
00082 mixture_ = fu/fuel_.W()*fuel_;
00083 mixture_ += ox/oxidant_.W()*oxidant_;
00084 mixture_ += pr/products_.W()*products_;
00085
00086 return mixture_;
00087 }
00088 }
00089
00090
00091 template<class ThermoType>
00092 void Foam::dieselMixture<ThermoType>::read(const dictionary& thermoDict)
00093 {
00094 fuel_ = ThermoType(thermoDict.lookup("fuel"));
00095 oxidant_ = ThermoType(thermoDict.lookup("oxidant"));
00096 products_ = ThermoType(thermoDict.lookup("burntProducts"));
00097 }
00098
00099
00100