Anyone who follows me on Twitter has surely seen me kvetching a whole lot about fault meshing lately. I figure, given my whines and curses, that I owe you all an explanation of what exactly it is that I’ve been doing.
I’m a fault/rupture modeler. I try to answer questions about fault physics, hypothetical earthquakes, and ground motion by way of computer models. In order to have a real tectonic earthquake, you need a real fault to engage in slip. The same holds true for a model – the duration of the model itself is the earthquake, but prior to that, you need some model faults. That’s what the mesh is – it sets up the chunk of earth in which you’re interested, and puts some faults in it.
The reason it’s a mesh and not a continuum has nothing to do with the actual geology and everything to do with the computational method. There are types of models that use a continuum, but the one I use, called finite-element modeling, requires a grid of some sort. It would be quite difficult to figure out the stresses and slip rates and ground motions through an undivided area over every timestep of a model. In this method, the model software looks at each individual element and does the physics there – Newton’s laws, equations of motion and of elasticity – then sums together all of the nodes at each timestep to get what’s going on the fault and in the area around it throughout the course of the model earthquake.
So what’s so tricky about making one of these meshes? For a fault with simple geometry, it’s not a big deal. A nice planar fault is easy to put into a mesh of elements of any shape, but faults in nature are almost never planar. Putting a bend in a fault can be easy or hard depending on the meshing software – sometimes it’s built in, sometimes it requires nudging nodes on the fault manually – but either way, you have to be aware of the angle of the bend and whether or not it’s distorting the elements too much for them to have reliable output. If there’s a break in the fault trace, if the mesher isn’t pre-coded for such things, you have to be worried about conforming the non-fault part of the mesh around these breaks. In some meshers, you have to set up the individual blocks of material around the fault, not just set up a solid block and stick faults in it; in those cases, you need to make sure the nodes and elements all line up, and that only gets trickier with more blocks and with more geometrical complexities.
The fault I’ve been meshing is full of geometrical complexities (and yet still far simplified from the USGS map of its surface expression!). It consists of two main segments, each with three bends, separated by between 1 and 5 kilometers, and overlapping by about 25 kilometers. There’s a small planar fault between the two big ones. This system is far too complicated for the built-in mesh software in the modeling code I normally use. I’ve had to do the trigonometry on more bends and fit more mesh blocks into gaps than is really good for personal sanity. There exist commercial meshing programs that could do this incredibly easily, but configuring their output to work in the fault modeling software is a whole different and frustrating can of worms. Someone who interns in our lab is working on doing that; for meshing this particular complex fault, we went with the older software. It may be clumsy, but it works.
At the time of writing this, the mesh of that system is completed at last, and I’m inflicting some hypothetical earthquakes on it as we speak. This means, now that you’ve reached the end of this post, I probably won’t be whining about this any more for a while! If you’re interested in the results of the models, drop by my poster at the AGU fall meeting in San Francisco on Thursday the 7th of December!