15 #ifndef _aspect_material_model_melt_boukare_h 16 #define _aspect_material_model_melt_boukare_h 24 namespace MaterialModel
35 std::vector<double>
get_nth_output(
const unsigned int idx)
const override;
75 bool is_compressible ()
const override;
93 std::vector<double> &melt_fractions,
100 double reference_darcy_coefficient ()
const override;
254 const double molar_MgO_in_Mg_mantle_endmember = 0.581;
255 const double molar_SiO2_in_Mg_mantle_endmember = 0.419;
256 const double molar_FeO_in_Fe_mantle_endmember = 0.908;
257 const double molar_SiO2_in_Fe_mantle_endmember = 0.092;
260 const double melting_reference_pressure = 120.e9;
273 const double Fe_mantle_melting_entropy = 33.77;
274 const double Mg_mantle_melting_entropy = 34.33;
277 const double Fe_mantle_melting_volume = 1.51e-07;
278 const double Mg_mantle_melting_volume = 9.29e-08;
336 const unsigned int q,
345 endmember_thermal_energy (
const double temperature,
346 const unsigned int endmember_index)
const;
354 endmember_molar_heat_capacity (
const double temperature,
355 const unsigned int endmember_index)
const;
362 endmember_thermal_pressure (
const double temperature,
363 const unsigned int endmember_index)
const;
371 endmember_enthalpy_thermal_addition (
const double temperature,
372 const unsigned int endmember_index)
const;
380 endmember_entropy_thermal_addition (
const double temperature,
381 const unsigned int endmember_index)
const;
391 convert_composition_to_fraction_of_endmembers (
const double temperature,
392 const double molar_Fe_in_solid,
393 const double molar_Fe_in_melt,
394 const std::vector<double> &endmember_gibbs_energies,
395 std::vector<double> &endmember_mole_fractions_per_phase,
396 double &molar_bridgmanite_in_solid)
const;
406 compute_melt_molar_fraction (
const double porosity,
407 const double bridgmanite_molar_fraction_in_solid,
409 const std::vector<double> &endmember_mole_fractions_per_phase)
const;
418 assert_update_is_within_0_and_1 (
const double value,
419 const double change_of_value)
const;
435 double &solid_composition,
436 double &melt_composition)
const;
double thermal_conductivity
std::vector< double > tait_parameters_b
std::vector< double > get_nth_output(const unsigned int idx) const override
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
BoukareOutputs(const unsigned int n_points)
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