Skip to content
Snippets Groups Projects
Commit f53803f5 authored by Jacob Kegerreis's avatar Jacob Kegerreis
Browse files

Add Tillotson basalt eos

parent b525c566
Branches
Tags
2 merge requests!1109More EoS,!1099WIP: More eos
...@@ -80,6 +80,10 @@ enum eos_planetary_material_id { ...@@ -80,6 +80,10 @@ enum eos_planetary_material_id {
/*! Tillotson water */ /*! Tillotson water */
eos_planetary_id_Til_water = eos_planetary_id_Til_water =
eos_planetary_type_Til * eos_planetary_type_factor + 2, eos_planetary_type_Til * eos_planetary_type_factor + 2,
/*! Tillotson basalt */
eos_planetary_id_Til_basalt =
eos_planetary_type_Til * eos_planetary_type_factor + 3,
/* Hubbard & MacFarlane (1980) Uranus/Neptune */ /* Hubbard & MacFarlane (1980) Uranus/Neptune */
...@@ -123,7 +127,7 @@ enum eos_planetary_material_id { ...@@ -123,7 +127,7 @@ enum eos_planetary_material_id {
* @brief The parameters of the equation of state. * @brief The parameters of the equation of state.
*/ */
struct eos_parameters { struct eos_parameters {
struct Til_params Til_iron, Til_granite, Til_water; struct Til_params Til_iron, Til_granite, Til_water, Til_basalt;
struct HM80_params HM80_HHe, HM80_ice, HM80_rock; struct HM80_params HM80_HHe, HM80_ice, HM80_rock;
struct SESAME_params SESAME_iron, SESAME_basalt, SESAME_water, SS08_water; struct SESAME_params SESAME_iron, SESAME_basalt, SESAME_water, SS08_water;
}; };
...@@ -164,6 +168,11 @@ gas_internal_energy_from_entropy(float density, float entropy, ...@@ -164,6 +168,11 @@ gas_internal_energy_from_entropy(float density, float entropy,
&eos.Til_water); &eos.Til_water);
break; break;
case eos_planetary_id_Til_basalt:
return Til_internal_energy_from_entropy(density, entropy,
&eos.Til_basalt);
break;
default: default:
error("Unknown material ID! mat_id = %d", mat_id); error("Unknown material ID! mat_id = %d", mat_id);
return 0.f; return 0.f;
...@@ -265,6 +274,10 @@ __attribute__((always_inline)) INLINE static float gas_pressure_from_entropy( ...@@ -265,6 +274,10 @@ __attribute__((always_inline)) INLINE static float gas_pressure_from_entropy(
return Til_pressure_from_entropy(density, entropy, &eos.Til_water); return Til_pressure_from_entropy(density, entropy, &eos.Til_water);
break; break;
case eos_planetary_id_Til_basalt:
return Til_pressure_from_entropy(density, entropy, &eos.Til_basalt);
break;
default: default:
error("Unknown material ID! mat_id = %d", mat_id); error("Unknown material ID! mat_id = %d", mat_id);
return 0.f; return 0.f;
...@@ -364,6 +377,10 @@ __attribute__((always_inline)) INLINE static float gas_entropy_from_pressure( ...@@ -364,6 +377,10 @@ __attribute__((always_inline)) INLINE static float gas_entropy_from_pressure(
return Til_entropy_from_pressure(density, P, &eos.Til_water); return Til_entropy_from_pressure(density, P, &eos.Til_water);
break; break;
case eos_planetary_id_Til_basalt:
return Til_entropy_from_pressure(density, P, &eos.Til_basalt);
break;
default: default:
error("Unknown material ID! mat_id = %d", mat_id); error("Unknown material ID! mat_id = %d", mat_id);
return 0.f; return 0.f;
...@@ -459,6 +476,10 @@ __attribute__((always_inline)) INLINE static float gas_soundspeed_from_entropy( ...@@ -459,6 +476,10 @@ __attribute__((always_inline)) INLINE static float gas_soundspeed_from_entropy(
return Til_soundspeed_from_entropy(density, entropy, &eos.Til_water); return Til_soundspeed_from_entropy(density, entropy, &eos.Til_water);
break; break;
case eos_planetary_id_Til_basalt:
return Til_soundspeed_from_entropy(density, entropy, &eos.Til_basalt);
break;
default: default:
error("Unknown material ID! mat_id = %d", mat_id); error("Unknown material ID! mat_id = %d", mat_id);
return 0.f; return 0.f;
...@@ -557,6 +578,10 @@ gas_entropy_from_internal_energy(float density, float u, ...@@ -557,6 +578,10 @@ gas_entropy_from_internal_energy(float density, float u,
return Til_entropy_from_internal_energy(density, u, &eos.Til_water); return Til_entropy_from_internal_energy(density, u, &eos.Til_water);
break; break;
case eos_planetary_id_Til_basalt:
return Til_entropy_from_internal_energy(density, u, &eos.Til_basalt);
break;
default: default:
error("Unknown material ID! mat_id = %d", mat_id); error("Unknown material ID! mat_id = %d", mat_id);
return 0.f; return 0.f;
...@@ -657,6 +682,10 @@ gas_pressure_from_internal_energy(float density, float u, ...@@ -657,6 +682,10 @@ gas_pressure_from_internal_energy(float density, float u,
return Til_pressure_from_internal_energy(density, u, &eos.Til_water); return Til_pressure_from_internal_energy(density, u, &eos.Til_water);
break; break;
case eos_planetary_id_Til_basalt:
return Til_pressure_from_internal_energy(density, u, &eos.Til_basalt);
break;
default: default:
error("Unknown material ID! mat_id = %d", mat_id); error("Unknown material ID! mat_id = %d", mat_id);
return 0.f; return 0.f;
...@@ -760,6 +789,10 @@ gas_internal_energy_from_pressure(float density, float P, ...@@ -760,6 +789,10 @@ gas_internal_energy_from_pressure(float density, float P,
return Til_internal_energy_from_pressure(density, P, &eos.Til_water); return Til_internal_energy_from_pressure(density, P, &eos.Til_water);
break; break;
case eos_planetary_id_Til_basalt:
return Til_internal_energy_from_pressure(density, P, &eos.Til_basalt);
break;
default: default:
error("Unknown material ID! mat_id = %d", mat_id); error("Unknown material ID! mat_id = %d", mat_id);
return 0.f; return 0.f;
...@@ -861,6 +894,11 @@ gas_soundspeed_from_internal_energy(float density, float u, ...@@ -861,6 +894,11 @@ gas_soundspeed_from_internal_energy(float density, float u,
&eos.Til_water); &eos.Til_water);
break; break;
case eos_planetary_id_Til_basalt:
return Til_soundspeed_from_internal_energy(density, u,
&eos.Til_basalt);
break;
default: default:
error("Unknown material ID! mat_id = %d", mat_id); error("Unknown material ID! mat_id = %d", mat_id);
return 0.f; return 0.f;
...@@ -962,6 +1000,10 @@ __attribute__((always_inline)) INLINE static float gas_soundspeed_from_pressure( ...@@ -962,6 +1000,10 @@ __attribute__((always_inline)) INLINE static float gas_soundspeed_from_pressure(
return Til_soundspeed_from_pressure(density, P, &eos.Til_water); return Til_soundspeed_from_pressure(density, P, &eos.Til_water);
break; break;
case eos_planetary_id_Til_basalt:
return Til_soundspeed_from_pressure(density, P, &eos.Til_basalt);
break;
default: default:
error("Unknown material ID! mat_id = %d", mat_id); error("Unknown material ID! mat_id = %d", mat_id);
return 0.f; return 0.f;
...@@ -1051,10 +1093,12 @@ __attribute__((always_inline)) INLINE static void eos_init( ...@@ -1051,10 +1093,12 @@ __attribute__((always_inline)) INLINE static void eos_init(
set_Til_iron(&e->Til_iron, eos_planetary_id_Til_iron); set_Til_iron(&e->Til_iron, eos_planetary_id_Til_iron);
set_Til_granite(&e->Til_granite, eos_planetary_id_Til_granite); set_Til_granite(&e->Til_granite, eos_planetary_id_Til_granite);
set_Til_water(&e->Til_water, eos_planetary_id_Til_water); set_Til_water(&e->Til_water, eos_planetary_id_Til_water);
set_Til_basalt(&e->Til_basalt, eos_planetary_id_Til_basalt);
convert_units_Til(&e->Til_iron, us); convert_units_Til(&e->Til_iron, us);
convert_units_Til(&e->Til_granite, us); convert_units_Til(&e->Til_granite, us);
convert_units_Til(&e->Til_water, us); convert_units_Til(&e->Til_water, us);
convert_units_Til(&e->Til_basalt, us);
} }
// Hubbard & MacFarlane (1980) // Hubbard & MacFarlane (1980)
......
...@@ -81,6 +81,23 @@ INLINE static void set_Til_granite(struct Til_params *mat, ...@@ -81,6 +81,23 @@ INLINE static void set_Til_granite(struct Til_params *mat,
mat->eta_zero = 0.0f; mat->eta_zero = 0.0f;
mat->P_min = 0.0f; mat->P_min = 0.0f;
} }
INLINE static void set_Til_basalt(struct Til_params *mat,
enum eos_planetary_material_id mat_id) {
mat->mat_id = mat_id;
mat->rho_0 = 2700.0f;
mat->a = 0.5f;
mat->b = 1.5f;
mat->A = 2.67e10f;
mat->B = 2.67e10f;
mat->u_0 = 4.87e8f;
mat->u_iv = 4.72e6f;
mat->u_cv = 1.82e7f;
mat->alpha = 5.0f;
mat->beta = 5.0f;
mat->eta_min = 0.0f;
mat->eta_zero = 0.0f;
mat->P_min = 0.0f;
}
INLINE static void set_Til_water(struct Til_params *mat, INLINE static void set_Til_water(struct Til_params *mat,
enum eos_planetary_material_id mat_id) { enum eos_planetary_material_id mat_id) {
mat->mat_id = mat_id; mat->mat_id = mat_id;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment