NEURON
rxd.h File Reference
#include <pthread.h>
#include <matrix2.h>

Go to the source code of this file.

Classes

struct  OcPtrVector_
 
struct  ReactSet
 
struct  ReactGridData
 
struct  CurrentData
 
struct  SpeciesIndexList
 
struct  ICSReactions
 
struct  ReactionVariables
 
struct  TaskList
 
struct  TaskQueue
 

Macros

#define v_get_val(x, i)   ((x)->ve[(i)])
 
#define m_get_val(A, i, j)   ((A)->me[(i)][(j)])
 
#define SPECIES_ABSENT   -1
 
#define PREFETCH   4
 

Typedefs

typedef void(* fptr) (void)
 
typedef struct OcPtrVector_ OcPtrVector
 
typedef struct SpeciesIndexList SpeciesIndexList
 
typedef struct ICSReactions ICSReactions
 
typedef struct TaskList TaskList
 
typedef struct TaskQueue TaskQueue
 

Functions

void set_num_threads (const int)
 
void _fadvance (void)
 
void _fadvance_fixed_step_3D (void)
 
int get_num_threads (void)
 
void ecs_set_adi_tort (ECS_Grid_node *)
 
void ecs_set_adi_vol (ECS_Grid_node *)
 
void ecs_set_adi_homogeneous (ECS_Grid_node *)
 
void dg_transfer_data (AdiLineData *const, double *const, int const, int const, int const)
 
void ecs_run_threaded_dg_adi (const int, const int, ECS_Grid_node *, ECSAdiDirection *, const int)
 
ReactGridDatacreate_threaded_reactions (const int)
 
voiddo_reactions (void *)
 
void current_reaction (double *states)
 
void run_threaded_deltas (ICS_Grid_node *g, ICSAdiDirection *ics_adi_dir)
 
void run_threaded_ics_dg_adi (ICS_Grid_node *g, ICSAdiDirection *ics_adi_dir)
 
void ics_dg_adi_x (ICS_Grid_node *g, int, int, int, double, double *, double *, double *, double *, double *, double *)
 
void ics_dg_adi_y (ICS_Grid_node *g, int, int, int, double, double *, double *, double *, double *, double *, double *)
 
void ics_dg_adi_z (ICS_Grid_node *g, int, int, int, double, double *, double *, double *, double *, double *, double *)
 
void ics_dg_adi_x_inhom (ICS_Grid_node *g, int, int, int, double, double *, double *, double *, double *, double *, double *)
 
void ics_dg_adi_y_inhom (ICS_Grid_node *g, int, int, int, double, double *, double *, double *, double *, double *, double *)
 
void ics_dg_adi_z_inhom (ICS_Grid_node *g, int, int, int, double, double *, double *, double *, double *, double *, double *)
 
void _rhs_variable_step (const double *, double *)
 
void _ode_reinit (double *)
 
int ode_count (const int)
 
void scatter_concentrations (void)
 
int find (const int, const int, const int, const int, const int)
 
void _ics_hybrid_helper (ICS_Grid_node *)
 
void _ics_variable_hybrid_helper (ICS_Grid_node *, const double *, double *const, const double *, double *const)
 
void _ics_rhs_variable_step_helper (ICS_Grid_node *, double const *const, double *)
 
void _rhs_variable_step_helper (Grid_node *, double const *const, double *)
 
void ics_ode_solve (double, double *, const double *)
 
void ics_ode_solve_helper (ICS_Grid_node *, double, double *)
 
void _rhs_variable_step_helper_tort (Grid_node *, double const *const, double *)
 
void _rhs_variable_step_helper_vol (Grid_node *, double const *const, double *)
 
void set_num_threads_3D (int n)
 
void _rhs_variable_step_ecs (const double *, double *)
 
void clear_rates_ecs ()
 
void do_ics_reactions (double *, double *, double *, double *)
 
void get_all_reaction_rates (double *, double *, double *)
 
void _ecs_ode_reinit (double *)
 
void do_currents (Grid_node *, double *, double, int)
 
void TaskQueue_add_task (TaskQueue *, void *(*task)(void *args), void *, void *)
 
voidTaskQueue_exe_tasks (void *)
 
void start_threads (const int)
 
void TaskQueue_sync (TaskQueue *)
 
void ecs_atolscale (double *)
 
void apply_node_flux3D (Grid_node *, double, double *)
 

Macro Definition Documentation

◆ m_get_val

#define m_get_val (   A,
  i,
  j 
)    ((A)->me[(i)][(j)])

Definition at line 5 of file rxd.h.

◆ PREFETCH

#define PREFETCH   4

Definition at line 7 of file rxd.h.

◆ SPECIES_ABSENT

#define SPECIES_ABSENT   -1

Definition at line 6 of file rxd.h.

◆ v_get_val

#define v_get_val (   x,
  i 
)    ((x)->ve[(i)])

Definition at line 4 of file rxd.h.

Typedef Documentation

◆ fptr

typedef void(* fptr) (void)

Definition at line 9 of file rxd.h.

◆ ICSReactions

typedef struct ICSReactions ICSReactions

◆ OcPtrVector

typedef struct OcPtrVector_ OcPtrVector

◆ SpeciesIndexList

◆ TaskList

typedef struct TaskList TaskList

◆ TaskQueue

typedef struct TaskQueue TaskQueue

Function Documentation

◆ _ecs_ode_reinit()

void _ecs_ode_reinit ( double *  )

Definition at line 711 of file rxd_extracellular.cpp.

◆ _fadvance()

void _fadvance ( void  )

Definition at line 1338 of file rxd.cpp.

◆ _fadvance_fixed_step_3D()

void _fadvance_fixed_step_3D ( void  )

Definition at line 637 of file rxd_extracellular.cpp.

◆ _ics_hybrid_helper()

void _ics_hybrid_helper ( ICS_Grid_node )

Definition at line 1361 of file rxd_intracellular.cpp.

◆ _ics_rhs_variable_step_helper()

void _ics_rhs_variable_step_helper ( ICS_Grid_node ,
double const *  const,
double *   
)

Definition at line 800 of file rxd_intracellular.cpp.

◆ _ics_variable_hybrid_helper()

void _ics_variable_hybrid_helper ( ICS_Grid_node ,
const double *  ,
double *  const,
const double *  ,
double *  const 
)

Definition at line 1416 of file rxd_intracellular.cpp.

◆ _ode_reinit()

void _ode_reinit ( double *  )

Definition at line 1382 of file rxd.cpp.

◆ _rhs_variable_step()

void _rhs_variable_step ( const double *  ,
double *   
)

Definition at line 1407 of file rxd.cpp.

◆ _rhs_variable_step_ecs()

void _rhs_variable_step_ecs ( const double *  ,
double *   
)

Definition at line 733 of file rxd_extracellular.cpp.

◆ _rhs_variable_step_helper()

void _rhs_variable_step_helper ( Grid_node ,
double const *  const,
double *   
)

Definition at line 808 of file rxd_extracellular.cpp.

◆ _rhs_variable_step_helper_tort()

void _rhs_variable_step_helper_tort ( Grid_node ,
double const *  const,
double *   
)

Definition at line 762 of file rxd_vol.cpp.

◆ _rhs_variable_step_helper_vol()

void _rhs_variable_step_helper_vol ( Grid_node ,
double const *  const,
double *   
)

Definition at line 870 of file rxd_vol.cpp.

◆ apply_node_flux3D()

void apply_node_flux3D ( Grid_node ,
double  ,
double *   
)

◆ clear_rates_ecs()

void clear_rates_ecs ( )

Definition at line 64 of file rxd_extracellular.cpp.

◆ create_threaded_reactions()

ReactGridData* create_threaded_reactions ( const int  )

Definition at line 231 of file rxd_extracellular.cpp.

◆ current_reaction()

void current_reaction ( double *  states)

◆ dg_transfer_data()

void dg_transfer_data ( AdiLineData const,
double *  const,
int  const,
int  const,
int  const 
)

◆ do_currents()

void do_currents ( Grid_node ,
double *  ,
double  ,
int   
)

◆ do_ics_reactions()

void do_ics_reactions ( double *  ,
double *  ,
double *  ,
double *   
)

Definition at line 2009 of file rxd.cpp.

◆ do_reactions()

void* do_reactions ( void )

◆ ecs_atolscale()

void ecs_atolscale ( double *  )

Definition at line 696 of file rxd_extracellular.cpp.

◆ ecs_run_threaded_dg_adi()

void ecs_run_threaded_dg_adi ( const int  ,
const int  ,
ECS_Grid_node ,
ECSAdiDirection ,
const int   
)

Definition at line 1342 of file rxd_extracellular.cpp.

◆ ecs_set_adi_homogeneous()

void ecs_set_adi_homogeneous ( ECS_Grid_node )

Definition at line 1371 of file rxd_extracellular.cpp.

◆ ecs_set_adi_tort()

void ecs_set_adi_tort ( ECS_Grid_node )

Definition at line 748 of file rxd_vol.cpp.

◆ ecs_set_adi_vol()

void ecs_set_adi_vol ( ECS_Grid_node )

Definition at line 412 of file rxd_vol.cpp.

◆ find()

int find ( const int  ,
const int  ,
const int  ,
const int  ,
const int   
)

◆ get_all_reaction_rates()

void get_all_reaction_rates ( double *  ,
double *  ,
double *   
)

Definition at line 2019 of file rxd.cpp.

◆ get_num_threads()

int get_num_threads ( void  )

Definition at line 1333 of file rxd.cpp.

◆ ics_dg_adi_x()

void ics_dg_adi_x ( ICS_Grid_node g,
int  ,
int  ,
int  ,
double  ,
double *  ,
double *  ,
double *  ,
double *  ,
double *  ,
double *   
)

Definition at line 450 of file rxd_intracellular.cpp.

◆ ics_dg_adi_x_inhom()

void ics_dg_adi_x_inhom ( ICS_Grid_node g,
int  ,
int  ,
int  ,
double  ,
double *  ,
double *  ,
double *  ,
double *  ,
double *  ,
double *   
)

Definition at line 253 of file rxd_intracellular.cpp.

◆ ics_dg_adi_y()

void ics_dg_adi_y ( ICS_Grid_node g,
int  ,
int  ,
int  ,
double  ,
double *  ,
double *  ,
double *  ,
double *  ,
double *  ,
double *   
)

Definition at line 518 of file rxd_intracellular.cpp.

◆ ics_dg_adi_y_inhom()

void ics_dg_adi_y_inhom ( ICS_Grid_node g,
int  ,
int  ,
int  ,
double  ,
double *  ,
double *  ,
double *  ,
double *  ,
double *  ,
double *   
)

Definition at line 325 of file rxd_intracellular.cpp.

◆ ics_dg_adi_z()

void ics_dg_adi_z ( ICS_Grid_node g,
int  ,
int  ,
int  ,
double  ,
double *  ,
double *  ,
double *  ,
double *  ,
double *  ,
double *   
)

Definition at line 581 of file rxd_intracellular.cpp.

◆ ics_dg_adi_z_inhom()

void ics_dg_adi_z_inhom ( ICS_Grid_node g,
int  ,
int  ,
int  ,
double  ,
double *  ,
double *  ,
double *  ,
double *  ,
double *  ,
double *   
)

Definition at line 388 of file rxd_intracellular.cpp.

◆ ics_ode_solve()

void ics_ode_solve ( double  ,
double *  ,
const double *   
)

Definition at line 958 of file rxd_extracellular.cpp.

◆ ics_ode_solve_helper()

void ics_ode_solve_helper ( ICS_Grid_node ,
double  ,
double *   
)

Definition at line 1276 of file rxd_intracellular.cpp.

◆ ode_count()

int ode_count ( const int  )

Definition at line 685 of file rxd_extracellular.cpp.

◆ run_threaded_deltas()

void run_threaded_deltas ( ICS_Grid_node g,
ICSAdiDirection ics_adi_dir 
)

Definition at line 233 of file rxd_intracellular.cpp.

◆ run_threaded_ics_dg_adi()

void run_threaded_ics_dg_adi ( ICS_Grid_node g,
ICSAdiDirection ics_adi_dir 
)

◆ scatter_concentrations()

void scatter_concentrations ( void  )

Definition at line 669 of file rxd_extracellular.cpp.

◆ set_num_threads()

void set_num_threads ( const int  )

Definition at line 1287 of file rxd.cpp.

◆ set_num_threads_3D()

void set_num_threads_3D ( int  n)

Definition at line 49 of file rxd_extracellular.cpp.

◆ start_threads()

void start_threads ( const int  )

Definition at line 1188 of file rxd.cpp.

◆ TaskQueue_add_task()

void TaskQueue_add_task ( TaskQueue ,
void *(*)(void *args)  task,
void ,
void  
)

◆ TaskQueue_exe_tasks()

void* TaskQueue_exe_tasks ( void )

Definition at line 1242 of file rxd.cpp.

◆ TaskQueue_sync()

void TaskQueue_sync ( TaskQueue )

Definition at line 1324 of file rxd.cpp.