Fixed indexing problems when evaluating Jacobian for 1D simulations
This commit is contained in:
parent
c3398e7a3e
commit
38322d720a
2 changed files with 7 additions and 10 deletions
|
|
@ -56,8 +56,7 @@ void MultiJac::eval(doublereal* x0, doublereal* resid0, doublereal rdt)
|
|||
m_nevals++;
|
||||
clock_t t0 = clock();
|
||||
bfill(0.0);
|
||||
|
||||
size_t n, m, ipt=0, i, j, nv, mv, iloc;
|
||||
size_t n, m, ipt=0, j, nv, mv, iloc;
|
||||
doublereal rdx, dx, xsave;
|
||||
|
||||
for (j = 0; j < m_points; j++) {
|
||||
|
|
@ -75,7 +74,7 @@ void MultiJac::eval(doublereal* x0, doublereal* resid0, doublereal rdt)
|
|||
m_resid->eval(j, x0, DATA_PTR(m_r1), rdt, 0);
|
||||
|
||||
// compute nth column of Jacobian
|
||||
for (i = j - 1; i <= j+1; i++) {
|
||||
for (size_t i = j - 1; i != j+2; i++) {
|
||||
if (i != npos && i < m_points) {
|
||||
mv = m_resid->nVars(i);
|
||||
iloc = m_resid->loc(i);
|
||||
|
|
|
|||
|
|
@ -666,32 +666,30 @@ void FreeFlame::eval(size_t jg, doublereal* xg,
|
|||
doublereal* rsd = rg + loc();
|
||||
integer* diag = diagg + loc();
|
||||
|
||||
size_t jmin, jmax, jpt;
|
||||
jpt = jg - firstPoint();
|
||||
size_t jmin, jmax;
|
||||
|
||||
if (jg == npos) { // evaluate all points
|
||||
jmin = 0;
|
||||
jmax = m_points - 1;
|
||||
} else { // evaluate points for Jacobian
|
||||
jmin = std::max<size_t>(jpt-1, 0);
|
||||
size_t jpt = (jg == 0) ? 0 : jg - firstPoint();
|
||||
jmin = std::max<size_t>(jpt, 1) - 1;
|
||||
jmax = std::min(jpt+1,m_points-1);
|
||||
}
|
||||
|
||||
// properties are computed for grid points from j0 to j1
|
||||
size_t j0 = std::max<size_t>(jmin-1,0);
|
||||
size_t j0 = std::max<size_t>(jmin, 1) - 1;
|
||||
size_t j1 = std::min(jmax+1,m_points-1);
|
||||
|
||||
|
||||
size_t j, k;
|
||||
|
||||
|
||||
//-----------------------------------------------------
|
||||
// update properties
|
||||
//-----------------------------------------------------
|
||||
|
||||
// update thermodynamic properties only if a Jacobian is not
|
||||
// being evaluated
|
||||
if (jpt == npos) {
|
||||
if (jg == npos) {
|
||||
updateThermo(x, j0, j1);
|
||||
updateTransport(x, j0, j1);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue