:author: 周茂
:date: 2024-02-17

.. index:: ! flexure
.. program:: flexure

flexure
==========

:官方文档: :doc:`gmt:supplements/potential/gmtflexure`
:简介: 计算 2-D 载荷产生的力，弯矩和挠曲变形

**flexure** 使用一系列可选选项，例如边界条件、预变形、可变刚度以及恢复力等
信息计算二维载荷的挠曲变形。该模块的解是对微分方程进行有限差分近似获得的
[*Bodine*,\ 1980]。

语法
----

**gmt flexure**
:option:`-D`\ *rm*/*rl*\ [/*ri*]\ /*rw*
:option:`-E`\ *Te*\ [**k**]\|\ *D*\|\ *file*
:option:`-Q`\ *args*
[ :option:`-A`\ [**l**\|\ **r**]\ *bc*\ [/*args*] ]
[ :option:`-C`\ **p**\|\ **y**\ *value* ]
[ :option:`-F`\ *force* ]
[ :option:`-L` ]
[ :option:`-M`\ [**h**][**v**] ]
[ :option:`-S` ]
[ :option:`-T`\ *wfile*]
[ :option:`-V`\ [*level*] ]
[ :option:`-W`\ *wd*\ [**k**]]
[ :option:`-Z`\ *zm*\ [**k**]]
[ :option:`-bi`\ *binary* ]
[ :option:`-bo`\ *binary* ]
[ :option:`-d`\ *nodata*\ [**+c**\ *col*] ]
[ :option:`-e`\ *regexp* ]
[ :option:`-h`\ *headers* ]
[ :option:`-i`\ *flags* ]
[ :option:`-o`\ *flags* ]
[ :doc:`--PAR=value </conf/overview>` ]

必选选项
--------

.. option:: -D

**-D**\ *rm*/*rl*\ [/*ri*]\ /*rw*
    设置地幔（mantle），载荷（load），填充物（infill）和水（water）的密度，其中填充物
    的密度是可选的，不指定时默认和载荷密度相等，这里的水准确的说为介质，当载荷位于海洋时，
    水的密度为海水的密度，当载荷位于陆地时，水的密度即设置为空气密度，各参数的具体含
    义见 :doc:`grdflexure` 中的图示。

.. option:: -E

**-E**\ *Te*\ [**k**]\|\ *D*\|\ *file*
    设置弹性板（通常为岩石圈/地壳）厚度，默认单位为 m， **k** 表示单位为 km。
    如果弹性板厚度的值超过了 1e10，认为该值超过岩石圈有效弹性厚度的实际范围，
    GMT 将其认为是抗挠刚度 *D* ，而不是弹性板厚度 （默认情况下 *D* 由有效弹性
    厚度 *Te* ，杨氏模量和泊松比计算，见 :option:`-C` 参数）。另外，还可使用该选项
    提供一个包含弹性厚度或抗挠刚度的文件 *file* ，该文件必须与 :option:`-Q` 给定的
    文件具有相同的配准方式。

.. option:: -Q

**-Qn**\|\ **q**\|\ **t**\ [*args*]
    对垂直方向载荷体的设置。

    - **-Qn** 表示没有输入载荷文件，挠曲变形只通过 :option:`-A` 设置的边界条件驱动。
      如果没有通过 :option:`-E` 选项指定弹性厚度或者抗挠刚度文件，还需指定计算的
      位置

    - **-Qq**\ [*loadfile*] 指定载荷体文件，载荷体通过等距的位置和在该位置上
      的压强（单位为 Pa）给出

    - **-Qt**\ [*topofile*] 指定载荷体文件，载荷体通过位置和在该位置上的地形
      的厚度给出，单位默认为 m，地形单位见 :option:`-M`

可选选项
--------

.. option:: -A

**-A**\ [**l**\|\ **r**]\ *bc*\ [/*args*]
    设置边界条件， **l** 和 **r** 分别为左右边界。
    *bc* 可设置为下面四个值，假设挠曲变形为 w = w(x)，``'`` 表示导数：

    - 0 无穷大边界，w' = w'' = 0

    - 1 周期边界，w' = w''' = 0

    - 2 Clamped 边界，*args* 为单个数字，挠度的端点值为 *args* ，即 w(end) = args，[默认为 0]， w' = 0

    - 3 自由边界，*args* 为 *moment/force* ，指定端点的弯矩和垂直剪切力，默认为 0/0

    使用国际单位作为默认单位。

.. option:: -C

**-C**\ **p**\|\ **y**\ *value*
    分别使用 **p** 和 **y** 修改泊松比的默认值 [0.25] 和杨氏模量的默认值
    [7.0e10 N/m^2]

.. option:: -F

**-F**\ *force*
    设置恒定的水平方向内力，单位为 Pa m [0]

.. option:: -L

**-L**
    使用一个可变的恢复力，该力取决于挠曲变形的符号

.. option:: -M

**-M**\ [**h**][**v**]
    指定载荷体的单位，**h** 表示所有的水平方向的距离以 km 为单位 [meter]；
    **z** 表示垂直方向的形变以 km 为单位 [meter]

.. option:: -S

**-S**
    计算对应挠曲的曲率，将结果放在第三列

.. option:: -T

**-T**\ *wfile*
    提供一个预先存在的变形文件 [默认不存在变形]

.. include:: explain_-V.rst_

.. option:: -W

**-W**\ *wd*\ [**k**]
    设置水深，默认单位为 m, **k** 表示单位为 km，该值必须为正，默认值为 0。
    任意地面上的地形（非海洋中）都会与 :option:`-D` 设置的密度进行缩放，以补偿（海）水
    与空气的密度差异。

.. option:: -Z

**-Z**\ *zm*\ [**k**]
    指定挠曲变形的参考深度 *zm* ，单位为 m，追加 k 表示单位为 km，必须为正值，
    默认值为 0。在输出前将 *zm* 从挠曲变形上扣除。因此，如果观测位置在海平面，
    设置 -Z5k 则表示观测 5km 处的水深的变形，如果未发生变形，则输出 z = -5000。

.. include:: explain_-bi.rst_

.. include:: explain_-bo.rst_

.. include:: explain_-d.rst_

.. include:: explain_-e.rst_

.. include:: explain_-h.rst_

.. include:: explain_-icols.rst_

.. include:: explain_-ocols.rst_

.. include:: explain_help.rst_

.. include:: explain_geometry.rst_

单位说明
--------

:option:`-M` 选项控制着所有的输入输出文件中的单位。但是，和命令行选项 :option:`-E` ，
:option:`-W` 和 :option:`-Z` 的单位无关，除非附加了 k 表明以 km 作为单位，默认情况下，
都以 m 为单位。

挠曲说明
--------

本模块使用有限差分来求解弹性板（即岩石圈或地壳）的挠曲。这种方法可以用于可变刚度，
不同的恢复力，以及存在预变形和不同的边界条件等情况。

示例
----

计算 :file:`topo.txt` 地形载荷形成的弹性形变，弹性板的厚度为 10 km，密度为典型
的地壳密度::

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

参考文献
--------

Bodine, J. H., 1980, *Numerical computation of plate flexure in marine geophysics*,
Tech. Rep. CU-1-80, Columbia University.

相关模块
--------

:doc:`grdflexure`,
:doc:`gravfft`,
:doc:`grdmath`
