![]() |
NEURON
|
#include <../../nrnconf.h>#include <nrnmpi.h>#include "cabcode.h"#include "classreg.h"#include "code.h"#include "parse.hpp"#include "cvodeobj.h"#include "hoclist.h"#include "pool.hpp"#include "tqueue.hpp"#include "ocobserv.h"#include "nrnneosm.h"#include "datapath.h"#include "objcmd.h"#include "kssingle.h"#include "ocnotify.h"#include "utils/enumerate.h"#include "vrecitem.h"#include "oclist.h"#include "htlist.h"#include "ivocvect.h"#include "netcon.h"#include "netcvode.h"#include "nrn_ansi.h"#include "nrncore_write/utils/nrncore_utils.h"#include "nrniv_mf.h"#include "nrnste.h"#include "profile.h"#include "utils/profile/profiler_interface.h"#include "utils/formatting.hpp"#include <array>#include <cerrno>#include <cstdlib>#include <ctime>#include <regex>#include <unordered_set>#include <utility>#include "membfunc.h"Go to the source code of this file.
Classes | |
| struct | ForNetConsInfo |
| class | MaxStateItem |
| struct | InterThreadEvent |
Macros | |
| #define | USE_MIN_DELAY 1 |
| #define | PROFILE 0 |
| #define | lvardtloop(i, j) |
| #define | NVI_SUCCESS 0 |
| #define | PP2NT(pp) ((NrnThread*) ((pp)->_vnt)) |
| #define | PP2t(pp) (PP2NT(pp)->_t) |
| #define | POINT_RECEIVE(type, tar, w, f) (*pnt_receive[type])(tar, w, f) |
| #define | nt_dt nrn_threads->_dt |
| #define | nt_t nrn_threads->_t |
| #define | ITE_SIZE 10 |
| #define | fifo_event event |
Typedefs | |
| typedef void(* | ReceiveFunc) (Point_process *, double *, double) |
| typedef std::vector< WatchCondition * > | WatchList |
| using | SelfEventPool = MutexPool< SelfEvent > |
| typedef std::vector< TQItem * > | TQList |
| using | HocEventPool = MutexPool< HocEvent > |
Functions | |
| void | single_event_run () |
| void | nrn_cvfun (double t, double *y, double *ydot) |
| void | nrn_cleanup_presyn (PreSyn *) |
| void | nrn_pending_selfqueue (double tt, NrnThread *) |
| static void | all_pending_selfqueue (double tt) |
| static void * | pending_selfqueue (NrnThread *) |
| int | linmod_extra_eqn_count () |
| int | nrn_modeltype () |
| TQueue * | net_cvode_instance_event_queue (NrnThread *) |
| std::vector< PlayRecord * > * | net_cvode_instance_prl () |
| void | nrn_use_busywait (int) |
| void * | nrn_interthread_enqueue (NrnThread *) |
| void | nrnthread_get_trajectory_requests (int tid, int &bsize, int &n_pr, void **&vpr, int &n_trajec, int *&types, int *&indices, double **&pvars, double **&varrays) |
| void | nrnthread_trajectory_values (int tid, int n_pr, void **vpr, double t) |
| void | nrnthread_trajectory_return (int tid, int n_pr, int bsize, int vecsz, void **vpr, double t) |
| double | nrn_netcon_get_delay (NetCon *nc) |
| void | nrn_netcon_set_delay (NetCon *nc, double d) |
| int | nrn_netcon_weight (NetCon *nc, double **pw) |
| double | nrn_event_queue_stats (double *stats) |
| double | nrn_netcon_get_thresh (NetCon *nc) |
| void | nrn_netcon_set_thresh (NetCon *nc, double th) |
| void | nrn_netcon_event (NetCon *nc, double td) |
| Point_process * | nrn_netcon_target (NetCon *nc) |
| int | nrn_netcon_info (NetCon *nc, double **pw, Point_process **target, double **th, double **del) |
| int | nrn_presyn_count (PreSyn *ps) |
| void * | nrn_presyn_netcon (PreSyn *ps, int i) |
| void | ncs2nrn_integrate (double tstop) |
| static void | allthread_handle_callback () |
| std::vector< PreSyn * > * | net_cvode_instance_psl () |
| void | nrn_use_daspk (int b) |
| static Node * | node (Object *) |
| static double | nc_preloc (void *v) |
| static Object ** | nc_preseg (void *v) |
| static double | nc_postloc (void *v) |
| static Object ** | nc_postseg (void *v) |
| static Object ** | nc_syn (void *v) |
| static Object ** | nc_pre (void *v) |
| static Object ** | newoclist (int i, OcList *&o) |
| static Object ** | nc_prelist (void *v) |
| static Object ** | nc_synlist (void *v) |
| static Object ** | nc_postcelllist (void *v) |
| static Object ** | nc_precelllist (void *v) |
| static Object ** | nc_precell (void *v) |
| static Object ** | nc_postcell (void *v) |
| static double | nc_setpost (void *v) |
| static double | nc_valid (void *v) |
| static double | nc_active (void *v) |
| static double | nc_event (void *v) |
| static double | nc_record (void *v) |
| static double | nc_srcgid (void *v) |
| static Object ** | nc_get_recordvec (void *v) |
| static double | nc_wcnt (void *v) |
| static void | steer_val (void *v) |
| static void * | cons (Object *o) |
| static void | destruct (void *v) |
| void | NetCon_reg () |
| static char * | escape_bracket (const char *s) |
| static std::regex | get_regex (int id) |
| void | nrn_net_move (Datum *v, Point_process *pnt, double tt) |
| void | artcell_net_move (Datum *v, Point_process *pnt, double tt) |
| void | nrn_net_send (Datum *v, double *weight, Point_process *pnt, double td, double flag) |
| void | artcell_net_send (Datum *v, double *weight, Point_process *pnt, double td, double flag) |
| void | artcell_net_send (void *v, double *weight, Point_process *pnt, double td, double flag) |
| void | nrn_net_send (void *v, double *weight, Point_process *pnt, double td, double flag) |
| void | net_event (Point_process *pnt, double time) |
| void | _nrn_watch_activate (Datum *d, double(*c)(Point_process *), int i, Point_process *pnt, int r, double flag) |
| void | _nrn_watch_allocate (Datum *d, double(*c)(Point_process *), int i, Point_process *pnt, double flag) |
| Introduced so corenrn->nrn can request the mod file to make sure all WatchCondition are allocated. More... | |
| void | nrn_watch_clear () |
| Watch info corenrn->nrn transfer requires all activated WatchCondition be deactivated prior to mirroring the activation that exists on the corenrn side. More... | |
| void | _nrn_free_watch (Datum *d, int offset, int n) |
| Called by Point_process destructor in translated mod file. More... | |
| static void | peq (const TQItem *, int) |
| static void | event_info_callback (const TQItem *, int) |
| int | _nrn_netcon_args (void *v, double ***argslist) |
| void | _nrn_free_fornetcon (void **v) |
| void | record_init_clear (const TQItem *q, int) |
| double | nrn_hoc2fixed_step (void *) |
| double | nrn_hoc2fun (void *v) |
| double | nrn_hoc2scatter_y (void *v) |
| double | nrn_hoc2gather_y (void *v) |
| void | nrn_update_ps2nt () |
| static void * | eval_cond (NrnThread *nt) |
| static void * | chk_deliv (NrnThread *nt) |
| static int | trajec_buffered (NrnThread &nt, int bsize, IvocVect *v, neuron::container::data_handle< double > pd, int i_pr, PlayRecord *pr, void **vpr, int i_trajec, int *types, int *indices, double **pvars, double **varrays) |
| void | nrn2core_transfer_WatchCondition (WatchCondition *wc, void(*cb)(int, int, int, int, int)) |
| In nrncore_callbacks.cpp. More... | |
| void | nrn2core_transfer_WATCH (void(*cb)(int, int, int, int, int)) |
| static void | lvardt_integrate (neuron::model_sorted_token const &token, NrnThread &ntr) |
| static void * | deliver_for_thread (NrnThread *nt) |
Variables | |
| NetCvode * | net_cvode_instance |
| cTemplate ** | nrn_pnt_template_ |
| double | t |
| double | dt |
| short * | nrn_is_artificial_ |
| short * | nrn_artcell_qindex_ |
| int | nrn_use_selfqueue_ |
| int | nrn_use_daspk_ |
| void(* | nrnthread_v_transfer_ )(NrnThread *) |
| Object *(* | nrnpy_seg_from_sec_x )(Section *, double) |
| bool | nrn_trajectory_request_per_time_step_ = false |
| int | nrn_fornetcon_cnt_ |
| int * | nrn_fornetcon_index_ |
| int * | nrn_fornetcon_type_ |
| void(* | nrn_allthread_handle )() |
| bool | nrn_use_fifo_queue_ |
| bool | nrn_use_bin_queue_ |
| static unsigned long | deliver_cnt_ |
| static unsigned long | net_event_cnt_ |
| static TQList * | record_init_items_ |
| static DiscreteEvent * | null_event_ |
| static PreSyn * | unused_presyn |
| static Member_func | members [] |
| static Member_ret_obj_func | omembers [] |
| static IvocVect * | peqvec |
| static int | event_info_type_ |
| static IvocVect * | event_info_tvec_ |
| static IvocVect * | event_info_flagvec_ |
| static OcList * | event_info_list_ |
| static double | pending_selfqueue_deliver_ |
| static Cvode * | eval_cv |
| static double | lvardt_tout_ |
| #define fifo_event event |
Definition at line 2496 of file netcvode.cpp.
| #define ITE_SIZE 10 |
Definition at line 987 of file netcvode.cpp.
Definition at line 52 of file netcvode.cpp.
| #define nt_dt nrn_threads->_dt |
Definition at line 73 of file netcvode.cpp.
| #define nt_t nrn_threads->_t |
Definition at line 74 of file netcvode.cpp.
| #define NVI_SUCCESS 0 |
Definition at line 56 of file netcvode.cpp.
| #define POINT_RECEIVE | ( | type, | |
| tar, | |||
| w, | |||
| f | |||
| ) | (*pnt_receive[type])(tar, w, f) |
Definition at line 61 of file netcvode.cpp.
| #define PP2NT | ( | pp | ) | ((NrnThread*) ((pp)->_vnt)) |
Definition at line 57 of file netcvode.cpp.
| #define PP2t | ( | pp | ) | (PP2NT(pp)->_t) |
Definition at line 58 of file netcvode.cpp.
| #define PROFILE 0 |
Definition at line 29 of file netcvode.cpp.
| #define USE_MIN_DELAY 1 |
Definition at line 4 of file netcvode.cpp.
| using HocEventPool = MutexPool<HocEvent> |
Definition at line 3321 of file netcvode.cpp.
| typedef void(* ReceiveFunc) (Point_process *, double *, double) |
Definition at line 50 of file netcvode.cpp.
| using SelfEventPool = MutexPool<SelfEvent> |
Definition at line 406 of file netcvode.cpp.
Definition at line 407 of file netcvode.cpp.
| typedef std::vector<WatchCondition*> WatchList |
Definition at line 405 of file netcvode.cpp.
| void _nrn_free_fornetcon | ( | void ** | v | ) |
Definition at line 4110 of file netcvode.cpp.
| void _nrn_free_watch | ( | Datum * | d, |
| int | offset, | ||
| int | n | ||
| ) |
Called by Point_process destructor in translated mod file.
Definition at line 2469 of file netcvode.cpp.
| int _nrn_netcon_args | ( | void * | v, |
| double *** | argslist | ||
| ) |
Definition at line 4103 of file netcvode.cpp.
| void _nrn_watch_activate | ( | Datum * | d, |
| double(*)(Point_process *) | c, | ||
| int | i, | ||
| Point_process * | pnt, | ||
| int | r, | ||
| double | flag | ||
| ) |
Definition at line 2340 of file netcvode.cpp.
| void _nrn_watch_allocate | ( | Datum * | d, |
| double(*)(Point_process *) | c, | ||
| int | i, | ||
| Point_process * | pnt, | ||
| double | flag | ||
| ) |
Introduced so corenrn->nrn can request the mod file to make sure all WatchCondition are allocated.
When that is the case then corenrn can call nrn_watch_activate with all args filled out because the allocated WatchCondition has double (*c)(Point_process) and flag_ filled in.
Definition at line 2430 of file netcvode.cpp.
|
static |
Definition at line 3785 of file netcvode.cpp.
|
static |
Definition at line 174 of file netcvode.cpp.
| void artcell_net_move | ( | Datum * | v, |
| Point_process * | pnt, | ||
| double | tt | ||
| ) |
Definition at line 2206 of file netcvode.cpp.
| void artcell_net_send | ( | Datum * | v, |
| double * | weight, | ||
| Point_process * | pnt, | ||
| double | td, | ||
| double | flag | ||
| ) |
Definition at line 2283 of file netcvode.cpp.
| void artcell_net_send | ( | void * | v, |
| double * | weight, | ||
| Point_process * | pnt, | ||
| double | td, | ||
| double | flag | ||
| ) |
Definition at line 2318 of file netcvode.cpp.
|
static |
Definition at line 5495 of file netcvode.cpp.
|
static |
Definition at line 802 of file netcvode.cpp.
|
static |
Definition at line 6751 of file netcvode.cpp.
|
static |
Definition at line 838 of file netcvode.cpp.
|
static |
Definition at line 865 of file netcvode.cpp.
|
static |
Definition at line 5466 of file netcvode.cpp.
|
static |
Definition at line 2871 of file netcvode.cpp.
|
static |
Definition at line 894 of file netcvode.cpp.
| int linmod_extra_eqn_count | ( | ) |
|
static |
Definition at line 6631 of file netcvode.cpp.
|
static |
Definition at line 661 of file netcvode.cpp.
|
static |
Definition at line 674 of file netcvode.cpp.
|
static |
Definition at line 731 of file netcvode.cpp.
|
static |
Definition at line 607 of file netcvode.cpp.
|
static |
Definition at line 560 of file netcvode.cpp.
|
static |
Definition at line 477 of file netcvode.cpp.
|
static |
Definition at line 487 of file netcvode.cpp.
|
static |
Definition at line 507 of file netcvode.cpp.
|
static |
Definition at line 598 of file netcvode.cpp.
|
static |
Definition at line 579 of file netcvode.cpp.
|
static |
Definition at line 531 of file netcvode.cpp.
|
static |
Definition at line 417 of file netcvode.cpp.
|
static |
Definition at line 445 of file netcvode.cpp.
|
static |
Definition at line 699 of file netcvode.cpp.
|
static |
Definition at line 616 of file netcvode.cpp.
|
static |
Definition at line 722 of file netcvode.cpp.
|
static |
Definition at line 498 of file netcvode.cpp.
|
static |
Definition at line 545 of file netcvode.cpp.
|
static |
Definition at line 652 of file netcvode.cpp.
|
static |
Definition at line 740 of file netcvode.cpp.
| void ncs2nrn_integrate | ( | double | tstop | ) |
Definition at line 3700 of file netcvode.cpp.
Definition at line 270 of file netcvode.cpp.
| std::vector< PlayRecord * > * net_cvode_instance_prl | ( | ) |
Definition at line 278 of file netcvode.cpp.
| std::vector<PreSyn*>* net_cvode_instance_psl | ( | ) |
Definition at line 274 of file netcvode.cpp.
| void net_event | ( | Point_process * | pnt, |
| double | time | ||
| ) |
Definition at line 2326 of file netcvode.cpp.
| void NetCon_reg | ( | ) |
Definition at line 842 of file netcvode.cpp.
Definition at line 516 of file netcvode.cpp.
Definition at line 291 of file netcvode.cpp.
| void nrn2core_transfer_WATCH | ( | void(*)(int, int, int, int, int) | cb | ) |
Definition at line 5945 of file netcvode.cpp.
| void nrn2core_transfer_WatchCondition | ( | WatchCondition * | wc, |
| void(*)(int, int, int, int, int) | cb | ||
| ) |
Definition at line 841 of file nrncore_callbacks.cpp.
| void nrn_cleanup_presyn | ( | PreSyn * | ps | ) |
Definition at line 970 of file netpar.cpp.
| void nrn_cvfun | ( | double | t, |
| double * | y, | ||
| double * | ydot | ||
| ) |
Definition at line 4224 of file netcvode.cpp.
| double nrn_event_queue_stats | ( | double * | stats | ) |
Definition at line 126 of file netcvode.cpp.
| double nrn_hoc2fixed_step | ( | void * | v | ) |
Definition at line 4229 of file netcvode.cpp.
| double nrn_hoc2fun | ( | void * | v | ) |
Definition at line 4234 of file netcvode.cpp.
| double nrn_hoc2gather_y | ( | void * | v | ) |
Definition at line 4269 of file netcvode.cpp.
| double nrn_hoc2scatter_y | ( | void * | v | ) |
Definition at line 4253 of file netcvode.cpp.
| void * nrn_interthread_enqueue | ( | NrnThread * | nt | ) |
Definition at line 6800 of file netcvode.cpp.
| int nrn_modeltype | ( | ) |
Definition at line 1785 of file treeset.cpp.
| void nrn_net_move | ( | Datum * | v, |
| Point_process * | pnt, | ||
| double | tt | ||
| ) |
Definition at line 2189 of file netcvode.cpp.
| void nrn_net_send | ( | Datum * | v, |
| double * | weight, | ||
| Point_process * | pnt, | ||
| double | td, | ||
| double | flag | ||
| ) |
Definition at line 2257 of file netcvode.cpp.
| void nrn_net_send | ( | void * | v, |
| double * | weight, | ||
| Point_process * | pnt, | ||
| double | td, | ||
| double | flag | ||
| ) |
Definition at line 2322 of file netcvode.cpp.
| void nrn_netcon_event | ( | NetCon * | nc, |
| double | td | ||
| ) |
Definition at line 147 of file netcvode.cpp.
| double nrn_netcon_get_delay | ( | NetCon * | nc | ) |
Definition at line 116 of file netcvode.cpp.
| double nrn_netcon_get_thresh | ( | NetCon * | nc | ) |
Definition at line 134 of file netcvode.cpp.
| int nrn_netcon_info | ( | NetCon * | nc, |
| double ** | pw, | ||
| Point_process ** | target, | ||
| double ** | th, | ||
| double ** | del | ||
| ) |
Definition at line 157 of file netcvode.cpp.
| void nrn_netcon_set_delay | ( | NetCon * | nc, |
| double | d | ||
| ) |
Definition at line 119 of file netcvode.cpp.
| void nrn_netcon_set_thresh | ( | NetCon * | nc, |
| double | th | ||
| ) |
Definition at line 141 of file netcvode.cpp.
| Point_process* nrn_netcon_target | ( | NetCon * | nc | ) |
Definition at line 152 of file netcvode.cpp.
| int nrn_netcon_weight | ( | NetCon * | nc, |
| double ** | pw | ||
| ) |
Definition at line 122 of file netcvode.cpp.
| void nrn_pending_selfqueue | ( | double | tt, |
| NrnThread * | nt | ||
| ) |
Definition at line 3759 of file netcvode.cpp.
| int nrn_presyn_count | ( | PreSyn * | ps | ) |
Definition at line 165 of file netcvode.cpp.
| void* nrn_presyn_netcon | ( | PreSyn * | ps, |
| int | i | ||
| ) |
Definition at line 168 of file netcvode.cpp.
| void nrn_update_ps2nt | ( | void | ) |
Definition at line 4871 of file netcvode.cpp.
| void nrn_use_busywait | ( | int | b | ) |
Definition at line 1009 of file multicore.cpp.
| void nrn_use_daspk | ( | int | b | ) |
Definition at line 282 of file netcvode.cpp.
| void nrn_watch_clear | ( | ) |
Watch info corenrn->nrn transfer requires all activated WatchCondition be deactivated prior to mirroring the activation that exists on the corenrn side.
Definition at line 2456 of file netcvode.cpp.
| void nrnthread_get_trajectory_requests | ( | int | tid, |
| int & | bsize, | ||
| int & | n_pr, | ||
| void **& | vpr, | ||
| int & | n_trajec, | ||
| int *& | types, | ||
| int *& | indices, | ||
| double **& | pvars, | ||
| double **& | varrays | ||
| ) |
Definition at line 5607 of file netcvode.cpp.
| void nrnthread_trajectory_return | ( | int | tid, |
| int | n_pr, | ||
| int | bsize, | ||
| int | vecsz, | ||
| void ** | vpr, | ||
| double | t | ||
| ) |
Definition at line 5881 of file netcvode.cpp.
| void nrnthread_trajectory_values | ( | int | tid, |
| int | n_pr, | ||
| void ** | vpr, | ||
| double | t | ||
| ) |
Definition at line 5839 of file netcvode.cpp.
|
static |
Definition at line 3754 of file netcvode.cpp.
|
static |
Definition at line 2845 of file netcvode.cpp.
| void record_init_clear | ( | const TQItem * | q, |
| int | |||
| ) |
Definition at line 4118 of file netcvode.cpp.
| void single_event_run | ( | ) |
|
static |
Definition at line 773 of file netcvode.cpp.
|
static |
Definition at line 5551 of file netcvode.cpp.
|
static |
Definition at line 238 of file netcvode.cpp.
| double dt |
Definition at line 70 of file netcvode.cpp.
|
static |
Definition at line 5465 of file netcvode.cpp.
|
static |
Definition at line 2867 of file netcvode.cpp.
|
static |
Definition at line 2868 of file netcvode.cpp.
|
static |
Definition at line 2866 of file netcvode.cpp.
|
static |
Definition at line 2865 of file netcvode.cpp.
|
static |
Definition at line 6629 of file netcvode.cpp.
|
static |
Definition at line 745 of file netcvode.cpp.
|
extern |
Definition at line 26 of file cvodestb.cpp.
|
static |
Definition at line 238 of file netcvode.cpp.
|
extern |
Definition at line 68 of file fadvance.cpp.
| bool nrn_trajectory_request_per_time_step_ = false |
Definition at line 106 of file netcvode.cpp.
| bool nrn_use_bin_queue_ |
Definition at line 225 of file netcvode.cpp.
|
extern |
Definition at line 59 of file treeset.cpp.
| bool nrn_use_fifo_queue_ |
Definition at line 223 of file netcvode.cpp.
| int nrn_use_selfqueue_ |
Definition at line 77 of file netcvode.cpp.
Definition at line 89 of file netcvode.cpp.
Definition at line 139 of file fadvance.cpp.
|
static |
Definition at line 413 of file netcvode.cpp.
|
static |
Definition at line 760 of file netcvode.cpp.
|
static |
Definition at line 3753 of file netcvode.cpp.
|
static |
Definition at line 2843 of file netcvode.cpp.
|
static |
Definition at line 411 of file netcvode.cpp.
|
extern |
Definition at line 57 of file cvodeobj.cpp.
|
static |
Definition at line 415 of file netcvode.cpp.