21 #ifndef _aspect_material_model_melt_boukare_h 22 #define _aspect_material_model_melt_boukare_h 30 namespace MaterialModel
43 std::vector<double> get_nth_output(
const unsigned int idx)
const override;
83 bool is_compressible ()
const override;
97 std::vector<double> &melt_fractions)
const override;
103 double reference_darcy_coefficient ()
const override;
124 parse_parameters (ParameterHandler &prm)
override;
179 const double molar_MgO_in_Mg_mantle_endmember = 0.581;
180 const double molar_SiO2_in_Mg_mantle_endmember = 0.419;
181 const double molar_FeO_in_Fe_mantle_endmember = 0.908;
182 const double molar_SiO2_in_Fe_mantle_endmember = 0.092;
185 const double melting_reference_pressure = 120.e9;
192 const double Fe_mantle_melting_entropy = 33.77;
193 const double Mg_mantle_melting_entropy = 34.33;
196 const double Fe_mantle_melting_volume = 1.51e-07;
197 const double Mg_mantle_melting_volume = 9.29e-08;
249 const unsigned int q,
258 endmember_thermal_energy (
const double temperature,
259 const unsigned int endmember_index)
const;
267 endmember_molar_heat_capacity (
const double temperature,
268 const unsigned int endmember_index)
const;
275 endmember_thermal_pressure (
const double temperature,
276 const unsigned int endmember_index)
const;
284 endmember_enthalpy_thermal_addition (
const double temperature,
285 const unsigned int endmember_index)
const;
293 endmember_entropy_thermal_addition (
const double temperature,
294 const unsigned int endmember_index)
const;
304 convert_composition_to_fraction_of_endmembers (
const double temperature,
305 const double molar_Fe_in_solid,
306 const double molar_Fe_in_melt,
307 const std::vector<double> &endmember_gibbs_energies,
308 std::vector<double> &endmember_mole_fractions_per_phase,
309 double &molar_bridgmanite_in_solid)
const;
319 compute_melt_molar_fraction (
const double porosity,
320 const double bridgmanite_molar_fraction_in_solid,
322 const std::vector<double> &endmember_mole_fractions_per_phase)
const;
331 assert_update_is_within_0_and_1 (
const double value,
332 const double change_of_value)
const;
346 const double bulk_composition,
347 double &molar_volatiles_in_melt,
348 double &solid_composition,
349 double &melt_composition)
const;
double thermal_conductivity
std::vector< double > tait_parameters_b
double reference_permeability
double Mg_mantle_melting_temperature
std::vector< double > bulk_moduli
std::vector< double > gibbs_energies
double thermal_bulk_viscosity_exponent
std::vector< double > number_of_atoms
double Mg_number_of_moles
std::vector< double > bulk_modulus_second_pressure_derivatives
std::vector< double > entropies
std::vector< double > reference_volumes
std::vector< std::string > endmember_names
void declare_parameters(ParameterHandler &prm)
double reference_temperature
std::vector< double > tait_parameters_a
double reference_pressure
std::vector< double > specific_heat_linear_coefficients
std::vector< double > thermal_expansivities
double Fe_mantle_melting_temperature
double melting_time_scale
std::vector< typename EndmemberState::Kind > endmember_states
std::vector< double > bulk_composition
std::vector< double > heat_capacities
std::vector< double > volumes
std::vector< double > specific_heat_second_coefficients
std::vector< double > reference_entropies
double Fe_number_of_moles
std::vector< double > specific_heat_third_coefficients
bool include_melting_and_freezing
std::vector< double > bulk_modulus_pressure_derivatives
std::vector< double > reference_bulk_moduli
std::vector< double > molar_masses
double thermal_viscosity_exponent
std::vector< double > reference_thermal_expansivities
std::vector< double > Einstein_temperatures
std::vector< double > reference_specific_heats
std::vector< double > tait_parameters_c
std::vector< double > reference_enthalpies
std::vector< double > molar_volatiles_in_melt