@@ -12,6 +12,7 @@ Hybrj::Hybrj(IAlgLoop* algLoop, INonLinSolverSettings* settings)
1212 , _xHelp (NULL )
1313 , _f (NULL )
1414 , _fHelp (NULL )
15+ , _iHelp (NULL )
1516 , _jac (NULL )
1617 ,_diag(NULL )
1718 ,_r(NULL )
@@ -42,6 +43,7 @@ Hybrj::~Hybrj()
4243 if (_xHelp) delete [] _xHelp;
4344 if (_f) delete [] _f;
4445 if (_fHelp) delete [] _fHelp;
46+ if (_iHelp) delete [] _iHelp;
4547 if (_jac) delete [] _jac;
4648 if ( _diag ) delete[] _diag;
4749 if (_r) delete[] _r;
@@ -89,7 +91,8 @@ void Hybrj::initialize()
8991 if (_x) delete [] _x;
9092 if (_f) delete [] _f;
9193 if (_xHelp) delete [] _xHelp;
92- if (_fHelp) delete [] _fHelp;
94+ if (_fHelp) delete [] _fHelp;
95+ if (_iHelp) delete [] _iHelp;
9396 if (_jac) delete [] _jac;
9497 if (_x0) delete[] _x0;
9598 if (_x1) delete[] _x1;
@@ -102,6 +105,7 @@ void Hybrj::initialize()
102105 _f = new double [_dimSys];
103106 _xHelp = new double [_dimSys];
104107 _fHelp = new double [_dimSys];
108+ _iHelp = new long int [_dimSys];
105109 _jac = new double [_dimSys*_dimSys];
106110 _x0 = new double [_dimSys];
107111 _x1 = new double [_dimSys];
@@ -177,7 +181,7 @@ void Hybrj::solve()
177181 _algLoop->getReal (_x);
178182 _algLoop->getRHS (_f);
179183 _algLoop->getSystemMatrix (_jac);
180- dgesv_ (&dimSys,&dimRHS,_jac,&dimSys,_fHelp ,_f,&dimSys,&irtrn);
184+ dgesv_ (&dimSys,&dimRHS,_jac,&dimSys,_iHelp ,_f,&dimSys,&irtrn);
181185 memcpy (_x,_f,_dimSys*sizeof (double ));
182186 _algLoop->setReal (_x);
183187 _iterationStatus = DONE;
0 commit comments