Using lookup tables for density etc. in visco-plastic material model

Hi forum,

I’m currently trying to implement phase transitions in visco-plastic material model using a lookup table, which I’ve computed. The material model section in my .prm file looks following

subsection Material model
  set Model name           = visco plastic
  set Material averaging = harmonic average only viscosity

  subsection Visco Plastic
    set Viscous flow law 	                  = composite
    set Viscosity averaging scheme    = geometric
    set Reference temperature           = 493.15

    set Data directory                   = ./ 
    set Material file names           = lookup_table_basalt.txt

    set Minimum viscosity             = 1e20
    set Maximum viscosity            = 1e24
    set Reference strain rate         = 1e-15 
  end
end

and the first 15 lines of the said lookup table

# P(bar) T(K) rho,kg/m3 alpha,1/K cp,J/K/kg h,J/kg phase
10 0 3268.86934382776 0.00002 1000 0 9
1010 0 3367.62948552752 0.00002 1000 0 10
2010 0 3376.11665066179 0.00002 1000 0 10
3010 0 3386.28501129174 0.00002 1000 0 9
4010 0 3405.99054793159 0.00002 1000 0 9
5010 0 3538.01345627944 0.00002 1000 0 9
6010 0 3548.4747437883 0.00002 1000 0 9
7010 0 3552.55621070194 0.00002 1000 0 9
8010 0 3554.31888561329 0.00002 1000 0 9
9010 0 3557.18695440374 0.00002 1000 0 9
10010 0 3560.0201972444 0.00002 1000 0 9
11010 0 3563.57390744365 0.00002 1000 0 8
12010 0 3566.3170845733 0.00002 1000 0 8
13010 0 3569.03780895837 0.00002 1000 0 8

and the ASPECT version I’m using

-----------------------------------------------------------------------------
--                             This is ASPECT                              --
-- The Advanced Solver for Planetary Evolution, Convection, and Tectonics. --
-----------------------------------------------------------------------------
--     . version 3.1.0-pre (main, 85802d983)
--     . using deal.II 9.5.2
--     .       with 32 bit indices
--     .       with vectorization level 2 (AVX, 4 doubles, 256 bits)
--     . using Trilinos 14.4.0
--     . using p4est 2.3.6
--     . using Geodynamic World Builder 1.0.0
--     . running in OPTIMIZED mode
--     . running with 32 MPI processes
-----------------------------------------------------------------------------

Now, the material properties (density, expansivity, specific heat, heat production) output from ASPECT are still the default values, not ones in the lookup table in certain P-T conditions. I’d like to dictate values only of those four variables using lookup tables, leaving e.g. rheological parameters untouched.

So, the question would be that am I missing something in the parameter file, or has the lookup table some sort of formatting issue? I couldn’t find really anything useful or explanative from the manual, tests, cookbooks or previous publications.

best,
Leevi

Hi there! @leevit
I’m not a dev- but I think the issue is with your lookup table format.
From aspect/source/material_model/utilities.cc line 532: The PerplexReader function seems to want a few lines of header describing the table before it acknowledges the column names despite yours being correct.

“The following lines read in a PerpleX tab file in standard format
The first 13 lines are a header in the format:
|<perplex version
table filename
grid dim
<grid variable 1> (usually T(K) or P(bar))
<min grid variable 1>
<delta grid variable 1>
<n steps grid variable 1>
<grid variable 2> (usually T(K) or P(bar))
<min grid variable 2>
<delta grid variable 2>
<n steps grid variable 2>
Number of property columns in the table
Column names”

I found an example in aspect/data/material-model/steinberger/pyr.ringwood88.txt

Thanks for the idea and pointing out utilities.cc file! I’ve come across with PerpleX format while reading the manual but I was rather trying to use HeFESTo format, which has slightly simpler header formatting. Example of such format can be found here: aspect/data/material-model/steinberger/test-steinberger-compressible/constant_material_small_hefesto.txt at main · geodynamics/aspect · GitHub i.e. the format in that example lacks any kind of headers. Li et al. (https://doi.org/10.1029/2024GC011600 and How Phase Transitions Impact Changes in Mantle Convection Style Throughout Earth's History: From Stalled Plumes to Surface Dynamics: Data) use headers similar to mine.

Of course it could be impossible to use HeFESTo format in visco-plastic model, so I guess I have to explore other options as well.

best,
Leevi

Hi Leevi,

Have you check the default input file “material_table_temperature_pressure_small.txt”?
It looks like this lookup table has a column of entropy “s,J/K/kg” which is missing in the lookup table you used. As the manual mention that the lookup table has to contain at least eight column, I would assume the entropy column is necessary to use viscosity plastic material model with lookup table.

Hope this information is helpful!
Best,
Lucy