B.2. Model-Specific DEFINE Macro Definitions

The following definitions for model-specific DEFINE macros (see Model-Specific DEFINE Macros) are taken from the udf.h header file.

 #define DEFINE_ANISOTROPIC_CONDUCTIVITY(name, c, t, dmatrix) \
     void name(cell_t c, Thread *t, real dmatrix[ND_ND][ND_ND])
 
 #define DEFINE_CHEM_STEP(name, c, t, p, num_p, n_spe, dt, pres, temp, yk) \
     void name(int cell_t c, Thread *t, Particle *p, int num_p, int n_spe, \
       double *dt, double *pres, double *temp, double *yk)
 
 #define DEFINE_CPHI(name,c,t) \
     real name(cell_t c, Thread *t)
 
 #define DEFINE_DIFFUSIVITY(name, c, t, i) \
     real name(cell_t c, Thread *t, int i)
 
 #define DEFINE_DOM_DIFFUSE_REFLECTIVITY(name ,t, nb, n_a, n_b, diff_ ref_a, \
     diff_tran_a, diff_ref_b, diff_tran_b) \
     void name(Thread *t, int nb, real n_a, real n_b, real *diff_ref_a, \
       real *diff_tran_a, real *diff_ref_b, real *diff_tran_b)
 
 #define DEFINE_DOM_SPECULAR_REFLECTIVITY(name, f, t, nb, n_a, n_b, \
     ray_direction, e_n, total_internal_reflection, \
     specular_reflectivity, specular_transmissivity) \
     void name(face_t f, Thread *t, int nb, real n_a, real n_b , \
       real ray_direction[], real e_n[], \
       int *total_internal_reflection, real *specular_reflectivity,\
       real *specular_transmissivity)
 
 #define DEFINE_DOM_SOURCE(name, c, t, ni, nb, emission, in_scattering, \
     abs_coeff, scat_coeff) \
     void name(cell_t c, Thread* t, int ni, int nb, real *emission, \
       real *in_scattering, real *abs_coeff, real *scat_coeff)
 
 #define DEFINE_EMISSIVITY_WEIGHTING_FACTOR(name, c, t, T, nb, \
     emissivity_weighting_factor) \
     void name(cell_t c, Thread* t, real T, int nb, \
       real *emissivity_weighting_factor)
 
 #define DEFINE_GAP_MODEL_SOURCE(name, c, tc, Source, dS) \
     void name(cell_t c, Thread *tc, real Source[], real dS[])

 #define DEFINE_GEOMETRY(name, o, x) int name(Geometry_Object *o, real *x)

 #define DEFINE_GRAY_BAND_ABS_COEFF(name, c, t, nb) \ 
      real name(cell_t c, Thread *t, int nb)
 
 #define DEFINE_HEAT_FLUX(name, f, t, c0, t0, cid, cir) \
     void name(face_t f, Thread *t, cell_t c0, Thread *t0, \
       real cid[], real cir[])
 
 #define DEFINE_NET_REACTION_RATE(name, c, t, particle, pressure, \
     temp, yi, rr, jac) \
     void name(cell_t c, Thread *t, Particle *particle, \
     double *pressure, double *temp, double *yi, double *rr, \
     double *jac)
 
 #define DEFINE_NOX_RATE(name, c, t, Pollut, Pollut_Par, NOx) \
     void name(cell_t c, Thread *t, Pollut_Cell *Pollut, \
     Pollut_Parameter *Poll_Par, NOx_Parameter *NOx)
  
 #define DEFINE_PRANDTL_K(name, c, t) real name(cell_t c, Thread *t)
 
 #define DEFINE_PRANDTL_D(name, c, t) real name(cell_t c, Thread *t)
 
 #define DEFINE_PRANDTL_O(name, c, t) real name(cell_t c, Thread *t)
 
 #define DEFINE_PRANDTL_T(name, c, t) real name(cell_t c, Thread *t)
 
 #define DEFINE_PRANDTL_T_WALL(name, c, t) real name(cell_t c, Thread *t)
 
 #define DEFINE_PROFILE(name, t, i) void name(Thread *t, int i)
 
 #define DEFINE_PROPERTY(name, c, t) real name(cell_t c, Thread *t)
 
 #define DEFINE_PR_RATE(name, c, t, r, mw, ci, tp, sf, dif_index, \
  cat_index, rr) \
     void name(cell_t c, Thread *t, Reaction *r, real *mw, real *ci, \
       Tracked_Particle *tp, real *sf , int dif_index, \
       int cat_index, real *rr)
 
 #define DEFINE_SBES_BF(name, c, t) \  
    real name(cell_t c, Thread *t)
 
 #define DEFINE_SCAT_PHASE_FUNC(name, c, f) \  
    real name(real c, real *f)
 
 #define DEFINE_SOLAR_INTENSITY(name, sun_x, sun_y, sun_z, S_hour, S_minute) \
 real name(real sun_x, real sun_y, real sun_z, int S_hour,int S_minute)
 
 #define DEFINE_SOURCE(name, c, t, dS, i) \
     real name(cell_t c, Thread *t, real dS[], int i)
 
 #define DEFINE_SOX_RATE(name, c, t, Pollut, Pollut_Par, SOx) \
     void name(cell_t c, Thread *t, Pollut_Cell *Pollut, \
       Pollut_Parameter *Poll_Par, SOx_Parameter *SOx)
 
 #define DEFINE_SR_RATE(name, f, t, r, mw, yi, rr) \
     void name(face_t f, Thread *t, \
        Reaction *r, real *mw, real *yi, real *rr)
 
 #define DEFINE_TURB_PREMIX_SOURCE(name, c, t, \
     turbulent_flame_speed, source) \
     void name(cell_t c, Thread *t, real *turbulent_flame_speed, \
       real *source)
 
 #define DEFINE_TURBULENT_VISCOSITY(name, c, t) \
     real name(cell_t c, Thread *t)
 
 #define DEFINE_VR_RATE(name, c, t, r, mw, yi, rr, rr_t) \
     void name(cell_t c, Thread *t, \
     Reaction *r, real *mw, real *yi, real *rr, real *rr_t)
 
 #define DEFINE_WALL_FUNCTIONS(name, f, t, c0, t0, wf_ret, yPlus, Emod) \
     real name(face_t f, Thread *t, cell_t c0, Thread *t0, int wf_ret \
       real yPlus, real Emod)

 #define DEFINE_WALL_NODAL_DISP(name, f, t, v, m) \
     real name(face_t f, Thread *t, Node *v, int m)

 #define DEFINE_WALL_NODAL_FORCE(name, f, t, v, m) \
     real name(face_t f, Thread *t, Node *v, int m)

#define DEFINE_SOURCE_FE(name, c, t) \
     real name(cell_t c, Thread *t)
 
 #define DEFINE_WSGGM_ABS_COEFF(name, c, t, xi, p_t, s, soot_conc, Tcell, \
     nb, ab_wsggm, ab_soot)  \
     void name(cell_t c, Thread *t, real xi[], real p_t, real s, real soot_conc, \
       real Tcell, int nb, real *ab_wsggm, real *ab_soot)