ggciag / mandyoc

MANDYOC is a finite element code written on top of the PETSc library to simulate thermo-chemical convection of the Earth's mantle
https://ggciag.github.io/mandyoc/
BSD 3-Clause "New" or "Revised" License
27 stars 5 forks source link

non-dimensional version for multigrid #91

Closed victorsacek closed 2 years ago

review-notebook-app[bot] commented 2 years ago

Check out this pull request on  ReviewNB

See visual diffs & provide feedback on Jupyter Notebooks.


Powered by ReviewNB

rafaelmds commented 2 years ago

This will be a really nice improvement for Mandyoc @victorsacek!

In the current version, the detection of a nondimensional specification is based on values of time0_scaled or veloc0_scaled. I wounder if wouldn't be better to specify a nondimensional = True flag instead.

The "scaled" values are provided in the param.txt file:

h0_scaled = {Lz0} visc0_scaled = {visc0} g0_scaled = {g0} rho0_scaled = {drho0} diffusivity0_scaled = {kappa0} temperature0_scaled = {temperature0}

But, in the param.txt file, some parameters needs to be corrected for nondimensional values:

lx = {Lx/Lz0} lz = {Lz/Lz0} viscosity_reference = {1.0e26/visc0} viscosity_max = {1.0e25/visc0} viscosity_min = {1.0e18/visc0} thermal_diffusivity_coefficient = {1.0e-6/kappa0} gravity_acceleration = {10.0/g0} density_mantle = {3300./drho0}

If we use a nondimensional flag I think this values could be evaluated by the code instead. In this case, the check for a nondimensional mode and the evaluation of the nondimensional values of those parameters should be made before the broadcast sequence of the parameters.

I don't know if I'm missing something...

victorsacek commented 2 years ago

Hello @rafaelmds

You are right. I updated the code so that the user can create the numerical setup as in the previous dimensional scenarios. In the end of the param.txt file, the user just have to add one flag: nondimensionalization = True. In this case, all the nondimensionalization is done in the Mandyoc code.

I will push this version soon.

Thank you for the suggestion.