secular.h

Author

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

Date

2025-07

计算Rayleigh波和Love波的久期函数

Functions

void grt_GRT_matrix_allLayer_Rayl(MODEL1D_STATE *mstat, const real_t k, RT_MATRIX *Mall_RL, RT_MATRIX *Mall_FR)

计算所有层位的两个 P-SV 广义矩阵: RD_RL, RU_FR

参数:
  • mstat[in] 模型结构体指针

  • k[in] 本征波数

  • Mall_RL[out] 所有层的 RD_RL 矩阵

  • Mall_FR[out] 所有层的 RU_FR 矩阵

void grt_GRT_matrix_allLayer_Love(MODEL1D_STATE *mstat, const real_t k, RT_MATRIX *Mall_RL, RT_MATRIX *Mall_FR)

计算所有层位的两个 P-SV 广义矩阵: RD_RL, RU_FR

void grt_GRT_matrix_Rayl(MODEL1D_STATE *mstat, const real_t k, const size_t iref)

计算指定层位 iref 处的两个 SH 广义矩阵(标量): RDL_RL, RUL_FR

参数:
  • mstat[in] 模型结构体指针

  • k[in] 本征波数

  • iref[in] 当前层位

void grt_GRT_matrix_Love(MODEL1D_STATE *mstat, const real_t k, const size_t iref)

计算所有层位的两个 SH 广义矩阵(标量): RDL_RL, RUL_FR

real_t grt_secular_function_cbegin(const MODEL1D_STATE *mstat, const size_t iref, DISPER_TYPE wtype)

以 iref 层为参考层定义久期函数时,相速度搜索的一个比较合适的起始位置

参数:
  • mstat[in] 模型结构体指针

  • iref[in] 当前层位

  • wtype[in] 频散类型

返回:

相速度搜索起始点

void grt_secular_function_potential_Rayl(MODEL1D_STATE *mstat, const real_t cphase, const size_t iref, cplx_t *psec, cplx_t ppot[GRT_RAYL_DIM], cplx_t ppotUp[GRT_RAYL_DIM])

计算 Rayleigh 波的久期函数

参数:
  • mstat[in] 模型结构体指针

  • cphase[in] 本征相速度

  • iref[in] 当前层位

  • psec[out] 久期函数值

  • ppot[out] 对应z+处垂直波函数,不需要则设置为NULL

  • ppotUp[out] 对应z-处垂直波函数,不需要则设置为NULL【这个仅在液固界面才会用到】

void grt_secular_function_potential_Love(MODEL1D_STATE *mstat, real_t cphase, const size_t iref, cplx_t *psec, cplx_t ppot[GRT_LOVE_DIM])

计算 Love 波的久期函数

参数:
  • mstat[in] 模型结构体指针

  • cphase[in] 本征相速度

  • iref[in] 当前层位

  • psec[out] 久期函数值

  • ppot[out] 对应垂直波函数,不需要则设置为NULL

void grt_secular_function_potential(MODEL1D_STATE *mstat, real_t cphase, const size_t iref, const DISPER_TYPE wtype, cplx_t *psec, cplx_t *ppot, cplx_t *ppotUp)

合并 secular_function_potential_Rayl(Love)

void grt_secular_function(MODEL1D_STATE *mstat, real_t cphase, const size_t iref, const DISPER_TYPE wtype, cplx_t *psec)

只求久期函数值,即在 secular_function_potential 中设置 ppot=NULL, ppotUp=NULL