NEURON
KSChan Class Reference

#include <kschan.h>

Public Member Functions

 KSChan (Object *, bool 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 (const 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)
 
bool is_point ()
 
bool is_single ()
 
void set_single (bool, bool 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 (bool, int size, double vmin, double vmax)
 
void usetable (bool)
 
int usetable (double *vmin, double *vmax)
 
bool 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_
 
Objectobj_
 
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=NULL)
 
Symbolinstallsym (const char *, int, Symbol *tmplt=NULL)
 
void freesym (Symbol *, Symbol *tmplt=NULL)
 
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_
 
bool is_point_
 
bool 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_
 
bool usetable_
 

Detailed Description

Definition at line 239 of file kschan.h.

Constructor & Destructor Documentation

◆ KSChan()

KSChan::KSChan ( Object obj,
bool  is_point = false 
)

Definition at line 871 of file kschan.cpp.

◆ ~KSChan()

KSChan::~KSChan ( )
virtual

Definition at line 906 of file kschan.cpp.

Member Function Documentation

◆ add_channel()

void KSChan::add_channel ( const char **  m)

Definition at line 846 of file kschan.cpp.

◆ add_hhstate()

KSState * KSChan::add_hhstate ( const char *  name)

Definition at line 1521 of file kschan.cpp.

◆ add_ksstate()

KSState * KSChan::add_ksstate ( int  igate,
const char *  name 
)

Definition at line 1548 of file kschan.cpp.

◆ add_transition()

KSTransition * KSChan::add_transition ( int  src,
int  target,
const char *  ligand 
)

Definition at line 1639 of file kschan.cpp.

◆ alloc()

void KSChan::alloc ( Prop prop)
virtual

Definition at line 2152 of file kschan.cpp.

◆ alloc_schan_node_data()

void KSChan::alloc_schan_node_data ( )
private

Definition at line 2358 of file kschan.cpp.

◆ alpha()

double KSChan::alpha ( double  v,
int  ,
int   
)
inline

Definition at line 274 of file kschan.h.

◆ beta()

double KSChan::beta ( double  v,
int  ,
int   
)
inline

Definition at line 275 of file kschan.h.

◆ build()

void KSChan::build ( )
private

Definition at line 908 of file kschan.cpp.

◆ check_struct()

void KSChan::check_struct ( )
private

Definition at line 1664 of file kschan.cpp.

◆ check_table_thread()

void KSChan::check_table_thread ( NrnThread nt)

Definition at line 3071 of file kschan.cpp.

◆ conductance()

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

Definition at line 2663 of file kschan.cpp.

◆ count()

int KSChan::count ( )
virtual

Definition at line 2841 of file kschan.cpp.

◆ cur()

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

Definition at line 2512 of file kschan.cpp.

◆ cv_sc_update()

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

Definition at line 2908 of file kschan.cpp.

◆ delete_schan_node_data()

void KSChan::delete_schan_node_data ( )
private

Definition at line 2345 of file kschan.cpp.

◆ destroy_pnt()

void KSChan::destroy_pnt ( Point_process pp)

Definition at line 152 of file kschan.cpp.

◆ fillmat()

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

Definition at line 2097 of file kschan.cpp.

◆ free1()

void KSChan::free1 ( )
private

Definition at line 1261 of file kschan.cpp.

◆ freesym()

void KSChan::freesym ( Symbol s,
Symbol tmplt = NULL 
)
private

Definition at line 2044 of file kschan.cpp.

◆ gate_index()

int KSChan::gate_index ( int  state_index)

Definition at line 1075 of file kschan.cpp.

◆ gate_insert()

KSGateComplex * KSChan::gate_insert ( int  ig,
int  is,
int  power 
)
private

Definition at line 1767 of file kschan.cpp.

◆ gate_remove()

void KSChan::gate_remove ( int  i)
private

Definition at line 1796 of file kschan.cpp.

◆ init()

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

Definition at line 2369 of file kschan.cpp.

◆ installsym()

Symbol * KSChan::installsym ( const char *  name,
int  type,
Symbol tmplt = NULL 
)
private

Definition at line 2029 of file kschan.cpp.

◆ ion_consist()

void KSChan::ion_consist ( )
private

Definition at line 2245 of file kschan.cpp.

◆ is_point()

bool KSChan::is_point ( )
inline

Definition at line 268 of file kschan.h.

◆ is_single()

bool KSChan::is_single ( )
inline

Definition at line 269 of file kschan.h.

◆ jacob()

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

Definition at line 2535 of file kschan.cpp.

◆ ligand_consist()

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

Definition at line 2296 of file kschan.cpp.

◆ looksym()

Symbol * KSChan::looksym ( const char *  name,
Symbol tmplt = NULL 
)
private

Definition at line 2016 of file kschan.cpp.

◆ map()

void KSChan::map ( int  ieq,
double **  pv,
double **  pvdot,
double *  p,
Datum pd,
double *  atol 
)
virtual

Definition at line 2843 of file kschan.cpp.

◆ mat_dt()

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

Definition at line 2121 of file kschan.cpp.

◆ matsol()

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

Definition at line 2884 of file kschan.cpp.

◆ mulmat()

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

Definition at line 2148 of file kschan.cpp.

◆ needion()

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

Definition at line 2216 of file kschan.cpp.

◆ newppsym()

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

Definition at line 2039 of file kschan.cpp.

◆ nsingle() [1/2]

int KSChan::nsingle ( Point_process pp)

Definition at line 423 of file kssingle.cpp.

◆ nsingle() [2/2]

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

Definition at line 417 of file kssingle.cpp.

◆ power()

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

Definition at line 1017 of file kschan.cpp.

◆ remove_state()

void KSChan::remove_state ( int  is)

Definition at line 1580 of file kschan.cpp.

◆ remove_transition()

void KSChan::remove_transition ( int  it)

Definition at line 1652 of file kschan.cpp.

◆ set_single()

void KSChan::set_single ( bool  b,
bool  update = true 
)

Definition at line 1024 of file kschan.cpp.

◆ setcond()

void KSChan::setcond ( )

Definition at line 1285 of file kschan.cpp.

◆ setion()

void KSChan::setion ( const char *  s)

Definition at line 1166 of file kschan.cpp.

◆ setivrelation()

void KSChan::setivrelation ( int  )

◆ setligand()

void KSChan::setligand ( int  i,
const char *  lig 
)

Definition at line 1330 of file kschan.cpp.

◆ setname()

void KSChan::setname ( const char *  s)

Definition at line 961 of file kschan.cpp.

◆ setsname()

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

Definition at line 1256 of file kschan.cpp.

◆ setstructure()

void KSChan::setstructure ( Vect vec)

Definition at line 1868 of file kschan.cpp.

◆ settype()

void KSChan::settype ( KSTransition t,
int  type,
const char *  lig 
)

Definition at line 1350 of file kschan.cpp.

◆ setupmat()

void KSChan::setupmat ( )
private

Definition at line 2064 of file kschan.cpp.

◆ sname_install()

void KSChan::sname_install ( )
private

Definition at line 1958 of file kschan.cpp.

◆ solvemat()

void KSChan::solvemat ( double *  s)
private

Definition at line 2132 of file kschan.cpp.

◆ spec()

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

Definition at line 2854 of file kschan.cpp.

◆ state() [1/3]

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

Definition at line 2406 of file kschan.cpp.

◆ state() [2/3]

int KSChan::state ( const char *  name)

Definition at line 1007 of file kschan.cpp.

◆ state() [3/3]

const char * KSChan::state ( int  index)

Definition at line 1050 of file kschan.cpp.

◆ state_consist()

void KSChan::state_consist ( int  shift = 0)
private

Definition at line 2304 of file kschan.cpp.

◆ state_insert()

KSState * KSChan::state_insert ( int  i,
const char *  name,
double  frac 
)
private

Definition at line 1713 of file kschan.cpp.

◆ state_remove()

void KSChan::state_remove ( int  i)
private

Definition at line 1746 of file kschan.cpp.

◆ trans_index() [1/2]

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

Definition at line 1054 of file kschan.cpp.

◆ trans_index() [2/2]

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

Definition at line 1065 of file kschan.cpp.

◆ trans_insert()

KSTransition * KSChan::trans_insert ( int  i,
int  src,
int  target 
)
private

Definition at line 1812 of file kschan.cpp.

◆ trans_remove()

void KSChan::trans_remove ( int  i)
private

Definition at line 1846 of file kschan.cpp.

◆ update_prop()

void KSChan::update_prop ( )
private

Definition at line 1085 of file kschan.cpp.

◆ usetable() [1/4]

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

Definition at line 3013 of file kschan.cpp.

◆ usetable() [2/4]

void KSChan::usetable ( bool  use)

Definition at line 3041 of file kschan.cpp.

◆ usetable() [3/4]

int KSChan::usetable ( double *  vmin,
double *  vmax 
)

Definition at line 3065 of file kschan.cpp.

◆ usetable() [4/4]

bool KSChan::usetable ( )
inline

Definition at line 296 of file kschan.h.

Member Data Documentation

◆ cond_model_

int KSChan::cond_model_

Definition at line 339 of file kschan.h.

◆ cvode_ieq_

int KSChan::cvode_ieq_
private

Definition at line 360 of file kschan.h.

◆ diag_

double** KSChan::diag_
private

Definition at line 365 of file kschan.h.

◆ dsize_

int KSChan::dsize_
private

Definition at line 366 of file kschan.h.

◆ dtsav_

double KSChan::dtsav_
private

Definition at line 374 of file kschan.h.

◆ dvinv_

double KSChan::dvinv_
private

Definition at line 374 of file kschan.h.

◆ elms_

double** KSChan::elms_
private

Definition at line 364 of file kschan.h.

◆ erev_deflt_

double KSChan::erev_deflt_

Definition at line 338 of file kschan.h.

◆ gate_size_

int KSChan::gate_size_
private

Definition at line 327 of file kschan.h.

◆ gc_

KSGateComplex* KSChan::gc_

Definition at line 352 of file kschan.h.

◆ gmax_deflt_

double KSChan::gmax_deflt_

Definition at line 337 of file kschan.h.

◆ gmaxoffset_

int KSChan::gmaxoffset_
private

Definition at line 369 of file kschan.h.

◆ hh_tab_size_

int KSChan::hh_tab_size_
private

Definition at line 375 of file kschan.h.

◆ iligtrans_

int KSChan::iligtrans_

Definition at line 344 of file kschan.h.

◆ ion_

CopyString KSChan::ion_

Definition at line 336 of file kschan.h.

◆ ion_sym_

Symbol* KSChan::ion_sym_

Definition at line 354 of file kschan.h.

◆ is_point_

bool KSChan::is_point_
private

Definition at line 329 of file kschan.h.

◆ is_single_

bool KSChan::is_single_
private

Definition at line 330 of file kschan.h.

◆ iv_relation_

KSIv* KSChan::iv_relation_

Definition at line 340 of file kschan.h.

◆ ivkstrans_

int KSChan::ivkstrans_

Definition at line 343 of file kschan.h.

◆ ligands_

Symbol** KSChan::ligands_

Definition at line 356 of file kschan.h.

◆ mat_

char* KSChan::mat_
private

Definition at line 363 of file kschan.h.

◆ mechsym_

Symbol* KSChan::mechsym_
private

Definition at line 361 of file kschan.h.

◆ mechtype_

int KSChan::mechtype_
private

Definition at line 333 of file kschan.h.

◆ name_

CopyString KSChan::name_

Definition at line 335 of file kschan.h.

◆ ngate_

int KSChan::ngate_

Definition at line 341 of file kschan.h.

◆ nhhstate_

int KSChan::nhhstate_

Definition at line 346 of file kschan.h.

◆ nksstate_

int KSChan::nksstate_

Definition at line 347 of file kschan.h.

◆ nligand_

int KSChan::nligand_

Definition at line 355 of file kschan.h.

◆ nstate_

int KSChan::nstate_

Definition at line 348 of file kschan.h.

◆ ntrans_

int KSChan::ntrans_

Definition at line 342 of file kschan.h.

◆ obj_

Object* KSChan::obj_

Definition at line 357 of file kschan.h.

◆ pointtype_

int KSChan::pointtype_
private

Definition at line 332 of file kschan.h.

◆ ppoff_

int KSChan::ppoff_
private

Definition at line 371 of file kschan.h.

◆ psize_

int KSChan::psize_
private

Definition at line 367 of file kschan.h.

◆ rlsym_

Symbol* KSChan::rlsym_
private

Definition at line 362 of file kschan.h.

◆ single_

KSSingle* KSChan::single_

Definition at line 358 of file kschan.h.

◆ soffset_

int KSChan::soffset_
private

Definition at line 368 of file kschan.h.

◆ state_

KSState* KSChan::state_

Definition at line 351 of file kschan.h.

◆ state_size_

int KSChan::state_size_
private

Definition at line 326 of file kschan.h.

◆ trans_

KSTransition* KSChan::trans_

Definition at line 353 of file kschan.h.

◆ trans_size_

int KSChan::trans_size_
private

Definition at line 328 of file kschan.h.

◆ usetable_

bool KSChan::usetable_
private

Definition at line 376 of file kschan.h.

◆ vmax_

double KSChan::vmax_
private

Definition at line 374 of file kschan.h.

◆ vmin_

double KSChan::vmin_
private

Definition at line 374 of file kschan.h.


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