NEURON
Cvode Class Reference

#include <cvodeobj.h>

Public Member Functions

 Cvode (NetCvode *)
 
 Cvode ()
 
virtual ~Cvode ()
 
virtual int handle_step (NetCvode *, double)
 
virtual int init (double t)
 
virtual int advance_tn ()
 
virtual int interpolate (double t)
 
virtual double tn ()
 
virtual double t0 ()
 
void init_prepare ()
 
int solve ()
 
void statistics ()
 
double gam ()
 
double time () const
 
void free_cvodemem ()
 
int order ()
 
void maxorder (int)
 
void minstep (double)
 
void maxstep (double)
 
void stat_init ()
 
N_Vector nvnew (long)
 
int setup (N_Vector ypred, N_Vector fpred)
 
int solvex_thread (double *b, double *y, NrnThread *nt)
 
int solvex_thread_part1 (double *b, NrnThread *nt)
 
int solvex_thread_part2 (NrnThread *nt)
 
int solvex_thread_part3 (double *b, NrnThread *nt)
 
void fun_thread (double t, double *y, double *ydot, NrnThread *nt)
 
void fun_thread_transfer_part1 (double t, double *y, NrnThread *nt)
 
void fun_thread_transfer_part2 (double *ydot, NrnThread *nt)
 
void fun_thread_ms_part1 (double t, double *y, NrnThread *nt)
 
void fun_thread_ms_part2 (NrnThread *nt)
 
void fun_thread_ms_part3 (NrnThread *nt)
 
void fun_thread_ms_part4 (double *ydot, NrnThread *nt)
 
void fun_thread_ms_part34 (double *ydot, NrnThread *nt)
 
bool at_time (double, NrnThread *)
 
void set_init_flag ()
 
void check_deliver (NrnThread *nt=0)
 
void evaluate_conditions (NrnThread *nt=0)
 
void ste_check ()
 
void states (double *)
 
void dstates (double *)
 
void error_weights (double *)
 
void acor (double *)
 
void fill (Cvode *standard)
 
void delete_prl ()
 
void record_add (PlayRecord *)
 
void record_continuous ()
 
void record_continuous_thread (NrnThread *)
 
void play_add (PlayRecord *)
 
void play_continuous (double t)
 
void play_continuous_thread (double t, NrnThread *)
 
void do_ode (NrnThread *)
 
void do_nonode (NrnThread *nt=0)
 
double * n_vector_data (N_Vector, int)
 
int res (double, double *, double *, double *, NrnThread *)
 
int psol (double, double *, double *, double, NrnThread *)
 
void daspk_scatter_y (N_Vector)
 
void daspk_gather_y (N_Vector)
 
void daspk_scatter_y (double *, int)
 
void daspk_gather_y (double *, int)
 
void scatter_y (double *, int)
 
void gather_y (N_Vector)
 
void gather_y (double *, int)
 
void scatter_ydot (double *, int)
 
void gather_ydot (N_Vector)
 
void gather_ydot (double *, int)
 
void activate_maxstate (bool)
 
void maxstate (double *)
 
void maxstate (bool, NrnThread *nt=0)
 
void maxacor (double *)
 

Public Attributes

double tn_
 
double t0_
 
double t_
 
bool initialize_
 
bool can_retreat_
 
int advance_calls_
 
int interpolate_calls_
 
int init_calls_
 
int f_calls_
 
int mxb_calls_
 
int jac_calls_
 
int ts_inits_
 
bool use_daspk_
 
Daspkdaspk_
 
voidmem_
 
N_Vector y_
 
N_Vector atolnvec_
 
N_Vector maxstate_
 
N_Vector maxacor_
 
bool structure_change_
 
CvodeThreadDatactd_
 
NrnThreadnth_
 
int nctd_
 
long intnthsizes_
 
NetCvodencv_
 
int neq_
 
int event_flag_
 
double next_at_time_
 
double tstop_
 
double tstop_begin_
 
double tstop_end_
 

Private Member Functions

void alloc_cvode ()
 
void alloc_daspk ()
 
int cvode_init (double)
 
int cvode_advance_tn ()
 
int cvode_interpolate (double)
 
int daspk_init (double)
 
int daspk_advance_tn ()
 
int daspk_interpolate (double)
 
void cvode_constructor ()
 
bool init_global ()
 
void init_eqn ()
 
void daspk_init_eqn ()
 
void matmeth ()
 
void nocap_v (NrnThread *)
 
void nocap_v_part1 (NrnThread *)
 
void nocap_v_part2 (NrnThread *)
 
void nocap_v_part3 (NrnThread *)
 
void solvemem (NrnThread *)
 
void atolvec_alloc (int)
 
double h ()
 
N_Vector ewtvec ()
 
N_Vector acorvec ()
 
void new_no_cap_memb (CvodeThreadData &, NrnThread *)
 
void before_after (BAMechList *, NrnThread *)
 
void rhs (NrnThread *)
 
void rhs_memb (CvMembList *, NrnThread *)
 
void lhs (NrnThread *)
 
void lhs_memb (CvMembList *, NrnThread *)
 
void triang (NrnThread *)
 
void bksub (NrnThread *)
 
bool is_owner (double *)
 
void daspk_setup1_tree_matrix ()
 
void daspk_setup2_tree_matrix ()
 

Private Attributes

bool local_
 
TQItemtqitem_
 
int prior2init_
 

Friends

class NetCvode
 

Detailed Description

Definition at line 75 of file cvodeobj.h.

Constructor & Destructor Documentation

◆ Cvode() [1/2]

Cvode::Cvode ( NetCvode ncv)

Definition at line 703 of file cvodeobj.cpp.

◆ Cvode() [2/2]

Cvode::Cvode ( )

Definition at line 707 of file cvodeobj.cpp.

◆ ~Cvode()

Cvode::~Cvode ( )
virtual

Definition at line 843 of file cvodeobj.cpp.

Member Function Documentation

◆ acor()

void Cvode::acor ( double *  pd)

Definition at line 956 of file occvode.cpp.

◆ acorvec()

N_Vector Cvode::acorvec ( )
private

Definition at line 1358 of file cvodeobj.cpp.

◆ activate_maxstate()

void Cvode::activate_maxstate ( bool  on)

Definition at line 913 of file cvodeobj.cpp.

◆ advance_tn()

int Cvode::advance_tn ( )
virtual

Definition at line 1113 of file cvodeobj.cpp.

◆ alloc_cvode()

void Cvode::alloc_cvode ( )
private

Definition at line 999 of file cvodeobj.cpp.

◆ alloc_daspk()

void Cvode::alloc_daspk ( )
private

Definition at line 1102 of file cvodeobj.cpp.

◆ at_time()

bool Cvode::at_time ( double  te,
NrnThread nt 
)

Definition at line 757 of file cvodeobj.cpp.

◆ atolvec_alloc()

void Cvode::atolvec_alloc ( int  i)
private

Definition at line 834 of file cvodeobj.cpp.

◆ before_after()

void Cvode::before_after ( BAMechList baml,
NrnThread nt 
)
private

Definition at line 740 of file occvode.cpp.

◆ bksub()

void Cvode::bksub ( NrnThread _nt)
private

Definition at line 142 of file cvtrset.cpp.

◆ check_deliver()

void Cvode::check_deliver ( NrnThread nt = 0)

Definition at line 5519 of file netcvode.cpp.

◆ cvode_advance_tn()

int Cvode::cvode_advance_tn ( )
private

Definition at line 1276 of file cvodeobj.cpp.

◆ cvode_constructor()

void Cvode::cvode_constructor ( )
private

Definition at line 710 of file cvodeobj.cpp.

◆ cvode_init()

int Cvode::cvode_init ( double  )
private

Definition at line 1058 of file cvodeobj.cpp.

◆ cvode_interpolate()

int Cvode::cvode_interpolate ( double  tout)
private

Definition at line 1312 of file cvodeobj.cpp.

◆ daspk_advance_tn()

int Cvode::daspk_advance_tn ( )
private

Definition at line 1337 of file cvodeobj.cpp.

◆ daspk_gather_y() [1/2]

void Cvode::daspk_gather_y ( N_Vector  y)

Definition at line 426 of file nrndaspk.cpp.

◆ daspk_gather_y() [2/2]

void Cvode::daspk_gather_y ( double *  y,
int  tid 
)

Definition at line 431 of file nrndaspk.cpp.

◆ daspk_init()

int Cvode::daspk_init ( double  tout)
private

Definition at line 1098 of file cvodeobj.cpp.

◆ daspk_init_eqn()

void Cvode::daspk_init_eqn ( )
private

Definition at line 332 of file occvode.cpp.

◆ daspk_interpolate()

int Cvode::daspk_interpolate ( double  )
private

◆ daspk_scatter_y() [1/2]

void Cvode::daspk_scatter_y ( N_Vector  y)

Definition at line 398 of file nrndaspk.cpp.

◆ daspk_scatter_y() [2/2]

void Cvode::daspk_scatter_y ( double *  y,
int  tid 
)

Definition at line 403 of file nrndaspk.cpp.

◆ daspk_setup1_tree_matrix()

void Cvode::daspk_setup1_tree_matrix ( )
private

◆ daspk_setup2_tree_matrix()

void Cvode::daspk_setup2_tree_matrix ( )
private

◆ delete_prl()

void Cvode::delete_prl ( )

Definition at line 968 of file occvode.cpp.

◆ do_nonode()

void Cvode::do_nonode ( NrnThread nt = 0)

Definition at line 889 of file occvode.cpp.

◆ do_ode()

void Cvode::do_ode ( NrnThread _nt)

Definition at line 863 of file occvode.cpp.

◆ dstates()

void Cvode::dstates ( double *  pd)

Definition at line 934 of file occvode.cpp.

◆ error_weights()

void Cvode::error_weights ( double *  pd)

Definition at line 945 of file occvode.cpp.

◆ evaluate_conditions()

void Cvode::evaluate_conditions ( NrnThread nt = 0)

Definition at line 5492 of file netcvode.cpp.

◆ ewtvec()

N_Vector Cvode::ewtvec ( )
private

Definition at line 1350 of file cvodeobj.cpp.

◆ fill()

void Cvode::fill ( Cvode standard)

◆ free_cvodemem()

void Cvode::free_cvodemem ( )

Definition at line 1037 of file cvodeobj.cpp.

◆ fun_thread()

void Cvode::fun_thread ( double  t,
double *  y,
double *  ydot,
NrnThread nt 
)

Definition at line 635 of file occvode.cpp.

◆ fun_thread_ms_part1()

void Cvode::fun_thread_ms_part1 ( double  t,
double *  y,
NrnThread nt 
)

Definition at line 692 of file occvode.cpp.

◆ fun_thread_ms_part2()

void Cvode::fun_thread_ms_part2 ( NrnThread nt)

Definition at line 710 of file occvode.cpp.

◆ fun_thread_ms_part3()

void Cvode::fun_thread_ms_part3 ( NrnThread nt)

Definition at line 717 of file occvode.cpp.

◆ fun_thread_ms_part34()

void Cvode::fun_thread_ms_part34 ( double *  ydot,
NrnThread nt 
)

Definition at line 713 of file occvode.cpp.

◆ fun_thread_ms_part4()

void Cvode::fun_thread_ms_part4 ( double *  ydot,
NrnThread nt 
)

Definition at line 721 of file occvode.cpp.

◆ fun_thread_transfer_part1()

void Cvode::fun_thread_transfer_part1 ( double  t,
double *  y,
NrnThread nt 
)

Definition at line 642 of file occvode.cpp.

◆ fun_thread_transfer_part2()

void Cvode::fun_thread_transfer_part2 ( double *  ydot,
NrnThread nt 
)

Definition at line 662 of file occvode.cpp.

◆ gam()

double Cvode::gam ( )

Definition at line 741 of file cvodeobj.cpp.

◆ gather_y() [1/2]

void Cvode::gather_y ( N_Vector  y)

Definition at line 471 of file occvode.cpp.

◆ gather_y() [2/2]

void Cvode::gather_y ( double *  y,
int  tid 
)

Definition at line 480 of file occvode.cpp.

◆ gather_ydot() [1/2]

void Cvode::gather_ydot ( N_Vector  y)

Definition at line 502 of file occvode.cpp.

◆ gather_ydot() [2/2]

void Cvode::gather_ydot ( double *  ydot,
int  tid 
)

Definition at line 511 of file occvode.cpp.

◆ h()

double Cvode::h ( )
private

Definition at line 749 of file cvodeobj.cpp.

◆ handle_step()

int Cvode::handle_step ( NetCvode ns,
double  te 
)
virtual

Definition at line 2217 of file netcvode.cpp.

◆ init()

int Cvode::init ( double  t)
virtual

Definition at line 1174 of file cvodeobj.cpp.

◆ init_eqn()

void Cvode::init_eqn ( )
private

Definition at line 109 of file occvode.cpp.

◆ init_global()

bool Cvode::init_global ( )
private

Definition at line 83 of file occvode.cpp.

◆ init_prepare()

void Cvode::init_prepare ( )

Definition at line 879 of file cvodeobj.cpp.

◆ interpolate()

int Cvode::interpolate ( double  t)
virtual

Definition at line 1207 of file cvodeobj.cpp.

◆ is_owner()

bool Cvode::is_owner ( double *  pd)
private

Definition at line 6334 of file netcvode.cpp.

◆ lhs()

void Cvode::lhs ( NrnThread _nt)
private

Definition at line 81 of file cvtrset.cpp.

◆ lhs_memb()

void Cvode::lhs_memb ( CvMembList cmlist,
NrnThread _nt 
)
private

Definition at line 105 of file cvtrset.cpp.

◆ matmeth()

void Cvode::matmeth ( )
private

Definition at line 1388 of file cvodeobj.cpp.

◆ maxacor()

void Cvode::maxacor ( double *  pd)

Definition at line 984 of file cvodeobj.cpp.

◆ maxorder()

void Cvode::maxorder ( int  maxord)

Definition at line 1011 of file cvodeobj.cpp.

◆ maxstate() [1/2]

void Cvode::maxstate ( double *  pd)

Definition at line 969 of file cvodeobj.cpp.

◆ maxstate() [2/2]

void Cvode::maxstate ( bool  b,
NrnThread nt = 0 
)

Definition at line 935 of file cvodeobj.cpp.

◆ maxstep()

void Cvode::maxstep ( double  x)

Definition at line 1029 of file cvodeobj.cpp.

◆ minstep()

void Cvode::minstep ( double  x)

Definition at line 1018 of file cvodeobj.cpp.

◆ n_vector_data()

double * Cvode::n_vector_data ( N_Vector  v,
int  tid 
)

Definition at line 434 of file occvode.cpp.

◆ new_no_cap_memb()

void Cvode::new_no_cap_memb ( CvodeThreadData z,
NrnThread _nt 
)
private

Definition at line 270 of file occvode.cpp.

◆ nocap_v()

void Cvode::nocap_v ( NrnThread _nt)
private

Definition at line 769 of file occvode.cpp.

◆ nocap_v_part1()

void Cvode::nocap_v_part1 ( NrnThread _nt)
private

Definition at line 815 of file occvode.cpp.

◆ nocap_v_part2()

void Cvode::nocap_v_part2 ( NrnThread _nt)
private

Definition at line 848 of file occvode.cpp.

◆ nocap_v_part3()

void Cvode::nocap_v_part3 ( NrnThread _nt)
private

Definition at line 851 of file occvode.cpp.

◆ nvnew()

N_Vector Cvode::nvnew ( long  )

Definition at line 798 of file cvodeobj.cpp.

◆ order()

int Cvode::order ( )

Definition at line 1002 of file cvodeobj.cpp.

◆ play_add()

void Cvode::play_add ( PlayRecord pr)

Definition at line 1022 of file occvode.cpp.

◆ play_continuous()

void Cvode::play_continuous ( double  t)

Definition at line 1030 of file occvode.cpp.

◆ play_continuous_thread()

void Cvode::play_continuous_thread ( double  t,
NrnThread nt 
)

Definition at line 1044 of file occvode.cpp.

◆ psol()

int Cvode::psol ( double  tt,
double *  y,
double *  b,
double  cj,
NrnThread _nt 
)

Definition at line 611 of file nrndaspk.cpp.

◆ record_add()

void Cvode::record_add ( PlayRecord pr)

Definition at line 983 of file occvode.cpp.

◆ record_continuous()

void Cvode::record_continuous ( )

Definition at line 991 of file occvode.cpp.

◆ record_continuous_thread()

void Cvode::record_continuous_thread ( NrnThread nt)

Definition at line 1010 of file occvode.cpp.

◆ res()

int Cvode::res ( double  tt,
double *  y,
double *  yprime,
double *  delta,
NrnThread nt 
)

Definition at line 455 of file nrndaspk.cpp.

◆ rhs()

void Cvode::rhs ( NrnThread _nt)
private

Definition at line 16 of file cvtrset.cpp.

◆ rhs_memb()

void Cvode::rhs_memb ( CvMembList cmlist,
NrnThread _nt 
)
private

Definition at line 60 of file cvtrset.cpp.

◆ scatter_y()

void Cvode::scatter_y ( double *  y,
int  tid 
)

Definition at line 445 of file occvode.cpp.

◆ scatter_ydot()

void Cvode::scatter_ydot ( double *  ydot,
int  tid 
)

Definition at line 489 of file occvode.cpp.

◆ set_init_flag()

void Cvode::set_init_flag ( )

Definition at line 790 of file cvodeobj.cpp.

◆ setup()

int Cvode::setup ( N_Vector  ypred,
N_Vector  fpred 
)

Definition at line 522 of file occvode.cpp.

◆ solve()

int Cvode::solve ( )

Definition at line 1154 of file cvodeobj.cpp.

◆ solvemem()

void Cvode::solvemem ( NrnThread nt)
private

Definition at line 615 of file occvode.cpp.

◆ solvex_thread()

int Cvode::solvex_thread ( double *  b,
double *  y,
NrnThread nt 
)

Definition at line 534 of file occvode.cpp.

◆ solvex_thread_part1()

int Cvode::solvex_thread_part1 ( double *  b,
NrnThread nt 
)

Definition at line 575 of file occvode.cpp.

◆ solvex_thread_part2()

int Cvode::solvex_thread_part2 ( NrnThread nt)

Definition at line 595 of file occvode.cpp.

◆ solvex_thread_part3()

int Cvode::solvex_thread_part3 ( double *  b,
NrnThread nt 
)

Definition at line 599 of file occvode.cpp.

◆ stat_init()

void Cvode::stat_init ( )

Definition at line 873 of file cvodeobj.cpp.

◆ states()

void Cvode::states ( double *  pd)

Definition at line 923 of file occvode.cpp.

◆ statistics()

void Cvode::statistics ( )

Definition at line 1366 of file cvodeobj.cpp.

◆ ste_check()

void Cvode::ste_check ( )

◆ t0()

virtual double Cvode::t0 ( )
inlinevirtual

Definition at line 86 of file cvodeobj.h.

◆ time()

double Cvode::time ( ) const
inline

Definition at line 92 of file cvodeobj.h.

◆ tn()

virtual double Cvode::tn ( )
inlinevirtual

Definition at line 85 of file cvodeobj.h.

◆ triang()

void Cvode::triang ( NrnThread _nt)
private

Definition at line 126 of file cvtrset.cpp.

Friends And Related Function Documentation

◆ NetCvode

friend class NetCvode
friend

Definition at line 219 of file cvodeobj.h.

Member Data Documentation

◆ advance_calls_

int Cvode::advance_calls_

Definition at line 102 of file cvodeobj.h.

◆ atolnvec_

N_Vector Cvode::atolnvec_

Definition at line 190 of file cvodeobj.h.

◆ can_retreat_

bool Cvode::can_retreat_

Definition at line 99 of file cvodeobj.h.

◆ ctd_

CvodeThreadData* Cvode::ctd_

Definition at line 199 of file cvodeobj.h.

◆ daspk_

Daspk* Cvode::daspk_

Definition at line 169 of file cvodeobj.h.

◆ event_flag_

int Cvode::event_flag_

Definition at line 205 of file cvodeobj.h.

◆ f_calls_

int Cvode::f_calls_

Definition at line 103 of file cvodeobj.h.

◆ init_calls_

int Cvode::init_calls_

Definition at line 102 of file cvodeobj.h.

◆ initialize_

bool Cvode::initialize_

Definition at line 98 of file cvodeobj.h.

◆ interpolate_calls_

int Cvode::interpolate_calls_

Definition at line 102 of file cvodeobj.h.

◆ jac_calls_

int Cvode::jac_calls_

Definition at line 103 of file cvodeobj.h.

◆ local_

bool Cvode::local_
private

Definition at line 221 of file cvodeobj.h.

◆ maxacor_

N_Vector Cvode::maxacor_

Definition at line 192 of file cvodeobj.h.

◆ maxstate_

N_Vector Cvode::maxstate_

Definition at line 191 of file cvodeobj.h.

◆ mem_

void* Cvode::mem_

Definition at line 188 of file cvodeobj.h.

◆ mxb_calls_

int Cvode::mxb_calls_

Definition at line 103 of file cvodeobj.h.

◆ nctd_

int Cvode::nctd_

Definition at line 201 of file cvodeobj.h.

◆ ncv_

NetCvode* Cvode::ncv_

Definition at line 203 of file cvodeobj.h.

◆ neq_

int Cvode::neq_

Definition at line 204 of file cvodeobj.h.

◆ next_at_time_

double Cvode::next_at_time_

Definition at line 206 of file cvodeobj.h.

◆ nth_

NrnThread* Cvode::nth_

Definition at line 200 of file cvodeobj.h.

◆ nthsizes_

long int* Cvode::nthsizes_

Definition at line 202 of file cvodeobj.h.

◆ prior2init_

int Cvode::prior2init_
private

Definition at line 226 of file cvodeobj.h.

◆ structure_change_

bool Cvode::structure_change_

Definition at line 194 of file cvodeobj.h.

◆ t0_

double Cvode::t0_

Definition at line 97 of file cvodeobj.h.

◆ t_

double Cvode::t_

Definition at line 97 of file cvodeobj.h.

◆ tn_

double Cvode::tn_

Definition at line 97 of file cvodeobj.h.

◆ tqitem_

TQItem* Cvode::tqitem_
private

Definition at line 224 of file cvodeobj.h.

◆ ts_inits_

int Cvode::ts_inits_

Definition at line 103 of file cvodeobj.h.

◆ tstop_

double Cvode::tstop_

Definition at line 207 of file cvodeobj.h.

◆ tstop_begin_

double Cvode::tstop_begin_

Definition at line 208 of file cvodeobj.h.

◆ tstop_end_

double Cvode::tstop_end_

Definition at line 208 of file cvodeobj.h.

◆ use_daspk_

bool Cvode::use_daspk_

Definition at line 168 of file cvodeobj.h.

◆ y_

N_Vector Cvode::y_

Definition at line 189 of file cvodeobj.h.


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