fixed problem with continuing beyond max number of points
This commit is contained in:
parent
a3bef6e96c
commit
1b6e12aeaf
2 changed files with 23 additions and 6 deletions
|
|
@ -276,7 +276,6 @@ namespace Cantera {
|
|||
istep++;
|
||||
if (istep >= int(m_steps.size())) {
|
||||
nsteps = m_steps.back();
|
||||
// dt *= 2.0;
|
||||
}
|
||||
else {
|
||||
nsteps = m_steps[istep];
|
||||
|
|
@ -287,8 +286,11 @@ namespace Cantera {
|
|||
if (loglevel > 2) showSolution();
|
||||
|
||||
if (refine_grid) {
|
||||
//writelog("calling refine.\n");
|
||||
new_points = refine(loglevel);
|
||||
if (new_points < 0) {
|
||||
writelog("Maximum number of grid points reached.");
|
||||
new_points = 0;
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (loglevel > 0) writelog("grid refinement disabled.\n");
|
||||
|
|
@ -305,7 +307,7 @@ namespace Cantera {
|
|||
int np = 0;
|
||||
vector_fp znew, xnew;
|
||||
doublereal xmid, zmid;
|
||||
int strt, n, m, i;
|
||||
int strt, n, m, i, ianalyze;
|
||||
vector_int dsize;
|
||||
|
||||
for (n = 0; n < m_nd; n++) {
|
||||
|
|
@ -314,7 +316,10 @@ namespace Cantera {
|
|||
Refiner& r = d.refiner();
|
||||
|
||||
// determine where new points are needed
|
||||
r.analyze(d.grid().size(), d.grid().begin(), m_x.begin() + start(n));
|
||||
ianalyze = r.analyze(d.grid().size(),
|
||||
d.grid().begin(), m_x.begin() + start(n));
|
||||
if (ianalyze < 0) return ianalyze;
|
||||
|
||||
if (loglevel > 0) { r.show(); }
|
||||
|
||||
np += r.nNewPoints();
|
||||
|
|
@ -409,5 +414,17 @@ namespace Cantera {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void Sim1D::setMaxGridPoints(int dom, int npoints) {
|
||||
if (dom >= 0) {
|
||||
Refiner& r = domain(dom).refiner();
|
||||
r.setMaxPoints(npoints);
|
||||
}
|
||||
else {
|
||||
for (int n = 0; n < m_nd; n++) {
|
||||
Refiner& r = domain(n).refiner();
|
||||
r.setMaxPoints(npoints);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ namespace Cantera {
|
|||
|
||||
Refiner::Refiner(Domain1D& domain) :
|
||||
m_ratio(10.0), m_slope(0.8), m_curve(0.8), m_prune(-0.001),
|
||||
m_min_range(0.01), m_domain(&domain), m_npmax(300)
|
||||
m_min_range(0.01), m_domain(&domain), m_npmax(3000)
|
||||
{
|
||||
m_nv = m_domain->nComponents();
|
||||
m_active.resize(m_nv, true);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue