25 bool MultiTransport::hasInternalModes(
size_t j)
27 #ifdef CHEMKIN_COMPATIBILITY_MODE
41 doublereal prefactor = 16.0*
m_temp/25.0;
43 for (
size_t i = 0; i <
m_nsp; i++) {
48 for (
size_t k = 0; k <
m_nsp; k++) {
53 for (
size_t j = 0; j !=
m_nsp; ++j) {
54 m_Lmatrix(i,j) = prefactor * x[j]
65 doublereal prefactor = 1.6*
m_temp;
67 doublereal sum, wj, xj;
68 for (
size_t j = 0; j <
m_nsp; j++) {
73 for (
size_t i = 0; i <
m_nsp; i++) {
74 m_Lmatrix(i,j + m_nsp) = - prefactor * x[i] * xj *
m_mw[i] *
80 sum -= m_Lmatrix(i,j+m_nsp);
82 m_Lmatrix(j,j+m_nsp) += sum;
88 for (
size_t j = 0; j <
m_nsp; j++) {
89 for (
size_t i = 0; i <
m_nsp; i++) {
90 m_Lmatrix(i+m_nsp,j) = m_Lmatrix(j,i+m_nsp);
95 void MultiTransport::eval_L1010(
const doublereal* x)
98 const doublereal fiveover3pi = 5.0/(3.0*
Pi);
99 doublereal prefactor = (16.0*
m_temp)/25.0;
101 doublereal constant1, wjsq, constant2, constant3, constant4,
102 fourmj, threemjsq, sum, sumwij;;
103 doublereal term1, term2;
105 for (
size_t j = 0; j <
m_nsp; j++) {
109 constant1 = prefactor*x[j];
111 constant2 = 13.75*wjsq;
112 constant3 = m_crot[j]/m_rotrelax[j];
113 constant4 = 7.5*wjsq;
114 fourmj = 4.0*m_mw[j];
115 threemjsq = 3.0*m_mw[j]*m_mw[j];
117 for (
size_t i = 0; i <
m_nsp; i++) {
119 sumwij = m_mw[i] + m_mw[j];
120 term1 =
m_bdiff(i,j) * sumwij*sumwij;
121 term2 = fourmj*
m_astar(i,j)*(1.0 + fiveover3pi*
123 (m_crot[i]/m_rotrelax[i])));
125 m_Lmatrix(i+m_nsp,j+m_nsp) = constant1*x[i]*m_mw[i] /(m_mw[j]*term1) *
126 (constant2 - threemjsq*
m_bstar(i,j)
129 sum += x[i] /(term1) *
130 (constant4 + m_mw[i]*m_mw[i]*
131 (6.25 - 3.0*
m_bstar(i,j)) + term2*m_mw[i]);
134 m_Lmatrix(j+m_nsp,j+m_nsp) -= sum*constant1;
138 void MultiTransport::eval_L1001(
const doublereal* x)
141 doublereal prefactor = 32.00*
m_temp/(5.00*
Pi);
142 doublereal constant, sum;
145 for (
size_t j = 0; j <
m_nsp; j++) {
147 if (hasInternalModes(j)) {
148 constant = prefactor*m_mw[j]*x[j]*m_crot[j]/(m_cinternal[j]*m_rotrelax[j]);
150 for (
size_t i = 0; i <
m_nsp; i++) {
152 m_Lmatrix(i+m_nsp,j+n2) = constant *
m_astar(j,i) * x[i] /
153 ((m_mw[j] + m_mw[i]) *
m_bdiff(j,i));
154 sum += m_Lmatrix(i+m_nsp,j+n2);
157 m_Lmatrix(j+m_nsp,j+n2) += sum;
159 for (
size_t i = 0; i <
m_nsp; i++) {
160 m_Lmatrix(i+m_nsp,j+n2) = 0.0;
167 void MultiTransport::eval_L0001()
170 for (
size_t j = 0; j <
m_nsp; j++) {
171 for (
size_t i = 0; i <
m_nsp; i++) {
172 m_Lmatrix(i,j+n2) = 0.0;
178 void MultiTransport::eval_L0100()
181 for (
size_t j = 0; j <
m_nsp; j++)
182 for (
size_t i = 0; i <
m_nsp; i++) {
183 m_Lmatrix(i+n2,j) = 0.0;
188 void MultiTransport::eval_L0110()
191 for (
size_t j = 0; j <
m_nsp; j++)
192 for (
size_t i = 0; i <
m_nsp; i++) {
193 m_Lmatrix(i+n2,j+m_nsp) = m_Lmatrix(j+m_nsp,i+n2);
197 void MultiTransport::eval_L0101(
const doublereal* x)
200 const doublereal fivepi = 5.00*
Pi;
201 const doublereal eightoverpi = 8.0 /
Pi;
203 doublereal prefactor = 4.00*
m_temp;
205 doublereal constant1, constant2, diff_int, sum;
206 for (
size_t i = 0; i <
m_nsp; i++) {
207 if (hasInternalModes(i)) {
209 constant1 = prefactor*x[i]/m_cinternal[i];
210 constant2 = 12.00*m_mw[i]*m_crot[i] /
211 (fivepi*m_cinternal[i]*m_rotrelax[i]);
213 for (
size_t k = 0; k <
m_nsp; k++) {
216 m_Lmatrix(k+n2,i+n2) = 0.0;
217 sum += x[k]/diff_int;
218 if (k != i) sum += x[k]*
m_astar(i,k)*constant2 /
222 m_Lmatrix(i+n2,i+n2) =
223 - eightoverpi*m_mw[i]*x[i]*x[i]*m_crot[i] /
227 for (
size_t k = 0; k <
m_nsp; k++) {
228 m_Lmatrix(i+n2,i+n2) = 1.0;