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
00027
00028
00029
00030
00031
00032
00033
00034
00035 #ifndef egrMixture_H
00036 #define egrMixture_H
00037
00038 #include <reactionThermophysicalModels/basicMultiComponentMixture.H>
00039
00040
00041
00042 namespace Foam
00043 {
00044
00045
00046
00047
00048
00049 template<class ThermoType>
00050 class egrMixture
00051 :
00052 public basicMultiComponentMixture
00053 {
00054
00055
00056 static const int nSpecies_ = 3;
00057 static const char* specieNames_[3];
00058
00059 dimensionedScalar stoicRatio_;
00060
00061 ThermoType fuel_;
00062 ThermoType oxidant_;
00063 ThermoType products_;
00064
00065 mutable ThermoType mixture_;
00066
00067
00068 volScalarField& ft_;
00069
00070
00071 volScalarField& b_;
00072
00073
00074 volScalarField& egr_;
00075
00076
00077 egrMixture(const egrMixture<ThermoType>&);
00078
00079
00080 public:
00081
00082
00083 typedef ThermoType thermoType;
00084
00085
00086
00087
00088
00089 egrMixture(const dictionary&, const fvMesh&);
00090
00091
00092
00093 virtual ~egrMixture()
00094 {}
00095
00096
00097
00098
00099 const dimensionedScalar& stoicRatio() const
00100 {
00101 return stoicRatio_;
00102 }
00103
00104 const ThermoType& mixture
00105 (
00106 const scalar,
00107 const scalar,
00108 const scalar
00109 ) const;
00110
00111 const ThermoType& cellMixture(const label celli) const
00112 {
00113 return mixture(ft_[celli], b_[celli], egr_[celli]);
00114 }
00115
00116 const ThermoType& patchFaceMixture
00117 (
00118 const label patchi,
00119 const label facei
00120 ) const
00121 {
00122 return mixture
00123 (
00124 ft_.boundaryField()[patchi][facei],
00125 b_.boundaryField()[patchi][facei],
00126 egr_.boundaryField()[patchi][facei]
00127 );
00128 }
00129
00130 const ThermoType& cellReactants(const label celli) const
00131 {
00132 return mixture(ft_[celli], 1, egr_[celli]);
00133 }
00134
00135 const ThermoType& patchFaceReactants
00136 (
00137 const label patchi,
00138 const label facei
00139 ) const
00140 {
00141 return mixture
00142 (
00143 ft_.boundaryField()[patchi][facei],
00144 1,
00145 egr_.boundaryField()[patchi][facei]
00146 );
00147 }
00148
00149 const ThermoType& cellProducts(const label celli) const
00150 {
00151 return mixture(ft_[celli], 0, 0);
00152 }
00153
00154 const ThermoType& patchFaceProducts
00155 (
00156 const label patchi,
00157 const label facei
00158 ) const
00159 {
00160 return mixture
00161 (
00162 ft_.boundaryField()[patchi][facei],
00163 0,
00164 0
00165 );
00166 }
00167
00168
00169 void read(const dictionary&);
00170 };
00171
00172
00173
00174
00175 }
00176
00177
00178
00179 #ifdef NoRepository
00180 # include <reactionThermophysicalModels/egrMixture.C>
00181 #endif
00182
00183
00184
00185 #endif
00186
00187