void GasKinetics::processFalloffReactions() { // use m_ropr for temporary storage of reduced pressure vector_fp& pr = m_ropr; for (size_t i = 0; i < m_nfall; i++) { pr[i] = concm_falloff_values[i] * m_rfn_low[i] / (m_rfn_high[i] + SmallNumber); AssertFinite(pr[i], "GasKinetics::processFalloffReactions", "pr[" + int2str(i) + "] is not finite."); } double* work = (falloff_work.empty()) ? 0 : &falloff_work[0]; m_falloffn.pr_to_falloff(&pr[0], work); for (size_t i = 0; i < m_nfall; i++) { if (m_rxntype[m_fallindx[i]] == FALLOFF_RXN) { pr[i] *= m_rfn_high[i]; } else { // CHEMACT_RXN pr[i] *= m_rfn_low[i]; } } scatter_copy(pr.begin(), pr.begin() + m_nfall, m_ropf.begin(), m_fallindx.begin()); }
//==================================================================================================================== void GasKinetics::processFalloffReactions() { // use m_ropr for temporary storage of reduced pressure vector_fp& pr = m_ropr; for (size_t i = 0; i < m_nfall; i++) { pr[i] = concm_falloff_values[i] * m_rfn_low[i] / m_rfn_high[i]; } double* work = (falloff_work.empty()) ? 0 : &falloff_work[0]; m_falloffn.pr_to_falloff(&pr[0], work); for (size_t i = 0; i < m_nfall; i++) { pr[i] *= m_rfn_high[i]; } scatter_copy(pr.begin(), pr.begin() + m_nfall, m_ropf.begin(), m_fallindx.begin()); }