I have a question about the Rayleigh number that the basic statistics postprocessor returns. To demonstrate the question I’ve run the shell_simple_3d.prm cookbook with slight modification (I’m pasting the content of the parameter file below since as a ‘new user’ of the form I don’t seem to be allowed to add attachments). Following the equation in the manual, the material model should result in a Rayleigh number of 0.910e+07.
However, when running the parameter file it returns a Rayleigh number of 1.00e+07 (see log file). The reason for this is that the Reference density is returned as 3458.4 instead of 3300, which is the value of the material model. Looking at the simple material model, the reference density is returned as an average:
out.densities[i] = MaterialUtilities::average_value(volume_fractions, eos_outputs.densities, MaterialUtilities::arithmetic);
Given that the reference temperature is 1600, a density of 3458.4 is obtained at T = 0. I’m not really sure how this can be the average over any part of the model domain and is not reflective of the total average density. I don’t know the averaging function too well so wanted to check with you all if you see what’s going wrong. Why is the reference density not closer to 3300?
The difference in reference density also propagates into a reference thermal diffusivity that differs between what the log prints vs. what would be calculated based on the parameter file.
Thank you for your help!! The relevant part of the log file and the parameter file are pasted below.
relevant part of log file
– This is ASPECT, the Advanced Solver for Problems in Earth’s ConvecTion.
– . version 2.2.0-pre (master, 729c918e1)
– . using deal.II 9.0.0
– . with 32 bit indices and vectorization level 1 (128 bits)
– . using Trilinos 12.12.1
– . using p4est 2.0.0
– . running in DEBUG mode
– . running with 1 MPI process
Number of active cells: 768 (on 2 levels)
Number of degrees of freedom: 28,690 (20,790+970+6,930)
*** Timestep 0: t=0 years
Solving temperature system… 0 iterations.
Rebuilding Stokes preconditioner…
Solving Stokes system… 118+0 iterations.
Model domain depth (m): 2.89e+06 Temperature contrast across model domain (K): 3000 Reference depth (m): 0 Reference temperature (K): 0 Reference pressure (Pa): 0 Reference gravity (m/s^2): 9.81 Reference density (kg/m^3): 3458.4 Reference thermal expansion coefficient (1/K): 3e-05 Reference specific heat capacity (J/(K*kg)): 1250 Reference thermal conductivity (W/(m*K)): 4.125 Reference viscosity (Pa*s): 7.72399e+21 Reference thermal diffusivity (m^2/s): 9.54198e-07 Rayleigh number: 1e+07
A simple setup for convection in a 3d shell. See the
manual for more information.
set Dimension = 3
set Use years in output instead of seconds = true
set End time = 0
set Output directory = output-shell_simple_3d
subsection Material model
set Model name = simple
subsection Simple model
set Reference density = 3300
set Viscosity = 7.72399e21
set Thermal expansion coefficient = 3e-5
set Reference temperature = 1600
set Thermal conductivity = 4.125
set Reference specific heat = 1250
subsection Geometry model
set Model name = spherical shell
subsection Spherical shell
set Inner radius = 3481000
set Outer radius = 6371000
subsection Boundary velocity model
set Zero velocity boundary indicators = bottom
set Tangential velocity boundary indicators = top
subsection Boundary temperature model
set Fixed temperature boundary indicators = top, bottom
set List of model names = spherical constant
subsection Spherical constant
set Inner temperature = 3300
set Outer temperature = 300
subsection Initial temperature model
set Model name = function
set Function expression = 1.473e3
subsection Gravity model
set Model name = radial constant
subsection Radial constant
set Magnitude = 9.81
subsection Mesh refinement
set Initial global refinement = 1
set Initial adaptive refinement = 0
set Strategy = temperature
set Time steps between mesh refinement = 15
set List of postprocessors = basic statistics