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;
95 std::vector<double> &melt_fractions)
const override;
101 double reference_darcy_coefficient ()
const override;
122 parse_parameters (ParameterHandler &prm)
override;
177 const double molar_MgO_in_Mg_mantle_endmember = 0.581;
178 const double molar_SiO2_in_Mg_mantle_endmember = 0.419;
179 const double molar_FeO_in_Fe_mantle_endmember = 0.908;
180 const double molar_SiO2_in_Fe_mantle_endmember = 0.092;
183 const double melting_reference_pressure = 120.e9;
190 const double Fe_mantle_melting_entropy = 33.77;
191 const double Mg_mantle_melting_entropy = 34.33;
194 const double Fe_mantle_melting_volume = 1.51e-07;
195 const double Mg_mantle_melting_volume = 9.29e-08;
247 const unsigned int q,
256 endmember_thermal_energy (
const double temperature,
257 const unsigned int endmember_index)
const;
265 endmember_molar_heat_capacity (
const double temperature,
266 const unsigned int endmember_index)
const;
273 endmember_thermal_pressure (
const double temperature,
274 const unsigned int endmember_index)
const;
282 endmember_enthalpy_thermal_addition (
const double temperature,
283 const unsigned int endmember_index)
const;
291 endmember_entropy_thermal_addition (
const double temperature,
292 const unsigned int endmember_index)
const;
302 convert_composition_to_fraction_of_endmembers (
const double temperature,
303 const double molar_Fe_in_solid,
304 const double molar_Fe_in_melt,
305 const std::vector<double> &endmember_gibbs_energies,
306 std::vector<double> &endmember_mole_fractions_per_phase,
307 double &molar_bridgmanite_in_solid)
const;
317 compute_melt_molar_fraction (
const double porosity,
318 const double bridgmanite_molar_fraction_in_solid,
320 const std::vector<double> &endmember_mole_fractions_per_phase)
const;
329 assert_update_is_within_0_and_1 (
const double value,
330 const double change_of_value)
const;
346 double &solid_composition,
347 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