4 #define v_get_val(x, i) ((x)->ve[(i)])
5 #define m_get_val(A, i, j) ((A)->me[(i)][(j)])
6 #define SPECIES_ABSENT -1
103 void* (*task)(
void*);
214 int find(
const int,
const int,
const int,
const int,
const int);
void(* ReactionRate)(double **, double **, double **, double *, double *, double *, double *, double **, double)
int const size_t const size_t n
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_ecs(const double *, double *)
void ecs_atolscale(double *)
void _rhs_variable_step(const double *, double *)
void dg_transfer_data(AdiLineData *const, double *const, int const, int const, int const)
void _ecs_ode_reinit(double *)
void set_num_threads(const int)
struct TaskQueue TaskQueue
void set_num_threads_3D(int n)
void ecs_run_threaded_dg_adi(const int, const int, ECS_Grid_node *, ECSAdiDirection *, const int)
ReactGridData * create_threaded_reactions(const int)
void ecs_set_adi_tort(ECS_Grid_node *)
void ics_dg_adi_z(ICS_Grid_node *g, int, int, int, double, double *, double *, double *, double *, double *, double *)
void ecs_set_adi_vol(ECS_Grid_node *)
void run_threaded_deltas(ICS_Grid_node *g, ICSAdiDirection *ics_adi_dir)
void ics_ode_solve(double, double *, const double *)
void ics_ode_solve_helper(ICS_Grid_node *, double, double *)
void scatter_concentrations(void)
void * TaskQueue_exe_tasks(void *)
void do_currents(Grid_node *, double *, double, int)
void _rhs_variable_step_helper(Grid_node *, double const *const, double *)
void * do_reactions(void *)
void ics_dg_adi_x_inhom(ICS_Grid_node *g, int, int, int, double, double *, double *, double *, double *, double *, double *)
void TaskQueue_sync(TaskQueue *)
struct SpeciesIndexList SpeciesIndexList
int find(const int, const int, const int, const int, const int)
void ics_dg_adi_z_inhom(ICS_Grid_node *g, int, int, int, double, double *, double *, double *, double *, double *, double *)
void TaskQueue_add_task(TaskQueue *, void *(*task)(void *args), void *, void *)
void run_threaded_ics_dg_adi(ICS_Grid_node *g, ICSAdiDirection *ics_adi_dir)
void ecs_set_adi_homogeneous(ECS_Grid_node *)
void _rhs_variable_step_helper_tort(Grid_node *, double const *const, double *)
void _ode_reinit(double *)
void do_ics_reactions(double *, double *, double *, double *)
struct ICSReactions ICSReactions
int get_num_threads(void)
void _fadvance_fixed_step_3D(void)
void ics_dg_adi_y(ICS_Grid_node *g, int, int, int, double, double *, double *, double *, double *, double *, double *)
void _ics_hybrid_helper(ICS_Grid_node *)
void get_all_reaction_rates(double *, double *, double *)
void apply_node_flux3D(Grid_node *, double, double *)
void _rhs_variable_step_helper_vol(Grid_node *, double const *const, double *)
void start_threads(const int)
struct OcPtrVector_ OcPtrVector
void ics_dg_adi_x(ICS_Grid_node *g, int, int, int, double, double *, double *, double *, double *, double *, double *)
void current_reaction(double *states)
void ics_dg_adi_y_inhom(ICS_Grid_node *g, int, int, int, double, double *, double *, double *, double *, double *, double *)
struct ICSReactions * next
ECS_Grid_node ** ecs_grid
void(* gather)(double *, int)
PyObject_HEAD struct OcPtrVector_(* newOcPtrVector)()
void(* deleteOcPtrVector)()
void(* ptr_update_cmd)(void *)
void(* setval)(int, double)
void(* pset)(int, double *)
void(* scatter)(double *, int)
double * states_for_reaction_dx
double * ecs_states_for_reaction
double * ecs_states_for_reaction_dx
double * states_for_reaction
struct SpeciesIndexList * next
pthread_mutex_t * waiting_mutex
pthread_cond_t * task_cond
pthread_cond_t * waiting_cond
pthread_mutex_t * task_mutex