Input for Mid-Ocean Ridges


I am trying to run a couple of models for mid-ocean ridges, specifically to see what happens to the uprising mantle. I saw one cookbook for the mid-ocean ridges but it is just for one side of the ridge. I tried to make it two-sided but I couldn’t do that. I wonder that does anyone have other mid-ocean ridge input? After these models, I also want to test the plume-driven mid-ocean ridges. Also, do you have any inputs to test this mechanism?


Hi Omer,

I contributed the mid-ocean ridge cookbook. Can you be more specific about what exactly you want to do or what is not working? Do you have anything in your model that makes the flow asymmetric, or do you have another reason why you want to make the model two-sided? I made it one-sided to save computational time, because the left half would look exactly the same as the right half. If you want to add a plume, you have to change the temperature boundary condition at the bottom of the model.


Hi Omer,

I am pasting the relevant parts from your email here (since you said you’re fine with posting the question here, and this way, others who have similar questions in the future will be able to find this answer).

You were asking:

Right now, what I am trying to do is, making your mid-ocean ridge model for both sides. Because we want to investigate the behaviour of the rising mantle after reaches the surface for both sides. This could be the first driving mechanism. The second one could be the mantle plumes that we want to perform some models too.

I just want to restate what I said before: If you do not also introduce some sort of asymmetry in the model, for example in the initial and boundary conditions, the left and right side of your model will look exactly the same. If you just want to visualize that, you can do that in ParaView (for example, by loading in the model twice and rescaling one of them under “Transforming”, changing the x scale from 1 to -1). If your model is symmetric, it will look exactly like that, but you will have used twice the computing time.

But if there’s something that would make the models asymmetric, one way to model the full ridge would be this: In your input file (I’ve copied the relevant section below), remove the line set Tangential velocity boundary indicators = left and instead add the left boundary to the Prescribed traction boundary indicators (in the same way as the others: left:initial lithostatic pressure). However, this might make it trickier for the model to converge, because you now have three open boundaries (left, right, bottom), and in addition, the velocity at your top boundary jumps from -u0 to u at x=0. To avoid this abrupt jump, in the cookbook I introduced a quadratic term within 10 km of the ridge axis that slowly lets the velocity go to zero. So you might want to do something similar.

subsection Boundary velocity model
  set Prescribed velocity boundary indicators = top:function
  set Tangential velocity boundary indicators = left 
  subsection Function
    set Coordinate system   = cartesian
    set Function constants  = u0=0.03, x0=250e3
    set Variable names      = x,z
    set Function expression = if(x<x0, -u0, u0); 0

subsection Boundary traction model
   set Prescribed traction boundary indicators = right:initial lithostatic pressure, bottom:initial lithostatic pressure

In addition, you need to make a change in your geometry model: The way you have set it up (see below), x=0 is at the left, not the center of the model domain. You can change that by additionally setting the parameter set Box origin X coordinate = -250e3 (or whatever value half of the horizontal extent of the box is). In addition, make sure that the ratio of the X extent and Y extent is approximately the same as the ratio of the X repetitions and Y repetitions. This makes sure your cells are close to quadratic rather than being elongated.


Hello Dr. Dannberg,

Thanks for your reply. I’ll try to fix these issues.

Best regards,