NEURON
grids.h File Reference
#include <stdio.h>
#include <assert.h>
#include <nrnmpi.h>
#include "nrn_pyhocobject.h"
#include "nrnwrap_Python.h"

Go to the source code of this file.

Classes

struct  Hybrid_data
 
struct  Concentration_Pair
 
struct  Current_Triple
 
struct  Reaction
 
struct  AdiLineData
 
struct  BoundaryConditions
 
class  Grid_node
 
class  ECS_Grid_node
 
struct  ECSAdiDirection
 
struct  ECSAdiGridData
 
class  ICS_Grid_node
 
struct  ICSAdiDirection
 
struct  ICSAdiGridData
 

Macros

#define IDX(x, y, z)   ((z) + (y) *g->size_z + (x) *g->size_z * g->size_y)
 
#define INDEX(x, y, z)   ((z) + (y) *grid->size_z + (x) *grid->size_z * grid->size_y)
 
#define ALPHA(x, y, z)   (g->get_alpha(g->alpha, IDX(x, y, z)))
 
#define VOLFRAC(idx)   (g->get_alpha(g->alpha, idx))
 
#define TORT(idx)   (g->get_permeability(g->permeability, idx))
 
#define PERM(x, y, z)   (g->get_permeability(g->permeability, IDX(x, y, z)))
 
#define SQ(x)   ((x) * (x))
 
#define CU(x)   ((x) * (x) * (x))
 
#define TRUE   1
 
#define FALSE   0
 
#define TORTUOSITY   2
 
#define VOLUME_FRACTION   3
 
#define ICS_ALPHA   4
 
#define NEUMANN   0
 
#define DIRICHLET   1
 
#define MAX(a, b)   ((a) > (b) ? (a) : (b))
 
#define MIN(a, b)   ((a) < (b) ? (a) : (b))
 

Typedefs

using ReactionRate = void(double **, double **, double **, double *, double *, double *, double *, double **, double)
 
using ECSReactionRate = void(double *, double *, double *, double *)
 

Functions

void make_dt_ptr (PyHocObject *my_dt_ptr)
 
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, double, double)
 
Grid_nodeICS_make_Grid (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 (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, int, double *, int)
 
int remove (Grid_node **head, Grid_node *find)
 
void empty_list (int list_index)
 
void apply_node_flux (int, long *, double *, PyObject **, double, double *)
 

Variables

double * dt_ptr
 
double * t_ptr
 
Grid_nodeParallel_grids [100]
 

Macro Definition Documentation

◆ ALPHA

#define ALPHA (   x,
  y,
 
)    (g->get_alpha(g->alpha, IDX(x, y, z)))

Definition at line 16 of file grids.h.

◆ CU

#define CU (   x)    ((x) * (x) * (x))

Definition at line 21 of file grids.h.

◆ DIRICHLET

#define DIRICHLET   1

Definition at line 29 of file grids.h.

◆ FALSE

#define FALSE   0

Definition at line 23 of file grids.h.

◆ ICS_ALPHA

#define ICS_ALPHA   4

Definition at line 26 of file grids.h.

◆ IDX

#define IDX (   x,
  y,
 
)    ((z) + (y) *g->size_z + (x) *g->size_z * g->size_y)

Definition at line 14 of file grids.h.

◆ INDEX

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

Definition at line 15 of file grids.h.

◆ MAX

#define MAX (   a,
 
)    ((a) > (b) ? (a) : (b))

Definition at line 31 of file grids.h.

◆ MIN

#define MIN (   a,
 
)    ((a) < (b) ? (a) : (b))

Definition at line 32 of file grids.h.

◆ NEUMANN

#define NEUMANN   0

Definition at line 28 of file grids.h.

◆ PERM

#define PERM (   x,
  y,
 
)    (g->get_permeability(g->permeability, IDX(x, y, z)))

Definition at line 19 of file grids.h.

◆ SQ

#define SQ (   x)    ((x) * (x))

Definition at line 20 of file grids.h.

◆ TORT

#define TORT (   idx)    (g->get_permeability(g->permeability, idx))

Definition at line 18 of file grids.h.

◆ TORTUOSITY

#define TORTUOSITY   2

Definition at line 24 of file grids.h.

◆ TRUE

#define TRUE   1

Definition at line 22 of file grids.h.

◆ VOLFRAC

#define VOLFRAC (   idx)    (g->get_alpha(g->alpha, idx))

Definition at line 17 of file grids.h.

◆ VOLUME_FRACTION

#define VOLUME_FRACTION   3

Definition at line 25 of file grids.h.

Typedef Documentation

◆ ECSReactionRate

using ECSReactionRate = void(double*, double*, double*, double*)

Definition at line 58 of file grids.h.

◆ ReactionRate

using ReactionRate = void(double**, double**, double**, double*, double*, double*, double*, double**, double)

Definition at line 56 of file grids.h.

Function Documentation

◆ apply_node_flux()

void apply_node_flux ( int  n,
long *  index,
double *  scale,
PyObject **  source,
double  dt,
double *  states 
)

Definition at line 314 of file rxd.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 198 of file grids.cpp.

◆ empty_list()

void empty_list ( int  list_index)

Definition at line 801 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 385 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 419 of file grids.cpp.

◆ ICS_make_Grid()

Grid_node* ICS_make_Grid ( 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 
)

◆ make_dt_ptr()

void make_dt_ptr ( PyHocObject my_dt_ptr)

◆ remove()

int remove ( Grid_node **  head,
Grid_node find 
)

Definition at line 769 of file grids.cpp.

◆ set_diffusion()

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

Definition at line 453 of file grids.cpp.

Variable Documentation

◆ dt_ptr

double* dt_ptr
extern

Definition at line 15 of file grids.cpp.

◆ Parallel_grids

Grid_node* Parallel_grids[100]
extern

Definition at line 17 of file grids.cpp.

◆ t_ptr

double* t_ptr
extern

Definition at line 16 of file grids.cpp.