Hi Katherine,
I am not the best person to answer your question, but I can get things started.
It’s hard to work out from your question how you have approached solving your scientific problem, and where you are having trouble (with ASPECT structure or C++ in general). It is often useful to show us what you’ve tried, and what isn’t working.
For example, if I wanted help with one of my branches, I might post this link: https://github.com/geodynamics/aspect/compare/main...bobmyhill:aspect:default_field_types#diff-1f480c35650ca7d27fb07159e9c41bf94aefde397fbd31fdc6d15a3392a6d7c5R261
and ask a question about line 261 in include/aspect/material_model/visco_plastic.h
on the branch default_field_types
.
Ok, now a preliminary attempt to help answer your question.
I was computing a new model using the MeltSimple template just for the calculus of melt fractions and extract the melt statistics in the postprocessors, but I can not do it because the plugin is designed to return a double and if I want to use the “const double depth = this->get_geometry_model().depth(in.position[i]);” I should do the declaration of position, then the declaration of “in” and finally I should replace the double for the void.
If I thought that this was something you should be changing, I would ask you to show us what you tried and what the error was. But for your problem, I do not understand why you are trying to change this bit of melt_simple.cc
, which already does what you want it to do … take a pressure and temperature and calculate a melt fraction.
You may wish to use melt_global.cc
as a template rather than melt_simple.cc
, as a relevant cookbook uses that material model (see below), and you may end up writing less code.
The goal of my models is to localize the melting points and I think that the melt statistics postprocessor might give me this information.
The Visualization postprocessor should give you melt fraction (search for “melt fraction” in the test prms to find several examples).
… I am working with the Boussinessq Approximation and I am not clear how to replace the “adiabatic_conditions” because I need to analyze the convection.
I’m not sure what your problem is here, so let’s look at this another way; what do you need to add to existing ASPECT functionality to solve your scientific problem? The most relevant cookbook is cookbooks/global_melt/global_melt.prm
, which is the second example described here: Melt migration in a 2D mantle convection model — ASPECT 2.6.0-pre. It implements melting, melt migration and convection.
Using that as a starting point, you need to change the melt model from the anhydrous mantle model to a Ganymede-relevant one (it’s not obvious to me how you want to do that, because I think of ice sheets as pure water ice, and one-component systems need special treatment, see Prof. Dannberg et al’s 2022 paper; entropy method for geodynamic modelling of phase transitions: capturing sharp and broad transitions in a multiphase assemblage | Geophysical Journal International | Oxford Academic), and also add tidal shear heating (which it sounds like you’ve done). Are there more things you need to consider / problems you need to solve?
Best wishes,
Bob