integ_method.h
使用结构体来管理与波数积分相关的参数和方法
- Author
Zhu Dengda (zhudengda@mail.iggcas.ac.cn)
- Date
2025-12
Functions
-
void grt_KMET_init_fstats(const size_t nr, const real_t *rs, const char *statsstr, const char *suffix, K_INTEG_METHOD *Kmet)
初始化 K_INTEG_METHOD 结构体中的文件指针
- 参数:
nr – [in] 震中距数量
rs – [in] 震中距数组
statsstr – [in] 积分过程输出目录
suffix – [in] 文件名后缀
Kmet – [inout] K_INTEG_METHOD 结构体指针
-
void grt_KMET_destroy_fstats(const size_t nr, K_INTEG_METHOD *Kmet)
关闭 K_INTEG_METHOD 结构体中的文件指针,并释放内存
- 参数:
nr – [in] 震中距数量
Kmet – [inout] K_INTEG_METHOD 结构体指针
-
K_INTEG *grt_wavenumber_integral(GRT_MODEL1D *mod1d, size_t nr, real_t *rs, K_INTEG_METHOD *Kmet, bool calc_upar, GRT_KernelFunc kerfunc)
发起波数积分的总函数
- 参数:
mod1d – [inout]
GRT_MODEL1D结构体指针nr – [in] 震中距数量
rs – [in] 震中距数组
Kmet – [inout] K_INTEG_METHOD 结构体指针
calc_upar – [in] 是否计算位移u的空间导数
kerfunc – [in] 计算核函数的函数指针
- 返回:
K_INTEG 结构体指针,对应着积分结果
-
struct K_INTEG_METHOD
Public Members
-
real_t k0
波数积分的上限 \( \tilde{k_{max}}=\sqrt{(k_{0}*\pi/hs)^2 + (ampk*w/vmin_{ref})^2} \) ,k循环必须退出, hs=max(震源和台站深度差,1.0)
-
bool applyFIM
是否使用 FIM
-
bool applySAFIM
是否使用 SAFIM
-
bool applyDCM
是否使用 DCM
-
bool applyPTAM
是否使用 PTAM
-
FILE *fstats
保存核函数的文件指针
-
FILE *(*ptam_fstatsnr)[2]
保存 PTAM 中核函数以及波峰波谷的文件指针
-
real_t k0