Problem about initial temperature model

Hi there,
I am a beginner of ASPECT.
Now,i want to test a simple model with initial topography .
I want to set a initial temperature that increasing with depth.
But I found that the result seems wrong :
1、 Initial temperature changes only at the bottom of the model, not throughout the model


2、 I’m not sure if P represents pressure, and if so, why does it have a positive value. Normally, at surface pressure is zero.

gravity-box.prm (6.2 KB)
simple-geometry.txt (211 Bytes)
temperature.txt (1.9 KB)

I look forward to your reply.
Best regards,
HangWu

Hi Hang,

Welcome! Thank you for posting the question to the forum and all of the files needed to examine the issue. A few answers below.

First, I imagine you have already seen the tests that use the same the method for the initial temperature (ascii profile):
temperature profile
initial temperature profile test prm file

1、 Initial temperature changes only at the bottom of the model, not throughout the model

To start, what you have implemented looks correct for the initial temperature.

subsection Initial temperature model
  set Model name = ascii profile

  subsection Ascii data model
     set Data directory = /home/aspect/aspect/build/test-gravity/
     set Data file name = temperature.txt
     set Scale factor = 1
  end
end

Likewise, the depth values in temperature.txt are consistent with your model geometry.

Request - can you also post the log.txt from your simulation to ensure that the correct temperature.txt is in fact being read? I can’t imagine it is not (an error should be thrown), but it would be good to check.

What appears to be happening is that the bottom and top temperatures are set from the boundary temperature model section, but the initial temperature values are not read in correctly.

Can you try the following:

  1. Remove the initial topography from the simulation (flat upper boundary)? That may produce an issue, as the reference point for the starting depth is not constant in this model. However, I would have expected a different issue to arise.

  2. See what happens when the boundary temperatures are set by the initial conditions via?:

subsection Boundary temperature model
set Fixed temperature boundary indicators = bottom, top
set List of model names = initial temperature
end

I’m not sure if P represents pressure, and if so, why does it have a positive value. Normally, at surface pressure is zero.

Yes, p represents pressure. I think what you must be seeing is entirely some sort of dynamic effect (what does flow field look like?), as you have a normal value of gravity (9.8), but the material properties are those that would normally be used for a nondimensional simulation:

subsection Gravity model
set Model name = vertical

subsection Vertical
set Magnitude = 9.8
end
end

subsection Material model
set Model name = simple

subsection Simple model
set Reference density = 1
set Reference specific heat = 1
set Reference temperature = 0
set Thermal conductivity = 1
set Thermal expansion coefficient = 1
set Viscosity = 1
end
end

To summarize, I think there may be a combination of factors producing the odd results.

A suggestion - I would try starting from this example, and piece by piece change the model design (initial temperature, geometry, etc) towards your desired model design. After changing each parameter, rerun the model to make sure it is behaving in the expected manner:

Cheers,
John

Hi,John
Based on your suggestion, I ran some tests.
1、remove the initial topography and retain original boundary temperature conditions


2、set boundary temperature by the initial condition and retain the initial topography

So, I think there may be a problem reading the initial temperature file .
log file as follows ( original model ):
log.txt (2.9 MB)

Hi Hang,

Sorry for the delayed reply and I think I’ve sorted out the issues with the parameter file, which are as follows.

The Initial temperature model portion of the prm file you posted contained the following:

subsection Initial temperature model
  set Model name = ascii profile

  subsection Ascii data model
     set Data directory = /home/aspect/aspect/build/test-gravity/
     set Data file name = temperature.txt
     set Scale factor = 1
  end
end

The issue here is that what you provided beneath set Model name = ascii profile is subsection Ascii data model rather than subsection Ascii profile

As a result, the code used the default file for the Ascii profile (see relevant code here).

This is actually the same file I linked to earlier along with the associated test prm file:

Given the scale difference between this setup and your setup, the initial temperature was effectively uniform everywhere in your model, except at the boundaries where you had specified different values.

After switching to using subsection Ascii profile, an additional error appeared when reading the file due to periods being located after e+02. and e+03. The model ran successfully after removing those periods, and the min/max temperature were correct. On the latter point, I also switched to the following parameters for the boundary temperature to make sure the reported boundary temperature was consistent with the imposed initial temperatures.

subsection Boundary temperature model
  set Fixed temperature boundary indicators = bottom, top
  set List of model names = initial temperature
end

Can you try implementing these changes on your end, and report back if it resolves the issue?

Cheers,
John

Hi,John
Thanks for your answer!
I succeeded in setting the initial temperature through your suggestion !
But now,I have a new question:
I found that there was some error in dividing different compositions with the initial topography, and when I removed the initial topography, the error disappeared :
image

You can see that at depths of 20km and 40km, there are some prominent changes(the yellow line).
Is this a bug? The strange variation affects density, pressure, and thus local viscosity.

Best regards
HangWu
gravity-box.prm (4.4 KB)
log.txt (59.5 KB)
simple-geometry.txt (232 Bytes)
temperature.txt (2.2 KB)

Glad to hear that the initial temperature setup is now working as intended.

This is due to the added initial topography, and the fact that you are defining the compositional field layering in terms of depth (i.e., h-y). If you define the compositional field layering in terms of just model height, it should resolve the issue (potential fix to try below):

set Function expression = if ( h<=60.e3, 1, 0); \
                          if (h>60.e3 && h<=80.e3, 1, 0); \
                          if (h>80.e3, 1, 0);