eigenfn.h
使用 广义反射透射系数矩阵 将某层的垂直波函数传播到整个模型的物理层上下两侧, 再计算任意深度的本征函数
- Author
Zhu Dengda (zhudengda@mail.iggcas.ac.cn)
- Date
2025-07
Functions
-
void grt_get_mod_potential_Up_Down_Rayl(MODEL1D_STATE *mstat, const size_t iref, const cplx_t potRaylLove[GRT_RAYL_DIM], const cplx_t potRaylLoveUp[GRT_RAYL_DIM], cplx_t (*mod_potRaylLove_Down)[GRT_RAYL_DIM], cplx_t (*mod_potRaylLove_Up)[GRT_RAYL_DIM])
已知某个界面 z_j+ 上的垂直波函数,计算模型每个分界面 z_j+ 和 z_j- 的垂直波函数 P-SV
- 参数:
mstat – [inout] 模型结构体指针
iref – [in] 已知垂直波函数的层位
potRaylLove – [in] 已知 z_iref+ 垂直波函数
potRaylLoveUp – [in] 已知 z_iref- 垂直波函数
mod_potRaylLove_Down – [out] 每层 z_j+ 的垂直波函数
mod_potRaylLove_Up – [out] 每层 z_j- 的垂直波函数
-
void grt_get_mod_potential_Up_Down_Love(MODEL1D_STATE *mstat, const size_t iref, const cplx_t potRaylLove[GRT_LOVE_DIM], cplx_t (*mod_potRaylLove_Down)[GRT_LOVE_DIM], cplx_t (*mod_potRaylLove_Up)[GRT_LOVE_DIM])
已知某个界面 z_j+ 上的垂直波函数,计算模型每个分界面 z_j+ 和 z_j- 的垂直波函数 SH
-
void grt_get_mod_potential_Up_Down(MODEL1D_STATE *mstat, const DISPER_TYPE wtype, const size_t ncols, const size_t iref, const cplx_t potRaylLove[ncols], const cplx_t potRaylLoveUp[ncols], cplx_t (*mod_potRaylLove_Down)[ncols], cplx_t (*mod_potRaylLove_Up)[ncols])
合并 get_mod_potential_Up_Down_Rayl(Love)
-
void grt_get_eigenfn_single_depth_Rayl(const MODEL1D_STATE *mstat, const cplx_t (*mod_potRaylLove_Down)[GRT_RAYL_DIM], const cplx_t (*mod_potRaylLove_Up)[GRT_RAYL_DIM], cplx_t T0[GRT_RAYL_DIM][GRT_RAYL_DIM], const bool reuseT, const real_t zsamp, const size_t ziref, cplx_t eigenfn[4])
计算某个深度处的本征函数 P-SV
- 参数:
mstat – [in] 模型结构体指针
mod_potRaylLove_Down – [in] 每层 z_j+ 的垂直波函数
mod_potRaylLove_Up – [in] 每层 z_j- 的垂直波函数
T0 – [inout] 介质层矩阵
reuseT – [in] 是否可直接使用传入的 T0
zsamp – [in] 采样点深度
ziref – [in] 采样点层位
eigenfn – [out] 采样点本征函数
-
void grt_get_eigenfn_single_depth_Love(const MODEL1D_STATE *mstat, const cplx_t (*mod_potRaylLove_Down)[GRT_LOVE_DIM], const cplx_t (*mod_potRaylLove_Up)[GRT_LOVE_DIM], cplx_t T0[GRT_LOVE_DIM][GRT_LOVE_DIM], const bool reuseT, const real_t zsamp, const size_t ziref, cplx_t eigenfn[4])
计算某个深度处的本征函数 SH
-
void grt_get_eigenfn_depths_Rayl(const MODEL1D_STATE *mstat, const cplx_t (*mod_potRaylLove_Down)[GRT_RAYL_DIM], const cplx_t (*mod_potRaylLove_Up)[GRT_RAYL_DIM], const EIGENFN_INFO *eigfnmet, EIGENFN *eigfn)
计算多个深度处的本征函数 P-SV
- 参数:
mstat – [in] 模型结构体指针
mod_potRaylLove_Down – [in] 每层 z_j+ 的垂直波函数
mod_potRaylLove_Up – [in] 每层 z_j- 的垂直波函数
eigfnmet – [in] 本征函数数据结构体指针
eigfn – [out] 某频率某本征值的本征函数及相关
-
void grt_get_eigenfn_depths_Love(const MODEL1D_STATE *mstat, const cplx_t (*mod_potRaylLove_Down)[GRT_LOVE_DIM], const cplx_t (*mod_potRaylLove_Up)[GRT_LOVE_DIM], const EIGENFN_INFO *eigfnmet, EIGENFN *eigfn)
计算多个深度处的本征函数 SH
-
void grt_get_eigenfn_depths(const MODEL1D_STATE *mstat, const DISPER_TYPE wtype, const size_t ncols, const cplx_t (*mod_potRaylLove_Down)[ncols], const cplx_t (*mod_potRaylLove_Up)[ncols], const EIGENFN_INFO *eigfnmet, EIGENFN *eigfn)
合并 get_eigenfn_depths_Rayl(Love)