21 #ifndef _aspect_material_model_melt_boukare_h 22 #define _aspect_material_model_melt_boukare_h 30 namespace MaterialModel
41 std::vector<double>
get_nth_output(
const unsigned int idx)
const override;
81 bool is_compressible ()
const override;
99 std::vector<double> &melt_fractions,
106 double reference_darcy_coefficient ()
const override;
127 parse_parameters (ParameterHandler &prm)
override;
182 const double molar_MgO_in_Mg_mantle_endmember = 0.581;
183 const double molar_SiO2_in_Mg_mantle_endmember = 0.419;
184 const double molar_FeO_in_Fe_mantle_endmember = 0.908;
185 const double molar_SiO2_in_Fe_mantle_endmember = 0.092;
188 const double melting_reference_pressure = 120.e9;
195 const double Fe_mantle_melting_entropy = 33.77;
196 const double Mg_mantle_melting_entropy = 34.33;
199 const double Fe_mantle_melting_volume = 1.51e-07;
200 const double Mg_mantle_melting_volume = 9.29e-08;
252 const unsigned int q,
261 endmember_thermal_energy (
const double temperature,
262 const unsigned int endmember_index)
const;
270 endmember_molar_heat_capacity (
const double temperature,
271 const unsigned int endmember_index)
const;
278 endmember_thermal_pressure (
const double temperature,
279 const unsigned int endmember_index)
const;
287 endmember_enthalpy_thermal_addition (
const double temperature,
288 const unsigned int endmember_index)
const;
296 endmember_entropy_thermal_addition (
const double temperature,
297 const unsigned int endmember_index)
const;
307 convert_composition_to_fraction_of_endmembers (
const double temperature,
308 const double molar_Fe_in_solid,
309 const double molar_Fe_in_melt,
310 const std::vector<double> &endmember_gibbs_energies,
311 std::vector<double> &endmember_mole_fractions_per_phase,
312 double &molar_bridgmanite_in_solid)
const;
322 compute_melt_molar_fraction (
const double porosity,
323 const double bridgmanite_molar_fraction_in_solid,
325 const std::vector<double> &endmember_mole_fractions_per_phase)
const;
334 assert_update_is_within_0_and_1 (
const double value,
335 const double change_of_value)
const;
351 double &solid_composition,
352 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