NEURON
init.cpp File Reference
#include <../../nrnconf.h>
#include <nrnmpiuse.h>
#include <stdio.h>
#include <errno.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
#include "section.h"
#include "parse.hpp"
#include "nrniv_mf.h"
#include "cabvars.h"
#include "neuron.h"
#include "membdef.h"
#include "nrnmpi.h"

Go to the source code of this file.

Macros

#define CHECK(name)
 

Typedefs

using bbcore_write_t = void(*)(double *, int *, int *, int *, double *, Datum *, Datum *, NrnThread *)
 

Functions

int nrn_load_dll_recover_error ()
 
void nrn_load_name_check (const char *name)
 
void hoc_reg_watch_allocate (int type, NrnWatchAllocateFunc_t waf)
 
void hoc_reg_bbcore_write (int type, bbcore_write_t f)
 
void hoc_reg_bbcore_read (int type, bbcore_write_t f)
 
void hoc_reg_nmodl_text (int type, const char *txt)
 
void hoc_reg_nmodl_filename (int type, const char *filename)
 
void add_nrn_has_net_event (int type)
 
void add_nrn_fornetcons (int type, int indx)
 
void add_nrn_artcell (int type, int qi)
 
int nrn_is_artificial (int pnttype)
 
int nrn_is_cable (void)
 
voidnrn_realpath_dlopen (const char *relpath, int flags)
 
int mswin_load_dll (const char *cp1)
 
void hoc_nrn_load_dll (void)
 
void nrn_threads_create (int, int)
 
void hoc_last_init (void)
 
void initnrn (void)
 
void nrn_register_mech_common (const char **m, Pvmp alloc, Pvmi cur, Pvmi jacob, Pvmi stat, Pvmi initialize, int nrnpointerindex, int vectorized)
 
void register_mech (const char **m, Pvmp alloc, Pvmi cur, Pvmi jacob, Pvmi stat, Pvmi initialize, int nrnpointerindex, int vectorized)
 
void nrn_writes_conc (int type, int unused)
 
void hoc_register_prop_size (int type, int psize, int dpsize)
 
void hoc_register_dparam_semantics (int type, int ix, const char *name)
 
void hoc_register_cvode (int i, nrn_ode_count_t cnt, nrn_ode_map_t map, Pvmi spec, Pvmi matsol)
 
void hoc_register_synonym (int i, void(*syn)(int, double **, Datum **))
 
void register_destructor (Pvmp d)
 
int point_reg_helper (Symbol *s2)
 
void class2oc (const char *, void *(*cons)(Object *), void(*destruct)(void *), Member_func *, int(*checkpoint)(void **), Member_ret_obj_func *, Member_ret_str_func *)
 
int point_register_mech (const char **m, Pvmp alloc, Pvmi cur, Pvmi jacob, Pvmi stat, Pvmi initialize, int nrnpointerindex, int vectorized, void *(*constructor)(Object *), void(*destructor)(void *), Member_func *fmember)
 
void _modl_cleanup (void)
 
void _modl_set_dt (double newdt)
 
void _modl_set_dt_thread (double newdt, NrnThread *nt)
 
double _modl_get_dt_thread (NrnThread *nt)
 
int nrn_pointing (double *pd)
 
void state_discontinuity (int i, double *pd, double d)
 
void hoc_register_limits (int type, HocParmLimits *limits)
 
void hoc_register_units (int type, HocParmUnits *units)
 
void hoc_reg_ba (int mt, nrn_bamech_t f, int type)
 
void _cvode_abstol (Symbol **s, double *tol, int i)
 
Node ** node_construct (int)
 
void hoc_register_tolerance (int type, HocStateTolerance *tol, Symbol ***stol)
 
void _nrn_thread_reg (int i, int cons, void(*f)(Datum *))
 
void _nrn_thread_table_reg (int i, void(*f)(double *, Datum *, Datum *, NrnThread *, int))
 
void _nrn_setdata_reg (int i, void(*call)(Prop *))
 
double nrn_call_mech_func (Symbol *s, int narg, Prop *p, int type)
 
void nrnunit_use_legacy ()
 

Variables

static char nmodl_version_ []
 
static char banner []
 
static char CHKmes [] = "The user defined name, %s, already exists\n"
 
void(* nrnpy_reg_mech_p_ )(int)
 
int secondorder =0
 
int state_discon_allowed_
 
int nrn_nobanner_
 
double t
 
double dt
 
double clamp_resist
 
double celsius
 
double htablemin
 
double htablemax
 
int nrn_netrec_state_adjust = 0
 
int nrn_sparse_partrans = 0
 
hoc_Listsection_list
 
int nrn_global_ncell = 0
 
double hoc_default_dll_loaded_
 
int nrn_istty_
 
static HocParmLimits _hoc_parm_limits []
 
static HocParmUnits _hoc_parm_units []
 
Symlistnrn_load_dll_called_
 
static int memb_func_size_
 
Memb_funcmemb_func
 
Memb_listmemb_list
 
short * memb_order_
 
Symbol ** pointsym
 
Point_process ** point_process
 
char * pnt_map
 
BAMech ** bamech_
 
cTemplate ** nrn_pnt_template_
 
pnt_receive_tpnt_receive
 
pnt_receive_init_tpnt_receive_init
 
short * pnt_receive_size
 
int nrn_has_net_event_cnt_
 
intnrn_has_net_event_
 
intnrn_prop_param_size_
 
intnrn_prop_dparam_size_
 
intnrn_dparam_ptr_start_
 
intnrn_dparam_ptr_end_
 
NrnWatchAllocateFunc_tnrn_watch_allocate_
 
bbcore_write_tnrn_bbcore_write_
 
bbcore_write_tnrn_bbcore_read_
 
const char ** nrn_nmodl_text_
 
const char ** nrn_nmodl_filename_
 
int nrn_fornetcon_cnt_
 
intnrn_fornetcon_type_
 
intnrn_fornetcon_index_
 
short * nrn_is_artificial_
 
short * nrn_artcell_qindex_
 
static DoubScal scdoub []
 
static int pointtype = 1
 
int n_memb_func
 
int _ninits
 
int state_discon_flag_ = 0
 

Macro Definition Documentation

◆ CHECK

#define CHECK (   name)
Value:
if (hoc_lookup(name) != (Symbol *)0){\
IGNORE(fprintf(stderr, CHKmes, name));\
nrn_exit(1);}
Symbol * hoc_lookup(const char *)
fprintf(stderr, "Don't know the location of params at %p\, pp)
Definition: model.h:57
char * name
Definition: init.cpp:16
static char CHKmes[]
Definition: init.cpp:116

Definition at line 112 of file init.cpp.

Typedef Documentation

◆ bbcore_write_t

using bbcore_write_t = void (*)(double*, int*, int*, int*, double*, Datum*, Datum*, NrnThread*)

Definition at line 189 of file init.cpp.

Function Documentation

◆ _cvode_abstol()

void _cvode_abstol ( Symbol **  s,
double *  tol,
int  i 
)

Definition at line 954 of file init.cpp.

◆ _modl_cleanup()

void _modl_cleanup ( void  )

Definition at line 865 of file init.cpp.

◆ _modl_get_dt_thread()

double _modl_get_dt_thread ( NrnThread nt)

Definition at line 875 of file init.cpp.

◆ _modl_set_dt()

void _modl_set_dt ( double  newdt)

Definition at line 868 of file init.cpp.

◆ _modl_set_dt_thread()

void _modl_set_dt_thread ( double  newdt,
NrnThread nt 
)

Definition at line 872 of file init.cpp.

◆ _nrn_setdata_reg()

void _nrn_setdata_reg ( int  i,
void(*)(Prop *)  call 
)

Definition at line 1056 of file init.cpp.

◆ _nrn_thread_reg()

void _nrn_thread_reg ( int  i,
int  cons,
void(*)(Datum *)  f 
)

Definition at line 1042 of file init.cpp.

◆ _nrn_thread_table_reg()

void _nrn_thread_table_reg ( int  i,
void(*)(double *, Datum *, Datum *, NrnThread *, int f 
)

Definition at line 1052 of file init.cpp.

◆ add_nrn_artcell()

void add_nrn_artcell ( int  type,
int  qi 
)

Definition at line 234 of file init.cpp.

◆ add_nrn_fornetcons()

void add_nrn_fornetcons ( int  type,
int  indx 
)

Definition at line 222 of file init.cpp.

◆ add_nrn_has_net_event()

void add_nrn_has_net_event ( int  type)

Definition at line 211 of file init.cpp.

◆ class2oc()

void class2oc ( const char *  ,
void *(*)(Object *)  cons,
void(*)(void *)  destruct,
Member_func ,
int(*)(void **)  checkpoint,
Member_ret_obj_func ,
Member_ret_str_func  
)

Definition at line 1581 of file hoc_oop.cpp.

◆ hoc_nrn_load_dll()

void hoc_nrn_load_dll ( void  )

Definition at line 307 of file init.cpp.

◆ hoc_reg_ba()

void hoc_reg_ba ( int  mt,
nrn_bamech_t  f,
int  type 
)

Definition at line 934 of file init.cpp.

◆ hoc_reg_bbcore_read()

void hoc_reg_bbcore_read ( int  type,
bbcore_write_t  f 
)

Definition at line 197 of file init.cpp.

◆ hoc_reg_bbcore_write()

void hoc_reg_bbcore_write ( int  type,
bbcore_write_t  f 
)

Definition at line 193 of file init.cpp.

◆ hoc_reg_nmodl_filename()

void hoc_reg_nmodl_filename ( int  type,
const char *  filename 
)

Definition at line 207 of file init.cpp.

◆ hoc_reg_nmodl_text()

void hoc_reg_nmodl_text ( int  type,
const char *  txt 
)

Definition at line 202 of file init.cpp.

◆ hoc_reg_watch_allocate()

void hoc_reg_watch_allocate ( int  type,
NrnWatchAllocateFunc_t  waf 
)

Definition at line 184 of file init.cpp.

◆ hoc_register_cvode()

void hoc_register_cvode ( int  i,
nrn_ode_count_t  cnt,
nrn_ode_map_t  map,
Pvmi  spec,
Pvmi  matsol 
)

Definition at line 779 of file init.cpp.

◆ hoc_register_dparam_semantics()

void hoc_register_dparam_semantics ( int  type,
int  ix,
const char *  name 
)

Definition at line 732 of file init.cpp.

◆ hoc_register_limits()

void hoc_register_limits ( int  type,
HocParmLimits limits 
)

Definition at line 892 of file init.cpp.

◆ hoc_register_prop_size()

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

Definition at line 721 of file init.cpp.

◆ hoc_register_synonym()

void hoc_register_synonym ( int  i,
void(*)(int, double **, Datum **)  syn 
)

Definition at line 791 of file init.cpp.

◆ hoc_register_tolerance()

void hoc_register_tolerance ( int  type,
HocStateTolerance tol,
Symbol ***  stol 
)

Definition at line 969 of file init.cpp.

◆ hoc_register_units()

void hoc_register_units ( int  type,
HocParmUnits units 
)

Definition at line 913 of file init.cpp.

◆ initnrn()

void initnrn ( void  )

Definition at line 460 of file init.cpp.

◆ mswin_load_dll()

int mswin_load_dll ( const char *  cp1)

Definition at line 281 of file init.cpp.

◆ node_construct()

Node** node_construct ( int  )

Definition at line 593 of file solve.cpp.

◆ nrn_call_mech_func()

double nrn_call_mech_func ( Symbol s,
int  narg,
Prop p,
int  type 
)

Definition at line 1060 of file init.cpp.

◆ nrn_is_artificial()

int nrn_is_artificial ( int  pnttype)

Definition at line 239 of file init.cpp.

◆ nrn_load_dll_recover_error()

int nrn_load_dll_recover_error ( )

Definition at line 22 of file hocusr.cpp.

◆ nrn_load_name_check()

void nrn_load_name_check ( const char *  name)

Definition at line 33 of file hocusr.cpp.

◆ nrn_pointing()

int nrn_pointing ( double *  pd)

Definition at line 880 of file init.cpp.

◆ nrn_realpath_dlopen()

void* nrn_realpath_dlopen ( const char *  relpath,
int  flags 
)

Definition at line 245 of file init.cpp.

◆ nrn_register_mech_common()

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

Definition at line 474 of file init.cpp.

◆ nrn_threads_create()

void nrn_threads_create ( int  ,
int   
)

Definition at line 490 of file multicore.cpp.

◆ nrn_writes_conc()

void nrn_writes_conc ( int  type,
int  unused 
)

Definition at line 706 of file init.cpp.

◆ nrnunit_use_legacy()

void nrnunit_use_legacy ( )

Definition at line 1069 of file init.cpp.

◆ point_reg_helper()

int point_reg_helper ( Symbol s2)

Definition at line 800 of file init.cpp.

◆ point_register_mech()

int point_register_mech ( const char **  m,
Pvmp  alloc,
Pvmi  cur,
Pvmi  jacob,
Pvmi  stat,
Pvmi  initialize,
int  nrnpointerindex,
int  vectorized,
void *(*)(Object *)  constructor,
void(*)(void *)  destructor,
Member_func fmember 
)

Definition at line 821 of file init.cpp.

◆ register_destructor()

void register_destructor ( Pvmp  d)

Definition at line 796 of file init.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 688 of file init.cpp.

◆ state_discontinuity()

void state_discontinuity ( int  i,
double *  pd,
double  d 
)

Definition at line 885 of file init.cpp.

Variable Documentation

◆ _hoc_parm_limits

HocParmLimits _hoc_parm_limits[]
static
Initial value:
= {
"Ra", 1e-6, 1e9,
"L", 1e-4, 1e20,
"diam", 1e-9, 1e9,
"cm", 0., 1e9,
"rallbranch", 1., 1e9,
"nseg", 1., 1e9,
"celsius", -273., 1e6,
"dt", 1e-9, 1e15,
0, 0., 0.
}
#define e
Definition: passive0.cpp:24

Definition at line 132 of file init.cpp.

◆ _hoc_parm_units

HocParmUnits _hoc_parm_units[]
static
Initial value:
= {
"Ra", "ohm-cm",
"L", "um",
"diam", "um",
"cm", "uF/cm2",
"celsius", "degC",
"dt", "ms",
"t", "ms",
"v", "mV",
"i_cap", "mA/cm2",
0, 0
}

Definition at line 144 of file init.cpp.

◆ _ninits

int _ninits

Definition at line 864 of file init.cpp.

◆ bamech_

BAMech** bamech_

Definition at line 167 of file init.cpp.

◆ banner

char banner[]
static
Initial value:
=
"Duke, Yale, and the BlueBrain Project -- Copyright 1984-2021\n\
See http://neuron.yale.edu/neuron/credits\n"

Definition at line 23 of file init.cpp.

◆ celsius

double celsius

Definition at line 123 of file init.cpp.

◆ CHKmes

char CHKmes[] = "The user defined name, %s, already exists\n"
static

Definition at line 116 of file init.cpp.

◆ clamp_resist

double clamp_resist

Definition at line 123 of file init.cpp.

◆ dt

double dt

Definition at line 123 of file init.cpp.

◆ hoc_default_dll_loaded_

double hoc_default_dll_loaded_

Definition at line 266 of file hoc_init.cpp.

◆ htablemax

double htablemax

Definition at line 123 of file init.cpp.

◆ htablemin

double htablemin

Definition at line 123 of file init.cpp.

◆ memb_func

Memb_func* memb_func

Definition at line 161 of file init.cpp.

◆ memb_func_size_

int memb_func_size_
static

Definition at line 160 of file init.cpp.

◆ memb_list

Memb_list* memb_list

Definition at line 162 of file init.cpp.

◆ memb_order_

short* memb_order_

Definition at line 163 of file init.cpp.

◆ n_memb_func

int n_memb_func

Definition at line 471 of file init.cpp.

◆ nmodl_version_

char nmodl_version_[]
static
Initial value:
=
"7.7.0"

Definition at line 20 of file init.cpp.

◆ nrn_artcell_qindex_

short* nrn_artcell_qindex_

Definition at line 232 of file init.cpp.

◆ nrn_bbcore_read_

bbcore_write_t* nrn_bbcore_read_

Definition at line 191 of file init.cpp.

◆ nrn_bbcore_write_

bbcore_write_t* nrn_bbcore_write_

Definition at line 190 of file init.cpp.

◆ nrn_dparam_ptr_end_

int* nrn_dparam_ptr_end_

Definition at line 181 of file init.cpp.

◆ nrn_dparam_ptr_start_

int* nrn_dparam_ptr_start_

Definition at line 180 of file init.cpp.

◆ nrn_fornetcon_cnt_

int nrn_fornetcon_cnt_

Definition at line 218 of file init.cpp.

◆ nrn_fornetcon_index_

int* nrn_fornetcon_index_

Definition at line 220 of file init.cpp.

◆ nrn_fornetcon_type_

int* nrn_fornetcon_type_

Definition at line 219 of file init.cpp.

◆ nrn_global_ncell

int nrn_global_ncell = 0

Definition at line 127 of file init.cpp.

◆ nrn_has_net_event_

int* nrn_has_net_event_

Definition at line 177 of file init.cpp.

◆ nrn_has_net_event_cnt_

int nrn_has_net_event_cnt_

Definition at line 176 of file init.cpp.

◆ nrn_is_artificial_

short* nrn_is_artificial_

Definition at line 231 of file init.cpp.

◆ nrn_istty_

int nrn_istty_

Definition at line 870 of file hoc.cpp.

◆ nrn_load_dll_called_

Symlist* nrn_load_dll_called_

Definition at line 17 of file hocusr.cpp.

◆ nrn_netrec_state_adjust

int nrn_netrec_state_adjust = 0

Definition at line 124 of file init.cpp.

◆ nrn_nmodl_filename_

const char** nrn_nmodl_filename_

Definition at line 206 of file init.cpp.

◆ nrn_nmodl_text_

const char** nrn_nmodl_text_

Definition at line 201 of file init.cpp.

◆ nrn_nobanner_

int nrn_nobanner_

Definition at line 130 of file init.cpp.

◆ nrn_pnt_template_

cTemplate** nrn_pnt_template_

Definition at line 169 of file init.cpp.

◆ nrn_prop_dparam_size_

int* nrn_prop_dparam_size_

Definition at line 179 of file init.cpp.

◆ nrn_prop_param_size_

int* nrn_prop_param_size_

Definition at line 178 of file init.cpp.

◆ nrn_sparse_partrans

int nrn_sparse_partrans = 0

Definition at line 125 of file init.cpp.

◆ nrn_watch_allocate_

NrnWatchAllocateFunc_t* nrn_watch_allocate_

Definition at line 182 of file init.cpp.

◆ nrnpy_reg_mech_p_

void(* nrnpy_reg_mech_p_) (int)

Definition at line 118 of file init.cpp.

◆ pnt_map

char* pnt_map

Definition at line 166 of file init.cpp.

◆ pnt_receive

pnt_receive_t* pnt_receive

Definition at line 171 of file init.cpp.

◆ pnt_receive_init

pnt_receive_init_t* pnt_receive_init

Definition at line 172 of file init.cpp.

◆ pnt_receive_size

short* pnt_receive_size

Definition at line 173 of file init.cpp.

◆ point_process

Point_process** point_process

Definition at line 165 of file init.cpp.

◆ pointsym

Symbol** pointsym

Definition at line 164 of file init.cpp.

◆ pointtype

int pointtype = 1
static

Definition at line 470 of file init.cpp.

◆ scdoub

DoubScal scdoub[]
static
Initial value:
= {
"t", &t,
"dt", &dt,
0,0
}
double t
Definition: init.cpp:123
double dt
Definition: init.cpp:123

Definition at line 331 of file init.cpp.

◆ secondorder

int secondorder =0

Definition at line 120 of file init.cpp.

◆ section_list

hoc_List* section_list

Definition at line 126 of file init.cpp.

◆ state_discon_allowed_

int state_discon_allowed_

Definition at line 121 of file init.cpp.

◆ state_discon_flag_

int state_discon_flag_ = 0

Definition at line 884 of file init.cpp.

◆ t

double t

Definition at line 123 of file init.cpp.