{% if variables.header %}
#include "{{ variables.header }}"
{% endif %}

{% if info.device == "gpu" %}
__constant__ double pi              = 3.1415926;

// atomic mass unit (g)
__constant__ double amu             = 1.6605402e-24;

// mass of electron (g)
__constant__ double me              = 9.1093897e-28;

// mass or electron (u)
__constant__ double meu             = 5.48579909e-4;

// mass of proton (g)
__constant__ double mp              = 1.6726231e-24;

// mass of neutron (g)
__constant__ double mn              = 1.6749286e-24;

// mass of hydrogen (g)
__constant__ double mh              = 1.6733e-24;

// electron charge (esu)
__constant__ double echarge         = 4.80320425e-10;

// Boltzmann constant (erg/K)
__constant__ double kerg            = 1.380658e-16;

{% for c, cv in variables.consts.items() %}
__constant__ double {{ c }} = {{ cv }};
{% endfor %}

{% else %}
const double pi              = 3.1415926;

// atomic mass unit (g)
const double amu             = 1.6605402e-24;

// mass of electron (g)
const double me              = 9.1093897e-28;

// mass or electron (u)
const double meu             = 5.48579909e-4;

// mass of proton (g)
const double mp              = 1.6726231e-24;

// mass of neutron (g)
const double mn              = 1.6749286e-24;

// mass of hydrogen (g)
const double mh              = 1.6733e-24;

// electron charge (esu)
const double echarge         = 4.80320425e-10;

// Boltzmann constant (erg/K)
const double kerg            = 1.380658e-16;

{% for c, cv in variables.consts.items() %}
const double {{ c }} = {{ cv }};
{% endfor %}

{% endif %}

{% with device = info.device %}

{% if physics.h2shielding == "L96Table" %}
{% include "data/H2shielding.dat.j2" %}
{% endif %}

{% if physics.coshielding == "V09Table" %}
{% include "data/COshielding_11.2bH2_5e20nH.dat.j2" %}
{% endif %}

{% if physics.n2shielding == "L13Table" %}
{% include "data/N2shielding_11.2bH2_1e20nH.dat.j2" %}
{% endif %}

{% endwith %}
