r.flexure
Computes lithospheric flexural isostasy
r.flexure [-l] method=string input=name te=name te_units=string output=name [solver=string] [tolerance=float] [northbc=string] [southbc=string] [westbc=string] [eastbc=string] [g=float] [ym=float] [nu=float] [rho_fill=float] [rho_m=float] [--overwrite] [--verbose] [--quiet] [--qq] [--ui]
Example:
r.flexure method=string input=name te=name te_units=string output=name
grass.script.run_command("r.flexure", method, input, te, te_units, output, solver="direct", tolerance=1E-3, northbc="NoOutsideLoads", southbc="NoOutsideLoads", westbc="NoOutsideLoads", eastbc="NoOutsideLoads", g=9.8, ym=65E9, nu=0.25, rho_fill=0, rho_m=3300, flags=None, overwrite=False, verbose=False, quiet=False, superquiet=False)
Example:
gs.run_command("r.flexure", method="string", input="name", te="name", te_units="string", output="name")
Parameters
method=string [required]
Solution method: Finite Diff. or Superpos. of analytical sol'ns
Allowed values: FD, SAS
input=name [required]
Raster map of loads (thickness * density * g) [Pa]
te=name [required]
Elastic thickness: scalar or raster; unis chosen in "te_units"
te_units=string [required]
Units for elastic thickness
Allowed values: m, km
output=name [required]
Output raster map of vertical deflections [m]
solver=string
Solver type
Allowed values: direct, iterative
Default: direct
tolerance=float
Convergence tolerance (between iterations) for iterative solver
Default: 1E-3
northbc=string
Northern boundary condition
Allowed values: 0Displacement0Slope, 0Moment0Shear, 0Slope0Shear, Mirror, Periodic, NoOutsideLoads
Default: NoOutsideLoads
southbc=string
Southern boundary condition
Allowed values: 0Displacement0Slope, 0Moment0Shear, 0Slope0Shear, Mirror, Periodic, NoOutsideLoads
Default: NoOutsideLoads
westbc=string
Western boundary condition
Allowed values: 0Displacement0Slope, 0Moment0Shear, 0Slope0Shear, Mirror, Periodic, NoOutsideLoads
Default: NoOutsideLoads
eastbc=string
Eastern boundary condition
Allowed values: 0Displacement0Slope, 0Moment0Shear, 0Slope0Shear, Mirror, Periodic, NoOutsideLoads
Default: NoOutsideLoads
g=float
gravitational acceleration at surface [m/s^2]
Default: 9.8
ym=float
Young's Modulus [Pa]
Default: 65E9
nu=float
Poisson's ratio
Default: 0.25
rho_fill=float
Density of material that fills flexural depressions [kg/m^3]
Default: 0
rho_m=float
Mantle density [kg/m^3]
Default: 3300
-l
Allows running in lat/lon: dx is f(lat) at grid N-S midpoint
--overwrite
Allow output files to overwrite existing files
--help
Print usage summary
--verbose
Verbose module output
--quiet
Quiet module output
--qq
Very quiet module output
--ui
Force launching GUI dialog
method : str, required
Solution method: Finite Diff. or Superpos. of analytical sol'ns
Allowed values: FD, SAS
input : str, required
Raster map of loads (thickness * density * g) [Pa]
Used as: input, raster, name
te : str, required
Elastic thickness: scalar or raster; unis chosen in "te_units"
Used as: input, raster, name
te_units : str, required
Units for elastic thickness
Allowed values: m, km
output : str, required
Output raster map of vertical deflections [m]
Used as: output, raster, name
solver : str, optional
Solver type
Allowed values: direct, iterative
Default: direct
tolerance : float, optional
Convergence tolerance (between iterations) for iterative solver
Default: 1E-3
northbc : str, optional
Northern boundary condition
Allowed values: 0Displacement0Slope, 0Moment0Shear, 0Slope0Shear, Mirror, Periodic, NoOutsideLoads
Default: NoOutsideLoads
southbc : str, optional
Southern boundary condition
Allowed values: 0Displacement0Slope, 0Moment0Shear, 0Slope0Shear, Mirror, Periodic, NoOutsideLoads
Default: NoOutsideLoads
westbc : str, optional
Western boundary condition
Allowed values: 0Displacement0Slope, 0Moment0Shear, 0Slope0Shear, Mirror, Periodic, NoOutsideLoads
Default: NoOutsideLoads
eastbc : str, optional
Eastern boundary condition
Allowed values: 0Displacement0Slope, 0Moment0Shear, 0Slope0Shear, Mirror, Periodic, NoOutsideLoads
Default: NoOutsideLoads
g : float, optional
gravitational acceleration at surface [m/s^2]
Default: 9.8
ym : float, optional
Young's Modulus [Pa]
Default: 65E9
nu : float, optional
Poisson's ratio
Default: 0.25
rho_fill : float, optional
Density of material that fills flexural depressions [kg/m^3]
Default: 0
rho_m : float, optional
Mantle density [kg/m^3]
Default: 3300
flags : str, optional
Allowed values: l
l
Allows running in lat/lon: dx is f(lat) at grid N-S midpoint
overwrite: bool, optional
Allow output files to overwrite existing files
Default: False
verbose: bool, optional
Verbose module output
Default: False
quiet: bool, optional
Quiet module output
Default: False
superquiet: bool, optional
Very quiet module output
Default: False
DESCRIPTION
r.flexure computes how the rigid outer shell of a planet deforms elastically in response to surface-normal loads by solving equations for plate bending. This phenomenon is known as "flexural isostasy" and can be useful in cases of glacier/ice-cap/ice-sheet loading, sedimentary basin filling, mountain belt growth, volcano emplacement, sea-level change, and other geologic processes. r.flexure and v.flexure are the GRASS GIS interfaces to the model gFlex. As both r.flexure and v.flexure are interfaces to gFlex, this must be downloaded and installed. The most recent versions of gFlex are available from https://github.com/awickert/gFlex, and installation instructions are available on that page via the README.md file.
NOTES
The parameter method sets whether the solution is Finite Difference ("FD") or Superposition of Analytical Solutions ("SAS"). The Finite difference method is typically faster for large arrays, and allows lithospheric elastic thickness to be varied laterally, following the solution of van Wees and Cloetingh (1994). However, it is quite memory-intensive, so unless the user has a computer with a very large amount of memory and quite a lot of time to wait, they should ensure that they use a grid spacing that is appropriate to solve the problem at hand. Flexural isostatic solutions act to smooth inputs over a given flexural wavelength (see , so if an appropriate solution resolution is chosen, the calculated flexural response can be interpolated to a higher resolution without fear of aliasing.
The flexural solution is generated for the current computational region, so be sure to check g.region before running the model!
input is a 2-D array of loads in a GRASS raster. These are in units of stress, and equal the density of the material times the acceleration due to gravity times the thickness of the column. This is not affected by what you choose for g, later: it is pre-calculated by the user.
te, written in standard text as Te, is the lithospheric elastic thickness.
Several boundary conditions are available, and these depend on if the solution method is finite difference (FD) or superposition of analytical solutions (SAS). In the latter, it is assumed that there are no loads outside of those that are explicitly listed, so the boundary conditions are "NoOutsideLoads". As this is the implicit case, the boundary conditions all default to this.
The finite difference boundary conditions are a bit more complicated, but are largely self-explanatory:
- 0Displacement0Slope
0-displacement-0-slope boundary condition - 0Moment0Shear
"Broken plate" boundary condition: second and third derivatives of vertical displacement are 0. This is like the end of a diving board. - 0Slope0Shear
First and third derivatives of vertical displacement are zero. While this does not lend itself so easily to physical meaning, it is helpful to aid in efforts to make boundary condition effects disappear (i.e. to emulate the NoOutsideLoads cases) - Mirror
Load and elastic thickness structures reflected at boundary. - Periodic
"Wrap-around" boundary condition: must be applied to both North and South and/or both East and West. This causes, for example, the edge of the eastern and western limits of the domain to act like they are next to each other in an infinite loop.
All of these boundary conditions may be combined in any way, with the exception of the note for periodic boundary conditions. If one does not want the boundary conditions to affect the solutions, it is recommended that one places the boundaries at least one flexural wavelength away from the load.
r.flexure may be run in latitude/longitude coordinates (with the "-l" flag), but its grid constraint is that it can have only one dx and one dy for the entire domain. Thus, it chooses the average dx at the midpoint between the northernmost and southernmost latitudes for which the calculations are made. This assumption can break down at the poles, where the East–West dimension rapidly diminishes.
The Community Surface Dynamics Modeling System, into which gFlex is integrated, is a community-driven effort to build an open-source modeling infrastructure for Earth-surface processes.
SEE ALSO
REFERENCES
Wickert, A. D. (2015), Open-source modular solutions for flexural isostasy: gFlex v1.0, Geoscientific Model Development Discussions, 8(6), 4245–4292, doi:10.5194/gmdd-8-4245-2015.
Wickert, A. D., G. E. Tucker, E. W. H. Hutton, B. Yan, and S. D. Peckham (2011), Feedbacks between surface processes and flexural isostasy: a motivation for coupling models, in CSDMS 2011 Meeting: Impact of time and process scales, Student Keynote, Boulder, CO.
van Wees, J. D., and S. Cloetingh (1994), A Finite-Difference Technique to Incorporate Spatial Variations In Rigidity and Planar Faults Into 3-D Models For Lithospheric Flexure, Geophysical Journal International, 117(1), 179–195, doi:10.1111/j.1365-246X.1994.tb03311.x.
AUTHOR
Andrew D. Wickert
SOURCE CODE
Available at: r.flexure source code
(history)
Latest change: Friday Feb 21 10:10:05 2025 in commit 7d78fe3