NEURON
rxd_extracellular.cpp File Reference
#include <../../nrnconf.h>
#include <stdio.h>
#include <assert.h>
#include <string.h>
#include "grids.h"
#include "rxd.h"
#include "nrnwrap_Python.h"
#include <cmath>
#include <ocmatrix.h>
#include <cfloat>

Go to the source code of this file.

Macros

#define loc(x, y, z)   ((z) + (y) *grid->size_z + (x) *grid->size_z * grid->size_y)
 

Functions

static void ecs_refresh_reactions (int)
 
void set_num_threads_3D (const int n)
 
void clear_rates_ecs (void)
 
Reactionecs_create_reaction (int list_idx, int num_species, int num_params, int *species_ids, ECSReactionRate f, unsigned char *subregion, uint64_t *mc3d_start_indices, int mc3d_region_size, double *mc3d_mults)
 
NRN_EXPORT void ics_register_reaction (int list_idx, int num_species, int num_params, int *species_id, uint64_t *mc3d_start_indices, int mc3d_region_size, double *mc3d_mults, ECSReactionRate f)
 
NRN_EXPORT void ecs_register_reaction (int list_idx, int num_species, int num_params, int *species_id, ECSReactionRate f)
 
void ecs_register_subregion_reaction_ecs (int list_idx, int num_species, int num_params, int *species_id, unsigned char *my_subregion, ECSReactionRate f)
 
ReactGridDatacreate_threaded_reactions (const int n)
 
void * ecs_do_reactions (void *dataptr)
 
static void run_threaded_reactions (ReactGridData *tasks)
 
void _fadvance_fixed_step_3D (void)
 
NRN_EXPORT void scatter_concentrations (void)
 
int ode_count (const int offset)
 
void ecs_atolscale (double *y)
 
void _ecs_ode_reinit (double *y)
 
void _rhs_variable_step_ecs (const double *states, double *ydot)
 
void _rhs_variable_step_helper (Grid_node *g, double const *const states, double *ydot)
 
void ics_ode_solve (double dt, double *RHS, const double *states)
 
static int solve_dd_clhs_tridiag (const int N, const double l_diag, const double diag, const double u_diag, const double lbc_diag, const double lbc_u_diag, const double ubc_l_diag, const double ubc_diag, double *const b, double *const c)
 
static void ecs_dg_adi_x (ECS_Grid_node *g, const double dt, const int y, const int z, double const *const state, double *const RHS, double *const scratch)
 
static void ecs_dg_adi_y (ECS_Grid_node *g, double const dt, int const x, int const z, double const *const state, double *const RHS, double *const scratch)
 
static void ecs_dg_adi_z (ECS_Grid_node *g, double const dt, int const x, int const y, double const *const state, double *const RHS, double *const scratch)
 
static void * ecs_do_dg_adi (void *dataptr)
 
void ecs_run_threaded_dg_adi (const int i, const int j, ECS_Grid_node *g, ECSAdiDirection *ecs_adi_dir, const int n)
 
void ecs_set_adi_homogeneous (ECS_Grid_node *g)
 

Variables

ReactGridDatathreaded_reactions_tasks
 
int NUM_THREADS
 
TaskQueueAllTasks
 
double * t_ptr
 
double * states
 
Reactionecs_reactions = NULL
 
int states_cvode_offset
 

Macro Definition Documentation

◆ loc

#define loc (   x,
  y,
 
)    ((z) + (y) *grid->size_z + (x) *grid->size_z * grid->size_y)

Definition at line 12 of file rxd_extracellular.cpp.

Function Documentation

◆ _ecs_ode_reinit()

void _ecs_ode_reinit ( double *  y)

Definition at line 638 of file rxd_extracellular.cpp.

◆ _fadvance_fixed_step_3D()

void _fadvance_fixed_step_3D ( void  )

Definition at line 565 of file rxd_extracellular.cpp.

◆ _rhs_variable_step_ecs()

void _rhs_variable_step_ecs ( const double *  states,
double *  ydot 
)

Definition at line 661 of file rxd_extracellular.cpp.

◆ _rhs_variable_step_helper()

void _rhs_variable_step_helper ( Grid_node g,
double const *const  states,
double *  ydot 
)

Definition at line 734 of file rxd_extracellular.cpp.

◆ clear_rates_ecs()

void clear_rates_ecs ( void  )

Definition at line 58 of file rxd_extracellular.cpp.

◆ create_threaded_reactions()

ReactGridData* create_threaded_reactions ( const int  n)

Definition at line 225 of file rxd_extracellular.cpp.

◆ ecs_atolscale()

void ecs_atolscale ( double *  y)

Definition at line 624 of file rxd_extracellular.cpp.

◆ ecs_create_reaction()

Reaction* ecs_create_reaction ( int  list_idx,
int  num_species,
int  num_params,
int *  species_ids,
ECSReactionRate  f,
unsigned char *  subregion,
uint64_t *  mc3d_start_indices,
int  mc3d_region_size,
double *  mc3d_mults 
)

Definition at line 88 of file rxd_extracellular.cpp.

◆ ecs_dg_adi_x()

static void ecs_dg_adi_x ( ECS_Grid_node g,
const double  dt,
const int  y,
const int  z,
double const *const  state,
double *const  RHS,
double *const  scratch 
)
static

Definition at line 1040 of file rxd_extracellular.cpp.

◆ ecs_dg_adi_y()

static void ecs_dg_adi_y ( ECS_Grid_node g,
double const  dt,
int const  x,
int const  z,
double const *const  state,
double *const  RHS,
double *const  scratch 
)
static

Definition at line 1153 of file rxd_extracellular.cpp.

◆ ecs_dg_adi_z()

static void ecs_dg_adi_z ( ECS_Grid_node g,
double const  dt,
int const  x,
int const  y,
double const *const  state,
double *const  RHS,
double *const  scratch 
)
static

Definition at line 1229 of file rxd_extracellular.cpp.

◆ ecs_do_dg_adi()

static void* ecs_do_dg_adi ( void *  dataptr)
static

Definition at line 1295 of file rxd_extracellular.cpp.

◆ ecs_do_reactions()

void* ecs_do_reactions ( void *  dataptr)

Definition at line 276 of file rxd_extracellular.cpp.

◆ ecs_refresh_reactions()

static void ecs_refresh_reactions ( int  n)
static

Definition at line 34 of file rxd_extracellular.cpp.

◆ ecs_register_reaction()

NRN_EXPORT void ecs_register_reaction ( int  list_idx,
int  num_species,
int  num_params,
int *  species_id,
ECSReactionRate  f 
)

Definition at line 191 of file rxd_extracellular.cpp.

◆ ecs_register_subregion_reaction_ecs()

void ecs_register_subregion_reaction_ecs ( int  list_idx,
int  num_species,
int  num_params,
int *  species_id,
unsigned char *  my_subregion,
ECSReactionRate  f 
)

Definition at line 208 of file rxd_extracellular.cpp.

◆ ecs_run_threaded_dg_adi()

void ecs_run_threaded_dg_adi ( const int  i,
const int  j,
ECS_Grid_node g,
ECSAdiDirection ecs_adi_dir,
const int  n 
)

Definition at line 1320 of file rxd_extracellular.cpp.

◆ ecs_set_adi_homogeneous()

void ecs_set_adi_homogeneous ( ECS_Grid_node g)

Definition at line 1352 of file rxd_extracellular.cpp.

◆ ics_ode_solve()

void ics_ode_solve ( double  dt,
double *  RHS,
const double *  states 
)

Definition at line 891 of file rxd_extracellular.cpp.

◆ ics_register_reaction()

NRN_EXPORT void ics_register_reaction ( int  list_idx,
int  num_species,
int  num_params,
int *  species_id,
uint64_t *  mc3d_start_indices,
int  mc3d_region_size,
double *  mc3d_mults,
ECSReactionRate  f 
)

Definition at line 165 of file rxd_extracellular.cpp.

◆ ode_count()

int ode_count ( const int  offset)

Definition at line 613 of file rxd_extracellular.cpp.

◆ run_threaded_reactions()

static void run_threaded_reactions ( ReactGridData tasks)
static

Definition at line 552 of file rxd_extracellular.cpp.

◆ scatter_concentrations()

NRN_EXPORT void scatter_concentrations ( void  )

Definition at line 596 of file rxd_extracellular.cpp.

◆ set_num_threads_3D()

void set_num_threads_3D ( const int  n)

Definition at line 46 of file rxd_extracellular.cpp.

◆ solve_dd_clhs_tridiag()

static int solve_dd_clhs_tridiag ( const int  N,
const double  l_diag,
const double  diag,
const double  u_diag,
const double  lbc_diag,
const double  lbc_u_diag,
const double  ubc_l_diag,
const double  ubc_diag,
double *const  b,
double *const  c 
)
static

Definition at line 957 of file rxd_extracellular.cpp.

Variable Documentation

◆ AllTasks

TaskQueue* AllTasks
extern

Definition at line 41 of file rxd.cpp.

◆ ecs_reactions

Reaction* ecs_reactions = NULL

Definition at line 27 of file rxd_extracellular.cpp.

◆ NUM_THREADS

int NUM_THREADS
extern

Definition at line 34 of file rxd.cpp.

◆ states

double* states
extern

Definition at line 75 of file rxd.cpp.

◆ states_cvode_offset

int states_cvode_offset

Definition at line 29 of file rxd_extracellular.cpp.

◆ t_ptr

double* t_ptr
extern

Definition at line 16 of file grids.cpp.

◆ threaded_reactions_tasks

ReactGridData* threaded_reactions_tasks

Definition at line 20 of file rxd_extracellular.cpp.