Contact
Name | Andy Wickert |
Type of contact | Model developer |
Institute / Organization | University of Colorado |
Postal address 1 | Department of Geological Sciences, UCB 399 |
Postal address 2 | 2200 Colorado Ave |
Town / City | Boulder |
Postal code | 80309 |
State | Colorado |
Country | US"US" is not in the list (Afghanistan, Albania, Algeria, Andorra, Angola, Antigua and Barbuda, Argentina, Armenia, Australia, Austria, ...) of allowed values for the "Country" property. |
Email address | wickert@colorado.edu |
Phone | |
Fax |
GFlex
Metadata
Summary
Technical specs
In/Output
Process
Testing
Other
IntroductionThe model flexure computes a direct finite difference (lower/upper decomposition) solution to the flexure equations for a lithospheric plate of nonuniform elastic thickness via a thin plate assumption. It consists of two modules, the first of which is used to generate the coefficient matrix for the Thomas algorithm solution and the second of which actually generates that solution (using the coefficient matrix produced by the first module as an input file). The first module is slow, but the second is very fast, making this a poor technique for a one-off equilibrium flexure calculation, but a good choice for situations in which flexural response needs to be calculated many times in a row. Such situations in which this model would excel include:
Key physical parameters and equationsWe solve the PDE for lithospheric flexure in 2 dimensions: [math]\displaystyle{ \nabla^2\left(D(x,y)\nabla^2 w \right) + \Delta \rho g w = q(x,y) }[/math] Here, D is the flexural rigidity, w is the vertical displacement at each (x,y), Δρ is the mantle density minus the density of infilling material, g is gravitational acceleration, and q is the applied load. We follow Wees and Cloetingh (1994) in acknowledging that flexural rigidity is a tensor property: [math]\displaystyle{ D = \frac{E T_e^3}{12\left(1-\nu^2\right)} \left[ \begin{array}{ccc} 1 & \nu & 0 \\ \nu & 1 & 0 \\ 0 & 0 & \frac{1-\nu}{2} \end{array} \right] }[/math] HistoryFlexure was developed first in MATLAB (Spring / early Summer 2010) and then in Python with Numpy, Scipy, and Matplotlib (translated October 2010). The next planned step in development is to make flexure be IRF- and CMT-compliant. Planned development will proceed slowly through Spring 2011 (though this will go faster if I get a solid day or two to work on it). Because the program is based on a set of functions in a python module, we plan on adding additional functionality for 1D and 2D analytical solutions, a 1D Thomas algorithm solution, and a 2D alternating direction implicit (ADI) iterative solution. If all goes as planned, this should be a one-stop shop for flexure solutions. PapersNothing published yet, so please email Andy Wickert (see contact info box at top) if you are going to use this model for a publication, and we'll figure out how you can cite it. I will hopefully get a Computers and Geosciences paper or something like it submitted in 2011. IssuesHelpBasic instructions(Modified from instructional emails)
You need to have python, numpy, scipy, and matplotlib installed to use flexure.
The version 0.1 structure (prone to change) consists of two main files.
In addition to these files, version 0.1 comes with some basic test loads and elastic thickness maps.
For the basic functionality on the first runthrough, you navigate to the directory with the flexit.py and type something in like: python flexit.py -vcrp --dx=20000 --Te=Te_sample/bigrange_Te_test.txt --q0=q0_sample/top_bottom_bars.txt You select which of the sample Te and q0 files you want. Andy_output.png is the flexural response (variable=w) output from: python flexit.py -vcrp --dx=20000 --Te=Te_sample/bigrange_Te_test.txt --q0=q0_EW_bar.txt The flags are explained in the help file (python flexit.py -h), as are other options for running the code. Basically you will want to run "-c" the first time, but not again unless you are going to redo the coefficient matrix (i.e., use a different pattern of elastic thickness). This calculation can take a long time for large grids, so you will want to store these files. When running without making a coefficient matrix, unless you're using the default coefficient matrix name (as we do above), you will have to specify its location with "--coeff-file=NAME". For example: python flexit.py -vrp --Te=Te_sample/bigrange_Te_test.txt --q0=q0_sample/top_bottom_bars.txt --coeff_file=coeffs.txt If all else failsHave you typed: python flexit -h ? This gives you all of the in-program help information. Feel free to email Andy Wickert for anything related to this model (see contact info in box at top). Input FilesThe coefficient matrix for the 2D Thomas algorithm solution requires a map of elastic thicknesses in *.txt / ASCII format. This elastic thickness map must be two cells wider on each side than the map of loads; this is because the finite difference solution must "look" two cells in every direction. It also requires the specification of several parameters, including:
This outputs an ASCII sparse matrix file (Matrix Market *.mtx format). The flexural solution requires the ASCII file for the sparse coefficient matrix generated above and an imposed array of loads (also ASCII), along with the specification of input and output file names. Output FilesThe coefficient matrix creator writes a *.mtx sparse matrix ASCII file that is used in the direct solution. This matrix is characteristic to a given pattern of elastic thickness, and therefore can be reused if elastic thickness does not change. The real solver outputs an ASCII grid of deflections due to the load. This is the output that is of scientific interest and/or useful to plug into other modules (e.g., for flexural subsidence). Download source code |