Differences between melt fraction post processor and porosity field

Hi all,

I have noticed when running models that the results from the melt fraction post processor and porosity field vary. In the mid ocean ridge cookbook, the difference in these fields can vary significantly at the same timestep (see attached figures ‘porosity’ and ‘melt fraction’ and note the dynamic color scales). Looking at the functions used to calculate the melt fraction post processor and porosity fields (melt_fractions and melt_fraction, respectively), they should produce the same results (unless they are getting different pressures and temperatures). I think the porosity field includes both melt that was generated during the current timestep as well as previous melt that may still be present (and potentially advected), but I am unsure. If this was the case how do we explain the early stages of melting in the mid ocean ridge cookbook (see attached figure ‘incipient melting’) where the porosity field is 0 but we have incipient melts according to the melt fraction post processor?

Any help is appreciated!

@mmayle - Thanks for noticing this discrepancy and posting it to the forum!

After looking through the melt_simple material model and melt_fraction postprocessor and I think the source of the discrepancy may be that they are simply using different melt models.

In detail, the melt simple material is using the melting model for dry peridotite (Katz, 2003).

The melt fraction post processor is supposed to use the melt fraction computed by the material model, but otherwise computes the melt fraction using a similar (see code beginning here) but slightly different formulation (takes into account melting of pyroxenite).

Two follow up questions:

  1. What version of ASPECT was this model run with?

  2. If they were run with the main branch, can you let us know what the commit was (located near the top of log.txt file)

  3. Would you mind checking if running the same cookbook using version 2.5 of ASPECT produces the discrepancy? If they do not appear on v2.5 and the model above was run with a very recent version of the main branch, I wonder if the discrepancy arose from a change introduced in one of the following PRs (5759, 5795). If yes, my guess is that the melt_fraction post processor may no longer be outputting the melt_fraction calculated from the material model.


Hi John,

I appreciate the help! Addressing your questions:

1 & 2) I have reproduced the discrepancy in both an older version of ASPECT (2.4-pre) and a more recent version (2.6-pre, main 3c2c7a4f8).

  1. I haven’t ran this model on v2.5 specifically, but I can if that will be useful!


Hi Micah,

You are right, the two properties are supposed to be different. If you use the melt fraction postprocessor with a material model that computes a melt fraction, then they both use the same equations to compute melting. But the postprocessor only takes into account temperature and pressure to compute an equilibrium melt fraction. The porosity is the current amount of melt present in the model. This can be different because material becomes depleted due to melting, so if the melt moves away, it will not just re-melt (because all the things that are easy to melt have already been removed). Likewise, if melt moved to a new location, it will not simply freeze there (unless the temperature drops below the solidus), so the porosity can be higher than the melt fraction. Finally, each model also has a melting time scale that you choose as an input parameter, which means that even if nothing is moving, it will take some time for material to melt (to get the porosity to the equilibrium melt fraction). That could explain why at the beginning stages, your “melt fraction” is larger than the porosity.


Thank you, Juliane! This was very helpful!