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 367 of file eion.cpp.

◆ conci

#define conci   pd[i][1]

Definition at line 336 of file eion.cpp.

◆ conci0

#define conci0   global_conci(type)

Definition at line 368 of file eion.cpp.

◆ conco

#define conco   pd[i][2]

Definition at line 337 of file eion.cpp.

◆ conco0

#define conco0   global_conco(type)

Definition at line 369 of file eion.cpp.

◆ cur

#define cur   pd[i][3]

Definition at line 338 of file eion.cpp.

◆ dc

#define dc   4

◆ dcurdv

#define dcurdv   pd[i][4]

Definition at line 339 of file eion.cpp.

◆ erev

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

Definition at line 335 of file eion.cpp.

◆ FARADAY

#define FARADAY   _faraday_[_nrnunit_use_legacy_]

Definition at line 245 of file eion.cpp.

◆ gasconstant

#define gasconstant   _gasconstant_[_nrnunit_use_legacy_]

Definition at line 247 of file eion.cpp.

◆ global_charge

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

Definition at line 53 of file eion.cpp.

◆ global_conci

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

Definition at line 51 of file eion.cpp.

◆ global_conco

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

Definition at line 52 of file eion.cpp.

◆ iontype

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

Definition at line 356 of file eion.cpp.

◆ ktf

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

Definition at line 250 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 608 of file code2.cpp.

◆ efun()

static double efun ( double  x)
static

Definition at line 313 of file eion.cpp.

◆ ghk()

void ghk ( void  )

Definition at line 329 of file eion.cpp.

◆ hoc_register_prop_size()

void hoc_register_prop_size ( int  ,
int  ,
int   
)

Definition at line 721 of file init.cpp.

◆ ion_alloc()

static void ion_alloc ( Prop p)
static

Definition at line 590 of file eion.cpp.

◆ ion_charge()

void ion_charge ( void  )

Definition at line 119 of file eion.cpp.

◆ ion_cur()

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

Definition at line 542 of file eion.cpp.

◆ ion_init()

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

Definition at line 564 of file eion.cpp.

◆ ion_reg()

void ion_reg ( const char *  name,
double  valence 
)

Definition at line 132 of file eion.cpp.

◆ ion_register()

void ion_register ( void  )

Definition at line 59 of file eion.cpp.

◆ ion_style()

void ion_style ( void  )

Definition at line 437 of file eion.cpp.

◆ nernst()

void nernst ( void  )

Definition at line 271 of file eion.cpp.

◆ nrn_check_conc_write()

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

Definition at line 379 of file eion.cpp.

◆ nrn_ghk()

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

Definition at line 321 of file eion.cpp.

◆ nrn_ion_charge()

double nrn_ion_charge ( Symbol sym)

Definition at line 55 of file eion.cpp.

◆ nrn_is_ion()

int nrn_is_ion ( int  type)

Definition at line 45 of file eion.cpp.

◆ nrn_nernst()

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

Definition at line 251 of file eion.cpp.

◆ nrn_nernst_coef()

double nrn_nernst_coef ( int  type)

Definition at line 371 of file eion.cpp.

◆ nrn_noerr_access()

Section* nrn_noerr_access ( )

Definition at line 464 of file cabcode.cpp.

◆ nrn_promote()

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

Definition at line 512 of file eion.cpp.

◆ nrn_vartype()

int nrn_vartype ( Symbol sym)

Definition at line 488 of file eion.cpp.

◆ nrn_verify_ion_charge_defined()

void nrn_verify_ion_charge_defined ( )

Definition at line 232 of file eion.cpp.

◆ nrn_wrote_conc()

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

Definition at line 265 of file eion.cpp.

◆ register_mech()

void register_mech ( const char **  ,
Pvmp  ,
Pvmi  ,
Pvmi  ,
Pvmi  ,
Pvmi  ,
int  ,
int   
)

Definition at line 688 of file init.cpp.

◆ second_order_cur()

void second_order_cur ( NrnThread nt)

Definition at line 622 of file eion.cpp.

Variable Documentation

◆ _faraday_

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

Definition at line 246 of file eion.cpp.

◆ _gasconstant_

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

Definition at line 248 of file eion.cpp.

◆ ca_ion

int ca_ion
static

Definition at line 43 of file eion.cpp.

◆ ion_global_map

double** ion_global_map
static

Definition at line 50 of file eion.cpp.

◆ ion_global_map_size

int ion_global_map_size
static

Definition at line 49 of file eion.cpp.

◆ k_ion

int k_ion
static

Definition at line 43 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 43 of file eion.cpp.

◆ scdoub

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

Definition at line 29 of file eion.cpp.