Fixed signed/unsigned comparisions in Transport
This commit is contained in:
parent
9439615c71
commit
c0dfd33480
14 changed files with 179 additions and 249 deletions
|
|
@ -82,9 +82,8 @@ namespace Cantera {
|
|||
|
||||
m_wratjk.resize(m_nsp, m_nsp, 0.0);
|
||||
m_wratkj1.resize(m_nsp, m_nsp, 0.0);
|
||||
int j, k;
|
||||
for (j = 0; j < m_nsp; j++)
|
||||
for (k = j; k < m_nsp; k++) {
|
||||
for (size_t j = 0; j < m_nsp; j++)
|
||||
for (size_t k = j; k < m_nsp; k++) {
|
||||
m_wratjk(j,k) = sqrt(m_mw[j]/m_mw[k]);
|
||||
m_wratjk(k,j) = sqrt(m_wratjk(j,k));
|
||||
m_wratkj1(j,k) = sqrt(1.0 + m_mw[k]/m_mw[j]);
|
||||
|
|
@ -155,7 +154,7 @@ namespace Cantera {
|
|||
multiply(m_phi, DATA_PTR(m_molefracs), DATA_PTR(m_spwork));
|
||||
|
||||
m_viscmix = 0.0;
|
||||
for (int k = 0; k < m_nsp; k++) {
|
||||
for (size_t k = 0; k < m_nsp; k++) {
|
||||
m_viscmix += m_molefracs[k] * m_visc[k]/m_spwork[k]; //denom;
|
||||
}
|
||||
return m_viscmix;
|
||||
|
|
@ -167,8 +166,6 @@ namespace Cantera {
|
|||
|
||||
//================================================================================================
|
||||
void AqueousTransport::getBinaryDiffCoeffs(const size_t ld, doublereal* const d) {
|
||||
int i,j;
|
||||
|
||||
update_T();
|
||||
|
||||
// if necessary, evaluate the binary diffusion coefficents
|
||||
|
|
@ -177,8 +174,8 @@ namespace Cantera {
|
|||
doublereal pres = m_thermo->pressure();
|
||||
|
||||
doublereal rp = 1.0/pres;
|
||||
for (i = 0; i < m_nsp; i++)
|
||||
for (j = 0; j < m_nsp; j++) {
|
||||
for (size_t i = 0; i < m_nsp; i++)
|
||||
for (size_t j = 0; j < m_nsp; j++) {
|
||||
d[ld*j + i] = rp * m_bdiff(i,j);
|
||||
}
|
||||
}
|
||||
|
|
@ -285,7 +282,7 @@ namespace Cantera {
|
|||
* \vec{j}_k = -n M_k D_k \nabla X_k.
|
||||
* \f]
|
||||
*/
|
||||
void AqueousTransport::getSpeciesFluxes(int ndim,
|
||||
void AqueousTransport::getSpeciesFluxes(size_t ndim,
|
||||
const doublereal* grad_T,
|
||||
int ldx, const doublereal* grad_X,
|
||||
int ldf, doublereal* fluxes) {
|
||||
|
|
@ -304,7 +301,7 @@ namespace Cantera {
|
|||
* \vec{j}_k = -n M_k D_k \nabla X_k.
|
||||
* \f]
|
||||
*/
|
||||
void AqueousTransport::getSpeciesFluxesExt(int ldf, doublereal* fluxes) {
|
||||
void AqueousTransport::getSpeciesFluxesExt(size_t ldf, doublereal* fluxes) {
|
||||
update_T();
|
||||
update_C();
|
||||
|
||||
|
|
|
|||
|
|
@ -279,7 +279,7 @@ namespace Cantera {
|
|||
*
|
||||
*
|
||||
*/
|
||||
virtual void getSpeciesFluxes(int ndim,
|
||||
virtual void getSpeciesFluxes(size_t ndim,
|
||||
const doublereal* grad_T,
|
||||
int ldx, const doublereal* grad_X,
|
||||
int ldf, doublereal* fluxes);
|
||||
|
|
@ -292,7 +292,7 @@ namespace Cantera {
|
|||
*
|
||||
*
|
||||
*/
|
||||
virtual void getSpeciesFluxesExt(int ldf, doublereal* fluxes);
|
||||
virtual void getSpeciesFluxesExt(size_t ldf, doublereal* fluxes);
|
||||
|
||||
|
||||
//! Initialize the transport object
|
||||
|
|
@ -638,7 +638,7 @@ namespace Cantera {
|
|||
/*!
|
||||
* Either 1, 2, or 3
|
||||
*/
|
||||
int m_nDim;
|
||||
size_t m_nDim;
|
||||
};
|
||||
}
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -91,13 +91,12 @@ namespace Cantera {
|
|||
|
||||
void DustyGasTransport::updateBinaryDiffCoeffs() {
|
||||
if (m_bulk_ok) return;
|
||||
int n,m;
|
||||
|
||||
// get the gaseous binary diffusion coefficients
|
||||
m_gastran->getBinaryDiffCoeffs(m_nsp, m_d.ptrColumn(0));
|
||||
doublereal por2tort = m_porosity / m_tortuosity;
|
||||
for (n = 0; n < m_nsp; n++)
|
||||
for (m = 0; m < m_nsp; m++)
|
||||
for (size_t n = 0; n < m_nsp; n++)
|
||||
for (size_t m = 0; m < m_nsp; m++)
|
||||
m_d(n,m) *= por2tort;
|
||||
m_bulk_ok = true;
|
||||
}
|
||||
|
|
@ -106,7 +105,7 @@ namespace Cantera {
|
|||
if (m_knudsen_ok) return;
|
||||
doublereal K_g = m_pore_radius * m_porosity / m_tortuosity;
|
||||
const doublereal TwoThirds = 2.0/3.0;
|
||||
for (int k = 0; k < m_nsp; k++) {
|
||||
for (size_t k = 0; k < m_nsp; k++) {
|
||||
m_dk[k] = TwoThirds * K_g * sqrt((8.0 * GasConstant * m_temp)/
|
||||
(Pi * m_mw[k]));
|
||||
}
|
||||
|
|
@ -117,16 +116,15 @@ namespace Cantera {
|
|||
void DustyGasTransport::eval_H_matrix() {
|
||||
updateBinaryDiffCoeffs();
|
||||
updateKnudsenDiffCoeffs();
|
||||
int k,l,j;
|
||||
doublereal sum;
|
||||
for (k = 0; k < m_nsp; k++) {
|
||||
for (size_t k = 0; k < m_nsp; k++) {
|
||||
|
||||
// evaluate off-diagonal terms
|
||||
for (l = 0; l < m_nsp; l++) m_multidiff(k,l) = -m_x[k]/m_d(k,l);
|
||||
for (size_t l = 0; l < m_nsp; l++) m_multidiff(k,l) = -m_x[k]/m_d(k,l);
|
||||
|
||||
// evaluate diagonal term
|
||||
sum = 0.0;
|
||||
for (j = 0; j < m_nsp; j++) if (j != k) sum += m_x[j]/m_d(k,j);
|
||||
for (size_t j = 0; j < m_nsp; j++) if (j != k) sum += m_x[j]/m_d(k,j);
|
||||
m_multidiff(k,k) = 1.0/m_dk[k] + sum;
|
||||
}
|
||||
}
|
||||
|
|
@ -160,7 +158,6 @@ namespace Cantera {
|
|||
|
||||
void DustyGasTransport::getMolarFluxes(const doublereal* state1,
|
||||
const doublereal* state2, double delta, double* fluxes) {
|
||||
int k;
|
||||
doublereal conc1, conc2;
|
||||
doublereal* cbar = DATA_PTR(m_spwork);
|
||||
doublereal* gradc = DATA_PTR(m_spwork2);
|
||||
|
|
@ -171,7 +168,7 @@ namespace Cantera {
|
|||
const doublereal* y1 = state1 + 2;
|
||||
const doublereal* y2 = state2 + 2;
|
||||
doublereal c1sum = 0.0, c2sum = 0.0;
|
||||
for (k = 0; k < m_nsp; k++) {
|
||||
for (size_t k = 0; k < m_nsp; k++) {
|
||||
conc1 = rho1*y1[k]/m_mw[k];
|
||||
conc2 = rho2*y2[k]/m_mw[k];
|
||||
cbar[k] = 0.5*(conc1 + conc2);
|
||||
|
|
@ -230,10 +227,9 @@ namespace Cantera {
|
|||
}
|
||||
|
||||
void DustyGasTransport::getMultiDiffCoeffs(const size_t ld, doublereal* const d) {
|
||||
int i,j;
|
||||
updateMultiDiffCoeffs();
|
||||
for (i = 0; i < m_nsp; i++) {
|
||||
for (j = 0; j < m_nsp; j++) {
|
||||
for (size_t i = 0; i < m_nsp; i++) {
|
||||
for (size_t j = 0; j < m_nsp; j++) {
|
||||
d[ld*j + i] = m_multidiff(i,j);
|
||||
}
|
||||
}
|
||||
|
|
@ -257,8 +253,7 @@ namespace Cantera {
|
|||
|
||||
// add an offset to avoid a pure species condition
|
||||
// (check - this may be unnecessary)
|
||||
int k;
|
||||
for (k = 0; k < m_nsp; k++) {
|
||||
for (size_t k = 0; k < m_nsp; k++) {
|
||||
m_x[k] = fmaxx(MIN_X, m_x[k]);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -37,17 +37,16 @@ namespace Cantera {
|
|||
|
||||
doublereal prefactor = 16.0*m_temp/25.0;
|
||||
doublereal sum;
|
||||
int i, j, k;
|
||||
for (i = 0; i < m_nsp; i++)
|
||||
for (size_t i = 0; i < m_nsp; i++)
|
||||
{
|
||||
// subtract-off the k=i term to account for the first delta
|
||||
// function in Eq. (12.121)
|
||||
|
||||
sum = -x[i]/m_bdiff(i,i);
|
||||
for (k = 0; k < m_nsp; k++) sum += x[k]/m_bdiff(i,k);
|
||||
for (size_t k = 0; k < m_nsp; k++) sum += x[k]/m_bdiff(i,k);
|
||||
|
||||
sum /= m_mw[i];
|
||||
for (j = 0; j != m_nsp; ++j) {
|
||||
for (size_t j = 0; j != m_nsp; ++j) {
|
||||
m_Lmatrix(i,j) = prefactor * x[j]
|
||||
* ( m_mw[j] * sum + x[i]/m_bdiff(i,j) );
|
||||
}
|
||||
|
|
@ -65,13 +64,12 @@ namespace Cantera {
|
|||
doublereal prefactor = 1.6*m_temp;
|
||||
|
||||
doublereal sum, wj, xj;
|
||||
int i, j;
|
||||
for (j = 0; j < m_nsp; j++) {
|
||||
for (size_t j = 0; j < m_nsp; j++) {
|
||||
//constant = prefactor * x[j];
|
||||
xj = x[j];
|
||||
wj = m_mw[j];
|
||||
sum = 0.0;
|
||||
for (i = 0; i < m_nsp; i++) {
|
||||
for (size_t i = 0; i < m_nsp; i++) {
|
||||
m_Lmatrix(i,j + m_nsp) = - prefactor * x[i] * xj * m_mw[i] *
|
||||
(1.2 * m_cstar(j,i) - 1.0) /
|
||||
( (wj + m_mw[i]) * m_bdiff(j,i) );
|
||||
|
|
@ -89,9 +87,8 @@ namespace Cantera {
|
|||
////////////////////////////////////////////////////////////////////////
|
||||
|
||||
void MultiTransport::eval_L1000() {
|
||||
int i, j;
|
||||
for (j = 0; j < m_nsp; j++)
|
||||
for (i = 0; i < m_nsp; i++)
|
||||
for (size_t j = 0; j < m_nsp; j++)
|
||||
for (size_t i = 0; i < m_nsp; i++)
|
||||
m_Lmatrix(i+m_nsp,j) = m_Lmatrix(j,i+m_nsp);
|
||||
}
|
||||
|
||||
|
|
@ -103,12 +100,11 @@ namespace Cantera {
|
|||
const doublereal fiveover3pi = 5.0/(3.0*Pi);
|
||||
doublereal prefactor = (16.0*m_temp)/25.0;
|
||||
|
||||
int i, j;
|
||||
doublereal constant1, wjsq, constant2, constant3, constant4,
|
||||
fourmj, threemjsq, sum, sumwij;;
|
||||
doublereal term1, term2;
|
||||
|
||||
for (j = 0; j < m_nsp; j++) {
|
||||
for (size_t j = 0; j < m_nsp; j++) {
|
||||
|
||||
// get constant terms that depend on just species "j"
|
||||
|
||||
|
|
@ -120,7 +116,7 @@ namespace Cantera {
|
|||
fourmj = 4.0*m_mw[j];
|
||||
threemjsq = 3.0*m_mw[j]*m_mw[j];
|
||||
sum = 0.0;
|
||||
for (i = 0; i < m_nsp; i++) {
|
||||
for (size_t i = 0; i < m_nsp; i++) {
|
||||
|
||||
sumwij = m_mw[i] + m_mw[j];
|
||||
term1 = m_bdiff(i,j) * sumwij*sumwij;
|
||||
|
|
|
|||
|
|
@ -170,7 +170,7 @@ namespace Cantera {
|
|||
|
||||
//save logarithm of pre-exponential for easier computation
|
||||
m_visc_logA.resize(m_nsp);
|
||||
for ( int i = 0; i < m_nsp; i++ )
|
||||
for (size_t i = 0; i < m_nsp; i++)
|
||||
m_visc_logA[i] = log( m_visc_A[i] );
|
||||
|
||||
m_thermCond_A = tr.thermCond_A ;
|
||||
|
|
@ -261,8 +261,8 @@ namespace Cantera {
|
|||
|
||||
// log_visc_mix = sum_i (X_i log_visc_i) + sum_i sum_j X_i X_j G_ij
|
||||
double interaction = dot_product(m_logViscSpecies, m_molefracs);
|
||||
for ( int i = 0; i < m_nsp; i++ )
|
||||
for ( int j = 0; j < i; j++ )
|
||||
for (size_t i = 0; i < m_nsp; i++)
|
||||
for (size_t j = 0; j < i; j++ )
|
||||
interaction += m_molefracs[i] * m_molefracs[j]
|
||||
* ( m_visc_Sij(i,j) + m_visc_Eij(i,j) / m_temp );
|
||||
m_viscmix = exp( interaction );
|
||||
|
|
@ -285,8 +285,6 @@ namespace Cantera {
|
|||
|
||||
|
||||
void LiquidTransport::getBinaryDiffCoeffs(size_t ld, doublereal* d) {
|
||||
int i,j;
|
||||
|
||||
update_temp();
|
||||
|
||||
// if necessary, evaluate the binary diffusion coefficents
|
||||
|
|
@ -295,8 +293,8 @@ namespace Cantera {
|
|||
doublereal pres = m_thermo->pressure();
|
||||
|
||||
doublereal rp = 1.0/pres;
|
||||
for (i = 0; i < m_nsp; i++)
|
||||
for (j = 0; j < m_nsp; j++) {
|
||||
for (size_t i = 0; i < m_nsp; i++)
|
||||
for (size_t j = 0; j < m_nsp; j++) {
|
||||
d[ld*j + i] = rp * m_bdiff(i,j);
|
||||
}
|
||||
}
|
||||
|
|
@ -318,10 +316,9 @@ namespace Cantera {
|
|||
* dimensioned at least as large as the number of species.
|
||||
*/
|
||||
void LiquidTransport::getMobilities(doublereal* const mobil) {
|
||||
int k;
|
||||
getMixDiffCoeffs(DATA_PTR(m_spwork));
|
||||
doublereal c1 = ElectronCharge / (Boltzmann * m_temp);
|
||||
for (k = 0; k < m_nsp; k++) {
|
||||
for (size_t k = 0; k < m_nsp; k++) {
|
||||
mobil[k] = c1 * m_spwork[k];
|
||||
}
|
||||
}
|
||||
|
|
@ -428,7 +425,7 @@ namespace Cantera {
|
|||
* \vec{j}_k = -n M_k D_k \nabla X_k.
|
||||
* \f]
|
||||
*/
|
||||
void LiquidTransport::getSpeciesFluxes(int ndim,
|
||||
void LiquidTransport::getSpeciesFluxes(size_t ndim,
|
||||
const doublereal* grad_T,
|
||||
int ldx, const doublereal* grad_X,
|
||||
int ldf, doublereal* fluxes) {
|
||||
|
|
@ -447,30 +444,26 @@ namespace Cantera {
|
|||
* \vec{j}_k = -n M_k D_k \nabla X_k.
|
||||
* \f]
|
||||
*/
|
||||
void LiquidTransport::getSpeciesFluxesExt(int ldf, doublereal* fluxes) {
|
||||
int n, k;
|
||||
|
||||
void LiquidTransport::getSpeciesFluxesExt(size_t ldf, doublereal* fluxes) {
|
||||
update_temp();
|
||||
update_conc();
|
||||
|
||||
|
||||
getMixDiffCoeffs(DATA_PTR(m_spwork));
|
||||
|
||||
|
||||
const array_fp& mw = m_thermo->molecularWeights();
|
||||
const doublereal* y = m_thermo->massFractions();
|
||||
doublereal rhon = m_thermo->molarDensity();
|
||||
// Unroll wrt ndim
|
||||
vector_fp sum(m_nDim,0.0);
|
||||
for (n = 0; n < m_nDim; n++) {
|
||||
for (k = 0; k < m_nsp; k++) {
|
||||
for (size_t n = 0; n < m_nDim; n++) {
|
||||
for (size_t k = 0; k < m_nsp; k++) {
|
||||
fluxes[n*ldf + k] = -rhon * mw[k] * m_spwork[k] * m_Grad_X[n*m_nsp + k];
|
||||
sum[n] += fluxes[n*ldf + k];
|
||||
}
|
||||
}
|
||||
// add correction flux to enforce sum to zero
|
||||
for (n = 0; n < m_nDim; n++) {
|
||||
for (k = 0; k < m_nsp; k++) {
|
||||
for (size_t n = 0; n < m_nDim; n++) {
|
||||
for (size_t k = 0; k < m_nsp; k++) {
|
||||
fluxes[n*ldf + k] -= y[k]*sum[n];
|
||||
}
|
||||
}
|
||||
|
|
@ -494,7 +487,6 @@ namespace Cantera {
|
|||
updateDiff_temp();
|
||||
}
|
||||
|
||||
int k, j;
|
||||
doublereal mmw = m_thermo->meanMolecularWeight();
|
||||
doublereal sumxw_tran = 0.0;
|
||||
doublereal sum2;
|
||||
|
|
@ -502,12 +494,12 @@ namespace Cantera {
|
|||
if (m_nsp == 1) {
|
||||
d[0] = m_bdiff(0,0);
|
||||
} else {
|
||||
for (k = 0; k < m_nsp; k++) {
|
||||
for (size_t k = 0; k < m_nsp; k++) {
|
||||
sumxw_tran += m_molefracs_tran[k] * m_mw[k];
|
||||
}
|
||||
for (k = 0; k < m_nsp; k++) {
|
||||
for (size_t k = 0; k < m_nsp; k++) {
|
||||
sum2 = 0.0;
|
||||
for (j = 0; j < m_nsp; j++) {
|
||||
for (size_t j = 0; j < m_nsp; j++) {
|
||||
if (j != k) {
|
||||
sum2 += m_molefracs_tran[j] / m_bdiff(j,k);
|
||||
}
|
||||
|
|
@ -597,7 +589,7 @@ namespace Cantera {
|
|||
m_thermo->getConcentrations(DATA_PTR(m_concentrations));
|
||||
concTot_ = 0.0;
|
||||
concTot_tran_ = 0.0;
|
||||
for (int k = 0; k < m_nsp; k++) {
|
||||
for (size_t k = 0; k < m_nsp; k++) {
|
||||
m_molefracs[k] = fmaxx(0.0, m_molefracs[k]);
|
||||
m_molefracs_tran[k] = fmaxx(MIN_X, m_molefracs[k]);
|
||||
concTot_tran_ += m_molefracs_tran[k];
|
||||
|
|
@ -631,25 +623,22 @@ namespace Cantera {
|
|||
*
|
||||
*/
|
||||
void LiquidTransport::update_Grad_lnAC() {
|
||||
int k;
|
||||
|
||||
|
||||
for (int a = 0; a < m_nDim; a++) {
|
||||
for (size_t a = 0; a < m_nDim; a++) {
|
||||
// We form the directional derivative
|
||||
double * ma_Grad_X = &m_Grad_X[a*m_nsp];
|
||||
double sum = 0.0;
|
||||
for (k = 0; k < m_nsp; k++) {
|
||||
for (size_t k = 0; k < m_nsp; k++) {
|
||||
sum += ma_Grad_X[k] * ma_Grad_X[k];
|
||||
}
|
||||
if (sum == 0.0) {
|
||||
for (k = 0; k < m_nsp; k++) {
|
||||
for (size_t k = 0; k < m_nsp; k++) {
|
||||
m_Grad_lnAC[m_nsp * a + k] = 0.0;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
double mag = 1.0E-7 / sum;
|
||||
|
||||
for (k = 0; k < m_nsp; k++) {
|
||||
for (size_t k = 0; k < m_nsp; k++) {
|
||||
Xdelta_[k] = m_molefracs[k] + mag * ma_Grad_X[k];
|
||||
if (Xdelta_[k] > 1.0) {
|
||||
Xdelta_[k] = 1.0;
|
||||
|
|
@ -660,11 +649,11 @@ namespace Cantera {
|
|||
}
|
||||
m_thermo->setMoleFractions(DATA_PTR(Xdelta_));
|
||||
m_thermo->getActivityCoefficients(DATA_PTR(lnActCoeffMolarDelta_));
|
||||
for (k = 0; k < m_nsp; k++) {
|
||||
for (size_t k = 0; k < m_nsp; k++) {
|
||||
lnActCoeffMolarDelta_[k] = log(lnActCoeffMolarDelta_[k]);
|
||||
}
|
||||
|
||||
for (k = 0; k < m_nsp; k++) {
|
||||
for (size_t k = 0; k < m_nsp; k++) {
|
||||
m_Grad_lnAC[m_nsp * a + k] =
|
||||
sum * (lnActCoeffMolarDelta_[k] - log(actCoeffMolar_[k])) / mag;
|
||||
}
|
||||
|
|
@ -751,9 +740,7 @@ namespace Cantera {
|
|||
* The flag m_visc_ok is set to true.
|
||||
*/
|
||||
void LiquidTransport::updateViscosity_temp() {
|
||||
int k;
|
||||
|
||||
for (k = 0; k < m_nsp; k++) {
|
||||
for (size_t k = 0; k < m_nsp; k++) {
|
||||
m_logViscSpecies[k] = m_visc_logA[k] + m_visc_n[k] * m_logt
|
||||
+ m_visc_Tact[k] / m_temp ;
|
||||
m_viscSpecies[k] = exp( m_logViscSpecies[k] );
|
||||
|
|
@ -773,13 +760,11 @@ namespace Cantera {
|
|||
*
|
||||
*/
|
||||
void LiquidTransport::stefan_maxwell_solve() {
|
||||
int i, j, a;
|
||||
doublereal tmp;
|
||||
size_t VIM = m_nDim;
|
||||
m_B.resize(m_nsp, VIM);
|
||||
//! grab a local copy of the molecular weights
|
||||
const vector_fp& M = m_thermo->molecularWeights();
|
||||
|
||||
|
||||
/*
|
||||
* Update the concentrations in the mixture.
|
||||
|
|
@ -788,7 +773,6 @@ namespace Cantera {
|
|||
|
||||
double T = m_thermo->temperature();
|
||||
|
||||
|
||||
m_thermo->getStandardVolumes(DATA_PTR(volume_specPM_));
|
||||
m_thermo->getActivityCoefficients(DATA_PTR(actCoeffMolar_));
|
||||
|
||||
|
|
@ -817,9 +801,9 @@ namespace Cantera {
|
|||
* consideratins involving species concentrations going to zero.
|
||||
*
|
||||
*/
|
||||
for (i = 0; i < m_nsp; i++) {
|
||||
for (size_t i = 0; i < m_nsp; i++) {
|
||||
double xi_denom = m_molefracs_tran[i];
|
||||
for (a = 0; a < VIM; a++) {
|
||||
for (size_t a = 0; a < VIM; a++) {
|
||||
m_ck_Grad_mu[a*m_nsp + i] =
|
||||
m_chargeSpecies[i] * concTot_ * Faraday * m_Grad_V[a]
|
||||
+ concTot_ * (volume_specPM_[i] - M[i]/dens_) * m_Grad_P[a]
|
||||
|
|
@ -833,8 +817,8 @@ namespace Cantera {
|
|||
double mwSolvent = m_thermo->molecularWeight(iSolvent);
|
||||
double mnaught = mwSolvent/ 1000.;
|
||||
double lnmnaught = log(mnaught);
|
||||
for (i = 1; i < m_nsp; i++) {
|
||||
for (a = 0; a < VIM; a++) {
|
||||
for (size_t i = 1; i < m_nsp; i++) {
|
||||
for (size_t a = 0; a < VIM; a++) {
|
||||
m_ck_Grad_mu[a*m_nsp + i] -=
|
||||
m_concentrations[i] * GasConstant * m_Grad_T[a] * lnmnaught;
|
||||
}
|
||||
|
|
@ -848,13 +832,13 @@ namespace Cantera {
|
|||
switch (VIM) {
|
||||
case 1: /* 1-D approximation */
|
||||
m_B(0,0) = 0.0;
|
||||
for (j = 0; j < m_nsp; j++) {
|
||||
for (size_t j = 0; j < m_nsp; j++) {
|
||||
m_A(0,j) = M[j] * m_concentrations[j];
|
||||
}
|
||||
for (i = 1; i < m_nsp; i++){
|
||||
for (size_t i = 1; i < m_nsp; i++){
|
||||
m_B(i,0) = m_ck_Grad_mu[i] / (GasConstant * T);
|
||||
m_A(i,i) = 0.0;
|
||||
for (j = 0; j < m_nsp; j++){
|
||||
for (size_t j = 0; j < m_nsp; j++){
|
||||
if (j != i) {
|
||||
tmp = m_concentrations[j] / m_DiffCoeff_StefMax(i,j);
|
||||
m_A(i,i) += tmp;
|
||||
|
|
@ -870,14 +854,14 @@ namespace Cantera {
|
|||
case 2: /* 2-D approximation */
|
||||
m_B(0,0) = 0.0;
|
||||
m_B(0,1) = 0.0;
|
||||
for (j = 0; j < m_nsp; j++) {
|
||||
for (size_t j = 0; j < m_nsp; j++) {
|
||||
m_A(0,j) = M[j] * m_concentrations[j];
|
||||
}
|
||||
for (i = 1; i < m_nsp; i++){
|
||||
for (size_t i = 1; i < m_nsp; i++){
|
||||
m_B(i,0) = m_ck_Grad_mu[i] / (GasConstant * T);
|
||||
m_B(i,1) = m_ck_Grad_mu[m_nsp + i] / (GasConstant * T);
|
||||
m_A(i,i) = 0.0;
|
||||
for (j = 0; j < m_nsp; j++) {
|
||||
for (size_t j = 0; j < m_nsp; j++) {
|
||||
if (j != i) {
|
||||
tmp = m_concentrations[j] / m_DiffCoeff_StefMax(i,j);
|
||||
m_A(i,i) += tmp;
|
||||
|
|
@ -896,15 +880,15 @@ namespace Cantera {
|
|||
m_B(0,0) = 0.0;
|
||||
m_B(0,1) = 0.0;
|
||||
m_B(0,2) = 0.0;
|
||||
for (j = 0; j < m_nsp; j++) {
|
||||
for (size_t j = 0; j < m_nsp; j++) {
|
||||
m_A(0,j) = M[j] * m_concentrations[j];
|
||||
}
|
||||
for (i = 1; i < m_nsp; i++){
|
||||
for (size_t i = 1; i < m_nsp; i++){
|
||||
m_B(i,0) = m_ck_Grad_mu[i] / (GasConstant * T);
|
||||
m_B(i,1) = m_ck_Grad_mu[m_nsp + i] / (GasConstant * T);
|
||||
m_B(i,2) = m_ck_Grad_mu[2*m_nsp + i] / (GasConstant * T);
|
||||
m_A(i,i) = 0.0;
|
||||
for (j = 0; j < m_nsp; j++) {
|
||||
for (size_t j = 0; j < m_nsp; j++) {
|
||||
if (j != i) {
|
||||
tmp = m_concentrations[j] / m_DiffCoeff_StefMax(i,j);
|
||||
m_A(i,i) += tmp;
|
||||
|
|
@ -923,8 +907,8 @@ namespace Cantera {
|
|||
break;
|
||||
}
|
||||
|
||||
for (a = 0; a < VIM; a++) {
|
||||
for (j = 0; j < m_nsp; j++) {
|
||||
for (size_t a = 0; a < VIM; a++) {
|
||||
for (size_t j = 0; j < m_nsp; j++) {
|
||||
m_flux(j,a) = M[j] * m_concentrations[j] * m_B(j,a);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -347,7 +347,7 @@ namespace Cantera {
|
|||
*
|
||||
*
|
||||
*/
|
||||
virtual void getSpeciesFluxes(int ndim,
|
||||
virtual void getSpeciesFluxes(size_t ndim,
|
||||
const doublereal* grad_T,
|
||||
int ldx, const doublereal* grad_X,
|
||||
int ldf, doublereal* fluxes);
|
||||
|
|
@ -361,7 +361,7 @@ namespace Cantera {
|
|||
*
|
||||
*
|
||||
*/
|
||||
virtual void getSpeciesFluxesExt(int ldf, doublereal* fluxes);
|
||||
virtual void getSpeciesFluxesExt(size_t ldf, doublereal* fluxes);
|
||||
|
||||
|
||||
//! Solve the stefan_maxell equations for the diffusive fluxes.
|
||||
|
|
|
|||
|
|
@ -221,7 +221,7 @@ namespace Cantera {
|
|||
* \vec{j}_k = -n M_k D_k \nabla X_k.
|
||||
* \f]
|
||||
*/
|
||||
void MixTransport::getSpeciesFluxes(int ndim,
|
||||
void MixTransport::getSpeciesFluxes(size_t ndim,
|
||||
const doublereal* grad_T, int ldx, const doublereal* grad_X,
|
||||
int ldf, doublereal* fluxes) {
|
||||
update_T();
|
||||
|
|
|
|||
|
|
@ -92,7 +92,7 @@ namespace Cantera {
|
|||
* Flat vector with the m_nsp in the inner loop.
|
||||
* length = ldx * ndim
|
||||
*/
|
||||
virtual void getSpeciesFluxes(int ndim,
|
||||
virtual void getSpeciesFluxes(size_t ndim,
|
||||
const doublereal* grad_T,
|
||||
int ldx,
|
||||
const doublereal* grad_X,
|
||||
|
|
|
|||
|
|
@ -161,8 +161,7 @@ namespace Cantera {
|
|||
m_eps = tr.eps;
|
||||
m_alpha = tr.alpha;
|
||||
m_dipoleDiag.resize(m_nsp);
|
||||
int i;
|
||||
for (i = 0; i < m_nsp; i++) {
|
||||
for (size_t i = 0; i < m_nsp; i++) {
|
||||
m_dipoleDiag[i] = tr.dipole(i,i);
|
||||
}
|
||||
|
||||
|
|
@ -178,9 +177,8 @@ namespace Cantera {
|
|||
m_phi.resize(m_nsp, m_nsp, 0.0);
|
||||
m_wratjk.resize(m_nsp, m_nsp, 0.0);
|
||||
m_wratkj1.resize(m_nsp, m_nsp, 0.0);
|
||||
int j, k;
|
||||
for (j = 0; j < m_nsp; j++)
|
||||
for (k = j; k < m_nsp; k++) {
|
||||
for (size_t j = 0; j < m_nsp; j++)
|
||||
for (size_t k = j; k < m_nsp; k++) {
|
||||
m_wratjk(j,k) = sqrt(m_mw[j]/m_mw[k]);
|
||||
m_wratjk(k,j) = sqrt(m_wratjk(j,k));
|
||||
m_wratkj1(j,k) = sqrt(1.0 + m_mw[k]/m_mw[j]);
|
||||
|
|
@ -231,8 +229,8 @@ namespace Cantera {
|
|||
// precompute and store log(epsilon_ij/k_B)
|
||||
m_log_eps_k.resize(m_nsp, m_nsp);
|
||||
// int j;
|
||||
for (i = 0; i < m_nsp; i++) {
|
||||
for (j = i; j < m_nsp; j++) {
|
||||
for (size_t i = 0; i < m_nsp; i++) {
|
||||
for (size_t j = i; j < m_nsp; j++) {
|
||||
m_log_eps_k(i,j) = log(tr.epsilon(i,j)/Boltzmann);
|
||||
m_log_eps_k(j,i) = m_log_eps_k(i,j);
|
||||
}
|
||||
|
|
@ -244,8 +242,7 @@ namespace Cantera {
|
|||
const doublereal sq298 = sqrt(298.0);
|
||||
const doublereal kb298 = Boltzmann * 298.0;
|
||||
m_sqrt_eps_k.resize(m_nsp);
|
||||
//int k;
|
||||
for (k = 0; k < m_nsp; k++) {
|
||||
for (size_t k = 0; k < m_nsp; k++) {
|
||||
m_sqrt_eps_k[k] = sqrt(tr.eps[k]/Boltzmann);
|
||||
m_frot_298[k] = Frot( tr.eps[k]/kb298,
|
||||
m_sqrt_eps_k[k]/sq298);
|
||||
|
|
@ -273,7 +270,6 @@ namespace Cantera {
|
|||
|
||||
doublereal MultiTransport::viscosity() {
|
||||
doublereal vismix = 0.0, denom;
|
||||
int k, j;
|
||||
|
||||
// update m_visc if necessary
|
||||
updateViscosity_T();
|
||||
|
|
@ -281,9 +277,9 @@ namespace Cantera {
|
|||
// update the mole fractions
|
||||
updateTransport_C();
|
||||
|
||||
for (k = 0; k < m_nsp; k++) {
|
||||
for (size_t k = 0; k < m_nsp; k++) {
|
||||
denom = 0.0;
|
||||
for (j = 0; j < m_nsp; j++) {
|
||||
for (size_t j = 0; j < m_nsp; j++) {
|
||||
denom += m_phi(k,j) * m_molefracs[j];
|
||||
}
|
||||
vismix += m_molefracs[k] * m_visc[k]/denom;
|
||||
|
|
@ -296,16 +292,14 @@ namespace Cantera {
|
|||
/******************* binary diffusion coefficients **************/
|
||||
|
||||
void MultiTransport::getBinaryDiffCoeffs(size_t ld, doublereal* d) {
|
||||
int i,j;
|
||||
|
||||
// if necessary, evaluate the binary diffusion coefficents
|
||||
// from the polynomial fits
|
||||
updateDiff_T();
|
||||
|
||||
doublereal p = pressure_ig();
|
||||
doublereal rp = 1.0/p;
|
||||
for (i = 0; i < m_nsp; i++)
|
||||
for (j = 0; j < m_nsp; j++) {
|
||||
for (size_t i = 0; i < m_nsp; i++)
|
||||
for (size_t j = 0; j < m_nsp; j++) {
|
||||
d[ld*j + i] = rp * m_bdiff(i,j);
|
||||
}
|
||||
}
|
||||
|
|
@ -318,11 +312,9 @@ namespace Cantera {
|
|||
* @internal
|
||||
*/
|
||||
doublereal MultiTransport::thermalConductivity() {
|
||||
|
||||
solveLMatrixEquation();
|
||||
doublereal sum = 0.0;
|
||||
int k;
|
||||
for (k = 0; k < 2*m_nsp; k++) {
|
||||
for (size_t k = 0; k < 2*m_nsp; k++) {
|
||||
sum += m_b[k + m_nsp] * m_a[k + m_nsp];
|
||||
}
|
||||
return -4.0*sum;
|
||||
|
|
@ -335,11 +327,9 @@ namespace Cantera {
|
|||
* @internal
|
||||
*/
|
||||
void MultiTransport::getThermalDiffCoeffs(doublereal* const dt) {
|
||||
|
||||
solveLMatrixEquation();
|
||||
const doublereal c = 1.6/GasConstant;
|
||||
int k;
|
||||
for (k = 0; k < m_nsp; k++) {
|
||||
for (size_t k = 0; k < m_nsp; k++) {
|
||||
dt[k] = c * m_mw[k] * m_molefracs[k] * m_a[k];
|
||||
}
|
||||
}
|
||||
|
|
@ -360,8 +350,7 @@ namespace Cantera {
|
|||
// the right-hand-side vector m_b. The first block of m_b was
|
||||
// set to zero when it was created, and is not modified so
|
||||
// doesn't need to be reset to zero.
|
||||
int k;
|
||||
for (k = 0; k < m_nsp; k++) {
|
||||
for (size_t k = 0; k < m_nsp; k++) {
|
||||
m_b[k] = 0.0;
|
||||
m_b[k + m_nsp] = m_molefracs[k];
|
||||
m_b[k + 2*m_nsp] = m_molefracs[k];
|
||||
|
|
@ -383,7 +372,7 @@ namespace Cantera {
|
|||
// But if CHEMKIN_COMPATIBILITY_MODE is defined, then all
|
||||
// monatomic species are excluded.
|
||||
|
||||
for (k = 0; k < m_nsp; k++) {
|
||||
for (size_t k = 0; k < m_nsp; k++) {
|
||||
if (!hasInternalModes(k)) m_b[2*m_nsp + k] = 0.0;
|
||||
}
|
||||
|
||||
|
|
@ -433,7 +422,7 @@ namespace Cantera {
|
|||
/**
|
||||
*
|
||||
*/
|
||||
void MultiTransport::getSpeciesFluxes(int ndim,
|
||||
void MultiTransport::getSpeciesFluxes(size_t ndim,
|
||||
const doublereal* grad_T, int ldx, const doublereal* grad_X,
|
||||
int ldf, doublereal* fluxes) {
|
||||
|
||||
|
|
@ -441,13 +430,12 @@ namespace Cantera {
|
|||
updateDiff_T();
|
||||
|
||||
doublereal sum;
|
||||
int i, j;
|
||||
|
||||
// If any component of grad_T is non-zero, then get the
|
||||
// thermal diffusion coefficients
|
||||
|
||||
bool addThermalDiffusion = false;
|
||||
for (i = 0; i < ndim; i++) {
|
||||
for (size_t i = 0; i < ndim; i++) {
|
||||
if (grad_T[i] != 0.0) addThermalDiffusion = true;
|
||||
}
|
||||
if (addThermalDiffusion) getThermalDiffCoeffs(DATA_PTR(m_spwork));
|
||||
|
|
@ -455,9 +443,9 @@ namespace Cantera {
|
|||
const doublereal* y = m_thermo->massFractions();
|
||||
doublereal rho = m_thermo->density();
|
||||
|
||||
for (i = 0; i < m_nsp; i++) {
|
||||
for (size_t i = 0; i < m_nsp; i++) {
|
||||
sum = 0.0;
|
||||
for (j = 0; j < m_nsp; j++) {
|
||||
for (size_t j = 0; j < m_nsp; j++) {
|
||||
m_aa(i,j) = m_molefracs[j]*m_molefracs[i]/m_bdiff(i,j);
|
||||
sum += m_aa(i,j);
|
||||
}
|
||||
|
|
@ -467,9 +455,9 @@ namespace Cantera {
|
|||
// enforce the condition \sum Y_k V_k = 0. This is done by replacing
|
||||
// the flux equation with the largest gradx component in the first
|
||||
// coordinate direction with the flux balance condition.
|
||||
int jmax = 0;
|
||||
size_t jmax = 0;
|
||||
doublereal gradmax = -1.0;
|
||||
for (j = 0; j < m_nsp; j++) {
|
||||
for (size_t j = 0; j < m_nsp; j++) {
|
||||
if (fabs(grad_X[j]) > gradmax) {
|
||||
gradmax = fabs(grad_X[j]);
|
||||
jmax = j;
|
||||
|
|
@ -479,12 +467,11 @@ namespace Cantera {
|
|||
// set the matrix elements in this row to the mass fractions,
|
||||
// and set the entry in gradx to zero
|
||||
|
||||
for (j = 0; j < m_nsp; j++) {
|
||||
for (size_t j = 0; j < m_nsp; j++) {
|
||||
m_aa(jmax,j) = y[j];
|
||||
}
|
||||
vector_fp gsave(ndim), grx(ldx*m_nsp);
|
||||
int n;
|
||||
for (n = 0; n < ldx*ndim; n++) {
|
||||
for (size_t n = 0; n < ldx*ndim; n++) {
|
||||
grx[n] = grad_X[n];
|
||||
}
|
||||
//for (n = 0; n < ndim; n++) {
|
||||
|
|
@ -495,7 +482,7 @@ namespace Cantera {
|
|||
|
||||
// copy grad_X to fluxes
|
||||
const doublereal* gx;
|
||||
for (n = 0; n < ndim; n++) {
|
||||
for (size_t n = 0; n < ndim; n++) {
|
||||
gx = grad_X + ldx*n;
|
||||
copy(gx, gx + m_nsp, fluxes + ldf*n);
|
||||
fluxes[jmax + n*ldf] = 0.0;
|
||||
|
|
@ -522,15 +509,15 @@ namespace Cantera {
|
|||
"Error in DGETRS");
|
||||
|
||||
|
||||
int offset;
|
||||
size_t offset;
|
||||
doublereal pp = pressure_ig();
|
||||
|
||||
// multiply diffusion velocities by rho * V to create
|
||||
// mass fluxes, and restore the gradx elements that were
|
||||
// modified
|
||||
for (n = 0; n < ndim; n++) {
|
||||
for (size_t n = 0; n < ndim; n++) {
|
||||
offset = n*ldf;
|
||||
for (i = 0; i < m_nsp; i++) {
|
||||
for (size_t i = 0; i < m_nsp; i++) {
|
||||
fluxes[i + offset] *= rho * y[i] / pp;
|
||||
}
|
||||
//grad_X[jmax + n*ldx] = gsave[n];
|
||||
|
|
@ -538,10 +525,10 @@ namespace Cantera {
|
|||
|
||||
// thermal diffusion
|
||||
if (addThermalDiffusion) {
|
||||
for (n = 0; n < ndim; n++) {
|
||||
for (size_t n = 0; n < ndim; n++) {
|
||||
offset = n*ldf;
|
||||
doublereal grad_logt = grad_T[n]/m_temp;
|
||||
for (i = 0; i < m_nsp; i++)
|
||||
for (size_t i = 0; i < m_nsp; i++)
|
||||
fluxes[i + offset] -= m_spwork[i]*grad_logt;
|
||||
}
|
||||
}
|
||||
|
|
@ -576,13 +563,9 @@ namespace Cantera {
|
|||
m_thermo->setState_TPX(t, p, x3);
|
||||
m_thermo->getMoleFractions(DATA_PTR(m_molefracs));
|
||||
|
||||
|
||||
// update the binary diffusion coefficients if necessary
|
||||
updateDiff_T();
|
||||
|
||||
doublereal sum;
|
||||
int i, j;
|
||||
|
||||
// If there is a temperature gadient, then get the
|
||||
// thermal diffusion coefficients
|
||||
|
||||
|
|
@ -595,9 +578,9 @@ namespace Cantera {
|
|||
const doublereal* y = m_thermo->massFractions();
|
||||
doublereal rho = m_thermo->density();
|
||||
|
||||
for (i = 0; i < m_nsp; i++) {
|
||||
sum = 0.0;
|
||||
for (j = 0; j < m_nsp; j++) {
|
||||
for (size_t i = 0; i < m_nsp; i++) {
|
||||
doublereal sum = 0.0;
|
||||
for (size_t j = 0; j < m_nsp; j++) {
|
||||
m_aa(i,j) = m_molefracs[j]*m_molefracs[i]/m_bdiff(i,j);
|
||||
sum += m_aa(i,j);
|
||||
}
|
||||
|
|
@ -607,9 +590,9 @@ namespace Cantera {
|
|||
// enforce the condition \sum Y_k V_k = 0. This is done by
|
||||
// replacing the flux equation with the largest gradx
|
||||
// component with the flux balance condition.
|
||||
int jmax = 0;
|
||||
size_t jmax = 0;
|
||||
doublereal gradmax = -1.0;
|
||||
for (j = 0; j < m_nsp; j++) {
|
||||
for (size_t j = 0; j < m_nsp; j++) {
|
||||
if (fabs(x2[j] - x1[j]) > gradmax) {
|
||||
gradmax = fabs(x1[j] - x2[j]);
|
||||
jmax = j;
|
||||
|
|
@ -619,7 +602,7 @@ namespace Cantera {
|
|||
// set the matrix elements in this row to the mass fractions,
|
||||
// and set the entry in gradx to zero
|
||||
|
||||
for (j = 0; j < m_nsp; j++) {
|
||||
for (size_t j = 0; j < m_nsp; j++) {
|
||||
m_aa(jmax,j) = y[j];
|
||||
fluxes[j] = x2[j] - x1[j];
|
||||
}
|
||||
|
|
@ -648,14 +631,14 @@ namespace Cantera {
|
|||
|
||||
// multiply diffusion velocities by rho * Y_k to create
|
||||
// mass fluxes, and divide by pressure
|
||||
for (i = 0; i < m_nsp; i++) {
|
||||
for (size_t i = 0; i < m_nsp; i++) {
|
||||
fluxes[i] *= rho * y[i] / pp;
|
||||
}
|
||||
|
||||
// thermal diffusion
|
||||
if (addThermalDiffusion) {
|
||||
doublereal grad_logt = (t2 - t1)/m_temp;
|
||||
for (i = 0; i < m_nsp; i++) {
|
||||
for (size_t i = 0; i < m_nsp; i++) {
|
||||
fluxes[i] -= m_spwork[i]*grad_logt;
|
||||
}
|
||||
}
|
||||
|
|
@ -665,15 +648,12 @@ namespace Cantera {
|
|||
const doublereal* state2, doublereal delta,
|
||||
doublereal* fluxes) {
|
||||
getMassFluxes(state1, state2, delta, fluxes);
|
||||
size_t k, nsp = m_thermo->nSpecies();
|
||||
for (k = 0; k < nsp; k++) {
|
||||
for (size_t k = 0; k < m_thermo->nSpecies(); k++) {
|
||||
fluxes[k] /= m_mw[k];
|
||||
}
|
||||
}
|
||||
|
||||
void MultiTransport::getMultiDiffCoeffs(const size_t ld, doublereal* const d) {
|
||||
int i,j;
|
||||
|
||||
doublereal p = pressure_ig();
|
||||
|
||||
// update the mole fractions
|
||||
|
|
@ -699,8 +679,8 @@ namespace Cantera {
|
|||
* m_thermo->meanMolecularWeight()/(25.0 * p);
|
||||
doublereal c;
|
||||
|
||||
for (i = 0; i < m_nsp; i++) {
|
||||
for (j = 0; j < m_nsp; j++) {
|
||||
for (size_t i = 0; i < m_nsp; i++) {
|
||||
for (size_t j = 0; j < m_nsp; j++) {
|
||||
c = prefactor/m_mw[j];
|
||||
d[ld*j + i] = c*m_molefracs[i]*
|
||||
(m_Lmatrix(i,j) - m_Lmatrix(i,i));
|
||||
|
|
@ -710,24 +690,22 @@ namespace Cantera {
|
|||
|
||||
|
||||
void MultiTransport::getMixDiffCoeffs(doublereal* const d) {
|
||||
|
||||
// update the mole fractions
|
||||
updateTransport_C();
|
||||
|
||||
// update the binary diffusion coefficients if necessary
|
||||
updateDiff_T();
|
||||
|
||||
int k, j;
|
||||
doublereal mmw = m_thermo->meanMolecularWeight();
|
||||
doublereal sumxw = 0.0, sum2;
|
||||
doublereal p = pressure_ig();
|
||||
if (m_nsp == 1) {
|
||||
d[0] = m_bdiff(0,0) / p;
|
||||
} else {
|
||||
for (k = 0; k < m_nsp; k++) sumxw += m_molefracs[k] * m_mw[k];
|
||||
for (k = 0; k < m_nsp; k++) {
|
||||
for (size_t k = 0; k < m_nsp; k++) sumxw += m_molefracs[k] * m_mw[k];
|
||||
for (size_t k = 0; k < m_nsp; k++) {
|
||||
sum2 = 0.0;
|
||||
for (j = 0; j < m_nsp; j++) {
|
||||
for (size_t j = 0; j < m_nsp; j++) {
|
||||
if (j != k) {
|
||||
sum2 += m_molefracs[j] / m_bdiff(j,k);
|
||||
}
|
||||
|
|
@ -803,8 +781,7 @@ namespace Cantera {
|
|||
|
||||
// add an offset to avoid a pure species condition
|
||||
// (check - this may be unnecessary)
|
||||
int k;
|
||||
for (k = 0; k < m_nsp; k++) {
|
||||
for (size_t k = 0; k < m_nsp; k++) {
|
||||
m_molefracs[k] = fmaxx(MIN_X, m_molefracs[k]);
|
||||
}
|
||||
}
|
||||
|
|
@ -829,15 +806,13 @@ namespace Cantera {
|
|||
}
|
||||
|
||||
void MultiTransport::_update_diff_T() {
|
||||
|
||||
updateTransport_T();
|
||||
|
||||
// evaluate binary diffusion coefficients at unit pressure
|
||||
int i,j;
|
||||
int ic = 0;
|
||||
size_t ic = 0;
|
||||
if (m_mode == CK_Mode) {
|
||||
for (i = 0; i < m_nsp; i++) {
|
||||
for (j = i; j < m_nsp; j++) {
|
||||
for (size_t i = 0; i < m_nsp; i++) {
|
||||
for (size_t j = i; j < m_nsp; j++) {
|
||||
m_bdiff(i,j) = exp(dot4(m_polytempvec, m_diffcoeffs[ic]));
|
||||
m_bdiff(j,i) = m_bdiff(i,j);
|
||||
ic++;
|
||||
|
|
@ -845,8 +820,8 @@ namespace Cantera {
|
|||
}
|
||||
}
|
||||
else {
|
||||
for (i = 0; i < m_nsp; i++) {
|
||||
for (j = i; j < m_nsp; j++) {
|
||||
for (size_t i = 0; i < m_nsp; i++) {
|
||||
for (size_t j = i; j < m_nsp; j++) {
|
||||
m_bdiff(i,j) = m_temp * m_sqrt_t*dot5(m_polytempvec,
|
||||
m_diffcoeffs[ic]);
|
||||
m_bdiff(j,i) = m_bdiff(i,j);
|
||||
|
|
@ -874,18 +849,16 @@ namespace Cantera {
|
|||
|
||||
|
||||
void MultiTransport::_update_species_visc_T() {
|
||||
|
||||
updateTransport_T();
|
||||
|
||||
int k;
|
||||
if (m_mode == CK_Mode) {
|
||||
for (k = 0; k < m_nsp; k++) {
|
||||
for (size_t k = 0; k < m_nsp; k++) {
|
||||
m_visc[k] = exp(dot4(m_polytempvec, m_visccoeffs[k]));
|
||||
m_sqvisc[k] = sqrt(m_visc[k]);
|
||||
}
|
||||
}
|
||||
else {
|
||||
for (k = 0; k < m_nsp; k++) {
|
||||
for (size_t k = 0; k < m_nsp; k++) {
|
||||
//m_visc[k] = m_sqrt_t*dot5(m_polytempvec, m_visccoeffs[k]);
|
||||
// the polynomial fit is done for sqrt(visc/sqrt(T))
|
||||
m_sqvisc[k] = m_t14*dot5(m_polytempvec, m_visccoeffs[k]);
|
||||
|
|
@ -910,9 +883,8 @@ namespace Cantera {
|
|||
updateSpeciesViscosities_T();
|
||||
|
||||
// see Eq. (9-5.15) of Reid, Prausnitz, and Poling
|
||||
int j, k;
|
||||
for (j = 0; j < m_nsp; j++) {
|
||||
for (k = j; k < m_nsp; k++) {
|
||||
for (size_t j = 0; j < m_nsp; j++) {
|
||||
for (size_t k = j; k < m_nsp; k++) {
|
||||
vratiokj = m_visc[k]/m_visc[j];
|
||||
wratiojk = m_mw[j]/m_mw[k];
|
||||
//rootwjk = sqrt(wratiojk);
|
||||
|
|
@ -946,7 +918,6 @@ namespace Cantera {
|
|||
}
|
||||
|
||||
void MultiTransport::_update_thermal_T() {
|
||||
|
||||
// we need species viscosities and binary diffusion
|
||||
// coefficients
|
||||
updateSpeciesViscosities_T();
|
||||
|
|
@ -955,9 +926,8 @@ namespace Cantera {
|
|||
// evaluate polynomial fits for A*, B*, C*
|
||||
doublereal z;
|
||||
int ipoly;
|
||||
int i, j;
|
||||
for (i = 0; i < m_nsp; i++) {
|
||||
for (j = i; j < m_nsp; j++) {
|
||||
for (size_t i = 0; i < m_nsp; i++) {
|
||||
for (size_t j = i; j < m_nsp; j++) {
|
||||
z = m_logt - m_log_eps_k(i,j);
|
||||
ipoly = m_poly[i][j];
|
||||
if (m_mode == CK_Mode) {
|
||||
|
|
@ -983,9 +953,8 @@ namespace Cantera {
|
|||
// evaluate the temperature-dependent rotational relaxation
|
||||
// rate
|
||||
|
||||
int k;
|
||||
doublereal tr, sqtr;
|
||||
for (k = 0; k < m_nsp; k++) {
|
||||
for (size_t k = 0; k < m_nsp; k++) {
|
||||
tr = m_eps[k]/ m_kbt;
|
||||
sqtr = m_sqrt_eps_k[k] / m_sqrt_t;
|
||||
m_rotrelax[k] = fmaxx(1.0,m_zrot[k]) * m_frot_298[k]/Frot(tr, sqtr);
|
||||
|
|
@ -993,14 +962,14 @@ namespace Cantera {
|
|||
|
||||
doublereal d;
|
||||
doublereal c = 1.2*GasConstant*m_temp;
|
||||
for (k = 0; k < m_nsp; k++) {
|
||||
for (size_t k = 0; k < m_nsp; k++) {
|
||||
d = c * m_visc[k] * m_astar(k,k)/m_mw[k];
|
||||
m_bdiff(k,k) = d;
|
||||
}
|
||||
|
||||
// internal heat capacities
|
||||
const array_fp& cp = ((IdealGasPhase*)m_thermo)->cp_R_ref();
|
||||
for (k = 0; k < m_nsp; k++) m_cinternal[k] = cp[k] - 2.5;
|
||||
for (size_t k = 0; k < m_nsp; k++) m_cinternal[k] = cp[k] - 2.5;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -120,7 +120,7 @@ namespace Cantera {
|
|||
* Flat vector with the m_nsp in the inner loop.
|
||||
* length = ldx * ndim
|
||||
*/
|
||||
virtual void getSpeciesFluxes(int ndim,
|
||||
virtual void getSpeciesFluxes(size_t ndim,
|
||||
const doublereal* grad_T,
|
||||
int ldx,
|
||||
const doublereal* grad_X,
|
||||
|
|
|
|||
|
|
@ -139,7 +139,6 @@ namespace Cantera {
|
|||
* This is where we dimension everything.
|
||||
*/
|
||||
bool SimpleTransport::initLiquid(LiquidTransportParams& tr) {
|
||||
int k;
|
||||
// constant substance attributes
|
||||
m_thermo = tr.thermo;
|
||||
m_nsp = m_thermo->nSpecies();
|
||||
|
|
@ -207,7 +206,7 @@ namespace Cantera {
|
|||
"Viscosity Model for species " + spName0 + " is not handled by this object");
|
||||
}
|
||||
|
||||
for (k = 0; k < m_nsp; k++) {
|
||||
for (size_t k = 0; k < m_nsp; k++) {
|
||||
spName = m_thermo->speciesName(k);
|
||||
Cantera::LiquidTransportData <d = tr.LTData[k];
|
||||
LiquidTR_Model vm = ltd.model_viscosity;
|
||||
|
|
@ -235,7 +234,7 @@ namespace Cantera {
|
|||
"Conductivity model is not the same as the viscosity model for species " + spName0);
|
||||
}
|
||||
|
||||
for (k = 0; k < m_nsp; k++) {
|
||||
for (size_t k = 0; k < m_nsp; k++) {
|
||||
spName = m_thermo->speciesName(k);
|
||||
Cantera::LiquidTransportData <d = tr.LTData[k];
|
||||
LiquidTR_Model cm = ltd.model_thermalCond;
|
||||
|
|
@ -272,7 +271,7 @@ namespace Cantera {
|
|||
}
|
||||
}
|
||||
|
||||
for (k = 0; k < m_nsp; k++) {
|
||||
for (size_t k = 0; k < m_nsp; k++) {
|
||||
spName = m_thermo->speciesName(k);
|
||||
Cantera::LiquidTransportData <d = tr.LTData[k];
|
||||
LiquidTR_Model dm = ltd.model_speciesDiffusivity;
|
||||
|
|
@ -309,7 +308,7 @@ namespace Cantera {
|
|||
m_concentrations.resize(m_nsp);
|
||||
|
||||
m_chargeSpecies.resize(m_nsp);
|
||||
for (k = 0; k < m_nsp; k++) {
|
||||
for (size_t k = 0; k < m_nsp; k++) {
|
||||
m_chargeSpecies[k] = m_thermo->charge(k);
|
||||
}
|
||||
m_spwork.resize(m_nsp);
|
||||
|
|
@ -370,7 +369,7 @@ namespace Cantera {
|
|||
m_viscmix = m_viscSpecies[0];
|
||||
} else if (compositionDepType_ == 1) {
|
||||
m_viscmix = 0.0;
|
||||
for (int k = 0; k < m_nsp; k++) {
|
||||
for (size_t k = 0; k < m_nsp; k++) {
|
||||
m_viscmix += m_viscSpecies[k] * m_molefracs[k];
|
||||
}
|
||||
}
|
||||
|
|
@ -387,7 +386,6 @@ namespace Cantera {
|
|||
}
|
||||
//================================================================================================
|
||||
void SimpleTransport::getBinaryDiffCoeffs(size_t ld, doublereal* d) {
|
||||
int i, j;
|
||||
double bdiff;
|
||||
update_T();
|
||||
|
||||
|
|
@ -395,8 +393,8 @@ namespace Cantera {
|
|||
// from the polynomial fits
|
||||
if (!m_diff_temp_ok) updateDiff_T();
|
||||
|
||||
for (i = 0; i < m_nsp; i++) {
|
||||
for (j = 0; j < m_nsp; j++) {
|
||||
for (size_t i = 0; i < m_nsp; i++) {
|
||||
for (size_t j = 0; j < m_nsp; j++) {
|
||||
bdiff = 0.5 * (m_diffSpecies[i] + m_diffSpecies[j]);
|
||||
d[i*m_nsp+j] = bdiff;
|
||||
}
|
||||
|
|
@ -420,10 +418,9 @@ namespace Cantera {
|
|||
* dimensioned at least as large as the number of species.
|
||||
*/
|
||||
void SimpleTransport::getMobilities(doublereal* const mobil) {
|
||||
int k;
|
||||
getMixDiffCoeffs(DATA_PTR(m_spwork));
|
||||
doublereal c1 = ElectronCharge / (Boltzmann * m_temp);
|
||||
for (k = 0; k < m_nsp; k++) {
|
||||
for (size_t k = 0; k < m_nsp; k++) {
|
||||
mobil[k] = c1 * m_spwork[k];
|
||||
}
|
||||
}
|
||||
|
|
@ -447,10 +444,9 @@ namespace Cantera {
|
|||
* dimensioned at least as large as the number of species.
|
||||
*/
|
||||
void SimpleTransport::getFluidMobilities(doublereal* const mobil_f) {
|
||||
int k;
|
||||
getMixDiffCoeffs(DATA_PTR(m_spwork));
|
||||
doublereal c1 = 1.0 / (GasConstant * m_temp);
|
||||
for (k = 0; k < m_nsp; k++) {
|
||||
for (size_t k = 0; k < m_nsp; k++) {
|
||||
mobil_f[k] = c1 * m_spwork[k];
|
||||
}
|
||||
}
|
||||
|
|
@ -537,7 +533,7 @@ namespace Cantera {
|
|||
* \vec{j}_k = -n M_k D_k \nabla X_k.
|
||||
* \f]
|
||||
*/
|
||||
void SimpleTransport::getSpeciesFluxes(int ndim,
|
||||
void SimpleTransport::getSpeciesFluxes(size_t ndim,
|
||||
const doublereal* grad_T,
|
||||
int ldx, const doublereal* grad_X,
|
||||
int ldf, doublereal* fluxes) {
|
||||
|
|
@ -573,8 +569,7 @@ namespace Cantera {
|
|||
* or greater than the number of species.
|
||||
* @param fluxes Vector of calculated fluxes
|
||||
*/
|
||||
void SimpleTransport::getSpeciesFluxesExt(int ldf, doublereal* fluxes) {
|
||||
int n, k;
|
||||
void SimpleTransport::getSpeciesFluxesExt(size_t ldf, doublereal* fluxes) {
|
||||
AssertThrow(ldf >= m_nsp ,"SimpleTransport::getSpeciesFluxesExt: Stride must be greater than m_nsp");
|
||||
update_T();
|
||||
update_C();
|
||||
|
|
@ -590,16 +585,16 @@ namespace Cantera {
|
|||
|
||||
if (doMigration_) {
|
||||
double FRT = ElectronCharge / (Boltzmann * m_temp);
|
||||
for (n = 0; n < m_nDim; n++) {
|
||||
for (k = 0; k < m_nsp; k++) {
|
||||
for (size_t n = 0; n < m_nDim; n++) {
|
||||
for (size_t k = 0; k < m_nsp; k++) {
|
||||
fluxes[n*ldf + k] = -conc * mw[k] * m_spwork[k] *
|
||||
( m_Grad_X[n*m_nsp + k] + FRT * m_molefracs[k] * m_chargeSpecies[k] * m_Grad_V[n]);
|
||||
sum[n] += fluxes[n*ldf + k];
|
||||
}
|
||||
}
|
||||
} else {
|
||||
for (n = 0; n < m_nDim; n++) {
|
||||
for (k = 0; k < m_nsp; k++) {
|
||||
for (size_t n = 0; n < m_nDim; n++) {
|
||||
for (size_t k = 0; k < m_nsp; k++) {
|
||||
fluxes[n*ldf + k] = -conc * mw[k] * m_spwork[k] * m_Grad_X[n*m_nsp + k];
|
||||
sum[n] += fluxes[n*ldf + k];
|
||||
}
|
||||
|
|
@ -607,8 +602,8 @@ namespace Cantera {
|
|||
}
|
||||
|
||||
// add correction flux to enforce sum to zero
|
||||
for (n = 0; n < m_nDim; n++) {
|
||||
for (k = 0; k < m_nsp; k++) {
|
||||
for (size_t n = 0; n < m_nDim; n++) {
|
||||
for (size_t k = 0; k < m_nsp; k++) {
|
||||
fluxes[n*ldf + k] -= y[k]*sum[n];
|
||||
}
|
||||
}
|
||||
|
|
@ -625,7 +620,7 @@ namespace Cantera {
|
|||
if (!m_diff_temp_ok) {
|
||||
updateDiff_T();
|
||||
}
|
||||
for (int k = 0; k < m_nsp; k++) {
|
||||
for (size_t k = 0; k < m_nsp; k++) {
|
||||
d[k] = m_diffSpecies[k];
|
||||
}
|
||||
}
|
||||
|
|
@ -658,7 +653,7 @@ namespace Cantera {
|
|||
m_thermo->getMoleFractions(DATA_PTR(m_molefracs));
|
||||
m_thermo->getConcentrations(DATA_PTR(m_concentrations));
|
||||
concTot_ = 0.0;
|
||||
for (int k = 0; k < m_nsp; k++) {
|
||||
for (size_t k = 0; k < m_nsp; k++) {
|
||||
m_molefracs[k] = fmaxx(0.0, m_molefracs[k]);
|
||||
concTot_ += m_concentrations[k];
|
||||
}
|
||||
|
|
@ -684,14 +679,13 @@ namespace Cantera {
|
|||
* thermal conductivity.
|
||||
*/
|
||||
void SimpleTransport::updateCond_T() {
|
||||
int k;
|
||||
if (tempDepType_ == 0) {
|
||||
for (k = 0; k < m_nsp; k++) {
|
||||
for (size_t k = 0; k < m_nsp; k++) {
|
||||
Coeff_T_ &coeff = m_coeffLambda_Ns[k];
|
||||
m_condSpecies[k] = coeff[0];
|
||||
}
|
||||
} else if (tempDepType_ == 1) {
|
||||
for (k = 0; k < m_nsp; k++) {
|
||||
for (size_t k = 0; k < m_nsp; k++) {
|
||||
Coeff_T_ &coeff = m_coeffLambda_Ns[k];
|
||||
m_condSpecies[k] = coeff[0] * pow(m_temp,coeff[1]) * exp(-coeff[2]/m_temp);
|
||||
}
|
||||
|
|
@ -704,23 +698,22 @@ namespace Cantera {
|
|||
* Update the species diffusion coefficients.
|
||||
*/
|
||||
void SimpleTransport::updateDiff_T() {
|
||||
int k;
|
||||
if (useHydroRadius_) {
|
||||
double visc = viscosity();
|
||||
double RT = GasConstant * m_temp;
|
||||
for (k = 0; k < m_nsp; k++) {
|
||||
for (size_t k = 0; k < m_nsp; k++) {
|
||||
Coeff_T_ &coeff = m_coeffHydroRadius_Ns[k];
|
||||
double rad = coeff[0];
|
||||
m_diffSpecies[k] = RT / (6.0 * Pi * visc * rad);
|
||||
}
|
||||
} else {
|
||||
if (tempDepType_ == 0) {
|
||||
for (k = 0; k < m_nsp; k++) {
|
||||
for (size_t k = 0; k < m_nsp; k++) {
|
||||
Coeff_T_ &coeff = m_coeffDiff_Ns[k];
|
||||
m_diffSpecies[k] = coeff[0];
|
||||
}
|
||||
} else if (tempDepType_ == 1) {
|
||||
for (k = 0; k < m_nsp; k++) {
|
||||
for (size_t k = 0; k < m_nsp; k++) {
|
||||
Coeff_T_ &coeff = m_coeffDiff_Ns[k];
|
||||
m_diffSpecies[k] = coeff[0] * pow(m_temp,coeff[1]) * exp(-coeff[2]/m_temp);
|
||||
}
|
||||
|
|
@ -745,14 +738,13 @@ namespace Cantera {
|
|||
* The flag m_visc_ok is set to true.
|
||||
*/
|
||||
void SimpleTransport::updateViscosity_T() {
|
||||
int k;
|
||||
if (tempDepType_ == 0) {
|
||||
for (k = 0; k < m_nsp; k++) {
|
||||
for (size_t k = 0; k < m_nsp; k++) {
|
||||
Coeff_T_ &coeff = m_coeffVisc_Ns[k];
|
||||
m_viscSpecies[k] = coeff[0];
|
||||
}
|
||||
} else if (tempDepType_ == 1) {
|
||||
for (k = 0; k < m_nsp; k++) {
|
||||
for (size_t k = 0; k < m_nsp; k++) {
|
||||
Coeff_T_ &coeff = m_coeffVisc_Ns[k];
|
||||
m_viscSpecies[k] = coeff[0] * pow(m_temp,coeff[1]) * exp(-coeff[2]/m_temp);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -335,7 +335,7 @@ namespace Cantera {
|
|||
*
|
||||
*
|
||||
*/
|
||||
virtual void getSpeciesFluxes(int ndim,
|
||||
virtual void getSpeciesFluxes(size_t ndim,
|
||||
const doublereal* grad_T,
|
||||
int ldx, const doublereal* grad_X,
|
||||
int ldf, doublereal* fluxes);
|
||||
|
|
@ -367,7 +367,7 @@ namespace Cantera {
|
|||
* or greater than the number of species.
|
||||
* @param fluxes Vector of calculated fluxes
|
||||
*/
|
||||
virtual void getSpeciesFluxesExt(int ldf, doublereal* fluxes);
|
||||
virtual void getSpeciesFluxesExt(size_t ldf, doublereal* fluxes);
|
||||
|
||||
protected:
|
||||
|
||||
|
|
@ -690,7 +690,7 @@ namespace Cantera {
|
|||
/*!
|
||||
* Either 1, 2, or 3
|
||||
*/
|
||||
int m_nDim;
|
||||
size_t m_nDim;
|
||||
|
||||
private:
|
||||
|
||||
|
|
|
|||
|
|
@ -253,7 +253,7 @@ namespace Cantera {
|
|||
* Flat vector with the m_nsp in the inner loop.
|
||||
* length = ldx * ndim
|
||||
*/
|
||||
virtual void getSpeciesFluxes(int ndim,
|
||||
virtual void getSpeciesFluxes(size_t ndim,
|
||||
const doublereal* grad_T,
|
||||
int ldx,
|
||||
const doublereal* grad_X,
|
||||
|
|
|
|||
|
|
@ -416,8 +416,7 @@ namespace Cantera {
|
|||
getTransportData(transport_database, log,
|
||||
tr.thermo->speciesNames(), tr);
|
||||
|
||||
int i, j;
|
||||
for (i = 0; i < nsp; i++) tr.poly[i].resize(nsp);
|
||||
for (size_t i = 0; i < nsp; i++) tr.poly[i].resize(nsp);
|
||||
|
||||
doublereal ts1, ts2, tstar_min = 1.e8, tstar_max = 0.0;
|
||||
doublereal f_eps, f_sigma;
|
||||
|
|
@ -425,9 +424,9 @@ namespace Cantera {
|
|||
DenseMatrix& diam = tr.diam;
|
||||
DenseMatrix& epsilon = tr.epsilon;
|
||||
|
||||
for (i = 0; i < nsp; i++)
|
||||
for (size_t i = 0; i < nsp; i++)
|
||||
{
|
||||
for (j = i; j < nsp; j++)
|
||||
for (size_t j = i; j < nsp; j++)
|
||||
{
|
||||
// the reduced mass
|
||||
tr.reducedMass(i,j) =
|
||||
|
|
@ -715,7 +714,7 @@ namespace Cantera {
|
|||
std::map<std::string, GasTransportData> datatable;
|
||||
doublereal welldepth, diam, dipole, polar, rot;
|
||||
|
||||
int nsp = static_cast<int>(xspecies.size());
|
||||
size_t nsp = xspecies.size();
|
||||
|
||||
// read all entries in database into 'datatable' and check for
|
||||
// errors. Note that this procedure validates all entries, not
|
||||
|
|
@ -727,8 +726,7 @@ namespace Cantera {
|
|||
gindx["linear"] = 101;
|
||||
gindx["nonlinear"] = 102;
|
||||
int linenum = 0;
|
||||
int i;
|
||||
for (i = 0; i < nsp; i++) {
|
||||
for (size_t i = 0; i < nsp; i++) {
|
||||
const XML_Node& sp = *xspecies[i];
|
||||
name = sp["name"];
|
||||
// std::cout << "Processing node for " << name << std::endl;
|
||||
|
|
@ -777,7 +775,7 @@ namespace Cantera {
|
|||
}
|
||||
}
|
||||
|
||||
for (i = 0; i < tr.nsp_; i++) {
|
||||
for (size_t i = 0; i < tr.nsp_; i++) {
|
||||
|
||||
GasTransportData& trdat = datatable[names[i]];
|
||||
|
||||
|
|
@ -843,7 +841,7 @@ namespace Cantera {
|
|||
doublereal A_thcond, n_thcond, Tact_thcond;
|
||||
doublereal A_spdiff, n_spdiff, Tact_spdiff;
|
||||
|
||||
int nsp = static_cast<int>(xspecies.size());
|
||||
size_t nsp = xspecies.size();
|
||||
std::cout << "Size of xspecies " << nsp << std::endl;
|
||||
|
||||
// read all entries in database into 'datatable' and check for
|
||||
|
|
@ -851,8 +849,7 @@ namespace Cantera {
|
|||
// only those for the species listed in 'names'.
|
||||
|
||||
int linenum = 0;
|
||||
int i;
|
||||
for (i = 0; i < nsp; i++) {
|
||||
for (size_t i = 0; i < nsp; i++) {
|
||||
const XML_Node& sp = *xspecies[i];
|
||||
name = sp["name"];
|
||||
vector_fp vCoeff;
|
||||
|
|
@ -1038,7 +1035,7 @@ namespace Cantera {
|
|||
}
|
||||
|
||||
trParam.LTData.clear();
|
||||
for (i = 0; i < trParam.nsp_; i++) {
|
||||
for (size_t i = 0; i < trParam.nsp_; i++) {
|
||||
|
||||
LiquidTransportData& trdat = datatable[names[i]];
|
||||
|
||||
|
|
@ -1115,7 +1112,7 @@ namespace Cantera {
|
|||
void TransportFactory::fitProperties(GasTransportParams& tr,
|
||||
ostream& logfile) {
|
||||
doublereal tstar;
|
||||
int k, j, n, ndeg = 0;
|
||||
int ndeg = 0;
|
||||
#ifdef DEBUG_MODE
|
||||
char s[100];
|
||||
#endif
|
||||
|
|
@ -1133,7 +1130,7 @@ namespace Cantera {
|
|||
vector_fp w(np), w2(np);
|
||||
|
||||
// generate array of log(t) values
|
||||
for (n = 0; n < np; n++) {
|
||||
for (size_t n = 0; n < np; n++) {
|
||||
t = tr.tmin + dt*n;
|
||||
tlog[n] = log(t);
|
||||
}
|
||||
|
|
@ -1174,9 +1171,9 @@ namespace Cantera {
|
|||
c1, cv_rot, cv_int, f_rot, f_trans, om11;
|
||||
doublereal diffcoeff;
|
||||
|
||||
for (k = 0; k < tr.nsp_; k++)
|
||||
for (size_t k = 0; k < tr.nsp_; k++)
|
||||
{
|
||||
for (n = 0; n < np; n++) {
|
||||
for (size_t n = 0; n < np; n++) {
|
||||
t = tr.tmin + dt*n;
|
||||
|
||||
tr.thermo->setTemperature(t);
|
||||
|
|
@ -1249,7 +1246,7 @@ namespace Cantera {
|
|||
DATA_PTR(w), degree, ndeg, 0.0, DATA_PTR(c2));
|
||||
|
||||
// evaluate max fit errors for viscosity
|
||||
for (n = 0; n < np; n++) {
|
||||
for (size_t n = 0; n < np; n++) {
|
||||
if (mode == CK_Mode) {
|
||||
val = exp(spvisc[n]);
|
||||
fit = exp(poly3(tlog[n], DATA_PTR(c)));
|
||||
|
|
@ -1266,7 +1263,7 @@ namespace Cantera {
|
|||
}
|
||||
|
||||
// evaluate max fit errors for conductivity
|
||||
for (n = 0; n < np; n++) {
|
||||
for (size_t n = 0; n < np; n++) {
|
||||
if (mode == CK_Mode) {
|
||||
val = exp(spcond[n]);
|
||||
fit = exp(poly3(tlog[n], DATA_PTR(c2)));
|
||||
|
|
@ -1311,7 +1308,7 @@ namespace Cantera {
|
|||
tr.xml->XML_comment(logfile,s);
|
||||
}
|
||||
if (tr.log_level >= 2)
|
||||
for (k = 0; k < tr.nsp_; k++) {
|
||||
for (size_t k = 0; k < tr.nsp_; k++) {
|
||||
tr.xml->XML_writeVector(logfile, " ", tr.thermo->speciesName(k),
|
||||
degree+1, DATA_PTR(tr.condcoeffs[k]));
|
||||
}
|
||||
|
|
@ -1339,12 +1336,12 @@ namespace Cantera {
|
|||
mxerr = 0.0, mxrelerr = 0.0;
|
||||
vector_fp diff(np + 1);
|
||||
doublereal eps, sigma;
|
||||
for (k = 0; k < tr.nsp_; k++)
|
||||
for (size_t k = 0; k < tr.nsp_; k++)
|
||||
{
|
||||
for (j = k; j < tr.nsp_; j++) {
|
||||
for (size_t j = k; j < tr.nsp_; j++) {
|
||||
|
||||
ipoly = tr.poly[k][j];
|
||||
for (n = 0; n < np; n++) {
|
||||
for (size_t n = 0; n < np; n++) {
|
||||
|
||||
t = tr.tmin + dt*n;
|
||||
|
||||
|
|
@ -1379,7 +1376,7 @@ namespace Cantera {
|
|||
DATA_PTR(w), degree, ndeg, 0.0, DATA_PTR(c));
|
||||
|
||||
doublereal pre;
|
||||
for (n = 0; n < np; n++) {
|
||||
for (size_t n = 0; n < np; n++) {
|
||||
if (mode == CK_Mode) {
|
||||
val = exp(diff[n]);
|
||||
fit = exp(poly3(tlog[n], DATA_PTR(c)));
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue