21 #ifndef _aspect_material_model_melt_boukare_h
22 #define _aspect_material_model_melt_boukare_h
30 namespace MaterialModel
342 const unsigned int q,
352 const unsigned int endmember_index)
const;
361 const unsigned int endmember_index)
const;
369 const unsigned int endmember_index)
const;
378 const unsigned int endmember_index)
const;
387 const unsigned int endmember_index)
const;
398 const double molar_Fe_in_solid,
399 const double molar_Fe_in_melt,
400 const std::vector<double> &endmember_gibbs_energies,
401 std::vector<double> &endmember_mole_fractions_per_phase,
402 double &molar_bridgmanite_in_solid)
const;
413 const double bridgmanite_molar_fraction_in_solid,
415 const std::vector<double> &endmember_mole_fractions_per_phase)
const;
425 const double change_of_value)
const;
439 const double bulk_composition,
440 double &molar_volatiles_in_melt,
441 double &solid_composition,
442 double &melt_composition)
const;
std::vector< double > bulk_composition
std::vector< double > molar_volatiles_in_melt
std::vector< double > get_nth_output(const unsigned int idx) const override
BoukareOutputs(const unsigned int n_points)
virtual double endmember_entropy_thermal_addition(const double temperature, const unsigned int endmember_index) const
std::vector< double > specific_heat_second_coefficients
const double Fe_mantle_melting_volume
double reference_permeability
bool include_melting_and_freezing
bool is_compressible() const override
std::vector< double > reference_thermal_expansivities
double Fe_mantle_melting_temperature
virtual double assert_update_is_within_0_and_1(const double value, const double change_of_value) const
virtual double endmember_enthalpy_thermal_addition(const double temperature, const unsigned int endmember_index) const
virtual void fill_endmember_properties(const typename Interface< dim >::MaterialModelInputs &in, const unsigned int q, EndmemberProperties &properties) const
virtual double melt_fraction(const double temperature, const double pressure, const double bulk_composition, double &molar_volatiles_in_melt, double &solid_composition, double &melt_composition) const
double reference_darcy_coefficient() const override
virtual double endmember_thermal_energy(const double temperature, const unsigned int endmember_index) const
double melting_time_scale
void parse_parameters(ParameterHandler &prm) override
const double Mg_mantle_melting_volume
const double molar_MgO_in_Mg_mantle_endmember
std::vector< typename EndmemberState::Kind > endmember_states
const double molar_FeO_in_Fe_mantle_endmember
double reference_temperature
const double molar_SiO2_in_Mg_mantle_endmember
std::vector< double > bulk_modulus_pressure_derivatives
std::vector< double > tait_parameters_c
std::vector< double > reference_bulk_moduli
void create_additional_named_outputs(MaterialModel::MaterialModelOutputs< dim > &out) const override
void melt_fractions(const MaterialModel::MaterialModelInputs< dim > &in, std::vector< double > &melt_fractions, const MaterialModel::MaterialModelOutputs< dim > *out=nullptr) const override
void evaluate(const typename Interface< dim >::MaterialModelInputs &in, typename Interface< dim >::MaterialModelOutputs &out) const override
double thermal_conductivity
virtual double endmember_thermal_pressure(const double temperature, const unsigned int endmember_index) const
virtual double endmember_molar_heat_capacity(const double temperature, const unsigned int endmember_index) const
static void declare_parameters(ParameterHandler &prm)
std::vector< double > reference_entropies
std::vector< double > reference_specific_heats
virtual void convert_composition_to_fraction_of_endmembers(const double temperature, const double molar_Fe_in_solid, const double molar_Fe_in_melt, const std::vector< double > &endmember_gibbs_energies, std::vector< double > &endmember_mole_fractions_per_phase, double &molar_bridgmanite_in_solid) const
double thermal_viscosity_exponent
double thermal_bulk_viscosity_exponent
std::vector< double > reference_enthalpies
std::vector< double > tait_parameters_a
virtual double compute_melt_molar_fraction(const double porosity, const double bridgmanite_molar_fraction_in_solid, EndmemberProperties &properties, const std::vector< double > &endmember_mole_fractions_per_phase) const
const double Fe_mantle_melting_entropy
std::vector< double > bulk_modulus_second_pressure_derivatives
const double melting_reference_pressure
double Mg_number_of_moles
const double molar_SiO2_in_Fe_mantle_endmember
std::vector< double > Einstein_temperatures
const double Mg_mantle_melting_entropy
std::vector< double > specific_heat_third_coefficients
double Fe_number_of_moles
std::vector< double > molar_masses
std::vector< double > number_of_atoms
double reference_pressure
std::vector< double > reference_volumes
void initialize() override
std::vector< std::string > endmember_names
double Mg_mantle_melting_temperature
std::vector< double > tait_parameters_b
std::vector< double > specific_heat_linear_coefficients
EndmemberProperties(const unsigned int n_endmembers)
std::vector< double > gibbs_energies
std::vector< double > volumes
std::vector< double > thermal_expansivities
std::vector< double > heat_capacities
std::vector< double > entropies
std::vector< double > bulk_moduli