aboutsummaryrefslogtreecommitdiff
path: root/src/nuc_eos_cxx/nuc_eos.hh
blob: 6483d88fb96f19e3f662a46fa403d52db5c8a7d9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
#ifndef NUC_EOS_HH
#define NUC_EOS_HH

#include "cctk.h"

// TODO: remove hard coded constants
// TODO: introduce defines for table index of variables
#define HAVEGR 1
#define MAX(x, y) (((x) > (y)) ? (x) : (y))
#define MIN(x, y) (((x) < (y)) ? (x) : (y))
#define NTABLES 19
#define LENGTHGF 6.77269222552442e-06
#define TIMEGF 2.03040204956746e05
#define RHOGF 1.61887093132742e-18
#define PRESSGF 1.80123683248503e-39
#define EPSGF 1.11265005605362e-21
#define INVRHOGF 6.17714470405638e17
#define INVEPSGF 8.98755178736818e20
#define INVPRESSGF 5.55174079257738e38

namespace nuc_eos {

  extern int nrho;
  extern int ntemp;
  extern int nye;

  extern double * restrict alltables;
  extern double * restrict epstable;
  extern double * restrict logrho;
  extern double * restrict logtemp;
  extern double temp0, temp1;
  extern double dlintemp,dlintempi;
  extern double drholintempi;
  extern double dlintempyei;
  extern double drholintempyei;
  extern double * restrict yes;
  extern double energy_shift;
  extern double dtemp, dtempi;
  extern double drho, drhoi;
  extern double dye, dyei;
  extern double drhotempi;
  extern double drhoyei;
  extern double dtempyei;
  extern double drhotempyei;

// min and max values

  extern double eos_rhomax, eos_rhomin;
  extern double eos_tempmin, eos_tempmax;
  extern double eos_yemin, eos_yemax;
  
  extern double c2p_tempmin;
  extern double c2p_tempmax;

// table key
// 0 logpress 
// 1 logenergy
// 2 entropy
// 3 munu
// 4 cs2
// 5 dedt
// 6 dpdrhoe
// 7 dpderho
// 8 muhat
// 9 mu_e
// 10 mu_p
// 11 mu_n
// 12 Xa
// 13 Xh
// 14 Xn
// 15 Xp
// 16 Abar
// 17 Zbar
// 18 Gamma
  enum eos_var {i_logpress=0, i_logenergy, i_entropy, i_munu, i_cs2, i_dedt,
                i_dpdrhoe, i_dpderho, i_muhat, i_mu_e, i_mu_p, i_mu_n, i_Xa,
                i_Xh, i_Xn, i_Xp, i_Abar, i_Zbar, i_Gamma};
}

#endif // NUC_EOS_HH