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 291 of file kschan.h.

Constructor & Destructor Documentation

◆ KSChan()

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

Definition at line 860 of file kschan.cpp.

◆ ~KSChan()

KSChan::~KSChan ( )
virtual

Definition at line 898 of file kschan.cpp.

Member Function Documentation

◆ add_channel()

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

Definition at line 826 of file kschan.cpp.

◆ add_hhstate()

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

Definition at line 1557 of file kschan.cpp.

◆ add_ksstate()

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

Definition at line 1584 of file kschan.cpp.

◆ add_transition()

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

Definition at line 1684 of file kschan.cpp.

◆ alloc()

void KSChan::alloc ( Prop prop)
virtual

Definition at line 2229 of file kschan.cpp.

◆ alloc_schan_node_data()

void KSChan::alloc_schan_node_data ( )
private

Definition at line 2439 of file kschan.cpp.

◆ alpha()

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

Definition at line 331 of file kschan.h.

◆ beta()

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

Definition at line 334 of file kschan.h.

◆ build()

void KSChan::build ( )
private

Definition at line 900 of file kschan.cpp.

◆ check_struct()

void KSChan::check_struct ( )
private

Definition at line 1709 of file kschan.cpp.

◆ check_table_thread()

void KSChan::check_table_thread ( NrnThread nt)

Definition at line 3175 of file kschan.cpp.

◆ conductance()

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

Definition at line 2746 of file kschan.cpp.

◆ count()

int KSChan::count ( )
virtual

Definition at line 2938 of file kschan.cpp.

◆ cur()

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

Definition at line 2596 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 3010 of file kschan.cpp.

◆ delete_schan_node_data()

void KSChan::delete_schan_node_data ( )
private

Definition at line 2426 of file kschan.cpp.

◆ destroy_pnt()

void KSChan::destroy_pnt ( Point_process pp)

Definition at line 149 of file kschan.cpp.

◆ fillmat()

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

Definition at line 2174 of file kschan.cpp.

◆ free1()

void KSChan::free1 ( )
private

Definition at line 1266 of file kschan.cpp.

◆ freesym()

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

Definition at line 2119 of file kschan.cpp.

◆ gate_index()

int KSChan::gate_index ( int  state_index)

Definition at line 1078 of file kschan.cpp.

◆ gate_insert()

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

Definition at line 1818 of file kschan.cpp.

◆ gate_remove()

void KSChan::gate_remove ( int  i)
private

Definition at line 1849 of file kschan.cpp.

◆ init()

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

Definition at line 2450 of file kschan.cpp.

◆ installsym()

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

Definition at line 2103 of file kschan.cpp.

◆ ion_consist()

void KSChan::ion_consist ( )
private

Definition at line 2322 of file kschan.cpp.

◆ is_point()

bool KSChan::is_point ( )
inline

Definition at line 321 of file kschan.h.

◆ is_single()

bool KSChan::is_single ( )
inline

Definition at line 324 of file kschan.h.

◆ jacob()

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

Definition at line 2619 of file kschan.cpp.

◆ ligand_consist()

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

Definition at line 2376 of file kschan.cpp.

◆ looksym()

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

Definition at line 2085 of file kschan.cpp.

◆ map()

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

Definition at line 2942 of file kschan.cpp.

◆ mat_dt()

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

Definition at line 2198 of file kschan.cpp.

◆ matsol()

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

Definition at line 2985 of file kschan.cpp.

◆ mulmat()

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

Definition at line 2225 of file kschan.cpp.

◆ needion()

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

Definition at line 2293 of file kschan.cpp.

◆ newppsym()

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

Definition at line 2113 of file kschan.cpp.

◆ nsingle() [1/2]

int KSChan::nsingle ( Point_process pp)

Definition at line 424 of file kssingle.cpp.

◆ nsingle() [2/2]

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

Definition at line 418 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 1621 of file kschan.cpp.

◆ remove_transition()

void KSChan::remove_transition ( int  it)

Definition at line 1697 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 1311 of file kschan.cpp.

◆ setion()

void KSChan::setion ( const char *  s)

Definition at line 1169 of file kschan.cpp.

◆ setivrelation()

void KSChan::setivrelation ( int  )

◆ setligand()

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

Definition at line 1360 of file kschan.cpp.

◆ setname()

void KSChan::setname ( const char *  s)

Definition at line 958 of file kschan.cpp.

◆ setsname()

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

Definition at line 1261 of file kschan.cpp.

◆ setstructure()

void KSChan::setstructure ( Vect vec)

Definition at line 1931 of file kschan.cpp.

◆ settype()

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

Definition at line 1380 of file kschan.cpp.

◆ setupmat()

void KSChan::setupmat ( )
private

Definition at line 2139 of file kschan.cpp.

◆ sname_install()

void KSChan::sname_install ( )
private

Definition at line 2027 of file kschan.cpp.

◆ solvemat()

void KSChan::solvemat ( double *  s)
private

Definition at line 2209 of file kschan.cpp.

◆ spec()

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

Definition at line 2952 of file kschan.cpp.

◆ state() [1/3]

int KSChan::state ( const char *  name)

Definition at line 1007 of file kschan.cpp.

◆ state() [2/3]

const char * KSChan::state ( int  index)

Definition at line 1053 of file kschan.cpp.

◆ state() [3/3]

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

Definition at line 2488 of file kschan.cpp.

◆ state_consist()

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

Definition at line 2384 of file kschan.cpp.

◆ state_insert()

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

Definition at line 1758 of file kschan.cpp.

◆ state_remove()

void KSChan::state_remove ( int  i)
private

Definition at line 1793 of file kschan.cpp.

◆ trans_index() [1/2]

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

Definition at line 1057 of file kschan.cpp.

◆ trans_index() [2/2]

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

Definition at line 1068 of file kschan.cpp.

◆ trans_insert()

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

Definition at line 1869 of file kschan.cpp.

◆ trans_remove()

void KSChan::trans_remove ( int  i)
private

Definition at line 1905 of file kschan.cpp.

◆ update_prop()

void KSChan::update_prop ( )
private

Definition at line 1088 of file kschan.cpp.

◆ usetable() [1/4]

bool KSChan::usetable ( )
inline

Definition at line 357 of file kschan.h.

◆ usetable() [2/4]

void KSChan::usetable ( bool  use)

Definition at line 3142 of file kschan.cpp.

◆ usetable() [3/4]

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

Definition at line 3114 of file kschan.cpp.

◆ usetable() [4/4]

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

Definition at line 3169 of file kschan.cpp.

Member Data Documentation

◆ cond_model_

int KSChan::cond_model_

Definition at line 404 of file kschan.h.

◆ cvode_ieq_

int KSChan::cvode_ieq_
private

Definition at line 426 of file kschan.h.

◆ diag_

double** KSChan::diag_
private

Definition at line 431 of file kschan.h.

◆ dsize_

int KSChan::dsize_
private

Definition at line 432 of file kschan.h.

◆ dtsav_

double KSChan::dtsav_
private

Definition at line 440 of file kschan.h.

◆ dvinv_

double KSChan::dvinv_
private

Definition at line 440 of file kschan.h.

◆ elms_

double** KSChan::elms_
private

Definition at line 430 of file kschan.h.

◆ erev_deflt_

double KSChan::erev_deflt_

Definition at line 403 of file kschan.h.

◆ gate_size_

int KSChan::gate_size_
private

Definition at line 391 of file kschan.h.

◆ gc_

KSGateComplex* KSChan::gc_

Definition at line 417 of file kschan.h.

◆ gmax_deflt_

double KSChan::gmax_deflt_

Definition at line 402 of file kschan.h.

◆ gmaxoffset_

int KSChan::gmaxoffset_
private

Definition at line 435 of file kschan.h.

◆ hh_tab_size_

int KSChan::hh_tab_size_
private

Definition at line 441 of file kschan.h.

◆ iligtrans_

int KSChan::iligtrans_

Definition at line 409 of file kschan.h.

◆ ion_

CopyString KSChan::ion_

Definition at line 401 of file kschan.h.

◆ ion_sym_

Symbol* KSChan::ion_sym_

Definition at line 419 of file kschan.h.

◆ is_point_

bool KSChan::is_point_
private

Definition at line 393 of file kschan.h.

◆ is_single_

bool KSChan::is_single_
private

Definition at line 394 of file kschan.h.

◆ iv_relation_

KSIv* KSChan::iv_relation_

Definition at line 405 of file kschan.h.

◆ ivkstrans_

int KSChan::ivkstrans_

Definition at line 408 of file kschan.h.

◆ ligands_

Symbol** KSChan::ligands_

Definition at line 421 of file kschan.h.

◆ mat_

char* KSChan::mat_
private

Definition at line 429 of file kschan.h.

◆ mechsym_

Symbol* KSChan::mechsym_
private

Definition at line 427 of file kschan.h.

◆ mechtype_

int KSChan::mechtype_
private

Definition at line 397 of file kschan.h.

◆ name_

CopyString KSChan::name_

Definition at line 400 of file kschan.h.

◆ ngate_

int KSChan::ngate_

Definition at line 406 of file kschan.h.

◆ nhhstate_

int KSChan::nhhstate_

Definition at line 411 of file kschan.h.

◆ nksstate_

int KSChan::nksstate_

Definition at line 412 of file kschan.h.

◆ nligand_

int KSChan::nligand_

Definition at line 420 of file kschan.h.

◆ nstate_

int KSChan::nstate_

Definition at line 413 of file kschan.h.

◆ ntrans_

int KSChan::ntrans_

Definition at line 407 of file kschan.h.

◆ obj_

Object* KSChan::obj_

Definition at line 422 of file kschan.h.

◆ pointtype_

int KSChan::pointtype_
private

Definition at line 396 of file kschan.h.

◆ ppoff_

int KSChan::ppoff_
private

Definition at line 437 of file kschan.h.

◆ psize_

int KSChan::psize_
private

Definition at line 433 of file kschan.h.

◆ rlsym_

Symbol* KSChan::rlsym_
private

Definition at line 428 of file kschan.h.

◆ single_

KSSingle* KSChan::single_

Definition at line 423 of file kschan.h.

◆ soffset_

int KSChan::soffset_
private

Definition at line 434 of file kschan.h.

◆ state_

KSState* KSChan::state_

Definition at line 416 of file kschan.h.

◆ state_size_

int KSChan::state_size_
private

Definition at line 390 of file kschan.h.

◆ trans_

KSTransition* KSChan::trans_

Definition at line 418 of file kschan.h.

◆ trans_size_

int KSChan::trans_size_
private

Definition at line 392 of file kschan.h.

◆ usetable_

bool KSChan::usetable_
private

Definition at line 442 of file kschan.h.

◆ vmax_

double KSChan::vmax_
private

Definition at line 440 of file kschan.h.

◆ vmin_

double KSChan::vmin_
private

Definition at line 440 of file kschan.h.


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