NEURON
Cvode Class Reference

#include <cvodeobj.h>

Public Member Functions

 Cvode (NetCvode *)
 
 Cvode ()
 
virtual ~Cvode ()
 
virtual int handle_step (neuron::model_sorted_token const &, NetCvode *, double)
 
virtual int init (double t)
 
virtual int advance_tn (neuron::model_sorted_token const &)
 
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 (neuron::model_sorted_token const &, 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 (neuron::model_sorted_token const &, double t, double *y, double *ydot, NrnThread *nt)
 
void fun_thread_transfer_part1 (neuron::model_sorted_token const &, double t, double *y, NrnThread *nt)
 
void fun_thread_transfer_part2 (neuron::model_sorted_token const &, 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 (neuron::model_sorted_token const &, NrnThread &)
 
void do_nonode (neuron::model_sorted_token const &, 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 (neuron::model_sorted_token const &, 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_
 
void * mem_
 
N_Vector y_
 
N_Vector atolnvec_
 
N_Vector maxstate_
 
N_Vector maxacor_
 
bool structure_change_
 
CvodeThreadDatactd_
 
NrnThreadnth_
 
int nctd_
 
long int * nthsizes_
 
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 (neuron::model_sorted_token const &)
 
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 (neuron::model_sorted_token const &, NrnThread *)
 
void nocap_v_part1 (NrnThread *)
 
void nocap_v_part2 (NrnThread *)
 
void nocap_v_part3 (NrnThread *)
 
void solvemem (neuron::model_sorted_token const &, NrnThread *)
 
void atolvec_alloc (int)
 
double h ()
 
N_Vector ewtvec ()
 
N_Vector acorvec ()
 
void new_no_cap_memb (CvodeThreadData &, NrnThread *)
 
void before_after (neuron::model_sorted_token const &, BAMechList *, NrnThread *)
 
void rhs (neuron::model_sorted_token const &, NrnThread *)
 
void rhs_memb (neuron::model_sorted_token const &, CvMembList *, NrnThread *)
 
void lhs (neuron::model_sorted_token const &, NrnThread *)
 
void lhs_memb (neuron::model_sorted_token const &, CvMembList *, NrnThread *)
 
void triang (NrnThread *)
 
void bksub (NrnThread *)
 
bool is_owner (neuron::container::data_handle< double > const &)
 
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 97 of file cvodeobj.h.

Constructor & Destructor Documentation

◆ Cvode() [1/2]

Cvode::Cvode ( NetCvode ncv)

Definition at line 694 of file cvodeobj.cpp.

◆ Cvode() [2/2]

Cvode::Cvode ( )

Definition at line 698 of file cvodeobj.cpp.

◆ ~Cvode()

Cvode::~Cvode ( )
virtual

Definition at line 835 of file cvodeobj.cpp.

Member Function Documentation

◆ acor()

void Cvode::acor ( double *  pd)

Definition at line 1066 of file occvode.cpp.

◆ acorvec()

N_Vector Cvode::acorvec ( )
private

Definition at line 1399 of file cvodeobj.cpp.

◆ activate_maxstate()

void Cvode::activate_maxstate ( bool  on)

Definition at line 899 of file cvodeobj.cpp.

◆ advance_tn()

int Cvode::advance_tn ( neuron::model_sorted_token const &  sorted_token)
virtual

Definition at line 1117 of file cvodeobj.cpp.

◆ alloc_cvode()

void Cvode::alloc_cvode ( )
private

Definition at line 982 of file cvodeobj.cpp.

◆ alloc_daspk()

void Cvode::alloc_daspk ( )
private

Definition at line 1107 of file cvodeobj.cpp.

◆ at_time()

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

Definition at line 745 of file cvodeobj.cpp.

◆ atolvec_alloc()

void Cvode::atolvec_alloc ( int  i)
private

Definition at line 826 of file cvodeobj.cpp.

◆ before_after()

void Cvode::before_after ( neuron::model_sorted_token const &  sorted_token,
BAMechList baml,
NrnThread nt 
)
private

Definition at line 857 of file occvode.cpp.

◆ bksub()

void Cvode::bksub ( NrnThread _nt)
private

Definition at line 155 of file cvtrset.cpp.

◆ check_deliver()

void Cvode::check_deliver ( NrnThread nt = 0)

Definition at line 5499 of file netcvode.cpp.

◆ cvode_advance_tn()

int Cvode::cvode_advance_tn ( neuron::model_sorted_token const &  sorted_token)
private

Definition at line 1299 of file cvodeobj.cpp.

◆ cvode_constructor()

void Cvode::cvode_constructor ( )
private

Definition at line 701 of file cvodeobj.cpp.

◆ cvode_init()

int Cvode::cvode_init ( double  )
private

Definition at line 1057 of file cvodeobj.cpp.

◆ cvode_interpolate()

int Cvode::cvode_interpolate ( double  tout)
private

Definition at line 1341 of file cvodeobj.cpp.

◆ daspk_advance_tn()

int Cvode::daspk_advance_tn ( )
private

Definition at line 1377 of file cvodeobj.cpp.

◆ daspk_gather_y() [1/2]

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

Definition at line 425 of file nrndaspk.cpp.

◆ daspk_gather_y() [2/2]

void Cvode::daspk_gather_y ( N_Vector  y)

Definition at line 420 of file nrndaspk.cpp.

◆ daspk_init()

int Cvode::daspk_init ( double  tout)
private

Definition at line 1103 of file cvodeobj.cpp.

◆ daspk_init_eqn()

void Cvode::daspk_init_eqn ( )
private

Definition at line 369 of file occvode.cpp.

◆ daspk_interpolate()

int Cvode::daspk_interpolate ( double  )
private

◆ daspk_scatter_y() [1/2]

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

Definition at line 396 of file nrndaspk.cpp.

◆ daspk_scatter_y() [2/2]

void Cvode::daspk_scatter_y ( N_Vector  y)

Definition at line 391 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 1077 of file occvode.cpp.

◆ do_nonode()

void Cvode::do_nonode ( neuron::model_sorted_token const &  sorted_token,
NrnThread nt = 0 
)

Definition at line 1005 of file occvode.cpp.

◆ do_ode()

void Cvode::do_ode ( neuron::model_sorted_token const &  sorted_token,
NrnThread nt 
)

Definition at line 985 of file occvode.cpp.

◆ dstates()

void Cvode::dstates ( double *  pd)

Definition at line 1044 of file occvode.cpp.

◆ error_weights()

void Cvode::error_weights ( double *  pd)

Definition at line 1055 of file occvode.cpp.

◆ evaluate_conditions()

void Cvode::evaluate_conditions ( NrnThread nt = 0)

Definition at line 5470 of file netcvode.cpp.

◆ ewtvec()

N_Vector Cvode::ewtvec ( )
private

Definition at line 1391 of file cvodeobj.cpp.

◆ fill()

void Cvode::fill ( Cvode standard)

◆ free_cvodemem()

void Cvode::free_cvodemem ( )

Definition at line 1031 of file cvodeobj.cpp.

◆ fun_thread()

void Cvode::fun_thread ( neuron::model_sorted_token const &  sorted_token,
double  t,
double *  y,
double *  ydot,
NrnThread nt 
)

Definition at line 715 of file occvode.cpp.

◆ fun_thread_ms_part1()

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

Definition at line 804 of file occvode.cpp.

◆ fun_thread_ms_part2()

void Cvode::fun_thread_ms_part2 ( NrnThread nt)

Definition at line 823 of file occvode.cpp.

◆ fun_thread_ms_part3()

void Cvode::fun_thread_ms_part3 ( NrnThread nt)

Definition at line 830 of file occvode.cpp.

◆ fun_thread_ms_part34()

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

Definition at line 826 of file occvode.cpp.

◆ fun_thread_ms_part4()

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

Definition at line 834 of file occvode.cpp.

◆ fun_thread_transfer_part1()

void Cvode::fun_thread_transfer_part1 ( neuron::model_sorted_token const &  sorted_token,
double  t,
double *  y,
NrnThread nt 
)

Definition at line 737 of file occvode.cpp.

◆ fun_thread_transfer_part2()

void Cvode::fun_thread_transfer_part2 ( neuron::model_sorted_token const &  sorted_token,
double *  ydot,
NrnThread nt 
)

Definition at line 764 of file occvode.cpp.

◆ gam()

double Cvode::gam ( )

Definition at line 729 of file cvodeobj.cpp.

◆ gather_y() [1/2]

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

Definition at line 532 of file occvode.cpp.

◆ gather_y() [2/2]

void Cvode::gather_y ( N_Vector  y)

Definition at line 523 of file occvode.cpp.

◆ gather_ydot() [1/2]

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

Definition at line 563 of file occvode.cpp.

◆ gather_ydot() [2/2]

void Cvode::gather_ydot ( N_Vector  y)

Definition at line 554 of file occvode.cpp.

◆ h()

double Cvode::h ( )
private

Definition at line 737 of file cvodeobj.cpp.

◆ handle_step()

int Cvode::handle_step ( neuron::model_sorted_token const &  sorted_token,
NetCvode ns,
double  te 
)
virtual

Definition at line 2136 of file netcvode.cpp.

◆ init()

int Cvode::init ( double  t)
virtual

Definition at line 1189 of file cvodeobj.cpp.

◆ init_eqn()

void Cvode::init_eqn ( )
private

Definition at line 99 of file occvode.cpp.

◆ init_global()

bool Cvode::init_global ( )
private

Definition at line 74 of file occvode.cpp.

◆ init_prepare()

void Cvode::init_prepare ( )

Definition at line 865 of file cvodeobj.cpp.

◆ interpolate()

int Cvode::interpolate ( double  t)
virtual

Definition at line 1222 of file cvodeobj.cpp.

◆ is_owner()

bool Cvode::is_owner ( neuron::container::data_handle< double > const &  handle)
private

Definition at line 6379 of file netcvode.cpp.

◆ lhs()

void Cvode::lhs ( neuron::model_sorted_token const &  sorted_token,
NrnThread _nt 
)
private

Definition at line 86 of file cvtrset.cpp.

◆ lhs_memb()

void Cvode::lhs_memb ( neuron::model_sorted_token const &  sorted_token,
CvMembList cmlist,
NrnThread _nt 
)
private

Definition at line 119 of file cvtrset.cpp.

◆ matmeth()

void Cvode::matmeth ( )
private

Definition at line 1441 of file cvodeobj.cpp.

◆ maxacor()

void Cvode::maxacor ( double *  pd)

Definition at line 969 of file cvodeobj.cpp.

◆ maxorder()

void Cvode::maxorder ( int  maxord)

Definition at line 997 of file cvodeobj.cpp.

◆ maxstate() [1/2]

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

Definition at line 920 of file cvodeobj.cpp.

◆ maxstate() [2/2]

void Cvode::maxstate ( double *  pd)

Definition at line 956 of file cvodeobj.cpp.

◆ maxstep()

void Cvode::maxstep ( double  x)

Definition at line 1019 of file cvodeobj.cpp.

◆ minstep()

void Cvode::minstep ( double  x)

Definition at line 1008 of file cvodeobj.cpp.

◆ n_vector_data()

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

Definition at line 485 of file occvode.cpp.

◆ new_no_cap_memb()

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

Definition at line 311 of file occvode.cpp.

◆ nocap_v()

void Cvode::nocap_v ( neuron::model_sorted_token const &  sorted_token,
NrnThread _nt 
)
private

Definition at line 887 of file occvode.cpp.

◆ nocap_v_part1()

void Cvode::nocap_v_part1 ( NrnThread _nt)
private

Definition at line 932 of file occvode.cpp.

◆ nocap_v_part2()

void Cvode::nocap_v_part2 ( NrnThread _nt)
private

Definition at line 968 of file occvode.cpp.

◆ nocap_v_part3()

void Cvode::nocap_v_part3 ( NrnThread _nt)
private

Definition at line 971 of file occvode.cpp.

◆ nvnew()

N_Vector Cvode::nvnew ( long  )

Definition at line 788 of file cvodeobj.cpp.

◆ order()

int Cvode::order ( )

Definition at line 984 of file cvodeobj.cpp.

◆ play_add()

void Cvode::play_add ( PlayRecord pr)

Definition at line 1133 of file occvode.cpp.

◆ play_continuous()

void Cvode::play_continuous ( double  t)

Definition at line 1141 of file occvode.cpp.

◆ play_continuous_thread()

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

Definition at line 1155 of file occvode.cpp.

◆ psol()

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

Definition at line 604 of file nrndaspk.cpp.

◆ record_add()

void Cvode::record_add ( PlayRecord pr)

Definition at line 1092 of file occvode.cpp.

◆ record_continuous()

void Cvode::record_continuous ( )

Definition at line 1101 of file occvode.cpp.

◆ record_continuous_thread()

void Cvode::record_continuous_thread ( NrnThread nt)

Definition at line 1121 of file occvode.cpp.

◆ res()

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

Definition at line 450 of file nrndaspk.cpp.

◆ rhs()

void Cvode::rhs ( neuron::model_sorted_token const &  sorted_token,
NrnThread _nt 
)
private

Definition at line 12 of file cvtrset.cpp.

◆ rhs_memb()

void Cvode::rhs_memb ( neuron::model_sorted_token const &  sorted_token,
CvMembList cmlist,
NrnThread _nt 
)
private

Definition at line 66 of file cvtrset.cpp.

◆ scatter_y()

void Cvode::scatter_y ( neuron::model_sorted_token const &  sorted_token,
double *  y,
int  tid 
)

Definition at line 498 of file occvode.cpp.

◆ scatter_ydot()

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

Definition at line 541 of file occvode.cpp.

◆ set_init_flag()

void Cvode::set_init_flag ( )

Definition at line 780 of file cvodeobj.cpp.

◆ setup()

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

Definition at line 574 of file occvode.cpp.

◆ solve()

int Cvode::solve ( )

Definition at line 1168 of file cvodeobj.cpp.

◆ solvemem()

void Cvode::solvemem ( neuron::model_sorted_token const &  sorted_token,
NrnThread nt 
)
private

Definition at line 697 of file occvode.cpp.

◆ solvex_thread()

int Cvode::solvex_thread ( neuron::model_sorted_token const &  sorted_token,
double *  b,
double *  y,
NrnThread nt 
)

Definition at line 588 of file occvode.cpp.

◆ solvex_thread_part1()

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

Definition at line 650 of file occvode.cpp.

◆ solvex_thread_part2()

int Cvode::solvex_thread_part2 ( NrnThread nt)

Definition at line 677 of file occvode.cpp.

◆ solvex_thread_part3()

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

Definition at line 681 of file occvode.cpp.

◆ stat_init()

void Cvode::stat_init ( )

Definition at line 859 of file cvodeobj.cpp.

◆ states()

void Cvode::states ( double *  pd)

Definition at line 1033 of file occvode.cpp.

◆ statistics()

void Cvode::statistics ( )

Definition at line 1407 of file cvodeobj.cpp.

◆ ste_check()

void Cvode::ste_check ( )

◆ t0()

virtual double Cvode::t0 ( )
inlinevirtual

Definition at line 110 of file cvodeobj.h.

◆ time()

double Cvode::time ( ) const
inline

Definition at line 118 of file cvodeobj.h.

◆ tn()

virtual double Cvode::tn ( )
inlinevirtual

Definition at line 107 of file cvodeobj.h.

◆ triang()

void Cvode::triang ( NrnThread _nt)
private

Definition at line 139 of file cvtrset.cpp.

Friends And Related Function Documentation

◆ NetCvode

friend class NetCvode
friend

Definition at line 261 of file cvodeobj.h.

Member Data Documentation

◆ advance_calls_

int Cvode::advance_calls_

Definition at line 131 of file cvodeobj.h.

◆ atolnvec_

N_Vector Cvode::atolnvec_

Definition at line 232 of file cvodeobj.h.

◆ can_retreat_

bool Cvode::can_retreat_

Definition at line 128 of file cvodeobj.h.

◆ ctd_

CvodeThreadData* Cvode::ctd_

Definition at line 240 of file cvodeobj.h.

◆ daspk_

Daspk* Cvode::daspk_

Definition at line 209 of file cvodeobj.h.

◆ event_flag_

int Cvode::event_flag_

Definition at line 246 of file cvodeobj.h.

◆ f_calls_

int Cvode::f_calls_

Definition at line 132 of file cvodeobj.h.

◆ init_calls_

int Cvode::init_calls_

Definition at line 131 of file cvodeobj.h.

◆ initialize_

bool Cvode::initialize_

Definition at line 127 of file cvodeobj.h.

◆ interpolate_calls_

int Cvode::interpolate_calls_

Definition at line 131 of file cvodeobj.h.

◆ jac_calls_

int Cvode::jac_calls_

Definition at line 132 of file cvodeobj.h.

◆ local_

bool Cvode::local_
private

Definition at line 264 of file cvodeobj.h.

◆ maxacor_

N_Vector Cvode::maxacor_

Definition at line 234 of file cvodeobj.h.

◆ maxstate_

N_Vector Cvode::maxstate_

Definition at line 233 of file cvodeobj.h.

◆ mem_

void* Cvode::mem_

Definition at line 230 of file cvodeobj.h.

◆ mxb_calls_

int Cvode::mxb_calls_

Definition at line 132 of file cvodeobj.h.

◆ nctd_

int Cvode::nctd_

Definition at line 242 of file cvodeobj.h.

◆ ncv_

NetCvode* Cvode::ncv_

Definition at line 244 of file cvodeobj.h.

◆ neq_

int Cvode::neq_

Definition at line 245 of file cvodeobj.h.

◆ next_at_time_

double Cvode::next_at_time_

Definition at line 247 of file cvodeobj.h.

◆ nth_

NrnThread* Cvode::nth_

Definition at line 241 of file cvodeobj.h.

◆ nthsizes_

long int* Cvode::nthsizes_

Definition at line 243 of file cvodeobj.h.

◆ prior2init_

int Cvode::prior2init_
private

Definition at line 270 of file cvodeobj.h.

◆ structure_change_

bool Cvode::structure_change_

Definition at line 237 of file cvodeobj.h.

◆ t0_

double Cvode::t0_

Definition at line 126 of file cvodeobj.h.

◆ t_

double Cvode::t_

Definition at line 126 of file cvodeobj.h.

◆ tn_

double Cvode::tn_

Definition at line 126 of file cvodeobj.h.

◆ tqitem_

TQItem* Cvode::tqitem_
private

Definition at line 267 of file cvodeobj.h.

◆ ts_inits_

int Cvode::ts_inits_

Definition at line 132 of file cvodeobj.h.

◆ tstop_

double Cvode::tstop_

Definition at line 248 of file cvodeobj.h.

◆ tstop_begin_

double Cvode::tstop_begin_

Definition at line 249 of file cvodeobj.h.

◆ tstop_end_

double Cvode::tstop_end_

Definition at line 249 of file cvodeobj.h.

◆ use_daspk_

bool Cvode::use_daspk_

Definition at line 208 of file cvodeobj.h.

◆ y_

N_Vector Cvode::y_

Definition at line 231 of file cvodeobj.h.


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