Freezing in Katz2003_mantle_melting.cc

Hi,

I am a french PhD student working on continental rifting and melt migration. I have a question about the implementation of freezing when using fractional melting in the Katz2003MantleMelting material model.

According to the parameter documentation for Use fractional melting, setting it to true seems to account for fractional melting, including the effect of depletion on the solidus and freezing of melt :

“If fractional melting should be used (if true), including a solidus change based on depletion […], and freezing of melt when it has moved to a region with temperatures lower than the solidus”.

However, looking at katz2003_mantle_melting.cc, I am not sure I understand how this works when Use fractional melting = true.

The relevant part of the code appears to be between lines 195 and 245 (see attached file).

Unless I am misunderstanding the implementation, the explicit freezing parameterization using freezing_amount and freezing_rate appears to be inside the else branch, i.e. when fractional_melting == false.

Does this mean that the Freezing rate parameter is not applied when Use fractional melting = true, or is freezing handled differently in the fractional melting case ?

I may simply be misunderstanding the logic, so any insight would be very helpful.

Thank you very much!

Hi Clarisse_KE,

Thanks for the post and welcome to the community! I agree with you that this looks wrong, thank you very much for bringing this up. This Use fractional melting is not currently covered by our tests which explains why this has slipped through the cracks until now.

If you want to give it a try, you can open up a pull request to ASPECT’s GitHub to fix this? You would just need to adjust the if condition and add a test to make sure we catch something like this in the future. It’s great experience if you haven’t done something like this already! Otherwise, I can open up a Pull Request to address this issue at some point in the next day or so.

Cheers,

Daniel

Hi Daniel,

Thank you very much for your quick response and for confirming the issue!

I agree that opening a pull request would be a great experience, but although the fix seems relatively straightforward, I do not feel confident enough with C++ to implement it and the corresponding test properly, so I would rather not attempt it…

Thanks again for your help and for offering to address the issue.

Clarisse

Hi @Clarisse_KE – that would be an opportunity to learn :slight_smile: Patches are rarely perfect on first go, and sometimes pretty incomplete. We are quite happy to give feedback and iterate on patches until they are ready to merge!

Best
Wolfgang

Hi Wolfgang,

Thank you for the encouragement! I completely agree that it would be a good opportunity to learn. However, at this stage of my PhD, my main limitation is really time rather than motivation. I am currently in the third year of my PhD and, with the workload associated with the final stages of my thesis, I am quite short on time and would prefer not to take this on myself.

I’m sorry that I can’t take this on at the moment, and I really appreciate the offer to help.

Best,

Clarisse

Hi Clarisse,

I just opened up a Pull Request, that you can see here: Fix "Use fractional melting" by danieldouglas92 · Pull Request #7354 · geodynamics/aspect · GitHub. If you want you can try running a model with the changes in that PR and check that it works and looks ok?

Thanks again for bringing up this bug!
Cheers,
Daniel

@Clarisse_KE

Just following up on this again, I tagged the original writer (@jdannberg) of the Katz 2003 reaction model in my PR to make sure that the changes made sense (because I don’t ever actually use the Katz 2003 reaction model myself), and she said that the original implementation is actually correct. Setting Use fractional melting to true uses an approximate formulation that was not actually implemented by Katz et al., in their publication. Juliane updated the documentation to make this more clear, and you can see the changes she made in her pull request here.

Thanks again for bringing this up on the forum, we (and future users) really appreciate it!

Cheers,
Daniel

Hi Daniel,

Thank you very much for following up on this and for checking with Juliane Dannberg. Her explanation makes things much clearer to me now.

And thank you both for taking the time to look into this and clarify the documentation. Sorry for the extra work this caused!

Cheers,
Clarisse

1 Like