NEURON
partrans.cpp File Reference
#include <../../nrnconf.h>
#include "partrans.h"
#include "neuron/container/data_handle.hpp"
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <InterViews/resource.h>
#include <nrnoc2iv.h>
#include <nrniv_mf.h>
#include <nrnmpi.h>
#include <mymath.h>
#include <stdint.h>
#include <complex>
#include <unordered_map>
#include <utility>
#include <vector>
#include "utils/formatting.hpp"

Go to the source code of this file.

Classes

struct  TransferThreadData
 
struct  SourceViBuf
 

Macros

#define PPList   partrans_PPList
 
#define CHKPNT   fprintf(f, "chkpnt %d\n", chkpnt++);
 

Typedefs

typedef std::unordered_map< sgid_t, int > MapSgid2Int
 
typedef std::vector< Node * > NodePList
 
typedef std::vector< Point_process * > PPList
 
typedef std::vector< int > IntList
 
typedef std::vector< sgid_tSgidList
 

Functions

static void delete_imped_info ()
 
static bool non_vsrc_setinfo (sgid_t ssid, Node *nd, neuron::container::data_handle< double > const &h)
 
static neuron::container::data_handle< double > non_vsrc_update (Node *nd, int type, neuron::container::field_index ix)
 
static Nodepv2node (sgid_t ssid, neuron::container::data_handle< double > const &v)
 
static void thread_transfer (NrnThread *_nt)
 
void nrnmpi_source_var ()
 
void nrnmpi_target_var ()
 
static void rm_ttd ()
 
static void rm_svibuf ()
 
static void thread_vi_compute (NrnThread *_nt)
 
static std::unordered_map< Node *, double * > mk_svibuf ()
 
static void mk_ttd ()
 
static void mpi_transfer ()
 
void nrnmpi_setup_transfer ()
 
void nrn_partrans_clear ()
 
void pargap_jacobi_setup (int mode)
 
void pargap_jacobi_rhs (std::vector< std::complex< double >> &b, const std::vector< std::complex< double >> &x)
 
size_t nrnbbcore_gap_write (const char *path, int *group_ids)
 
static SetupTransferInfonrncore_transfer_info (int)
 
SetupTransferInfonrn_get_partrans_setup_info (int ngroup, int cn_nthread, size_t cn_sidt_sz)
 

Variables

const char * bbcore_write_version
 
void(* nrnthread_v_transfer_ )(NrnThread *)
 
void(* nrnthread_vi_compute_ )(NrnThread *)
 
void(* nrnmpi_v_transfer_ )()
 
void(* nrn_mk_transfer_thread_data_ )()
 
static TransferThreadDatatransfer_thread_data_
 
static int n_transfer_thread_data_
 
static std::vector< SourceViBufsource_vi_buf_
 
static double * insrc_buf_
 
static double * outsrc_buf_
 
static std::vector< neuron::container::data_handle< double > > poutsrc_
 
static int * poutsrc_indices_
 
static int insrc_buf_size_
 
static std::vector< int > insrccnt_
 
static std::vector< int > insrcdspl_
 
static int outsrc_buf_size_
 
static std::vector< int > outsrccnt_
 
static std::vector< int > outsrcdspl_
 
static MapSgid2Int sid2insrc_
 
static std::vector< neuron::container::data_handle< double > > targets_
 
static SgidList sgid2targets_
 
static PPList target_pntlist_
 
static NodePList visources_
 
static SgidList sgids_
 
static MapSgid2Int sgid2srcindex_
 
static std::unordered_map< sgid_t, std::pair< int, neuron::container::field_index > > non_vsrc_update_info_
 
static int max_targets_
 
static bool is_setup_
 
static int imped_current_type_count_
 
static int * imped_current_type_
 
static Memb_list ** imped_current_ml_
 
static double * vgap1
 
static double * vgap2
 
static int imped_change_cnt
 

Macro Definition Documentation

◆ CHKPNT

#define CHKPNT   fprintf(f, "chkpnt %d\n", chkpnt++);

◆ PPList

#define PPList   partrans_PPList

Definition at line 172 of file partrans.cpp.

Typedef Documentation

◆ IntList

typedef std::vector<int> IntList

Definition at line 174 of file partrans.cpp.

◆ MapSgid2Int

typedef std::unordered_map<sgid_t, int> MapSgid2Int

Definition at line 170 of file partrans.cpp.

◆ NodePList

typedef std::vector<Node*> NodePList

Definition at line 171 of file partrans.cpp.

◆ PPList

typedef std::vector<Point_process*> PPList

Definition at line 173 of file partrans.cpp.

◆ SgidList

typedef std::vector<sgid_t> SgidList

Definition at line 175 of file partrans.cpp.

Function Documentation

◆ delete_imped_info()

static void delete_imped_info ( )
static

Definition at line 216 of file partrans.cpp.

◆ mk_svibuf()

static std::unordered_map<Node*, double*> mk_svibuf ( )
static

Definition at line 345 of file partrans.cpp.

◆ mk_ttd()

static void mk_ttd ( )
static

Definition at line 428 of file partrans.cpp.

◆ mpi_transfer()

static void mpi_transfer ( )
static

Definition at line 548 of file partrans.cpp.

◆ non_vsrc_setinfo()

static bool non_vsrc_setinfo ( sgid_t  ssid,
Node nd,
neuron::container::data_handle< double > const &  h 
)
static

Definition at line 228 of file partrans.cpp.

◆ non_vsrc_update()

static neuron::container::data_handle<double> non_vsrc_update ( Node nd,
int  type,
neuron::container::field_index  ix 
)
static

Definition at line 244 of file partrans.cpp.

◆ nrn_get_partrans_setup_info()

SetupTransferInfo* nrn_get_partrans_setup_info ( int  ngroup,
int  cn_nthread,
size_t  cn_sidt_sz 
)

Definition at line 981 of file partrans.cpp.

◆ nrn_partrans_clear()

void nrn_partrans_clear ( )

Definition at line 768 of file partrans.cpp.

◆ nrnbbcore_gap_write()

size_t nrnbbcore_gap_write ( const char *  path,
int *  group_ids 
)

Definition at line 987 of file partrans.cpp.

◆ nrncore_transfer_info()

static SetupTransferInfo * nrncore_transfer_info ( int  cn_nthread)
static

Definition at line 1036 of file partrans.cpp.

◆ nrnmpi_setup_transfer()

void nrnmpi_setup_transfer ( )

Definition at line 620 of file partrans.cpp.

◆ nrnmpi_source_var()

void nrnmpi_source_var ( )

Definition at line 280 of file partrans.cpp.

◆ nrnmpi_target_var()

void nrnmpi_target_var ( )

Definition at line 302 of file partrans.cpp.

◆ pargap_jacobi_rhs()

void pargap_jacobi_rhs ( std::vector< std::complex< double >> &  b,
const std::vector< std::complex< double >> &  x 
)

Definition at line 886 of file partrans.cpp.

◆ pargap_jacobi_setup()

void pargap_jacobi_setup ( int  mode)

Definition at line 796 of file partrans.cpp.

◆ pv2node()

static Node* pv2node ( sgid_t  ssid,
neuron::container::data_handle< double > const &  v 
)
static

Definition at line 263 of file partrans.cpp.

◆ rm_svibuf()

static void rm_svibuf ( )
static

Definition at line 336 of file partrans.cpp.

◆ rm_ttd()

static void rm_ttd ( )
static

Definition at line 327 of file partrans.cpp.

◆ thread_transfer()

static void thread_transfer ( NrnThread _nt)
static

Definition at line 578 of file partrans.cpp.

◆ thread_vi_compute()

static void thread_vi_compute ( NrnThread _nt)
static

Definition at line 532 of file partrans.cpp.

Variable Documentation

◆ bbcore_write_version

const char* bbcore_write_version
extern

Definition at line 25 of file nrncore_io.cpp.

◆ imped_change_cnt

int imped_change_cnt
static

Definition at line 794 of file partrans.cpp.

◆ imped_current_ml_

Memb_list** imped_current_ml_
static

Definition at line 214 of file partrans.cpp.

◆ imped_current_type_

int* imped_current_type_
static

Definition at line 213 of file partrans.cpp.

◆ imped_current_type_count_

int imped_current_type_count_
static

Definition at line 212 of file partrans.cpp.

◆ insrc_buf_

double* insrc_buf_
static

Definition at line 177 of file partrans.cpp.

◆ insrc_buf_size_

int insrc_buf_size_
static

Definition at line 183 of file partrans.cpp.

◆ insrccnt_

std::vector<int> insrccnt_
static

Definition at line 184 of file partrans.cpp.

◆ insrcdspl_

std::vector<int> insrcdspl_
static

Definition at line 185 of file partrans.cpp.

◆ is_setup_

bool is_setup_
static

Definition at line 208 of file partrans.cpp.

◆ max_targets_

int max_targets_
static

Definition at line 207 of file partrans.cpp.

◆ n_transfer_thread_data_

int n_transfer_thread_data_
static

Definition at line 161 of file partrans.cpp.

◆ non_vsrc_update_info_

std::unordered_map<sgid_t, std::pair<int, neuron::container::field_index> > non_vsrc_update_info_
static

Definition at line 205 of file partrans.cpp.

◆ nrn_mk_transfer_thread_data_

void(* nrn_mk_transfer_thread_data_) () ( )
extern

Definition at line 60 of file multicore.cpp.

◆ nrnmpi_v_transfer_

void(* nrnmpi_v_transfer_) () ( )
extern

Definition at line 138 of file fadvance.cpp.

◆ nrnthread_v_transfer_

void(* nrnthread_v_transfer_) (NrnThread *) ( NrnThread nt)
extern

Definition at line 139 of file fadvance.cpp.

◆ nrnthread_vi_compute_

void(* nrnthread_vi_compute_) (NrnThread *) ( NrnThread nt)
extern

Definition at line 141 of file fadvance.cpp.

◆ outsrc_buf_

double* outsrc_buf_
static

Definition at line 178 of file partrans.cpp.

◆ outsrc_buf_size_

int outsrc_buf_size_
static

Definition at line 186 of file partrans.cpp.

◆ outsrccnt_

std::vector<int> outsrccnt_
static

Definition at line 187 of file partrans.cpp.

◆ outsrcdspl_

std::vector<int> outsrcdspl_
static

Definition at line 188 of file partrans.cpp.

◆ poutsrc_

std::vector<neuron::container::data_handle<double> > poutsrc_
static

Definition at line 179 of file partrans.cpp.

◆ poutsrc_indices_

int* poutsrc_indices_
static

Definition at line 182 of file partrans.cpp.

◆ sgid2srcindex_

MapSgid2Int sgid2srcindex_
static

Definition at line 201 of file partrans.cpp.

◆ sgid2targets_

SgidList sgid2targets_
static

Definition at line 195 of file partrans.cpp.

◆ sgids_

SgidList sgids_
static

Definition at line 200 of file partrans.cpp.

◆ sid2insrc_

MapSgid2Int sid2insrc_
static

Definition at line 189 of file partrans.cpp.

◆ source_vi_buf_

std::vector<SourceViBuf> source_vi_buf_
static

Definition at line 169 of file partrans.cpp.

◆ target_pntlist_

PPList target_pntlist_
static

Definition at line 196 of file partrans.cpp.

◆ targets_

std::vector<neuron::container::data_handle<double> > targets_
static

Definition at line 194 of file partrans.cpp.

◆ transfer_thread_data_

TransferThreadData* transfer_thread_data_
static

Definition at line 160 of file partrans.cpp.

◆ vgap1

double* vgap1
static

Definition at line 793 of file partrans.cpp.

◆ vgap2

double * vgap2
static

Definition at line 793 of file partrans.cpp.

◆ visources_

NodePList visources_
static

Definition at line 199 of file partrans.cpp.