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

Go to the source code of this file.

Functions

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)
 
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)
 
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)
 
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)
 
int set_diffusion (int grid_list_index, int grid_id, double *dc, int length)
 
int set_tortuosity (int grid_list_index, int grid_id, PyHocObject *my_permeability)
 
int set_volume_fraction (int grid_list_index, int grid_id, PyHocObject *my_alpha)
 
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)
 
void ics_set_grid_currents (int grid_list_index, int index_in_list, PyObject *neuron_pointers, double *scale_factors)
 
void set_grid_concentrations (int grid_list_index, int index_in_list, PyObject *grid_indices, PyObject *neuron_pointers)
 
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)
 
void delete_by_id (int id)
 
void empty_list (int list_index)
 
static voidgather_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()

void delete_by_id ( int  id)

Definition at line 786 of file grids.cpp.

◆ ECS_insert()

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 197 of file grids.cpp.

◆ empty_list()

void empty_list ( int  list_index)

Definition at line 799 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 848 of file grids.cpp.

◆ get_alpha_array()

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

Definition at line 36 of file grids.cpp.

◆ get_alpha_scalar()

static double get_alpha_scalar ( double *  alpha,
int   
)
static

Definition at line 33 of file grids.cpp.

◆ get_permeability_array()

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

Definition at line 44 of file grids.cpp.

◆ get_permeability_scalar()

static double get_permeability_scalar ( double *  ,
int   
)
static

Definition at line 41 of file grids.cpp.

◆ ICS_insert()

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 386 of file grids.cpp.

◆ ICS_insert_inhom()

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 420 of file grids.cpp.

◆ ics_set_grid_concentrations()

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 590 of file grids.cpp.

◆ ics_set_grid_currents()

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()

void make_time_ptr ( PyHocObject my_dt_ptr,
PyHocObject my_t_ptr 
)

Definition at line 28 of file grids.cpp.

◆ remove()

int remove ( Grid_node **  head,
Grid_node find 
)

Definition at line 767 of file grids.cpp.

◆ set_diffusion()

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

Definition at line 454 of file grids.cpp.

◆ set_grid_concentrations()

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

Definition at line 641 of file grids.cpp.

◆ set_grid_currents()

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

Definition at line 682 of file grids.cpp.

◆ set_tortuosity()

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

Definition at line 467 of file grids.cpp.

◆ set_volume_fraction()

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

Definition at line 518 of file grids.cpp.

Variable Documentation

◆ _memb_curr_total

int _memb_curr_total
extern

Definition at line 74 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 95 of file rxd.cpp.

◆ _rxd_induced_currents_scale

double* _rxd_induced_currents_scale
extern

Definition at line 80 of file rxd.cpp.

◆ AllTasks

TaskQueue* AllTasks
extern

Definition at line 28 of file rxd.cpp.

◆ dt_ptr

double* dt_ptr

Definition at line 14 of file grids.cpp.

◆ NUM_THREADS

int NUM_THREADS
extern

Definition at line 26 of file rxd.cpp.

◆ Parallel_grids

Grid_node* Parallel_grids[100] = {NULL}

Definition at line 16 of file grids.cpp.

◆ t_ptr

double* t_ptr

Definition at line 15 of file grids.cpp.