GMTFLEXURE(1gmt) | GMT | GMTFLEXURE(1gmt) |

# NAME¶

gmtflexure - Compute flexural deformation of 2-D loads, forces, and bending moments

# SYNOPSIS¶

**gmt flexure**
**-D***rm*/*rl*[/*ri*]/*rw*
**-E***Te*[**u**]|*D*|*file* [
**-A**[**l**|**r**]*bc*[/*args*] ] [
**-C****p***Poisson* ] [ **-C****y***Young* ] [
**-F***force* ] [ **-L** ] [ **-Q***args*] [ **-S** ]
[ **-T***wfile*] [ **-V**[*level*] ] [ **-W***wd*] [
**-Z***zm*] [ **-bi**binary ] [ **-d**nodata ] [
**-e**regexp ] [ **-h**headers ] [ **-i**flags ] [ **-o**flags ]
[ **--PAR**=*value* ]

**Note:** No space is allowed between the option flag and the
associated arguments.

# DESCRIPTION¶

**flexure** computes the flexural response to 2-D loads using a
range of user-selectable options, such as boundary conditions, pre-existing
deformations, variable rigidity and restoring force, and more. The solutions
are obtained using finite difference approximations to the differential
equations.

# REQUIRED ARGUMENTS¶

**-D***rm*/*rl*[/*ri*]/*rw*- Sets density for mantle, load, infill (optionally, otherwise it is assumed
to equal the load density), and water. If
*ri*is not given then it defaults to*rl*.

**-E***Te*[**u**]|*D*|*file*- Sets the elastic plate thickness (in meter); append
**k**for km. If the elastic thickness exceeds 1e10 it will be interpreted as a flexural rigidity**D**instead (by default**D**is computed from*Te*, Young's modulus, and Poisson's ratio; see**-C**to change these values). Alternatively, supply a*file*with variable plate thicknesses or rigidities. The file must be co-registered with any file given via**-Q**.

# OPTIONAL ARGUMENTS¶

**-A**[**l**|**r**]*bc*[/*args*]- Sets the boundary conditions at the
**l**eft and**r**ight boundary. The*bc*can be one of four codes: 0 selects the infinity condition, were both the deflection and its slope are set to zero. 1 selects the periodic condition where both the first and third derivatives of the deflection are set to zero. 2 selects the clamped condition where*args*(if given) sets the deflection value [0] (and its first derivative is set to zero), while 3 selects the free condition where*args*is given as*moment*/*force*which specify the end bending moment and vertical shear force [0/0]. Use SI units for any optional arguments.

**-Cp***Poisson*- Change the current value of Poisson's ratio [0.25].
**-Cy***Young*- Change the current value of Young's modulus [7.0e10 N/m^2].

**-F***force*]- Set a constant horizontal in-plane force, in Pa m [0]

**-L**- Use a variable restoring force that depends on sign of the flexure [constant].

**-Qn**|**q**|**t**[*args*]- Sets the vertical load specification. Choose among these three options:
**-Qn**means there is no input load file and that any deformation is simply driven by the boundary conditions set via**-A**. If no rigidity or elastic thickness file is given via**-E**then you must also append arguments to create the locations used for the calculations; for details on array creation, see*Generate 1D Array*.**-Qq**[*loadfile*] is a file (or stdin if not given) with (x,load in Pa) for all equidistant data locations. Finally,**-Qt**[*topofile*] is a file (or stdin if not given) with (x,load in m or km, positive up); see**-M**for topography unit used [m].

**-S**- Compute the curvature along with the deflections and report them via the third output column [none].

**-T***wfile*- Supply a file with pre-existing deformations [undeformed surface].

**-W***wd*- Specify water depth in m; append k for km. Must be positive [0]. Any
subaerial topography will be scaled via the densities set in
**-D**to compensate for the larger density contrast with air.

**-Z***zm*- Specify reference depth to flexed surface in m; append k for km. Must be positive [0]. We add this value to the flexed surface before output.

**-V**[*level*] (more ...)- Select verbosity level [c].

**-bi**[*ncols*][**t**] (more ...)- Select native binary format for primary input.

**-d**[**i**|**o**]*nodata*(more ...)- Replace input columns that equal
*nodata*with NaN and do the reverse on output.

**-e**[**~**]*"pattern"***|****-e**[**~**]/*regexp*/[**i**] (more ...)- Only accept data records that match the given pattern.

**-h**[**i**|**o**][*n*][**+c**][**+d**][**+r***remark*][**+r***title*] (more ...)- Skip or produce header record(s).

**-i***cols*[**+l**][**+s***scale*][**+o***offset*][,*...*][,*t*[*word*]] (more ...)- Select input columns and transformations (0 is first column,
*t*is trailing text, append*word*to read one word only).

**-o***cols*[,...][*t*[*word*]] (more ...)- Select output columns (0 is first column;
*t*is trailing text, append*word*to write one word only).

**-^**or just**-**- Print a short message about the syntax of the command, then exits (NOTE:
on Windows just use
**-**). **-+**or just**+**- Print an extensive usage (help) message, including the explanation of any module-specific option (but not the GMT common options), then exits.
**-?**or no arguments- Print a complete usage (help) message, including the explanation of all options, then exits.
**--PAR**=*value*- Temporarily override a GMT default setting; repeatable. See /gmt.conf for parameters.

# GENERATE 1D ARRAY¶

Make an evenly spaced coordinate array from *min* to
*max* in steps of *inc*. Append **+b** if we should take log2
of *min* and *max* and build an equidistant log2-array using
*inc* integer increments in log2. Append **+l** if we should take
log10 of *min* and *max* and build an array where *inc* can
be 1 (every magnitude), 2, (1, 2, 5 times magnitude) or 3 (1-9 times
magnitude). For less than every magnitude, use a negative integer
*inc*. Append **+n** if *inc* is meant to indicate the number
of equidistant coordinates instead. Alternatively, give a *file* with
output coordinates in the first column, or provide a comma-separated
*list* of coordinates. If you only want a *single* value then you
must append a comma to distinguish the list from the setting of
*inc*.

If the module allows you to set up an absolute time series, append
a valid time unit from the list **y**ear, m**o**nth, **w**eek,
**d**ay, **h**our, **m**inute, and **s**econd to the given
increment; add **+t** to ensure time column (or use **-f**) Note: The
internal time unit is still controlled independently by TIME_UNIT. Some
modules allow for **+a** which will paste the coordinate array to the
output table.

Likewise, if the module allows you to set up a spatial distance
series (with distance computed from the first two data columns), specify the
increment as *inc*[*unit*] with a geospatial distance unit from
the list **d**egree (arc), **m**inute (arc), **s**econd (arc),
m**e**ter, **f**oot, **k**ilometer, **M**iles (statute),
**n**autical miles, or s**u**rvey foot; see **-j** for calculation
mode. For Cartesian distances, you must use the special unit **c**.

Finally, if you are only providing an increment and obtain
*min* and *max* from the data, then it is possible (*max* -
*min*)/*inc* is not an integer, as required. If so then *inc*
will be adjusted to accordingly. Alternatively, append **+e** to keep
*inc* exact and adjust *max* instead.

# NOTE ON UNITS¶

The **-M** option controls the units used in all input and
output files. However, this option does *not* control values given on
the command line to the **-E**, **-W**, and **-Z** options. These
are assumed to be in meters unless an optional **k** for km is
appended.

# PLATE FLEXURE NOTES¶

We solve for plate flexure using a finite difference approach. This method can accommodate situations such as variable rigidity, restoring force that depends on the deflection being positive or negative, pre-existing deformation, and different boundary conditions.

# EXAMPLES¶

To compute elastic plate flexure from the topography load in
*topo.txt*, for a 10 km thick plate with typical densities, try

gmt flexure -Qttopo.txt -E10k -D2700/3300/1035 > flex.txt

# REFERENCES¶

# SEE ALSO¶

gmt, gravfft, grdflexure, grdmath

# COPYRIGHT¶

2019, The GMT Team

September 7, 2019 | 6.0.0rc4 |