NEURON
grids.cpp File Reference
#include <stdio.h>
#include <assert.h>
#include <vector>
#include "nrnpython.h"
#include "grids.h"
#include "rxd.h"

Go to the source code of this file.

Functions

NRN_EXPORT void make_time_ptr (PyHocObject *my_dt_ptr, PyHocObject *my_t_ptr)
 
static double get_alpha_scalar (double *alpha, int)
 
static double get_alpha_array (double *alpha, int idx)
 
static double get_permeability_scalar (double *, int)
 
static double get_permeability_array (double *permeability, int idx)
 
NRN_EXPORT int ECS_insert (int grid_list_index, PyHocObject *my_states, int my_num_states_x, int my_num_states_y, int my_num_states_z, double my_dc_x, double my_dc_y, double my_dc_z, double my_dx, double my_dy, double my_dz, PyHocObject *my_alpha, PyHocObject *my_permeability, int bc, double bc_value, double atolscale)
 
NRN_EXPORT int ICS_insert (int grid_list_index, PyHocObject *my_states, long num_nodes, long *neighbors, long *x_line_defs, long x_lines_length, long *y_line_defs, long y_lines_length, long *z_line_defs, long z_lines_length, double *dcs, double dx, bool is_diffusable, double atolscale, double *ics_alphas)
 
NRN_EXPORT int ICS_insert_inhom (int grid_list_index, PyHocObject *my_states, long num_nodes, long *neighbors, long *x_line_defs, long x_lines_length, long *y_line_defs, long y_lines_length, long *z_line_defs, long z_lines_length, double *dcs, double dx, bool is_diffusable, double atolscale, double *ics_alphas)
 
NRN_EXPORT int set_diffusion (int grid_list_index, int grid_id, double *dc, int length)
 
NRN_EXPORT int set_tortuosity (int grid_list_index, int grid_id, PyHocObject *my_permeability)
 
NRN_EXPORT int set_volume_fraction (int grid_list_index, int grid_id, PyHocObject *my_alpha)
 
NRN_EXPORT void ics_set_grid_concentrations (int grid_list_index, int index_in_list, int64_t *nodes_per_seg, int64_t *nodes_per_seg_start_indices, PyObject *neuron_pointers)
 
NRN_EXPORT void ics_set_grid_currents (int grid_list_index, int index_in_list, PyObject *neuron_pointers, double *scale_factors)
 
NRN_EXPORT void set_grid_concentrations (int grid_list_index, int index_in_list, PyObject *grid_indices, PyObject *neuron_pointers)
 
NRN_EXPORT void set_grid_currents (int grid_list_index, int index_in_list, PyObject *grid_indices, PyObject *neuron_pointers, PyObject *scale_factors)
 
int remove (Grid_node **head, Grid_node *find)
 
NRN_EXPORT void delete_by_id (int id)
 
void empty_list (int list_index)
 
static void * gather_currents (void *dataptr)
 
static int find_min_element_index (const int thread_sizes[], const int nthreads)
 

Variables

int NUM_THREADS
 
double * dt_ptr
 
double * t_ptr
 
Grid_nodeParallel_grids [100] = {NULL}
 
TaskQueueAllTasks
 
int _memb_curr_total
 
int * _rxd_induced_currents_grid
 
int * _rxd_induced_currents_ecs_idx
 
double * _rxd_induced_currents_ecs
 
double * _rxd_induced_currents_scale
 

Function Documentation

◆ delete_by_id()

NRN_EXPORT void delete_by_id ( int  id)

Definition at line 788 of file grids.cpp.

◆ ECS_insert()

NRN_EXPORT int ECS_insert ( int  grid_list_index,
PyHocObject my_states,
int  my_num_states_x,
int  my_num_states_y,
int  my_num_states_z,
double  my_dc_x,
double  my_dc_y,
double  my_dc_z,
double  my_dx,
double  my_dy,
double  my_dz,
PyHocObject my_alpha,
PyHocObject my_permeability,
int  bc,
double  bc_value,
double  atolscale 
)

Definition at line 198 of file grids.cpp.

◆ empty_list()

void empty_list ( int  list_index)

Definition at line 801 of file grids.cpp.

◆ find_min_element_index()

static int find_min_element_index ( const int  thread_sizes[],
const int  nthreads 
)
static

Definition at line 1290 of file grids.cpp.

◆ gather_currents()

static void* gather_currents ( void *  dataptr)
static

Definition at line 850 of file grids.cpp.

◆ get_alpha_array()

static double get_alpha_array ( double *  alpha,
int  idx 
)
static

Definition at line 37 of file grids.cpp.

◆ get_alpha_scalar()

static double get_alpha_scalar ( double *  alpha,
int   
)
static

Definition at line 34 of file grids.cpp.

◆ get_permeability_array()

static double get_permeability_array ( double *  permeability,
int  idx 
)
static

Definition at line 45 of file grids.cpp.

◆ get_permeability_scalar()

static double get_permeability_scalar ( double *  ,
int   
)
static

Definition at line 42 of file grids.cpp.

◆ ICS_insert()

NRN_EXPORT int ICS_insert ( int  grid_list_index,
PyHocObject my_states,
long  num_nodes,
long *  neighbors,
long *  x_line_defs,
long  x_lines_length,
long *  y_line_defs,
long  y_lines_length,
long *  z_line_defs,
long  z_lines_length,
double *  dcs,
double  dx,
bool  is_diffusable,
double  atolscale,
double *  ics_alphas 
)

Definition at line 385 of file grids.cpp.

◆ ICS_insert_inhom()

NRN_EXPORT int ICS_insert_inhom ( int  grid_list_index,
PyHocObject my_states,
long  num_nodes,
long *  neighbors,
long *  x_line_defs,
long  x_lines_length,
long *  y_line_defs,
long  y_lines_length,
long *  z_line_defs,
long  z_lines_length,
double *  dcs,
double  dx,
bool  is_diffusable,
double  atolscale,
double *  ics_alphas 
)

Definition at line 419 of file grids.cpp.

◆ ics_set_grid_concentrations()

NRN_EXPORT void ics_set_grid_concentrations ( int  grid_list_index,
int  index_in_list,
int64_t *  nodes_per_seg,
int64_t *  nodes_per_seg_start_indices,
PyObject neuron_pointers 
)

Definition at line 593 of file grids.cpp.

◆ ics_set_grid_currents()

NRN_EXPORT void ics_set_grid_currents ( int  grid_list_index,
int  index_in_list,
PyObject neuron_pointers,
double *  scale_factors 
)

Definition at line 618 of file grids.cpp.

◆ make_time_ptr()

NRN_EXPORT void make_time_ptr ( PyHocObject my_dt_ptr,
PyHocObject my_t_ptr 
)

Definition at line 29 of file grids.cpp.

◆ remove()

int remove ( Grid_node **  head,
Grid_node find 
)

Definition at line 769 of file grids.cpp.

◆ set_diffusion()

NRN_EXPORT int set_diffusion ( int  grid_list_index,
int  grid_id,
double *  dc,
int  length 
)

Definition at line 453 of file grids.cpp.

◆ set_grid_concentrations()

NRN_EXPORT void set_grid_concentrations ( int  grid_list_index,
int  index_in_list,
PyObject grid_indices,
PyObject neuron_pointers 
)

Definition at line 642 of file grids.cpp.

◆ set_grid_currents()

NRN_EXPORT void set_grid_currents ( int  grid_list_index,
int  index_in_list,
PyObject grid_indices,
PyObject neuron_pointers,
PyObject scale_factors 
)

Definition at line 683 of file grids.cpp.

◆ set_tortuosity()

NRN_EXPORT int set_tortuosity ( int  grid_list_index,
int  grid_id,
PyHocObject my_permeability 
)

Definition at line 466 of file grids.cpp.

◆ set_volume_fraction()

NRN_EXPORT int set_volume_fraction ( int  grid_list_index,
int  grid_id,
PyHocObject my_alpha 
)

Definition at line 519 of file grids.cpp.

Variable Documentation

◆ _memb_curr_total

int _memb_curr_total
extern

Definition at line 86 of file rxd.cpp.

◆ _rxd_induced_currents_ecs

double* _rxd_induced_currents_ecs
extern

◆ _rxd_induced_currents_ecs_idx

int* _rxd_induced_currents_ecs_idx
extern

◆ _rxd_induced_currents_grid

int* _rxd_induced_currents_grid
extern

Definition at line 107 of file rxd.cpp.

◆ _rxd_induced_currents_scale

double* _rxd_induced_currents_scale
extern

Definition at line 92 of file rxd.cpp.

◆ AllTasks

TaskQueue* AllTasks
extern

Definition at line 41 of file rxd.cpp.

◆ dt_ptr

double* dt_ptr

Definition at line 15 of file grids.cpp.

◆ NUM_THREADS

int NUM_THREADS
extern

Definition at line 34 of file rxd.cpp.

◆ Parallel_grids

Grid_node* Parallel_grids[100] = {NULL}

Definition at line 17 of file grids.cpp.

◆ t_ptr

double* t_ptr

Definition at line 16 of file grids.cpp.