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"
#include "nrnwrap_dlfcn.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_ [] = "7.7.0"
 
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_
 
int * nrn_has_net_event_
 
int * nrn_prop_param_size_
 
int * nrn_prop_dparam_size_
 
int * nrn_dparam_ptr_start_
 
int * nrn_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_
 
int * nrn_fornetcon_type_
 
int * nrn_fornetcon_index_
 
short * nrn_is_artificial_
 
short * nrn_artcell_qindex_
 
static DoubScal scdoub [] = {"t", &t, "dt", &dt, 0, 0}
 
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 *)
char * name
Definition: init.cpp:16
#define fprintf
Definition: mwprefix.h:30
static char CHKmes[]
Definition: init.cpp:92
Definition: model.h:57

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

Function Documentation

◆ _cvode_abstol()

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

Definition at line 947 of file init.cpp.

◆ _modl_cleanup()

void _modl_cleanup ( void  )

Definition at line 847 of file init.cpp.

◆ _modl_get_dt_thread()

double _modl_get_dt_thread ( NrnThread nt)

Definition at line 857 of file init.cpp.

◆ _modl_set_dt()

void _modl_set_dt ( double  newdt)

Definition at line 850 of file init.cpp.

◆ _modl_set_dt_thread()

void _modl_set_dt_thread ( double  newdt,
NrnThread nt 
)

Definition at line 854 of file init.cpp.

◆ _nrn_setdata_reg()

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

Definition at line 1045 of file init.cpp.

◆ _nrn_thread_reg()

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

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

◆ add_nrn_artcell()

void add_nrn_artcell ( int  type,
int  qi 
)

Definition at line 196 of file init.cpp.

◆ add_nrn_fornetcons()

void add_nrn_fornetcons ( int  type,
int  indx 
)

Definition at line 184 of file init.cpp.

◆ add_nrn_has_net_event()

void add_nrn_has_net_event ( int  type)

Definition at line 173 of file init.cpp.

◆ class2oc()

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

Definition at line 1560 of file hoc_oop.cpp.

◆ hoc_nrn_load_dll()

void hoc_nrn_load_dll ( void  )

Definition at line 276 of file init.cpp.

◆ hoc_reg_ba()

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

Definition at line 908 of file init.cpp.

◆ hoc_reg_bbcore_read()

void hoc_reg_bbcore_read ( int  type,
bbcore_write_t  f 
)

Definition at line 159 of file init.cpp.

◆ hoc_reg_bbcore_write()

void hoc_reg_bbcore_write ( int  type,
bbcore_write_t  f 
)

Definition at line 155 of file init.cpp.

◆ hoc_reg_watch_allocate()

void hoc_reg_watch_allocate ( int  type,
NrnWatchAllocateFunc_t  waf 
)

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

◆ hoc_register_dparam_semantics()

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

Definition at line 715 of file init.cpp.

◆ hoc_register_limits()

void hoc_register_limits ( int  type,
HocParmLimits limits 
)

Definition at line 874 of file init.cpp.

◆ hoc_register_prop_size()

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

Definition at line 704 of file init.cpp.

◆ hoc_register_synonym()

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

Definition at line 777 of file init.cpp.

◆ hoc_register_tolerance()

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

Definition at line 961 of file init.cpp.

◆ hoc_register_units()

void hoc_register_units ( int  type,
HocParmUnits units 
)

Definition at line 891 of file init.cpp.

◆ initnrn()

void initnrn ( void  )

Definition at line 429 of file init.cpp.

◆ mswin_load_dll()

int mswin_load_dll ( const char *  cp1)

Definition at line 249 of file init.cpp.

◆ node_construct()

Node** node_construct ( int  n)

Definition at line 603 of file solve.cpp.

◆ nrn_call_mech_func()

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

Definition at line 1049 of file init.cpp.

◆ nrn_is_artificial()

int nrn_is_artificial ( int  pnttype)

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

◆ nrn_realpath_dlopen()

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

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

◆ nrn_threads_create()

void nrn_threads_create ( int  n,
int  parallel 
)

Definition at line 504 of file multicore.cpp.

◆ nrn_writes_conc()

void nrn_writes_conc ( int  type,
int  unused 
)

Definition at line 689 of file init.cpp.

◆ nrnunit_use_legacy()

void nrnunit_use_legacy ( )

Definition at line 1058 of file init.cpp.

◆ point_reg_helper()

int point_reg_helper ( Symbol s2)

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

◆ register_destructor()

void register_destructor ( Pvmp  d)

Definition at line 782 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 674 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:22

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

◆ _ninits

int _ninits

Definition at line 846 of file init.cpp.

◆ bamech_

BAMech** bamech_

Definition at line 129 of file init.cpp.

◆ banner

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

Definition at line 21 of file init.cpp.

◆ celsius

double celsius

Definition at line 99 of file init.cpp.

◆ CHKmes

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

Definition at line 92 of file init.cpp.

◆ clamp_resist

double clamp_resist

Definition at line 99 of file init.cpp.

◆ dt

double dt

Definition at line 99 of file init.cpp.

◆ hoc_default_dll_loaded_

double hoc_default_dll_loaded_
extern

Definition at line 402 of file hoc_init.cpp.

◆ htablemax

double htablemax

Definition at line 99 of file init.cpp.

◆ htablemin

double htablemin

Definition at line 99 of file init.cpp.

◆ memb_func

Memb_func* memb_func

Definition at line 123 of file init.cpp.

◆ memb_func_size_

int memb_func_size_
static

Definition at line 122 of file init.cpp.

◆ memb_list

Memb_list* memb_list

Definition at line 124 of file init.cpp.

◆ memb_order_

short* memb_order_

Definition at line 125 of file init.cpp.

◆ n_memb_func

int n_memb_func

Definition at line 440 of file init.cpp.

◆ nmodl_version_

char nmodl_version_[] = "7.7.0"
static

Definition at line 19 of file init.cpp.

◆ nrn_artcell_qindex_

short* nrn_artcell_qindex_

Definition at line 194 of file init.cpp.

◆ nrn_bbcore_read_

bbcore_write_t* nrn_bbcore_read_

Definition at line 153 of file init.cpp.

◆ nrn_bbcore_write_

bbcore_write_t* nrn_bbcore_write_

Definition at line 152 of file init.cpp.

◆ nrn_dparam_ptr_end_

int* nrn_dparam_ptr_end_

Definition at line 143 of file init.cpp.

◆ nrn_dparam_ptr_start_

int* nrn_dparam_ptr_start_

Definition at line 142 of file init.cpp.

◆ nrn_fornetcon_cnt_

int nrn_fornetcon_cnt_

Definition at line 180 of file init.cpp.

◆ nrn_fornetcon_index_

int* nrn_fornetcon_index_

Definition at line 182 of file init.cpp.

◆ nrn_fornetcon_type_

int* nrn_fornetcon_type_

Definition at line 181 of file init.cpp.

◆ nrn_global_ncell

int nrn_global_ncell = 0

Definition at line 103 of file init.cpp.

◆ nrn_has_net_event_

int* nrn_has_net_event_

Definition at line 139 of file init.cpp.

◆ nrn_has_net_event_cnt_

int nrn_has_net_event_cnt_

Definition at line 138 of file init.cpp.

◆ nrn_is_artificial_

short* nrn_is_artificial_

Definition at line 193 of file init.cpp.

◆ nrn_istty_

int nrn_istty_
extern

Definition at line 882 of file hoc.cpp.

◆ nrn_load_dll_called_

Symlist* nrn_load_dll_called_
extern

Definition at line 17 of file hocusr.cpp.

◆ nrn_netrec_state_adjust

int nrn_netrec_state_adjust = 0

Definition at line 100 of file init.cpp.

◆ nrn_nmodl_filename_

const char** nrn_nmodl_filename_

Definition at line 168 of file init.cpp.

◆ nrn_nmodl_text_

const char** nrn_nmodl_text_

Definition at line 163 of file init.cpp.

◆ nrn_nobanner_

int nrn_nobanner_
extern

Definition at line 106 of file init.cpp.

◆ nrn_pnt_template_

cTemplate** nrn_pnt_template_

Definition at line 131 of file init.cpp.

◆ nrn_prop_dparam_size_

int* nrn_prop_dparam_size_

Definition at line 141 of file init.cpp.

◆ nrn_prop_param_size_

int* nrn_prop_param_size_

Definition at line 140 of file init.cpp.

◆ nrn_sparse_partrans

int nrn_sparse_partrans = 0

Definition at line 101 of file init.cpp.

◆ nrn_watch_allocate_

NrnWatchAllocateFunc_t* nrn_watch_allocate_

Definition at line 144 of file init.cpp.

◆ nrnpy_reg_mech_p_

void(* nrnpy_reg_mech_p_) (int) ( int  )

Definition at line 94 of file init.cpp.

◆ pnt_map

char* pnt_map

Definition at line 128 of file init.cpp.

◆ pnt_receive

pnt_receive_t* pnt_receive

Definition at line 133 of file init.cpp.

◆ pnt_receive_init

pnt_receive_init_t* pnt_receive_init

Definition at line 134 of file init.cpp.

◆ pnt_receive_size

short* pnt_receive_size

Definition at line 135 of file init.cpp.

◆ point_process

Point_process** point_process

Definition at line 127 of file init.cpp.

◆ pointsym

Symbol** pointsym

Definition at line 126 of file init.cpp.

◆ pointtype

int pointtype = 1
static

Definition at line 439 of file init.cpp.

◆ scdoub

DoubScal scdoub[] = {"t", &t, "dt", &dt, 0, 0}
static

Definition at line 300 of file init.cpp.

◆ secondorder

int secondorder = 0

Definition at line 96 of file init.cpp.

◆ section_list

hoc_List* section_list

Definition at line 102 of file init.cpp.

◆ state_discon_allowed_

int state_discon_allowed_

Definition at line 97 of file init.cpp.

◆ state_discon_flag_

int state_discon_flag_ = 0

Definition at line 866 of file init.cpp.

◆ t

double t

Definition at line 99 of file init.cpp.