NEURON
eion.cpp File Reference
#include <../../nrnconf.h>
#include <stdlib.h>
#include "section.h"
#include "neuron.h"
#include "membfunc.h"
#include "parse.hpp"
#include "membdef.h"
#include "nrniv_mf.h"
#include "nrnunits_modern.h"

Go to the source code of this file.

Macros

#define nparm   5
 
#define global_conci(type)   ion_global_map[type][0]
 
#define global_conco(type)   ion_global_map[type][1]
 
#define global_charge(type)   ion_global_map[type][2]
 
#define VAL_SENTINAL   -10000.
 
#define FARADAY   _faraday_[_nrnunit_use_legacy_]
 
#define gasconstant   _gasconstant_[_nrnunit_use_legacy_]
 
#define ktf   (1000. * gasconstant * (celsius + 273.15) / FARADAY)
 
#define erev   pd[i][0] /* From Eion */
 
#define conci   pd[i][1]
 
#define conco   pd[i][2]
 
#define cur   pd[i][3]
 
#define dcurdv   pd[i][4]
 
#define iontype   ppd[i][0].i /* how _AMBIGUOUS is to be handled */
 
#define charge   global_charge(type)
 
#define conci0   global_conci(type)
 
#define conco0   global_conco(type)
 
#define c   3
 
#define dc   4
 

Functions

double chkarg (int, double low, double high)
 
Sectionnrn_noerr_access ()
 
void hoc_register_prop_size (int, int, int)
 
static void ion_alloc (Prop *)
 
static void ion_cur (NrnThread *, Memb_list *, int)
 
static void ion_init (NrnThread *, Memb_list *, int)
 
double nrn_nernst (double, double, double)
 
double nrn_ghk (double, double, double, double)
 
int nrn_is_ion (int type)
 
double nrn_ion_charge (Symbol *sym)
 
void ion_register (void)
 
void ion_charge (void)
 
void register_mech (const char **, Pvmp, Pvmi, Pvmi, Pvmi, Pvmi, int, int)
 
void ion_reg (const char *name, double valence)
 
void nrn_verify_ion_charge_defined ()
 
void nrn_wrote_conc (Symbol *sym, double *pe, int it)
 
void nernst (void)
 
static double efun (double x)
 
void ghk (void)
 
double nrn_nernst_coef (int type)
 
void nrn_check_conc_write (Prop *p_ok, Prop *pion, int i)
 
void ion_style (void)
 
int nrn_vartype (Symbol *sym)
 
void nrn_promote (Prop *p, int conc, int rev)
 
void second_order_cur (NrnThread *nt)
 

Variables

static const char * mechanism []
 
static DoubScal scdoub []
 
static int na_ion
 
static int k_ion
 
static int ca_ion
 
static int ion_global_map_size
 
static double ** ion_global_map
 
static double _faraday_ [2] = {_faraday_codata2018, 96485.309}
 
static double _gasconstant_ [2] = {_gasconstant_codata2018, 8.3134}
 

Macro Definition Documentation

◆ c

#define c   3

◆ charge

#define charge   global_charge(type)

Definition at line 393 of file eion.cpp.

◆ conci

#define conci   pd[i][1]

Definition at line 362 of file eion.cpp.

◆ conci0

#define conci0   global_conci(type)

Definition at line 394 of file eion.cpp.

◆ conco

#define conco   pd[i][2]

Definition at line 363 of file eion.cpp.

◆ conco0

#define conco0   global_conco(type)

Definition at line 395 of file eion.cpp.

◆ cur

#define cur   pd[i][3]

Definition at line 364 of file eion.cpp.

◆ dc

#define dc   4

◆ dcurdv

#define dcurdv   pd[i][4]

Definition at line 365 of file eion.cpp.

◆ erev

#define erev   pd[i][0] /* From Eion */

Definition at line 361 of file eion.cpp.

◆ FARADAY

#define FARADAY   _faraday_[_nrnunit_use_legacy_]

Definition at line 271 of file eion.cpp.

◆ gasconstant

#define gasconstant   _gasconstant_[_nrnunit_use_legacy_]

Definition at line 273 of file eion.cpp.

◆ global_charge

#define global_charge (   type)    ion_global_map[type][2]

Definition at line 59 of file eion.cpp.

◆ global_conci

#define global_conci (   type)    ion_global_map[type][0]

Definition at line 57 of file eion.cpp.

◆ global_conco

#define global_conco (   type)    ion_global_map[type][1]

Definition at line 58 of file eion.cpp.

◆ iontype

#define iontype   ppd[i][0].i /* how _AMBIGUOUS is to be handled */

Definition at line 382 of file eion.cpp.

◆ ktf

#define ktf   (1000. * gasconstant * (celsius + 273.15) / FARADAY)

Definition at line 276 of file eion.cpp.

◆ nparm

#define nparm   5

Definition at line 21 of file eion.cpp.

◆ VAL_SENTINAL

#define VAL_SENTINAL   -10000.

Function Documentation

◆ chkarg()

double chkarg ( int  arg,
double  low,
double  high 
)

Definition at line 638 of file code2.cpp.

◆ efun()

static double efun ( double  x)
static

Definition at line 339 of file eion.cpp.

◆ ghk()

void ghk ( void  )

Definition at line 355 of file eion.cpp.

◆ hoc_register_prop_size()

void hoc_register_prop_size ( int  type,
int  psize,
int  dpsize 
)

Definition at line 704 of file init.cpp.

◆ ion_alloc()

static void ion_alloc ( Prop p)
static

Definition at line 617 of file eion.cpp.

◆ ion_charge()

void ion_charge ( void  )

Definition at line 141 of file eion.cpp.

◆ ion_cur()

static void ion_cur ( NrnThread nt,
Memb_list ml,
int  type 
)
static

Definition at line 569 of file eion.cpp.

◆ ion_init()

static void ion_init ( NrnThread nt,
Memb_list ml,
int  type 
)
static

Definition at line 591 of file eion.cpp.

◆ ion_reg()

void ion_reg ( const char *  name,
double  valence 
)

Definition at line 154 of file eion.cpp.

◆ ion_register()

void ion_register ( void  )

Definition at line 65 of file eion.cpp.

◆ ion_style()

void ion_style ( void  )

Definition at line 464 of file eion.cpp.

◆ nernst()

void nernst ( void  )

Definition at line 297 of file eion.cpp.

◆ nrn_check_conc_write()

void nrn_check_conc_write ( Prop p_ok,
Prop pion,
int  i 
)

Definition at line 405 of file eion.cpp.

◆ nrn_ghk()

double nrn_ghk ( double  v,
double  ci,
double  co,
double  z 
)

Definition at line 347 of file eion.cpp.

◆ nrn_ion_charge()

double nrn_ion_charge ( Symbol sym)

Definition at line 61 of file eion.cpp.

◆ nrn_is_ion()

int nrn_is_ion ( int  type)

Definition at line 51 of file eion.cpp.

◆ nrn_nernst()

double nrn_nernst ( double  ci,
double  co,
double  z 
)

Definition at line 277 of file eion.cpp.

◆ nrn_nernst_coef()

double nrn_nernst_coef ( int  type)

Definition at line 397 of file eion.cpp.

◆ nrn_noerr_access()

Section* nrn_noerr_access ( )

Definition at line 472 of file cabcode.cpp.

◆ nrn_promote()

void nrn_promote ( Prop p,
int  conc,
int  rev 
)

Definition at line 539 of file eion.cpp.

◆ nrn_vartype()

int nrn_vartype ( Symbol sym)

Definition at line 515 of file eion.cpp.

◆ nrn_verify_ion_charge_defined()

void nrn_verify_ion_charge_defined ( )

Definition at line 256 of file eion.cpp.

◆ nrn_wrote_conc()

void nrn_wrote_conc ( Symbol sym,
double *  pe,
int  it 
)

Definition at line 291 of file eion.cpp.

◆ register_mech()

void register_mech ( const char **  m,
Pvmp  alloc,
Pvmi  cur,
Pvmi  jacob,
Pvmi  stat,
Pvmi  initialize,
int  nrnpointerindex,
int  vectorized 
)

Definition at line 674 of file init.cpp.

◆ second_order_cur()

void second_order_cur ( NrnThread nt)

Definition at line 649 of file eion.cpp.

Variable Documentation

◆ _faraday_

double _faraday_[2] = {_faraday_codata2018, 96485.309}
static

Definition at line 272 of file eion.cpp.

◆ _gasconstant_

double _gasconstant_[2] = {_gasconstant_codata2018, 8.3134}
static

Definition at line 274 of file eion.cpp.

◆ ca_ion

int ca_ion
static

Definition at line 49 of file eion.cpp.

◆ ion_global_map

double** ion_global_map
static

Definition at line 56 of file eion.cpp.

◆ ion_global_map_size

int ion_global_map_size
static

Definition at line 55 of file eion.cpp.

◆ k_ion

int k_ion
static

Definition at line 49 of file eion.cpp.

◆ mechanism

const char* mechanism[]
static
Initial value:
= {
"0",
"na_ion",
"ena",
"nao",
"nai",
0,
"ina",
"dina_dv_",
0,
0}

Definition at line 22 of file eion.cpp.

◆ na_ion

int na_ion
static

Definition at line 49 of file eion.cpp.

◆ scdoub

DoubScal scdoub[]
static
Initial value:
= {
"ci0_na_ion",
0,
"co0_na_ion",
0,
0,
0}

Definition at line 33 of file eion.cpp.