My 3D simulation doesn't represent correctly the temperature field of my ASCII file

Dear users,

I need to run a 3D simulation using Steinberger’s material model with a particular temperature field that is not reproducible in muparser. So, I created an ASCII file generated by a Python script.

This is the result that I want:

Schermata del 2024-05-06 23-03-51

It shows a mega hot perturbation surrounded by four cold perturbations. Around these, there are small perturbations. All the perturbations are present also in depth.

My ASCII file is well read by ASPECT, but when I start the simulation and see the first file, these perturbations do not look like I wanted:

I’m sure this is an ASPECT problem. I created a Python script that lets me see the produced ASCII file, and it looks correct. My theory is that, in some way, the meshes deform my geometries. As you can see from the following ParaView screenshot, the deformation follows the mesh grid:

Is there a way to solve this problem? I really need this for an article. This is my mesh setup:

subsection Solver parameters
  subsection Stokes solver parameters
    set Stokes solver type = block GMG

subsection Mesh refinement
  set Initial adaptive refinement        = 0

  set Initial global refinement          = 4
  set Minimum refinement level           = 3  
  set Refinement fraction                = 0.4
  set Coarsening fraction                = 0.05

  set Strategy                           = nonadiabatic temperature,minimum refinement function, composition, viscosity, boundary

  set Time steps between mesh refinement = 3

  subsection Boundary
    set Boundary refinement indicators = top, bottom

  subsection Minimum refinement function
    set Function constants  =
    set Function expression = if (depth > 2500000,4,if(depth > 500000,2,if(depth > 80000,4,4)))
    set Variable names      = depth,y,z

Is that caused by GMG block? If I don’t use it, my simulation becomes impossibly slow. It seems like my planet is made of rhomboidal meshes instead of a uniform grid…

Thank you all for your future help.

Dear francyrad,

Please post a minimal working ascii file and prm that demonstrates your problem (i.e. simplify your ascii file so that it is small and make your prm simple so that we can run it quickly).

Best wishes,

Separately: The way to debug this is to choose a solver like “no Stokes, no advection” that only interpolates the initial conditions. This way you know that that is what you’re looking at.

My best guess is that the picture is a confusion of coordinate systems such as using latitude in the input file when ASPECT wants to see colatitude, or similar.


1 Like

Here is a simple .prm and the ascii file, the problem is still present.

I tried to replicate the example ASCII file 3D
perturbation.prm (2.4 KB)

I hope that the problem is related to coordinates instead of meshes…

@Francyrad Like I said, you can still make this simpler. Remove the adiabatic temperature profile, set the end time to zero, remove the solver. I still think that it is a coordinate confusion issue.


1 Like

Both phi and theta in your lookup table go from 0 to 2*pi. You should fix your table and check that you understand what “theta” means: phi theta spherical coordinates - Google Search

Once your table is correct, check the ASPECT output again and let us know what you find.

Best wishes,

1 Like

Thank you all, you were right, it was a coordinate problem. I did confusion in my script and this resulted in unwanted bug, now it works:

I’ll do a cookbook for a shell 3D as soon as i can