CoreNEURON
coreneuron::CoreNeuron Class Reference

A class representing the CoreNEURON state, holding pointers to the various data structures. More...

Detailed Description

A class representing the CoreNEURON state, holding pointers to the various data structures.

The pointers to "global" data such as the NrnThread, Memb_list and Memb_func data structures are managed here. they logically share their lifetime and runtime scope with instances of this class.

Definition at line 60 of file coreneuron.hpp.

#include <coreneuron.hpp>

Public Member Functions

auto & get_memb_funcs ()
 
auto & get_memb_func (size_t idx)
 
auto & get_different_mechanism_type ()
 
auto & get_pnt_map ()
 
auto & get_ion_write_dependency ()
 
auto & get_net_buf_receive ()
 
auto & get_net_buf_send_type ()
 
auto & get_bamech ()
 
auto & get_prop_param_size ()
 
auto & get_prop_dparam_size ()
 
auto & get_mech_data_layout ()
 
auto & get_is_artificial ()
 
auto & get_artcell_qindex ()
 
auto & get_pnt_receive ()
 
auto & get_pnt_receive_init ()
 
auto & get_pnt_receive_size ()
 
auto & get_watch_check ()
 
auto & get_has_net_event ()
 
auto & get_pnttype2presyn ()
 
auto & get_bbcore_read ()
 
auto & get_bbcore_write ()
 

Private Attributes

std::vector< char > pnt_map
 map if mech is a point process In the future only a field of Mechanism class More...
 
std::vector< int > different_mechanism_type
 Vector mapping the types (IDs) of different mechanisms of mod files between NEURON and CoreNEURON. More...
 
DependencyTable ion_write_dependency
 dependency helper filled by calls to hoc_register_dparam_semantics used when nrn_mech_depend is called vector-of-vector DS. More...
 
std::vector< Memb_funcmemb_funcs
 
std::vector< std::pair< NetBufReceive_t, int > > net_buf_receive
 Net send / Net receive only used in CoreNEURON for book keeping synapse mechs, should go into CoreNEURON class. More...
 
std::vector< int > net_buf_send_type
 
std::array< BAMech *, BEFORE_AFTER_SIZEbamech
 before-after-blocks from nmodl are registered here as function pointers More...
 
std::vector< int > nrn_prop_param_size
 Internal lookup tables. More...
 
std::vector< int > nrn_prop_dparam_size
 
std::vector< int > nrn_mech_data_layout
 
std::vector< short > nrn_artcell_qindex
 
std::vector< bool > nrn_is_artificial
 
std::vector< pnt_receive_tpnt_receive
 Net Receive function pointer lookup tables. More...
 
std::vector< pnt_receive_tpnt_receive_init
 
std::vector< short > pnt_receive_size
 
std::vector< nrn_watch_check_tnrn_watch_check
 Holds function pointers for WATCH callback. More...
 
std::vector< int > nrn_has_net_event
 values are type numbers of mechanisms which do net_send call related to NMODL net_event() More...
 
std::vector< int > pnttype2presyn
 inverse of nrn_has_net_event_ maps the values of nrn_has_net_event_ to the index of ptntype2presyn More...
 
std::vector< bbcore_read_tnrn_bbcore_read
 
std::vector< bbcore_write_tnrn_bbcore_write
 

Member Function Documentation

◆ get_artcell_qindex()

auto& coreneuron::CoreNeuron::get_artcell_qindex ( )
inline

Definition at line 182 of file coreneuron.hpp.

◆ get_bamech()

auto& coreneuron::CoreNeuron::get_bamech ( )
inline

Definition at line 162 of file coreneuron.hpp.

◆ get_bbcore_read()

auto& coreneuron::CoreNeuron::get_bbcore_read ( )
inline

Definition at line 210 of file coreneuron.hpp.

◆ get_bbcore_write()

auto& coreneuron::CoreNeuron::get_bbcore_write ( )
inline

Definition at line 214 of file coreneuron.hpp.

◆ get_different_mechanism_type()

auto& coreneuron::CoreNeuron::get_different_mechanism_type ( )
inline

Definition at line 142 of file coreneuron.hpp.

◆ get_has_net_event()

auto& coreneuron::CoreNeuron::get_has_net_event ( )
inline

Definition at line 202 of file coreneuron.hpp.

◆ get_ion_write_dependency()

auto& coreneuron::CoreNeuron::get_ion_write_dependency ( )
inline

Definition at line 150 of file coreneuron.hpp.

◆ get_is_artificial()

auto& coreneuron::CoreNeuron::get_is_artificial ( )
inline

Definition at line 178 of file coreneuron.hpp.

◆ get_mech_data_layout()

auto& coreneuron::CoreNeuron::get_mech_data_layout ( )
inline

Definition at line 174 of file coreneuron.hpp.

◆ get_memb_func()

auto& coreneuron::CoreNeuron::get_memb_func ( size_t  idx)
inline

Definition at line 138 of file coreneuron.hpp.

◆ get_memb_funcs()

auto& coreneuron::CoreNeuron::get_memb_funcs ( )
inline

Definition at line 134 of file coreneuron.hpp.

◆ get_net_buf_receive()

auto& coreneuron::CoreNeuron::get_net_buf_receive ( )
inline

Definition at line 154 of file coreneuron.hpp.

◆ get_net_buf_send_type()

auto& coreneuron::CoreNeuron::get_net_buf_send_type ( )
inline

Definition at line 158 of file coreneuron.hpp.

◆ get_pnt_map()

auto& coreneuron::CoreNeuron::get_pnt_map ( )
inline

Definition at line 146 of file coreneuron.hpp.

◆ get_pnt_receive()

auto& coreneuron::CoreNeuron::get_pnt_receive ( )
inline

Definition at line 186 of file coreneuron.hpp.

◆ get_pnt_receive_init()

auto& coreneuron::CoreNeuron::get_pnt_receive_init ( )
inline

Definition at line 190 of file coreneuron.hpp.

◆ get_pnt_receive_size()

auto& coreneuron::CoreNeuron::get_pnt_receive_size ( )
inline

Definition at line 194 of file coreneuron.hpp.

◆ get_pnttype2presyn()

auto& coreneuron::CoreNeuron::get_pnttype2presyn ( )
inline

Definition at line 206 of file coreneuron.hpp.

◆ get_prop_dparam_size()

auto& coreneuron::CoreNeuron::get_prop_dparam_size ( )
inline

Definition at line 170 of file coreneuron.hpp.

◆ get_prop_param_size()

auto& coreneuron::CoreNeuron::get_prop_param_size ( )
inline

Definition at line 166 of file coreneuron.hpp.

◆ get_watch_check()

auto& coreneuron::CoreNeuron::get_watch_check ( )
inline

Definition at line 198 of file coreneuron.hpp.

Member Data Documentation

◆ bamech

std::array<BAMech*, BEFORE_AFTER_SIZE> coreneuron::CoreNeuron::bamech
private

before-after-blocks from nmodl are registered here as function pointers

Definition at line 91 of file coreneuron.hpp.

◆ different_mechanism_type

std::vector<int> coreneuron::CoreNeuron::different_mechanism_type
private

Vector mapping the types (IDs) of different mechanisms of mod files between NEURON and CoreNEURON.

Definition at line 70 of file coreneuron.hpp.

◆ ion_write_dependency

DependencyTable coreneuron::CoreNeuron::ion_write_dependency
private

dependency helper filled by calls to hoc_register_dparam_semantics used when nrn_mech_depend is called vector-of-vector DS.

First idx is the mech, second idx is the dependent mech.

Definition at line 77 of file coreneuron.hpp.

◆ memb_funcs

std::vector<Memb_func> coreneuron::CoreNeuron::memb_funcs
private

Definition at line 79 of file coreneuron.hpp.

◆ net_buf_receive

std::vector<std::pair<NetBufReceive_t, int> > coreneuron::CoreNeuron::net_buf_receive
private

Net send / Net receive only used in CoreNEURON for book keeping synapse mechs, should go into CoreNEURON class.

Definition at line 85 of file coreneuron.hpp.

◆ net_buf_send_type

std::vector<int> coreneuron::CoreNeuron::net_buf_send_type
private

Definition at line 86 of file coreneuron.hpp.

◆ nrn_artcell_qindex

std::vector<short> coreneuron::CoreNeuron::nrn_artcell_qindex
private

Definition at line 101 of file coreneuron.hpp.

◆ nrn_bbcore_read

std::vector<bbcore_read_t> coreneuron::CoreNeuron::nrn_bbcore_read
private

Definition at line 130 of file coreneuron.hpp.

◆ nrn_bbcore_write

std::vector<bbcore_write_t> coreneuron::CoreNeuron::nrn_bbcore_write
private

Definition at line 131 of file coreneuron.hpp.

◆ nrn_has_net_event

std::vector<int> coreneuron::CoreNeuron::nrn_has_net_event
private

values are type numbers of mechanisms which do net_send call related to NMODL net_event()

Definition at line 121 of file coreneuron.hpp.

◆ nrn_is_artificial

std::vector<bool> coreneuron::CoreNeuron::nrn_is_artificial
private

Definition at line 102 of file coreneuron.hpp.

◆ nrn_mech_data_layout

std::vector<int> coreneuron::CoreNeuron::nrn_mech_data_layout
private

Definition at line 99 of file coreneuron.hpp.

◆ nrn_prop_dparam_size

std::vector<int> coreneuron::CoreNeuron::nrn_prop_dparam_size
private

Definition at line 98 of file coreneuron.hpp.

◆ nrn_prop_param_size

std::vector<int> coreneuron::CoreNeuron::nrn_prop_param_size
private

Internal lookup tables.

Number of float and int variables in each mechanism and memory layout future --> mech class

Definition at line 97 of file coreneuron.hpp.

◆ nrn_watch_check

std::vector<nrn_watch_check_t> coreneuron::CoreNeuron::nrn_watch_check
private

Holds function pointers for WATCH callback.

Definition at line 114 of file coreneuron.hpp.

◆ pnt_map

std::vector<char> coreneuron::CoreNeuron::pnt_map
private

map if mech is a point process In the future only a field of Mechanism class

Definition at line 65 of file coreneuron.hpp.

◆ pnt_receive

std::vector<pnt_receive_t> coreneuron::CoreNeuron::pnt_receive
private

Net Receive function pointer lookup tables.

Definition at line 107 of file coreneuron.hpp.

◆ pnt_receive_init

std::vector<pnt_receive_t> coreneuron::CoreNeuron::pnt_receive_init
private

Definition at line 108 of file coreneuron.hpp.

◆ pnt_receive_size

std::vector<short> coreneuron::CoreNeuron::pnt_receive_size
private

Definition at line 109 of file coreneuron.hpp.

◆ pnttype2presyn

std::vector<int> coreneuron::CoreNeuron::pnttype2presyn
private

inverse of nrn_has_net_event_ maps the values of nrn_has_net_event_ to the index of ptntype2presyn

Definition at line 127 of file coreneuron.hpp.


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