[Reactor] Make better use of local variables
This commit is contained in:
parent
4b8f8b692a
commit
ce9a17fb76
3 changed files with 9 additions and 16 deletions
|
|
@ -72,9 +72,8 @@ public:
|
||||||
throw CanteraError("PressureController::updateMassFlowRate",
|
throw CanteraError("PressureController::updateMassFlowRate",
|
||||||
"Device is not ready; some parameters have not been set.");
|
"Device is not ready; some parameters have not been set.");
|
||||||
}
|
}
|
||||||
doublereal master_mdot = m_master->massFlowRate(time);
|
m_mdot = m_master->massFlowRate(time)
|
||||||
m_mdot = master_mdot + m_coeffs[0]*(in().pressure() -
|
+ m_coeffs[0]*(in().pressure() - out().pressure());
|
||||||
out().pressure());
|
|
||||||
m_mdot = std::max(m_mdot, 0.0);
|
m_mdot = std::max(m_mdot, 0.0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -73,7 +73,6 @@ void ReactorNet::setSensitivityTolerances(double rtol, double atol)
|
||||||
|
|
||||||
void ReactorNet::initialize()
|
void ReactorNet::initialize()
|
||||||
{
|
{
|
||||||
size_t n, nv;
|
|
||||||
m_nv = 0;
|
m_nv = 0;
|
||||||
debuglog("Initializing reactor network.\n", m_verbose);
|
debuglog("Initializing reactor network.\n", m_verbose);
|
||||||
if (m_reactors.empty()) {
|
if (m_reactors.empty()) {
|
||||||
|
|
@ -81,10 +80,10 @@ void ReactorNet::initialize()
|
||||||
"no reactors in network!");
|
"no reactors in network!");
|
||||||
}
|
}
|
||||||
m_start.assign(1, 0);
|
m_start.assign(1, 0);
|
||||||
for (n = 0; n < m_reactors.size(); n++) {
|
for (size_t n = 0; n < m_reactors.size(); n++) {
|
||||||
Reactor& r = *m_reactors[n];
|
Reactor& r = *m_reactors[n];
|
||||||
r.initialize(m_time);
|
r.initialize(m_time);
|
||||||
nv = r.neq();
|
size_t nv = r.neq();
|
||||||
m_nv += nv;
|
m_nv += nv;
|
||||||
m_start.push_back(m_nv);
|
m_start.push_back(m_nv);
|
||||||
|
|
||||||
|
|
@ -162,9 +161,8 @@ void ReactorNet::addReactor(Reactor& r)
|
||||||
void ReactorNet::eval(doublereal t, doublereal* y,
|
void ReactorNet::eval(doublereal t, doublereal* y,
|
||||||
doublereal* ydot, doublereal* p)
|
doublereal* ydot, doublereal* p)
|
||||||
{
|
{
|
||||||
size_t n;
|
|
||||||
updateState(y);
|
updateState(y);
|
||||||
for (n = 0; n < m_reactors.size(); n++) {
|
for (size_t n = 0; n < m_reactors.size(); n++) {
|
||||||
m_reactors[n]->evalEqs(t, y + m_start[n], ydot + m_start[n], p);
|
m_reactors[n]->evalEqs(t, y + m_start[n], ydot + m_start[n], p);
|
||||||
}
|
}
|
||||||
checkFinite("ydot", ydot, m_nv);
|
checkFinite("ydot", ydot, m_nv);
|
||||||
|
|
@ -189,15 +187,12 @@ double ReactorNet::sensitivity(size_t k, size_t p)
|
||||||
void ReactorNet::evalJacobian(doublereal t, doublereal* y,
|
void ReactorNet::evalJacobian(doublereal t, doublereal* y,
|
||||||
doublereal* ydot, doublereal* p, Array2D* j)
|
doublereal* ydot, doublereal* p, Array2D* j)
|
||||||
{
|
{
|
||||||
doublereal ysave, dy;
|
|
||||||
Array2D& jac = *j;
|
|
||||||
|
|
||||||
//evaluate the unperturbed ydot
|
//evaluate the unperturbed ydot
|
||||||
eval(t, y, ydot, p);
|
eval(t, y, ydot, p);
|
||||||
for (size_t n = 0; n < m_nv; n++) {
|
for (size_t n = 0; n < m_nv; n++) {
|
||||||
// perturb x(n)
|
// perturb x(n)
|
||||||
ysave = y[n];
|
double ysave = y[n];
|
||||||
dy = m_atol[n] + fabs(ysave)*m_rtol;
|
double dy = m_atol[n] + fabs(ysave)*m_rtol;
|
||||||
y[n] = ysave + dy;
|
y[n] = ysave + dy;
|
||||||
dy = y[n] - ysave;
|
dy = y[n] - ysave;
|
||||||
|
|
||||||
|
|
@ -206,7 +201,7 @@ void ReactorNet::evalJacobian(doublereal t, doublereal* y,
|
||||||
|
|
||||||
// compute nth column of Jacobian
|
// compute nth column of Jacobian
|
||||||
for (size_t m = 0; m < m_nv; m++) {
|
for (size_t m = 0; m < m_nv; m++) {
|
||||||
jac(m,n) = (m_ydot[m] - ydot[m])/dy;
|
j->value(m,n) = (m_ydot[m] - ydot[m])/dy;
|
||||||
}
|
}
|
||||||
y[n] = ysave;
|
y[n] = ysave;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -39,8 +39,7 @@ void Wall::setKinetics(Kinetics* left, Kinetics* right)
|
||||||
|
|
||||||
doublereal Wall::vdot(doublereal t)
|
doublereal Wall::vdot(doublereal t)
|
||||||
{
|
{
|
||||||
double rate1 = m_k * m_area *
|
double rate1 = m_k * m_area * (m_left->pressure() - m_right->pressure());
|
||||||
(m_left->pressure() - m_right->pressure());
|
|
||||||
if (m_vf) {
|
if (m_vf) {
|
||||||
rate1 += m_area * m_vf->eval(t);
|
rate1 += m_area * m_vf->eval(t);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue