ECOGEN 4.0
Evolutive, Compressible, Open, Genuine, Easy, N-phase
Loading...
Searching...
No Matches
LSODA Class Reference

#include <LSODA.h>

Public Member Functions

 LSODA ()
 
 ~LSODA ()
 
size_t idamax1 (const vector< double > &dx, const size_t n, const size_t offset)
 
void dscal1 (const double da, vector< double > &dx, const size_t n, const size_t offset)
 
double ddot1 (const vector< double > &a, const vector< double > &b, const size_t n, const size_t offsetA, const size_t offsetB)
 
void daxpy1 (const double da, const vector< double > &dx, vector< double > &dy, const size_t n, const size_t offsetX, const size_t offsetY)
 
void dgesl (const vector< vector< double > > &a, const size_t n, vector< int > &ipvt, vector< double > &b, const size_t job)
 
void dgefa (vector< vector< double > > &a, const size_t n, vector< int > &ipvt, size_t *const info)
 
void prja (const size_t neq, vector< double > &y, LSODA_ODE_SYSTEM_TYPE f, void *_data)
 
void lsoda (LSODA_ODE_SYSTEM_TYPE f, const size_t neq, vector< double > &y, double *t, double tout, int itask, int *istate, int iopt, int jt, array< int, 7 > &iworks, array< double, 4 > &rworks, void *_data)
 
void correction (const size_t neq, vector< double > &y, LSODA_ODE_SYSTEM_TYPE f, size_t *corflag, double pnorm, double *del, double *delp, double *told, size_t *ncf, double *rh, size_t *m, void *_data)
 
void stoda (const size_t neq, vector< double > &y, LSODA_ODE_SYSTEM_TYPE f, void *_data)
 
void lsoda_update (LSODA_ODE_SYSTEM_TYPE f, const size_t neq, vector< double > &y, double *t, const double tout, int *istate, void *const _data, double rtol=1.e-6, double atol=0.)
 
void terminate (int *istate)
 
void terminate2 (vector< double > &y, double *t)
 
void successreturn (vector< double > &y, double *t, int itask, int ihit, double tcrit, int *istate)
 
void _freevectors (void)
 
void ewset (const vector< double > &ycur)
 
void resetcoeff (void)
 
void solsy (vector< double > &y)
 
void endstoda (void)
 
void orderswitch (double *rhup, double dsm, double *pdh, double *rh, size_t *orderflag)
 
void intdy (double t, int k, vector< double > &dky, int *iflag)
 
void corfailure (double *told, double *rh, size_t *ncf, size_t *corflag)
 
void methodswitch (double dsm, double pnorm, double *pdh, double *rh)
 
void cfode (int meth_)
 
void scaleh (double *rh, double *pdh)
 
double fnorm (int n, const vector< vector< double > > &a, const vector< double > &w)
 
double vmnorm (const size_t n, const vector< double > &v, const vector< double > &w)
 

Static Public Member Functions

static bool abs_compare (double a, double b)
 

Public Attributes

void * param = nullptr
 

Private Attributes

size_t ml
 
size_t mu
 
size_t imxer
 
double sqrteta
 
array< size_t, 3 > mord
 
array< double, 13 > sm1
 
array< double, 14 > el
 
array< double, 13 > cm1
 
array< double, 6 > cm2
 
array< array< double, 14 >, 13 > elco
 
array< array< double, 4 >, 13 > tesco
 
size_t illin
 
size_t init
 
size_t ierpj
 
size_t iersl
 
size_t jcur
 
size_t l
 
size_t miter
 
size_t maxord
 
size_t maxcor
 
size_t msbp
 
size_t mxncf
 
int kflag
 
int jstart
 
size_t ixpr = 0
 
size_t jtyp
 
size_t mused
 
size_t mxordn
 
size_t mxords = 12
 
size_t meth_
 
size_t n
 
size_t nq
 
size_t nst
 
size_t nfe
 
size_t nje
 
size_t nqu
 
size_t mxstep
 
size_t mxhnil
 
size_t nslast
 
size_t nhnil
 
size_t ntrep
 
size_t nyh
 
double ccmax
 
double el0
 
double h_ = .0
 
double hmin
 
double hmxi
 
double hu
 
double rc
 
double tn_ = 0.0
 
double tsw
 
double pdnorm
 
double conit
 
double crate
 
double hold
 
double rmax
 
size_t ialth
 
size_t ipup
 
size_t lmax
 
size_t nslp
 
double pdest
 
double pdlast
 
double ratio
 
int icount
 
int irflag
 
vector< double > ewt
 
vector< double > savf
 
vector< double > acor
 
vector< vector< double > > yh_
 
vector< vector< double > > wm_
 
vector< int > ipvt
 
int itol_ = 2
 
std::vector< double > rtol_
 
std::vector< double > atol_
 

Constructor & Destructor Documentation

◆ LSODA()

LSODA::LSODA ( )

◆ ~LSODA()

LSODA::~LSODA ( )

Member Function Documentation

◆ _freevectors()

void LSODA::_freevectors ( void  )

◆ abs_compare()

bool LSODA::abs_compare ( double  a,
double  b 
)
static

◆ cfode()

void LSODA::cfode ( int  meth_)

◆ corfailure()

void LSODA::corfailure ( double *  told,
double *  rh,
size_t *  ncf,
size_t *  corflag 
)

◆ correction()

void LSODA::correction ( const size_t  neq,
vector< double > &  y,
LSODA_ODE_SYSTEM_TYPE  f,
size_t *  corflag,
double  pnorm,
double *  del,
double *  delp,
double *  told,
size_t *  ncf,
double *  rh,
size_t *  m,
void *  _data 
)

◆ daxpy1()

void LSODA::daxpy1 ( const double  da,
const vector< double > &  dx,
vector< double > &  dy,
const size_t  n,
const size_t  offsetX = 0,
const size_t  offsetY = 0 
)

◆ ddot1()

double LSODA::ddot1 ( const vector< double > &  a,
const vector< double > &  b,
const size_t  n,
const size_t  offsetA = 0,
const size_t  offsetB = 0 
)

◆ dgefa()

void LSODA::dgefa ( vector< vector< double > > &  a,
const size_t  n,
vector< int > &  ipvt,
size_t *const  info 
)

◆ dgesl()

void LSODA::dgesl ( const vector< vector< double > > &  a,
const size_t  n,
vector< int > &  ipvt,
vector< double > &  b,
const size_t  job 
)

◆ dscal1()

void LSODA::dscal1 ( const double  da,
vector< double > &  dx,
const size_t  n,
const size_t  offset = 0 
)

◆ endstoda()

void LSODA::endstoda ( void  )

◆ ewset()

void LSODA::ewset ( const vector< double > &  ycur)

◆ fnorm()

double LSODA::fnorm ( int  n,
const vector< vector< double > > &  a,
const vector< double > &  w 
)

◆ idamax1()

size_t LSODA::idamax1 ( const vector< double > &  dx,
const size_t  n,
const size_t  offset = 0 
)

◆ intdy()

void LSODA::intdy ( double  t,
int  k,
vector< double > &  dky,
int *  iflag 
)

◆ lsoda()

void LSODA::lsoda ( LSODA_ODE_SYSTEM_TYPE  f,
const size_t  neq,
vector< double > &  y,
double *  t,
double  tout,
int  itask,
int *  istate,
int  iopt,
int  jt,
array< int, 7 > &  iworks,
array< double, 4 > &  rworks,
void *  _data 
)

◆ lsoda_update()

void LSODA::lsoda_update ( LSODA_ODE_SYSTEM_TYPE  f,
const size_t  neq,
vector< double > &  y,
double *  t,
const double  tout,
int *  istate,
void *const  _data,
double  rtol = 1.e-6,
double  atol = 0. 
)

@Synopsis Simpler interface.

@Param f System @Param neq, size of system. @Param y, init values of size neq @Param yout, results vector for size neq+1, ignore yout[0] @Param t, start time. @Param tout, stop time. @Param _data @Param rtol, relative tolerance. @Param atol, absolute tolerance.

◆ methodswitch()

void LSODA::methodswitch ( double  dsm,
double  pnorm,
double *  pdh,
double *  rh 
)

◆ orderswitch()

void LSODA::orderswitch ( double *  rhup,
double  dsm,
double *  pdh,
double *  rh,
size_t *  orderflag 
)

◆ prja()

void LSODA::prja ( const size_t  neq,
vector< double > &  y,
LSODA_ODE_SYSTEM_TYPE  f,
void *  _data 
)

◆ resetcoeff()

void LSODA::resetcoeff ( void  )

◆ scaleh()

void LSODA::scaleh ( double *  rh,
double *  pdh 
)

◆ solsy()

void LSODA::solsy ( vector< double > &  y)

◆ stoda()

void LSODA::stoda ( const size_t  neq,
vector< double > &  y,
LSODA_ODE_SYSTEM_TYPE  f,
void *  _data 
)

◆ successreturn()

void LSODA::successreturn ( vector< double > &  y,
double *  t,
int  itask,
int  ihit,
double  tcrit,
int *  istate 
)

◆ terminate()

void LSODA::terminate ( int *  istate)

◆ terminate2()

void LSODA::terminate2 ( vector< double > &  y,
double *  t 
)

◆ vmnorm()

double LSODA::vmnorm ( const size_t  n,
const vector< double > &  v,
const vector< double > &  w 
)

Member Data Documentation

◆ acor

vector<double> LSODA::acor
private

◆ atol_

std::vector<double> LSODA::atol_
private

◆ ccmax

double LSODA::ccmax
private

◆ cm1

array<double, 13> LSODA::cm1
private

◆ cm2

array<double, 6> LSODA::cm2
private

◆ conit

double LSODA::conit
private

◆ crate

double LSODA::crate
private

◆ el

array<double, 14> LSODA::el
private

◆ el0

double LSODA::el0
private

◆ elco

array<array<double, 14>, 13> LSODA::elco
private

◆ ewt

vector<double> LSODA::ewt
private

◆ h_

double LSODA::h_ = .0
private

◆ hmin

double LSODA::hmin
private

◆ hmxi

double LSODA::hmxi
private

◆ hold

double LSODA::hold
private

◆ hu

double LSODA::hu
private

◆ ialth

size_t LSODA::ialth
private

◆ icount

int LSODA::icount
private

◆ ierpj

size_t LSODA::ierpj
private

◆ iersl

size_t LSODA::iersl
private

◆ illin

size_t LSODA::illin
private

◆ imxer

size_t LSODA::imxer
private

◆ init

size_t LSODA::init
private

◆ ipup

size_t LSODA::ipup
private

◆ ipvt

vector<int> LSODA::ipvt
private

◆ irflag

int LSODA::irflag
private

◆ itol_

int LSODA::itol_ = 2
private

◆ ixpr

size_t LSODA::ixpr = 0
private

◆ jcur

size_t LSODA::jcur
private

◆ jstart

int LSODA::jstart
private

◆ jtyp

size_t LSODA::jtyp
private

◆ kflag

int LSODA::kflag
private

◆ l

size_t LSODA::l
private

◆ lmax

size_t LSODA::lmax
private

◆ maxcor

size_t LSODA::maxcor
private

◆ maxord

size_t LSODA::maxord
private

◆ meth_

size_t LSODA::meth_
private

◆ miter

size_t LSODA::miter
private

◆ ml

size_t LSODA::ml
private

◆ mord

array<size_t, 3> LSODA::mord
private

◆ msbp

size_t LSODA::msbp
private

◆ mu

size_t LSODA::mu
private

◆ mused

size_t LSODA::mused
private

◆ mxhnil

size_t LSODA::mxhnil
private

◆ mxncf

size_t LSODA::mxncf
private

◆ mxordn

size_t LSODA::mxordn
private

◆ mxords

size_t LSODA::mxords = 12
private

◆ mxstep

size_t LSODA::mxstep
private

◆ n

size_t LSODA::n
private

◆ nfe

size_t LSODA::nfe
private

◆ nhnil

size_t LSODA::nhnil
private

◆ nje

size_t LSODA::nje
private

◆ nq

size_t LSODA::nq
private

◆ nqu

size_t LSODA::nqu
private

◆ nslast

size_t LSODA::nslast
private

◆ nslp

size_t LSODA::nslp
private

◆ nst

size_t LSODA::nst
private

◆ ntrep

size_t LSODA::ntrep
private

◆ nyh

size_t LSODA::nyh
private

◆ param

void* LSODA::param = nullptr

◆ pdest

double LSODA::pdest
private

◆ pdlast

double LSODA::pdlast
private

◆ pdnorm

double LSODA::pdnorm
private

◆ ratio

double LSODA::ratio
private

◆ rc

double LSODA::rc
private

◆ rmax

double LSODA::rmax
private

◆ rtol_

std::vector<double> LSODA::rtol_
private

◆ savf

vector<double> LSODA::savf
private

◆ sm1

array<double, 13> LSODA::sm1
private

◆ sqrteta

double LSODA::sqrteta
private

◆ tesco

array<array<double, 4>, 13> LSODA::tesco
private

◆ tn_

double LSODA::tn_ = 0.0
private

◆ tsw

double LSODA::tsw
private

◆ wm_

vector<vector<double> > LSODA::wm_
private

◆ yh_

vector<vector<double> > LSODA::yh_
private

The documentation for this class was generated from the following files: