New Mexico Tech
Dept. Earth & Env. Science

Ronni Grapenthin - CrusDe Project

CrusDe - CRUStal DEformation modeling based on Green's method

CrusDe is a plug-in based simulation framework to study effects due to changes in loads resting on the Earth's surface. Such changes could for example involve a melting glacier, oscillating snow loads, or lava flows. The focus in the simulation could be the response of the Earth's crust in terms of stress changes, changes in strain rates, or simply uplift or subsidence and the respective horizontal displacements of the crust (over time). Users are enabled to:



It's been available for a while now, but I forgot to post it here - a paper on CrusDe is in press in Computers & Geosciences: "CrusDe: A plug-in based simulation framework for composable Crustal Deformation studies using Green's functions" [pdf]. The paper describes the current theory and implementation, and goes over some tests. Some more details (sequence diagrams etc) can still be found in my thesis [pdf].


I migrated CrusDe to github. The subversion repository will not be available for much longer. The development version can be obtained via:

> git clone git://

Make sure to check the INSTALL file for instructions on dependencies and installation order.


It was about time to pack up another release. Though I recommend download via svn it seems quite a few people prefer the download of gzipped tar archives. So, here's version 0.3.0.


I am getting back to coding these days. The current repository version now has the added ability to actually tell you that the file you're trying to execute with CrusDe is non-existant. Also I added a new Makefile target debug which will give you all the details you don't really care about. Hence make all results in output that's stripped to the essentials. Remember that you can use crusde -q to get a really quiet run. I recommend a fully new built:

> svn update
> cd src && make clean
> make all


Finally, a couple more examples! I'll try to expand this section a little more over the coming months, but my main focus these days is to include more sophisticated Earth models into CrusDe and simplify the installation process. I expanded the command line options a little bit:

> crusde -p install

This way plug-ins can be installed without invoking the GUI. The main reason for this feature is to provide a script that automatically adds all the standard plug-ins to the plug-in manager. This script is src/ The CrusDe API is also expanded and now allows for optional parameters: crusde_register_optional_param(...).

So far, the improvements in the code are in the repository only. I expect to release an updated version before the end of this year. I guess I should include a documentation for plug-in development :)


Subversion again did something strange. I had to switch from the old version where BerkeleyDB was used as a filesystem to a new repository using the fsfs-filesystem. That is annoying in as far as that 'svn update' will not work due to changed repository ID's. Sorry for the inconvenience -- please do a new checkout.


I fixed an annoying bug in the 'netcdf writer' module which led to trouble on x86_64 architectures. I was basically writing data of one type to variables of another which didn't affect 32-bit architectures due to the nature of the types. Anyway, that is fixed. Checkout the latest subversion revision to get the fixes.


Subversion is accessible again. Use:

$>svn co svn:// CrusDe


Version 0.2 officially released - check the download site for details! The website got a little bit of an overhaul which is not finished yet.


Subversion is currently not accessible. I am working on that as well as preparing the release of version 0.2.0 and making it available for download. This website also needs an overhaul to update it to the developments that have been going on during the last months.


I built CrusDe in a highly modular way. The whole concept is based on convolution of a Green's function and a Load function which now can be multiplied with the convolution product of a crustal decay function and a load history function. The convolutions are done in the spectral domain, All of the functions that go into it can be exchanged by altering the XML files. Each of those can reuse functions of the same category (ie. Green's functions reuse Green's functions). Users can add their own, etc. Meaning, if you don't like a flat Earth model, implement your own Green's function in a c-file following some basic rules, introduce it to crusde, and do your modeling.

Here is a short summary of what it can simulate right now:
- elastic response
- final relaxed response (thick plate over inviscid fluid)
- pure visco-elastic response (no elastic plate component)
- negative visco-elastic response
- those can be combined to jobs to express:
- exponential transition from elastic to final relaxed response
- displacement rates (w/ or w/o load history (rate))

due to:
- one or multiple disk loads
- one or multiple irregular loads defined in external x y z files (Lambert coordinates)
- a combination of such loads.

Each load can have it's individual load history (sinusoidal, Heaviside step function, Boxcar function are implemented) and an individual crustal decay function (this is necessary since the effective relaxation time must be given for each load individually since it depends on the loads wavelength).

ATTN: When multiple loads are used use 'fast 3d conv' instead of 'fast 2d conv' in the correct place (see testcases). This is due to an implementation decision which must be changes at some point. Or add your loads up and put them in a single file.

I included a couple of testcases which will be extended as time allows. The current ones demonstrate mainly how the XML input files must be composed and allow for evaluation of the results (mainly the disk cases).


Initial version of this site online. Version 0.1.0 available for download.

| Last modified: March 12 2019 15:18.