gmtflexure
Compute flexural deformation of 2-D loads, forces, and bending moments
Synopsis
gmt flexure -Drm/rl[/ri]/rw -ETe[k]|D|file -Qargs [ -A[l|r]bc[/args] ] [ -Cp|yvalue ] [ -Fforce ] [ -L ] [ -M[h][v] ] [ -S ] [ -Twfile] [ -V[level] ] [ -Wwd[k]] [ -Zzm[k]] [ -bibinary ] [ -bobinary ] [ -dnodata[+ccol] ] [ -eregexp ] [ -hheaders ] [ -iflags ] [ -oflags ] [ --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 [Bodine,1980].
Required Arguments
- -Drm/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.
- -ETe[k]|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.
- -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 1-D Array. -Qq[loadfile] is a file (or standard input if not given) with (x,load in Pa) for all equidistant data locations. Finally, -Qt[topofile] is a file (or standard input if not given) with (x,load in m or km, positive up); see -M for topography unit used [m].
Optional Arguments
- -A[l|r]bc[/args]
Sets the boundary conditions at the left and right 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|yvalue
Append p or y to change the current value of Poisson’s ratio [0.25] or Young’s modulus [7.0e10 N/m2], respectively.
- -Fforce
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].
- -M[h][v]
Optionally append one or both of h and v: Use h to indicated that all horizontal distances are in km [meters] and v to indicate that all vertical deflections are in km [meters].
- -S
Compute the curvature along with the deflections and report them via the third output column [none].
- -Twfile
Supply a file with pre-existing deformations [undeformed surface].
- -V[level]
Select verbosity level [w]. (See full description) (See cookbook information).
- -Wwd[k]
Specify water depth in m; append k for km. Must be positive [0]. Any subaerial topography (i.e., amplitudes in the input relief that exceeds this depth) will be scaled via the densities set in -D to compensate for the larger density contrast with air.
- -Zzm[k]
Undeformed plate flexure means z = 0. Specify the distance between the observation level [z = 0] and the undeformed flexed surface in m; append k for km. Must be positive [0]. We subtract this value from the flexed surface before output. Thus, if the observation level is at sealevel and you are looking a seafloor deformation in 5 km of water, use -Z5k and the undeformed surface will have z = -5000 on output.
- -birecord[+b|l] (more …)
Select native binary format for primary table input.
- -borecord[+b|l] (more …)
Select native binary format for table output.
- -d[i|o][+ccol]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][+msegheader][+rremark][+ttitle] (more …)
Skip or produce header record(s).
- -icols[+l][+ddivisor][+sscale|d|k][+ooffset][,…][,t[word]] (more …)
Select input columns and transformations (0 is first column, t is trailing text, append word to read one word only).
- -ocols[+l][+ddivisor][+sscale|d|k][+ooffset][,…][,t[word]] (more …)
Select output columns and transformations (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 exit (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 exit.
- -? or no arguments
Print a complete usage (help) message, including the explanation of all options, then exit.
- --PAR=value
Temporarily override a GMT default setting; repeatable. See gmt.conf for parameters.
Generate 1-D Array
We will demonstrate the use of options for creating 1-D arrays via gmtmath. Make an evenly spaced coordinate array from min to max in steps of inc, e.g.:
gmt math -o0 -T3.1/4.2/0.1 T =
3.1
3.2
3.3
3.4
3.5
3.6
3.7
...
Append +b if we should take \(\log_2\) of min and max, get their nearest integers, build an equidistant \(\log_2\)-array using inc integer increments in \(\log_2\), then undo the \(\log_2\) conversion. E.g., -T3/20/1+b will produce this sequence:
gmt math -o0 -T3/20/1+b T =
4
8
16
Append +l if we should take \(\log_{10}\) 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). E.g., -T7/135/2+l will produce this sequence:
gmt math -o0 -T7/135/2+l T =
10
20
50
100
For output values less frequently than every magnitude, use a negative integer inc:
gmt math -o0 -T1e-4/1e4/-2+l T =
0.0001
0.01
1
100
10000
Append +i if inc is a fractional number and it is cleaner to give its reciprocal value instead. To set up times for a 24-frames per second animation lasting 1 minute, run:
gmt math -o0 -T0/60/24+i T =
0
0.0416666666667
0.0833333333333
0.125
0.166666666667
...
Append +n if inc is meant to indicate the number of equidistant coordinates instead. To have exactly 5 equidistant values from 3.44 and 7.82, run:
gmt math -o0 -T3.44/7.82/5+n T =
3.44
4.535
5.63
6.725
7.82
Alternatively, let inc be a file with output coordinates in the first column, or provide a comma-separated list of specific coordinates, such as the first 6 Fibonacci numbers:
gmt math -o0 -T0,1,1,2,3,5 T =
0
1
1
2
3
5
Notes: (1) If you need to pass the list nodes via a dataset file yet be understood as a list (i.e., no interpolation), then you must set the file header to contain the string “LIST”. (2) Should you need to ensure that the coordinates are unique and sorted (in case the file or list are not sorted or have duplicates) then supply the +u modifier.
If you only want a single value then you must append a comma to distinguish the list from the setting of an increment.
If the module allows you to set up an absolute time series, append a valid time unit from the list year, month, day, hour, minute, and second 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. The first 7 days of March 2020:
gmt math -o0 -T2020-03-01T/2020-03-07T/1d T =
2020-03-01T00:00:00
2020-03-02T00:00:00
2020-03-03T00:00:00
2020-03-04T00:00:00
2020-03-05T00:00:00
2020-03-06T00:00:00
2020-03-07T00:00:00
A few 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 distances computed from the first two data columns), specify a new increment as inc with a geospatial distance unit from the list degree (arc), minute (arc), second (arc), meter, foot, kilometer, Miles (statute), nautical miles, or survey foot; see -j for calculation mode. To interpolate Cartesian distances instead, you must use the special unit c.
Finally, if you are only providing an increment and will 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 fit the range. Alternatively, append +e to keep inc exact and adjust max instead (keeping min fixed).
Geometry Setup
We operate in a right-handed coordinate system where the positive z-axis is directed upwards. In this scenario, topographic surfaces may be above or below a reference surface (typically the observation level) but the positive direction is always up. Positive geopotential anomalies are thus aligned with the positive source (topographic relief) direction. If your input data are positive down (e.g., depths) then you will need to change the sign. For grids you can use the +s and +o modifiers to scale and offset the grid, while for table data you can use the -i modifier to scale and offset any column required.
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
Bodine, J. H., 1980, Numerical computation of plate flexure in marine geophysics, Tech. Rep. CU-1-80, Columbia University.