Help w/ Different Boundary Temperature Models


Hello all -
I am new to ASPECT and in the process of trying some things out for a future project. I hope I am not asking something that has been addressed elsewhere - I did try to look around.

I am trying to assign a constant temperature to the lower radii boundary (in a 2D Spherical Shell) and a functional temperature on the upper. For example, T_lower = 5000, T_upper = 100 + 100*sin(phi). The documentation is great at explaining how to do these individually, but I did not see how to have two different models simultaneously. I did see that this is done for the boundary velocity in “Convection in a box with prescribed, variable velocity boundary conditions” by…

set Tangential velocity boundary indicators = left, right, bottom
set Prescribed velocity boundary indicators = top: function

However, I get parsing errors when I try to do a similar “outer: function, inner: spherical constant”.

Apologies if this is not an appropriate place to post this question.
Thank you for any suggestions!
Joe Renaud


Hi Joe,

welcome to the ASPECT community!
You are correct, currently there is no way to assign different boundary temperature plugins for different boundaries (although this is work in progress, and we have an open pull request to add this feature).
In the meantime, it is probably the easiest way to just use the function for all boundaries, and change your function expression to something like

if(r>r0, 100 + 100*sin(phi), 5000)

You would choose r0 as a radius somewhere in the middle of the model, so for example as
inner_radius + 0.5 (outer_radius - inner_radius)
This way your T_lower will be assigned at the inner boundary (for radii smaller than r0), and your T_upper will be assigned at the outer boundary.