const.h

Author

Zhu Dengda (zhudengda@mail.iggcas.ac.cn)

Date

2024-07-24

Defines

CMPLX(real, imag)

复数扩展宏,添加此指令以适配MacOS

_TEST_WHETHER_WIN32_

测试是否是windows系统

NC_REAL
NC_FUNC_REAL(func)
RTWOTHIRD

2/3

PI

\( \pi \)

PI2

\( 2\pi \)

HALFPI

\( \frac{\pi}{2} \)

QUARTERPI

\( \frac{\pi}{4} \)

THREEQUARTERPI

\( \frac{3\pi}{4} \)

FIVEQUARTERPI

\( \frac{5\pi}{4} \)

SEVENQUARTERPI

\( \frac{7\pi}{4} \)

INV_SQRT_TWO

\( \frac{1}{\sqrt{2}} \)

DEG1

\( \frac{\pi}{180} \)

GOLDEN_RATIO

\( \frac{\sqrt{5}-1}{2} \)

GRT_MIN_DEPTH_GAP_SRC_RCV

震源和台站的最小深度差(不做绝对限制,仅用于参考波数积分上限,以及判断是否需要其它收敛方法)

GCC_ALWAYS_INLINE

gcc编译器不改动内联函数

GRT_SWAP(type, a, b)

交换两个变量的值

GRT_MIN_DISTANCE

最小震中距,用于限制

GRT_STRING_FMT

字符串输出格式

GRT_REAL_FMT

浮点数输出格式

GRT_CMPLX_FMT

复数输出格式

GRT_STR_CMPLX_FMT

与复数格式同长度的字符串输出格式

GRT_STRING_LONG_FMT

字符串输出格式(更长)

GRT_REAL_LONG_FMT

浮点数输出格式(更长)

GRT_CMPLX_LONG_FMT

复数输出格式(更长)

GRT_STR_CMPLX_LONG_FMT

与复数格式同长度的字符串输出格式(更长)

GRT_CMPLX_SPLIT(x)

用于打印复数时将实部虚部分开

GRT_COMMENT_HEAD

号, 作为注释的字符

GRT_NUM_STR

包括所有数字的字符串宏

GRT_MAX(a, b)

求两者较大值

GRT_MIN(a, b)

求两者较小值

GRT_SQUARE(x)

计算一个数的平方

GRT_SAFE_FREE_PTR(ptr)
GRT_SAFE_FREE_PTR_ARRAY(ptr, count)
GRT_SAFE_ASPRINTF(ptr, fmt, ...)
GRT_CHANNEL_NUM

3, 代码中分量个数(ZRT,ZNE)

GRT_QWV_NUM

3, 代码中核函数类型个数(q, w, v)

GRT_INTEG_NUM

4, 代码中积分类型个数

GRT_MORDER_MAX

2, 代码中阶数m的最大值

GRT_SRC_M_NUM

6, 代码中不同震源、不同阶数的个数

GRT_MECHANISM_NUM

6, 描述震源机制的最多参数

GRT_PTAM_PT_MAX

36, 最后统计波峰波谷的目标数量

GRT_PTAM_WINDOW_SIZE

3, 使用连续点数判断是否为波峰或波谷

GRT_PTAM_WAITS_MAX

9, 判断波峰或波谷的最大等待次数,不能太小

GRT_INVERSE_SUCCESS

求逆或除法没有遇到除0错误

GRT_INVERSE_FAILURE

求逆或除法遇到除0错误

GRT_GTYPES_MAX

2, 所有震源根据是否使用格林函数导数分为两类

Typedefs

typedef double real_t
double complex cplx_t

Enums

enum [anonymous]

不同震源类型在大小为 GRT_SRC_M_NUM 的数组中的索引

Values:

enumerator GRT_SRC_M_EX_INDEX
enumerator GRT_SRC_M_VF_INDEX
enumerator GRT_SRC_M_HF_INDEX
enumerator GRT_SRC_M_DD_INDEX
enumerator GRT_SRC_M_DS_INDEX
enumerator GRT_SRC_M_SS_INDEX
enum GRT_K_INTEG_METHOD

波数积分方法

Values:

enumerator GRT_K_INTEG_METHOD_DWM
enumerator GRT_K_INTEG_METHOD_FIM
enumerator GRT_K_INTEG_METHOD_SAFIM

Functions

void grt_set_num_threads(int num_threads)

设置OpenMP多线程数

参数:

num_threads[in] 线程数

Variables

const int GRT_SRC_M_ORDERS[6]

分别对应爆炸源(0阶),垂直力源(0阶),水平力源(1阶),剪切源(0,1,2阶)

const int GRT_SRC_M_GTYPES[6]

不同震源类型使用的格林函数类型,0为Gij,1为格林函数导数Gij,k

const char *GRT_SRC_M_NAME_ABBR[6]

不同震源,不同阶数的名称简写,用于命名

const char GRT_QWV_CODES[]

q, w, v 名称代号

const char GRT_ZRT_CODES[]

ZRT三分量代号

const char GRT_ZNE_CODES[]

ZNE三分量代号