Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Melt model according to Phipps Morgan 2001 #8

Open
wants to merge 25 commits into
base: melt_visco_plastic_PM01_base
Choose a base branch
from

Conversation

anne-glerum
Copy link
Owner

This PR adds a new material model for an olivine solid solution according to Phipps Morgan (2001). The solid solution consists of an iron (Fe) and a magnesium (Mg) endmember; both can melt to produce Fe and Mg melts.

The material model is a simplification of the Boukare material model created by J. Dannberg, R. Myhill, R. Gassmoeller and S. Cottaar.

For all pull requests:

For new features/models or changes of existing features:

  • I have tested my new feature locally to ensure it is correct.
  • I have created a testcase for the new feature/benchmark in the tests/ directory.
  • I have added a changelog entry in the doc/modules/changes directory that will inform other users of my change.

const double Xls = 1. - ((1. - p_Fe_mantle) / (p_Mg_mantle - p_Fe_mantle));

// Melting occurs when delta G = 0
const double T_Fe_mantle = (Fe_delta_E + P * Fe_mantle_melting_volume + 0.5 * P * P * Fe_delta_V_prime_fusion) / Fe_mantle_melting_entropy;

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This variable name is unclear.
From what follows, T_??_mantle is equal to (T_melting_?? - T).

In the model implemented here, the entropy of melting is globally constant, so

(T_melting_?? - T) = T_??_mantle = dG_??_mantle / ??_mantle_melting_entropy.

// in this simple model, the bulk composition is just one number, namely
// the molar fraction of the combined iron endmembers
const double bulk_composition = old_melt_composition * melt_molar_fraction + old_solid_composition * solid_molar_fraction;
// Q! solid_composition is already defined above!

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The solid and melt compositions need to be updated if there is melt transport (because the melt and solid can react with each other at each time step)

Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, it's just that in line 649 double solid_composition = ... is already defined. I've removed it here now, but it's the same in melt_boukare; it shouldn't change anything though.

melt_out->compaction_viscosities[q] = (1.0 - porosity) * xi_0 / std::max(porosity, porosity_threshold);

const double delta_temp = in.temperature[q]-this->get_adiabatic_conditions().temperature(in.position[q]);
// Q! Why this particular cutoff 1e-4-1e4?

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You would need to ask Juliane about this, but I suspect it's because melting sometimes led to a very large temperature dependence on the viscosity, and that was a problem for convergence.

"and reference pressure."
"Units: J/kg/K.");
// Holland & Powell Table 2a, b, given in [1e5 kJ/K^2/mol] (so *1e3/1e5) Q!
// Q! in D2021, Table 1A, the unit is J/K2/mol instead of J/kg/K/K.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, these are molar values, rather than specific values - thermodynamics is easier in molar quantities. We convert to specific values before using the heat capacities in the heat equation.

Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's just that the unit given for C1 in declare_parameters of melt_boukare is J/kg/K/K and in table A1 J/K2/mol, while the values for C1 in both places are the same. Same for C2. I'll change the units here to molar.

@anne-glerum anne-glerum force-pushed the melt_visco_plastic_PM01 branch from 4d6e22e to 85217e3 Compare April 15, 2021 19:31
@anne-glerum anne-glerum force-pushed the melt_visco_plastic_PM01 branch from 85217e3 to 8ef45fd Compare June 30, 2021 13:43
@anne-glerum anne-glerum force-pushed the melt_visco_plastic_PM01_base branch from efe991b to 6b87092 Compare February 24, 2022 09:47
@anne-glerum anne-glerum force-pushed the melt_visco_plastic_PM01 branch from 8ef45fd to e87edc1 Compare February 25, 2022 16:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants