@@ -88,7 +88,7 @@ namespace GRINS
88
88
// ! Not used
89
89
virtual libMesh::UniquePtr<libMesh::FEMFunctionBase<libMesh::Real> > clone () const ;
90
90
91
- private :
91
+ protected :
92
92
// ! Antioch/Cantera object
93
93
SharedPtr<Chemistry> _chemistry;
94
94
@@ -130,13 +130,46 @@ namespace GRINS
130
130
std::vector<std::vector<libMesh::Real> > _voigt_coeffs;
131
131
132
132
// ! Absorption coefficient [cm^-1]
133
- libMesh::Real kv (libMesh::Real P,libMesh::Real T, libMesh::Real X, libMesh::Real M);
133
+ libMesh::Real kv (libMesh::Real T, libMesh::Real P, std::vector<libMesh::Real> Y, unsigned int i);
134
+
135
+ // ! Absorption coefficient temperature derivative
136
+ libMesh::Real d_kv_dT (libMesh::Real T, libMesh::Real P, std::vector<libMesh::Real> Y, unsigned int i);
137
+
138
+ // ! Absorption coefficient pressure derivative
139
+ libMesh::Real d_kv_dP (libMesh::Real T, libMesh::Real P, std::vector<libMesh::Real> Y, unsigned int i);
140
+
141
+ // ! Absorption coefficient mass fraction derivative
142
+ libMesh::Real d_kv_dY (libMesh::Real T, libMesh::Real P, std::vector<libMesh::Real> Y, unsigned int i);
143
+
144
+ // ! Linestrength [cm^-2 atm^-1]
145
+ libMesh::Real Sw (libMesh::Real T, libMesh::Real P, unsigned int i);
146
+
147
+ // ! Linestrength temperature derivative
148
+ libMesh::Real dS_dT (libMesh::Real T, libMesh::Real P, unsigned int i);
149
+
150
+ // ! Linestrength pressure derivative
151
+ libMesh::Real dS_dP (libMesh::Real T, libMesh::Real P, unsigned int i);
134
152
135
153
// ! Doppler broadening [cm^-1]
136
- libMesh::Real nu_D (libMesh::Real nu, libMesh::Real T,libMesh::Real M);
154
+ libMesh::Real nu_D (libMesh::Real T, libMesh::Real P, unsigned int i);
155
+
156
+ // ! Doppler broadening temperature derivative
157
+ libMesh::Real d_nuD_dT (libMesh::Real T, libMesh::Real P, unsigned int i);
158
+
159
+ // ! Doppler broadening pressure derivative
160
+ libMesh::Real d_nuD_dP (libMesh::Real T, unsigned int i);
137
161
138
162
// ! Collisional broadening [cm^-1]
139
- libMesh::Real nu_C (libMesh::Real T,libMesh::Real X,libMesh::Real P,unsigned int index);
163
+ libMesh::Real nu_C (libMesh::Real T, libMesh::Real P, std::vector<libMesh::Real> Y, unsigned int i);
164
+
165
+ // ! Collisional broadening temperature derivative
166
+ libMesh::Real d_nuC_dT (libMesh::Real T, libMesh::Real P, std::vector<libMesh::Real> Y, unsigned int i);
167
+
168
+ // ! Collisional broadening pressure derivative
169
+ libMesh::Real d_nuC_dP (libMesh::Real T, std::vector<libMesh::Real> Y, unsigned int i);
170
+
171
+ // ! Collisional broadening mass fraction derivative
172
+ libMesh::Real d_nuC_dY (libMesh::Real T, libMesh::Real P, std::vector<libMesh::Real> Y, unsigned int i);
140
173
141
174
// ! Calculate the Voigt profile [cm^-1]
142
175
/* !
@@ -146,11 +179,53 @@ namespace GRINS
146
179
McLean A, Mitchell C, Swanston D\n
147
180
Journal of Electron Spectroscopy and Related Phenomena 1994 vol: 69 (2) pp: 125-132
148
181
*/
149
- libMesh::Real voigt (libMesh::Real nu_D, libMesh::Real nu_c, libMesh::Real nu);
182
+ libMesh::Real voigt (libMesh::Real T, libMesh::Real P, std::vector<libMesh::Real> Y, unsigned int i);
183
+
184
+ // ! Voigt profile temperature derivative
185
+ libMesh::Real d_voigt_dT (libMesh::Real T, libMesh::Real P, std::vector<libMesh::Real> Y, unsigned int i);
186
+
187
+ // ! Voigt profile pressure derivative
188
+ libMesh::Real d_voigt_dP (libMesh::Real T, libMesh::Real P, std::vector<libMesh::Real> Y, unsigned int i);
189
+
190
+ // ! Voigt profile mass fraction derivative
191
+ libMesh::Real d_voigt_dY (libMesh::Real T, libMesh::Real P, std::vector<libMesh::Real> Y, unsigned int i);
150
192
151
193
// ! Initialize the coeff matrix for calculating the Voigt profile
152
194
void init_voigt ();
153
195
196
+ // ! Voigt a parameter
197
+ libMesh::Real voigt_a (libMesh::Real T, libMesh::Real P, std::vector<libMesh::Real> Y, unsigned int i);
198
+
199
+ // ! Voigt a parameter temperature derivative
200
+ libMesh::Real d_voigt_a_dT (libMesh::Real T, libMesh::Real P, std::vector<libMesh::Real> Y, unsigned int i);
201
+
202
+ // ! Voigt a parameter pressure derivative
203
+ libMesh::Real d_voigt_a_dP (libMesh::Real T, libMesh::Real P, std::vector<libMesh::Real> Y, unsigned int i);
204
+
205
+ // ! Voigt a parameter mass fraction derivative
206
+ libMesh::Real d_voigt_a_dY (libMesh::Real T, libMesh::Real P, std::vector<libMesh::Real> Y, unsigned int i);
207
+
208
+ // ! Voigt w parameter
209
+ libMesh::Real voigt_w (libMesh::Real T, libMesh::Real P, unsigned int i);
210
+
211
+ // ! Voigt w parameter temperature derivative
212
+ libMesh::Real d_voigt_w_dT (libMesh::Real T, libMesh::Real P, unsigned int i);
213
+
214
+ // ! Voigt w parameter pressure derivative
215
+ libMesh::Real d_voigt_w_dP (libMesh::Real T, libMesh::Real P, unsigned int i);
216
+
217
+ // ! Pressure shift of linecenter wavenumber
218
+ libMesh::Real get_nu (libMesh::Real P, unsigned int i);
219
+
220
+ // ! Derivative of pressure-shifted linecenter wavenumber
221
+ libMesh::Real d_nu_dP (unsigned int i);
222
+
223
+ // ! Mole fraction derivative with respect to mass fraction
224
+ libMesh::Real dX_dY (std::vector<libMesh::Real> Y);
225
+
226
+ // ! Partition Function derivative (finite difference)
227
+ libMesh::Real dQ_dT (libMesh::Real T, unsigned int iso);
228
+
154
229
// ! User should not call empty constructor
155
230
AbsorptionCoeff ();
156
231
};
0 commit comments