KSChan Class Reference

#include <kschan.h>

Collaboration diagram for KSChan:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 KSChan (Object *, boolean is_point=false)
virtual ~KSChan ()
virtual void alloc (Prop *)
virtual void init (int, Node **, double **, Datum **, NrnThread *)
virtual void cur (int, Node **, double **, Datum **)
virtual void jacob (int, Node **, double **, Datum **)
virtual void state (int, Node **, double **, Datum **, NrnThread *)
void add_channel (char **)
virtual int count ()
virtual void map (int, double **, double **, double *, Datum *, double *)
virtual void spec (int, Node **, double **, Datum **)
virtual void matsol (int, Node **, double **, Datum **, NrnThread *)
virtual void cv_sc_update (int, Node **, double **, Datum **, NrnThread *)
double conductance (double gmax, double *state)
int state (const char *name)
const char * state (int index)
int trans_index (const char *src, const char *target)
int trans_index (int src, int target)
int gate_index (int state_index)
boolean is_point ()
boolean is_single ()
void set_single (boolean, boolean update=true)
void destroy_pnt (Point_process *)
int nsingle (Point_process *)
void nsingle (Point_process *, int)
double alpha (double v, int, int)
double beta (double v, int, int)
void setstructure (Vect *)
void setname (const char *)
void setsname (int, const char *)
void setion (const char *)
void setligand (int i, const char *)
void settype (KSTransition *, int type, const char *)
void setivrelation (int)
KSStateadd_hhstate (const char *)
KSStateadd_ksstate (int igate, const char *)
void remove_state (int)
KSTransitionadd_transition (int src, int target, const char *ligand)
void remove_transition (int)
void setcond ()
void power (KSGateComplex *, int)
void usetable (boolean, int size, double vmin, double vmax)
void usetable (boolean)
int usetable (double *vmin, double *vmax)
boolean usetable ()
void check_table_thread (NrnThread *)

Public Attributes

CopyString name_
CopyString ion_
double gmax_deflt_
double erev_deflt_
int cond_model_
KSIviv_relation_
int ngate_
int ntrans_
int ivkstrans_
int iligtrans_
int nhhstate_
int nksstate_
int nstate_
KSStatestate_
KSGateComplexgc_
KSTransitiontrans_
Symbolion_sym_
int nligand_
Symbol ** ligands_
Object * obj_
KSSinglesingle_

Private Member Functions

void free1 ()
void build ()
void setupmat ()
void fillmat (double v, Datum *pd)
void mat_dt (double dt, double *p)
void solvemat (double *)
void mulmat (double *, double *)
void ion_consist ()
void ligand_consist (int, int, Prop *, Node *)
Propneedion (Symbol *, Node *, Prop *)
void state_consist (int shift=0)
void sname_install ()
Symbollooksym (const char *, Symbol *tmplt=nil)
Symbolinstallsym (const char *, int, Symbol *tmplt=nil)
void freesym (Symbol *, Symbol *tmplt=nil)
Symbol ** newppsym (int)
void delete_schan_node_data ()
void alloc_schan_node_data ()
void update_prop ()
KSStatestate_insert (int i, const char *name, double frac)
void state_remove (int i)
KSGateComplexgate_insert (int ig, int is, int power)
void gate_remove (int i)
KSTransitiontrans_insert (int i, int src, int target)
void trans_remove (int i)
void check_struct ()

Private Attributes

int state_size_
int gate_size_
int trans_size_
boolean is_point_
boolean is_single_
int pointtype_
int mechtype_
int cvode_ieq_
Symbolmechsym_
Symbolrlsym_
char * mat_
double ** elms_
double ** diag_
int dsize_
int psize_
int soffset_
int gmaxoffset_
int ppoff_
double vmin_
double vmax_
double dvinv_
double dtsav_
int hh_tab_size_
boolean usetable_

Constructor & Destructor Documentation

KSChan::KSChan ( Object *  obj,
boolean  is_point = false 
)
KSChan::~KSChan (  )  [virtual]

Member Function Documentation

void KSChan::add_channel ( char **  m  ) 
KSState * KSChan::add_hhstate ( const char *  name  ) 
KSState * KSChan::add_ksstate ( int  igate,
const char *  name 
)
KSTransition * KSChan::add_transition ( int  src,
int  target,
const char *  ligand 
)
void KSChan::alloc ( Prop prop  )  [virtual]
void KSChan::alloc_schan_node_data (  )  [private]

References KSSingle::alloc(), ITERATE, mechsym_, OBJ, Point_process::prop, single_, soffset_, and Symbol::u.

Referenced by set_single().

Here is the call graph for this function:

double KSChan::alpha ( double  v,
int  ,
int   
) [inline]
double KSChan::beta ( double  v,
int  ,
int   
) [inline]
void KSChan::build (  )  [private]

References add_channel(), buf, hoc_execerror(), ion_, ion_reg(), ion_sym_, is_point(), looksym(), mechsym_, name_, rlsym_, setcond(), sname_install(), and soffset_.

Referenced by KSChan().

Here is the call graph for this function:

void KSChan::check_struct (  )  [private]
void KSChan::check_table_thread ( NrnThread nt  ) 

References NrnThread::_dt, dtsav_, hh_tab_size_, KSTransition::hh_table_make(), trans_, usetable_, vmax_, and vmin_.

Referenced by usetable().

Here is the call graph for this function:

double KSChan::conductance ( double  gmax,
double *  state 
)

References KSGateComplex::conductance(), gc_, ngate_, and state_.

Referenced by cur().

Here is the call graph for this function:

int KSChan::count (  )  [virtual]

References nstate_.

Referenced by add_channel().

void KSChan::cur ( int  n,
Node **  nd,
double **  pp,
Datum **  ppd 
) [virtual]

References conductance(), KSIv::cur(), g, gmaxoffset_, iv_relation_, NODERHS, and NODEV.

Here is the call graph for this function:

void KSChan::cv_sc_update ( int  n,
Node **  nd,
double **  pp,
Datum **  ppd,
NrnThread nt 
) [virtual]

References KSSingle::cv_update(), NSingleIndex, nstate_, and single_.

Here is the call graph for this function:

void KSChan::delete_schan_node_data (  )  [private]
void KSChan::destroy_pnt ( Point_process pp  ) 

References Datum::_pvoid, destroy_point_process(), Prop::dparam, nil, Point_process::prop, and single_.

Here is the call graph for this function:

void KSChan::fillmat ( double  v,
Datum pd 
) [private]

References KSTransition::ab(), KSTransition::alpha(), KSTransition::beta(), elms_, iligtrans_, ivkstrans_, mat_, ntrans_, and trans_.

Referenced by init(), matsol(), spec(), and state().

Here is the call graph for this function:

void KSChan::free1 (  )  [private]
void KSChan::freesym ( Symbol s,
Symbol tmplt = nil 
) [private]
int KSChan::gate_index ( int  state_index  ) 

References gc_, and ngate_.

KSGateComplex * KSChan::gate_insert ( int  ig,
int  is,
int  power 
) [private]
void KSChan::gate_remove ( int  i  )  [private]

References gc_, KSGateComplex::index_, ngate_, nil, KSGateComplex::obj_, obj_, and usetable().

Referenced by remove_state().

Here is the call graph for this function:

void KSChan::init ( int  n,
Node **  nd,
double **  pp,
Datum **  ppd,
NrnThread nt 
) [virtual]
Symbol * KSChan::installsym ( const char *  name,
int  type,
Symbol tmplt = nil 
) [private]

References assert, hoc_built_in_symlist, hoc_install(), Symbol::type, and Symbol::u.

Referenced by setion(), sname_install(), and update_prop().

Here is the call graph for this function:

void KSChan::ion_consist (  )  [private]
boolean KSChan::is_point (  )  [inline]
boolean KSChan::is_single (  )  [inline]
void KSChan::jacob ( int  n,
Node **  nd,
double **  pp,
Datum **  ppd 
) [virtual]

References gmaxoffset_, iv_relation_, KSIv::jacob(), NODED, and NODEV.

Here is the call graph for this function:

void KSChan::ligand_consist ( int  j,
int  poff,
Prop p,
Node nd 
) [private]

References Prop::dparam, ligands_, needion(), nrn_promote(), Prop::param, and Datum::pval.

Referenced by ion_consist().

Here is the call graph for this function:

Symbol * KSChan::looksym ( const char *  name,
Symbol tmplt = nil 
) [private]
void KSChan::map ( int  ieq,
double **  pv,
double **  pvdot,
double *  p,
Datum pd,
double *  atol 
) [virtual]

References nstate_.

void KSChan::mat_dt ( double  dt,
double *  p 
) [private]

References diag_, and nksstate_.

Referenced by init(), matsol(), and state().

void KSChan::matsol ( int  n,
Node **  nd,
double **  p,
Datum **  ppd,
NrnThread nt 
) [virtual]

References NrnThread::_dt, fillmat(), is_single(), mat_dt(), nksstate_, NODEV, NSingleIndex, nstate_, solvemat(), KSTransition::tau(), and trans_.

Here is the call graph for this function:

void KSChan::mulmat ( double *  s,
double *  ds 
) [private]

References mat_.

Referenced by spec().

Prop * KSChan::needion ( Symbol s,
Node nd,
Prop pm 
) [private]

References Prop::next, Node::prop, prop_alloc(), Symbol::subtype, and Prop::type.

Referenced by ion_consist(), and ligand_consist().

Here is the call graph for this function:

Symbol ** KSChan::newppsym ( int  n  )  [private]

References hoc_Emalloc(), and hoc_malchk().

Referenced by setion(), sname_install(), and update_prop().

Here is the call graph for this function:

void KSChan::nsingle ( Point_process pp,
int  n 
)

References Datum::_pvoid, Prop::dparam, if(), KSSingleNodeData::nsingle_, and Point_process::prop.

Here is the call graph for this function:

int KSChan::nsingle ( Point_process pp  ) 

References Datum::_pvoid, Prop::dparam, if(), KSSingleNodeData::nsingle_, and Point_process::prop.

Here is the call graph for this function:

void KSChan::power ( KSGateComplex gc,
int  p 
)

References is_single(), KSGateComplex::power_, and set_single().

Here is the call graph for this function:

void KSChan::remove_state ( int  is  ) 
void KSChan::remove_transition ( int  it  ) 

References assert, check_struct(), ivkstrans_, set_single(), setupmat(), trans_remove(), and usetable().

Here is the call graph for this function:

void KSChan::set_single ( boolean  b,
boolean  update = true 
)
void KSChan::setcond (  ) 
void KSChan::setion ( const char *  s  ) 
void KSChan::setivrelation ( int   ) 
void KSChan::setligand ( int  i,
const char *  lig 
)
void KSChan::setname ( const char *  s  ) 

References hoc_Emalloc(), hoc_malchk(), is_point(), looksym(), mechsym_, Symbol::name, name_, Symbol::ppsym, rlsym_, Symbol::s_varn, strstr(), and Symbol::u.

Here is the call graph for this function:

void KSChan::setsname ( int  i,
const char *  s 
)

References KSState::name_, sname_install(), and state_.

Here is the call graph for this function:

void KSChan::setstructure ( Vect *  vec  ) 
void KSChan::settype ( KSTransition t,
int  type,
const char *  lig 
)
void KSChan::setupmat (  )  [private]
void KSChan::sname_install (  )  [private]
void KSChan::solvemat ( double *  s  )  [private]

References e, hoc_execerror(), and mat_.

Referenced by init(), matsol(), and state().

Here is the call graph for this function:

void KSChan::spec ( int  n,
Node **  nd,
double **  p,
Datum **  ppd 
) [virtual]

References fillmat(), KSTransition::inftau(), is_single(), mulmat(), nksstate_, NODEV, NSingleIndex, nstate_, and trans_.

Here is the call graph for this function:

const char * KSChan::state ( int  index  ) 

References state_, and KSState::string().

Here is the call graph for this function:

int KSChan::state ( const char *  name  ) 

References nstate_, and state_.

void KSChan::state ( int  n,
Node **  nd,
double **  pp,
Datum **  ppd,
NrnThread nt 
) [virtual]
void KSChan::state_consist ( int  shift = 0  )  [private]
KSState * KSChan::state_insert ( int  i,
const char *  name,
double  frac 
) [private]

References KSState::f_, KSState::index_, KSState::ks_, KSState::name_, nhhstate_, nksstate_, nstate_, KSState::obj_, obj_, state(), state_, state_size_, and usetable().

Referenced by add_hhstate(), and add_ksstate().

Here is the call graph for this function:

void KSChan::state_remove ( int  i  )  [private]

References KSState::index_, nhhstate_, nil, nksstate_, nstate_, KSState::obj_, obj_, state_, and usetable().

Referenced by remove_state().

Here is the call graph for this function:

int KSChan::trans_index ( int  src,
int  target 
)

References ntrans_, and trans_.

int KSChan::trans_index ( const char *  src,
const char *  target 
)

References ntrans_, state_, and trans_.

KSTransition * KSChan::trans_insert ( int  i,
int  src,
int  target 
) [private]
void KSChan::trans_remove ( int  i  )  [private]

References iligtrans_, KSTransition::index_, ivkstrans_, nil, ntrans_, KSTransition::obj_, obj_, trans_, and usetable().

Referenced by remove_state(), remove_transition(), and settype().

Here is the call graph for this function:

void KSChan::update_prop (  )  [private]
boolean KSChan::usetable (  )  [inline]
int KSChan::usetable ( double *  vmin,
double *  vmax 
)

References hh_tab_size_, vmax_, and vmin_.

void KSChan::usetable ( boolean  use  ) 
void KSChan::usetable ( boolean  use,
int  size,
double  vmin,
double  vmax 
)

References dvinv_, hh_tab_size_, usetable(), vmax_, and vmin_.

Referenced by KSTransition::lig2pd(), and KSTransition::setf().

Here is the call graph for this function:


Member Data Documentation

double** KSChan::diag_ [private]

Referenced by free1(), KSChan(), mat_dt(), and setupmat().

int KSChan::dsize_ [private]

Referenced by update_prop().

double KSChan::dtsav_ [private]

Referenced by check_table_thread(), and usetable().

double KSChan::dvinv_ [private]

Referenced by state(), and usetable().

double** KSChan::elms_ [private]

Referenced by fillmat(), free1(), KSChan(), and setupmat().

Referenced by alloc(), and KSChan().

Referenced by alloc(), and KSChan().

Referenced by check_table_thread(), state(), and usetable().

CopyString KSChan::ion_

Referenced by build(), KSChan(), and setion().

Referenced by is_point(), and KSChan().

Referenced by is_single(), KSChan(), and set_single().

Referenced by cur(), free1(), jacob(), KSChan(), and setcond().

char* KSChan::mat_ [private]
CopyString KSChan::name_

Referenced by build(), KSChan(), and setname().

Object* KSChan::obj_

Referenced by add_channel().

int KSChan::ppoff_ [private]
int KSChan::psize_ [private]

Referenced by update_prop().

Symbol* KSChan::rlsym_ [private]
int KSChan::soffset_ [private]

Referenced by check_table_thread(), state(), and usetable().

double KSChan::vmax_ [private]

Referenced by check_table_thread(), and usetable().

double KSChan::vmin_ [private]

Referenced by check_table_thread(), state(), and usetable().


The documentation for this class was generated from the following files:
Generated on Mon Jun 13 08:10:31 2011 for NEURON by  doxygen 1.6.3