davidson16807 / tectonics.js

3d plate tectonics in your web browser
http://davidson16807.github.io/tectonics.js/
Creative Commons Attribution 4.0 International
205 stars 28 forks source link

Need more frequent plate rifting #1

Open astrographer opened 10 years ago

astrographer commented 10 years ago

Didn't know where else to put this, so here goes.

The plates need to split more frequently. As it is, the plates tend to quickly settle in to a steady state with one gigantic slowly growing superplate and a small number of other plates, generally connected by transverse boundaries.

The result tends to be a dull, generally permanent supercontinent that usually survives the infrequent rifting events. Even the real supercontinents seem to have consisted of chance convergences of continental crust on multiple plates rather than a single hemispheric godzilla plate.

Other realism arguments: Heat build up under very large areas of thick continental crust seems likely to drive strong divergent flows that would break up such concentrations of continental material. My understanding is that the plate pattern follows an underlying convectional structure; it seems unlikely that a singly convection cell could form that is that large.

In addition to the realism arguments there is the aesthetic and technical argument against spending so many processor cycles regenerating what are essentially static maps with little interesting change.

The first solution would be simply to increase the probability or frequency of global splitting events. This is probably the easiest option to program, but aesthetically and realistically not preferable. Although supercontinents may realistically drive such concentrated rifting parties, in general it is probably more realistic if plates split and fuse individually over time.

The second solution, and, I think the better one, would be to have each plate check periodically for rifting events. Older and larger plates would be more likely to split than younger and smaller plates. This could be dealt with either by incrementing or decrementing each plate's cell_count whenever there is an interaction that involves gain or loss of cells. Another way would be simply to keep track of the age of each plate and adjust split probability up as it ages.

davidson16807 commented 9 years ago

The problem here has been a lack of models that could very precisely describe the supercontinent cycle. It's easy enough to say that supercontinents breakup due to heat build up and form from extroversion/introversion. Its another thing entirely to make predictions out of that. The model needs to very precisely express the conditions that trigger supercontinent breakup, in addition to the method by which continents disperse. This includes timings, speeds, directions, etc.

Right now the model uses the number of plates as a trigger for breakup. This is good because it guarantees there are never more than a certain number of plates on the planet, which saves on computer resources. This is bad because there is no guarantee on when breakup occurs. On average, the time to breakup is usually 0.75 - 1 billion years, which is much higher than what's observed on Earth. Still, spending so many processor cycles to simulate an uninteresting planet doesn't matter to me so long as the interface remains responsive - its the framerate that matters, and if plates get out of hand then framerates tank.

Another approach is the empirical way of doing things - the cycle repeats every 300-500 My, so base your plate speeds around that. Problem with that is now your plate speeds don't match reality. Mixed in with this is the fact that the simulation uses the extroversion model of supercontinent formation. The extroversion model has classically encountered problems with explaining how supercontinent cycles are so frequent. Its only used in this simulation because its so much easier to describe than the introversion model. The introversion model requires plate speed to be modeled by some nebulous sinusoidal function that's never provided in the literature, whereas extroversion lets me say the plates move at constant speed.

The important part:

I found a recent paper in Nature that discusses an alternative model for the supercontinent cycle (Mitchell Kilian Evans 2012). Its very much on the cutting edge, but it appears to be well grounded by observation. It makes the very concrete prediction that the center of a supercontinent will form 90 degrees away from the center of its predecessor. If I know where a supercontinent will form, I can base trajectories around that have a reasonable expectation that collision will occur. Extroversion/introversion also implicitly make predictions about where the center would be, but this is still with all their aforementioned downsides, plus I'd expect these predictions to have much less precision than what we see in the data. The orthoversion model has the potential to deliver realistic cycle durations and still maintain realistic speeds.

The problems I see with implementation are mostly technical and have to do with using 3d: finding a random point that is 90 degrees away from another given point, and then finding a set of speeds/euler poles that describe a path from one point to another that occurs in a given amount of time. I think I've got the first problem down. As for the second problem, I'm open to suggestions.

davidson16807 commented 9 years ago

commit f43b1f2 tries to steer towards a solution, while not quite getting there. Breakup events occur at random intervals ranging from 300 to 500 My. The largest plate is broken into whatever number of plates is needed to preserve a predetermined maximum. This way, the simulation maintains realistic supercontinent cycle durations while also maintaining a realistic number of plates, thereby keeping framerates in check.

redferret commented 6 years ago

astrographer came up with interesting ideas about rifting but I would think modeling convection would be best. When crust subducts it enters the mantle and sometimes dives as far below to the inner most part of the mantle creating plate grave yards. Super continents form over these grave yards and after about 300 million years the hot material rises and splits the continents up. This accumulation can give rise to larger continents being split up over time without having the need to arbitrarily or randomly split the crust. The core is one layer, over time it will cool but drives the convection. The mantle could have a simple 3D model, being maybe 4 or 5 layers thick to allow convection to occur. Or maybe more depending on user preference. This fluid would be more viscoelastic, kinda like fudge or honey. This would make the simulation more dynamic rather than having abrupt splits and rifting which make it look unrealistic.

davidson16807 commented 6 years ago

@redferret I've been skeptical about modeling 3d convection in the past because even the most recent academic papers make a big deal about simulating very basic things using that method. Also, mantle convection really doesn't have as much to do with plate motion as you'd expect. Crust can move much faster than the mantle if the conditions are right (see here, I don't have the original source) and plate speed has been shown to vary strongly by the width of the subducting slab (source), and not so much by the heat of the underlying mantle like you'd expect if it were from convecting fluid. If that sounds strange, just think of plate speed as the terminal velocity of the slab as it subducts.

That said, a performant and reliable convection model would still be an awesome thing to have. Even if it doesn't work out for mantle convection, we can use it for so much more. We could easily adapt such a model for use in simulating climate or ocean currents. If someone has the initiative to implement it, I won't discourage it. A good place to start is here

A better method might also be to simulate the crust as a mass/spring system. Picture a piece of cloth floating in a thick liquid, like honey. It has some bits of lead and styrofoam stuck onto it, so some parts sink and other parts float. As time progresses, bits of styrofoam are swapped out for lead, pieces of cloth are stitched on so every inch of the honey's surface is covered in cloth, and other pieces of cloth tear off when forces are too great. There's much less to simulate here, and it's arguably a more accurate description.

This accumulation can give rise to larger continents being split up over time without having the need to arbitrarily or randomly split the crust.

It is incorrect to say the model is arbitrarily or randomly splitting the crust. There was a time when it did, but not anymore. Nowadays, crust age is used to derive buoyancy, which is used to derive a velocity map, which is used to generate a plate map via an image segmentation algorithm. This sort of approximates the behavior we see in the real world. However, there are better ways to do this.

A simpler way to close out this issue is to switch out the image segmentation algorithm for a gradient damage model. This would dynamically decide when crust should aggregate into a plate dependent on the forces exerted on it. I have not taken the time to understand this algorithm, though.

Perhaps an even simpler solution is to keep the image segmentation algorithm, but rather than run it once every few million years, we'd run it every timestep. I've noticed the segmentation algorithm often produces slightly different output every timestep if you let it do so. This would require tweaking the current model to work with dynamic plate boundaries, which isn't that big a change in the grand scheme of things.

redferret commented 6 years ago

It is incorrect to say the model is arbitrarily or randomly splitting the crust. There was a time when it did, but not anymore. Nowadays, crust age is used to derive buoyancy.

Yes, I see that now. That's amazing. I do like the idea though of changing the rate at which the event happens when new rifting occurs. I also like the idea of having a button to trigger it. It's really fun to watch. It reminds me of this [https://www.youtube.com/watch?v=PZjPGdXMMso](Lava Lake Tectonics)