Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions docs/source/Advanced/integ_converg/run_ptam/run.py
Original file line number Diff line number Diff line change
Expand Up @@ -44,9 +44,9 @@
deprcv = 0.0
pymod = pygrt.PyModel1D(modarr, depsrc=depsrc, deprcv=deprcv)

xarr = np.array([2.0])
yarr = np.array([2.0])
static_grn = pymod.compute_static_grn(xarr, yarr, converg_method='PTAM', statsfile=f"static_pygrtstats_{depsrc}_{deprcv}", k0=3, use_kmax_ref=True)
norths = np.array([2.0])
easts = np.array([2.0])
static_grn = pymod.compute_static_grn(norths, easts, converg_method='PTAM', statsfile=f"static_pygrtstats_{depsrc}_{deprcv}", k0=3, use_kmax_ref=True)

ir = 0
statsdata1, statsdata2, ptamdata, dist = pygrt.utils.read_statsfile_ptam(f"static_pygrtstats_{depsrc}_{deprcv}/PTAM_{ir:04d}_*/PTAM")
Expand Down
2 changes: 1 addition & 1 deletion docs/source/Gallery/ex15/plot.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
pygrnLst, _, _ = pymod._get_grn_spectra(distarr, nt=1, dt=100, zeta=1.0, keepAllFreq=True)

# 静态解
static_grn = pymod.compute_static_grn(xarr=[0.0], yarr=distarr)
static_grn = pymod.compute_static_grn(norths=[0.0], easts=distarr)

# 绘制
coef = 1e-20 * 1e25 # 1e25 为地震矩
Expand Down
2 changes: 1 addition & 1 deletion docs/source/Gallery/ex15/plot_all.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
pygrnLst, _, _ = pymod._get_grn_spectra(distarr, nt=1, dt=500, zeta=1.0, keepAllFreq=True)

# 静态解
static_grn = pymod.compute_static_grn(xarr=[0.0], yarr=distarr)
static_grn = pymod.compute_static_grn(norths=[0.0], easts=distarr)

# 绘制零频结果
fig, axs = plt.subplots(2, 3, figsize=(12, 8), gridspec_kw=dict(hspace=0.3, wspace=0.3)) #
Expand Down
10 changes: 5 additions & 5 deletions docs/source/Gallery/ex16/plot.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
from matplotlib.figure import Figure
import sys

yarr = np.arange(0.01, 10.01, 0.01)
easts = np.arange(0.01, 10.01, 0.01)
rs = np.array([10]) # 震中距数组,km
nt = 801 # 总点数,不要求2的幂次
dt = 0.01 # 采样时间间隔(s)
Expand Down Expand Up @@ -32,7 +32,7 @@
pymod1 = pygrt.PyModel1D(modarr, depsrc, deprcv, topbound=bound1, botbound=bound2)
st1 = pymod1.compute_grn(distarr=rs, nt=nt, dt=dt, keepAllFreq=True)[0]
pygrt.utils.stream_integral(st1)
static1 = pymod1.compute_static_grn(xarr=[0.0], yarr=yarr)
static1 = pymod1.compute_static_grn(norths=[0.0], easts=easts)

# =============================================================
# 设置上下翻转模型
Expand All @@ -54,7 +54,7 @@

pymod2 = pygrt.PyModel1D(modarr2, depsrc2, deprcv2, topbound=bound2, botbound=bound1) # 整理好的模型对象
st2 = pymod2.compute_grn(distarr=rs, nt=nt, dt=dt, keepAllFreq=True)[0]
static2 = pymod2.compute_static_grn(xarr=[0.0], yarr=yarr)
static2 = pymod2.compute_static_grn(norths=[0.0], easts=easts)
pygrt.utils.stream_integral(st2)


Expand Down Expand Up @@ -87,8 +87,8 @@
ax.set_ymargin(0.3)

ax = axs2[i]
ax.plot(yarr, static1[chLst[i]][0], **prop1)
ax.plot(yarr, static2[chLst[i]][0] * sgn, **prop2)
ax.plot(easts, static1[chLst[i]][0], **prop1)
ax.plot(easts, static2[chLst[i]][0] * sgn, **prop2)
ax.text(0.96, 0.9, chLst[i], transform=ax.transAxes,
ha='right', va='top', bbox=dict(fc='w'))
ax.ticklabel_format(axis='y', style='sci', scilimits=(0,0))
Expand Down
42 changes: 21 additions & 21 deletions docs/source/Tutorial/static/run/run.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,14 @@

pymod = pygrt.PyModel1D(modarr, depsrc=2.0, deprcv=0.0)

xarr = np.linspace(-3, 3, 41)
yarr = np.linspace(-2.5, 2.5, 33)
norths = np.linspace(-3, 3, 41)
easts = np.linspace(-2.5, 2.5, 33)
# 可以设置 distarr 来指定震中距序列
# static_grn = pymod.compute_static_grn(distarr=np.arange(0,10+1e-8,0.1))
# 也可以设置 xarryarr 来指定 XY 网格
static_grn = pymod.compute_static_grn(xarr=xarr, yarr=yarr)
# 也可以设置 northseasts 来指定 north/east 网格
static_grn = pymod.compute_static_grn(norths=norths, easts=easts)
print(static_grn.keys())
# dict_keys(['_xarr', '_yarr', '_src_va', '_src_vb', '_src_rho', '_rcv_va', '_rcv_vb', '_rcv_rho', 'EXZ', 'VFZ', 'DDZ', 'HFZ', 'DSZ', 'SSZ', 'EXR', 'VFR', 'DDR', 'HFR', 'DSR', 'SSR', 'HFT', 'DST', 'SST'])
# dict_keys(['_norths', '_easts', '_src_va', '_src_vb', '_src_rho', '_rcv_va', '_rcv_vb', '_rcv_rho', 'EXZ', 'VFZ', 'DDZ', 'HFZ', 'DSZ', 'SSZ', 'EXR', 'VFR', 'DDR', 'HFR', 'DSR', 'SSR', 'HFT', 'DST', 'SST'])
# END GRN
# ---------------------------------------------------------------------------------

Expand All @@ -27,11 +27,11 @@ def plot_static(static_syn:dict, out:Union[str,None]=None):
fig, ax = plt.subplots(1, 1, figsize=(10,8))
# 设计对称色标
m = np.max(np.abs(static_syn[f'Z'])) * 1.2
pcm = ax.pcolormesh(yarr, xarr, static_syn[f'Z'], cmap='bwr', vmin=-m, vmax=m)
ax.quiver(yarr, xarr, static_syn[f'E'], static_syn[f'N'],
pcm = ax.pcolormesh(easts, norths, static_syn[f'Z'], cmap='bwr', vmin=-m, vmax=m)
ax.quiver(easts, norths, static_syn[f'E'], static_syn[f'N'],
angles='uv', pivot='mid')
ax.set_ylim([xarr[0], xarr[-1]])
ax.set_xlim([yarr[0], yarr[-1]])
ax.set_ylim([norths[0], norths[-1]])
ax.set_xlim([easts[0], easts[-1]])
ax.set_aspect('equal')
cbar = fig.colorbar(pcm, ax=ax, label='Z(cm)')
cbar.formatter.set_powerlimits((0, 0))
Expand All @@ -46,7 +46,7 @@ def plot_static(static_syn:dict, out:Union[str,None]=None):
# BEGIN SYN EX
static_syn = pygrt.utils.gen_syn_from_gf_EX(static_grn, M0=1e24, ZNE=True)
print(static_syn.keys())
# dict_keys(['_xarr', '_yarr', '_src_va', '_src_vb', '_src_rho', '_rcv_va', '_rcv_vb', '_rcv_rho', 'Z', 'N', 'E'])
# dict_keys(['_norths', '_easts', '_src_va', '_src_vb', '_src_rho', '_rcv_va', '_rcv_vb', '_rcv_rho', 'Z', 'N', 'E'])
plot_static(static_syn, "syn_ex.svg")
# END SYN EX
# ---------------------------------------------------------------------------------
Expand All @@ -56,7 +56,7 @@ def plot_static(static_syn:dict, out:Union[str,None]=None):
# BEGIN SYN SF
static_syn = pygrt.utils.gen_syn_from_gf_SF(static_grn, S=1e16, fN=1, fE=-0.5, fZ=2, ZNE=True)
print(static_syn.keys())
# dict_keys(['_xarr', '_yarr', '_src_va', '_src_vb', '_src_rho', '_rcv_va', '_rcv_vb', '_rcv_rho', 'Z', 'N', 'E'])
# dict_keys(['_norths', '_easts', '_src_va', '_src_vb', '_src_rho', '_rcv_va', '_rcv_vb', '_rcv_rho', 'Z', 'N', 'E'])
plot_static(static_syn, "syn_sf.svg")
# END SYN SF
# ---------------------------------------------------------------------------------
Expand All @@ -66,7 +66,7 @@ def plot_static(static_syn:dict, out:Union[str,None]=None):
# BEGIN SYN DC
static_syn = pygrt.utils.gen_syn_from_gf_DC(static_grn, M0=1e24, strike=33, dip=50, rake=120, ZNE=True)
print(static_syn.keys())
# dict_keys(['_xarr', '_yarr', '_src_va', '_src_vb', '_src_rho', '_rcv_va', '_rcv_vb', '_rcv_rho', 'Z', 'N', 'E'])
# dict_keys(['_norths', '_easts', '_src_va', '_src_vb', '_src_rho', '_rcv_va', '_rcv_vb', '_rcv_rho', 'Z', 'N', 'E'])
plot_static(static_syn, "syn_dc.svg")
# END SYN DC
# ---------------------------------------------------------------------------------
Expand All @@ -75,7 +75,7 @@ def plot_static(static_syn:dict, out:Union[str,None]=None):
# BEGIN SYN DC2
static_syn = pygrt.utils.gen_syn_from_gf_DC(static_grn, M0=1e24, strike=33, dip=90, rake=0, ZNE=True)
print(static_syn.keys())
# dict_keys(['_xarr', '_yarr', '_src_va', '_src_vb', '_src_rho', '_rcv_va', '_rcv_vb', '_rcv_rho', 'Z', 'N', 'E'])
# dict_keys(['_norths', '_easts', '_src_va', '_src_vb', '_src_rho', '_rcv_va', '_rcv_vb', '_rcv_rho', 'Z', 'N', 'E'])
plot_static(static_syn, "syn_dc2.svg")
# END SYN DC2
# ---------------------------------------------------------------------------------
Expand All @@ -84,7 +84,7 @@ def plot_static(static_syn:dict, out:Union[str,None]=None):
# BEGIN SYN TS
static_syn = pygrt.utils.gen_syn_from_gf_TS(static_grn, M0=1e24, strike=33, dip=50, ZNE=True)
print(static_syn.keys())
# dict_keys(['_xarr', '_yarr', '_src_va', '_src_vb', '_src_rho', '_rcv_va', '_rcv_vb', '_rcv_rho', 'Z', 'N', 'E'])
# dict_keys(['_norths', '_easts', '_src_va', '_src_vb', '_src_rho', '_rcv_va', '_rcv_vb', '_rcv_rho', 'Z', 'N', 'E'])
plot_static(static_syn, "syn_ts.svg")
# END SYN TS
# ---------------------------------------------------------------------------------
Expand All @@ -94,7 +94,7 @@ def plot_static(static_syn:dict, out:Union[str,None]=None):
# BEGIN SYN TS2
static_syn = pygrt.utils.gen_syn_from_gf_TS(static_grn, M0=1e24, strike=33, dip=90, ZNE=True)
print(static_syn.keys())
# dict_keys(['_xarr', '_yarr', '_src_va', '_src_vb', '_src_rho', '_rcv_va', '_rcv_vb', '_rcv_rho', 'Z', 'N', 'E'])
# dict_keys(['_norths', '_easts', '_src_va', '_src_vb', '_src_rho', '_rcv_va', '_rcv_vb', '_rcv_rho', 'Z', 'N', 'E'])
plot_static(static_syn, "syn_ts2.svg")
# END SYN TS2
# ---------------------------------------------------------------------------------
Expand All @@ -104,7 +104,7 @@ def plot_static(static_syn:dict, out:Union[str,None]=None):
# BEGIN SYN MT
static_syn = pygrt.utils.gen_syn_from_gf_MT(static_grn, M0=1e24, MT=[0.1,-0.2,1.0,0.3,-0.5,-2.0], ZNE=True)
print(static_syn.keys())
# dict_keys(['_xarr', '_yarr', '_src_va', '_src_vb', '_src_rho', '_rcv_va', '_rcv_vb', '_rcv_rho', 'Z', 'N', 'E'])
# dict_keys(['_norths', '_easts', '_src_va', '_src_vb', '_src_rho', '_rcv_va', '_rcv_vb', '_rcv_rho', 'Z', 'N', 'E'])
plot_static(static_syn, "syn_mt.svg")
# END SYN MT
# ---------------------------------------------------------------------------------
Expand All @@ -113,19 +113,19 @@ def plot_static(static_syn:dict, out:Union[str,None]=None):
# BEGIN SYN MT2
static_syn = pygrt.utils.gen_syn_from_gf_MT(static_grn, M0=1e24, MT=[0,-0.2,0,0,0,0], ZNE=True)
print(static_syn.keys())
# dict_keys(['_xarr', '_yarr', '_src_va', '_src_vb', '_src_rho', '_rcv_va', '_rcv_vb', '_rcv_rho', 'Z', 'N', 'E'])
# dict_keys(['_norths', '_easts', '_src_va', '_src_vb', '_src_rho', '_rcv_va', '_rcv_vb', '_rcv_rho', 'Z', 'N', 'E'])
plot_static(static_syn, "syn_mt2.svg")
# END SYN MT2
# ---------------------------------------------------------------------------------


# ---------------------------------------------------------------------------------
# BEGIN NEW XY
xarr2 = np.arange(-3, 3+1e-8, 0.2)
yarr2 = np.arange(-2.5, 2.5+1e-8, 0.25)
static_syn = pygrt.utils.gen_syn_from_gf_DC(static_grn, M0=1e24, strike=33, dip=90, rake=0, ZNE=True, xarr=xarr2, yarr=yarr2)
norths2 = np.arange(-3, 3+1e-8, 0.2)
easts2 = np.arange(-2.5, 2.5+1e-8, 0.25)
static_syn = pygrt.utils.gen_syn_from_gf_DC(static_grn, M0=1e24, strike=33, dip=90, rake=0, ZNE=True, norths=norths2, easts=easts2)
print(static_syn.keys())
# dict_keys(['_xarr', '_yarr', '_src_va', '_src_vb', '_src_rho', '_rcv_va', '_rcv_vb', '_rcv_rho', 'Z', 'N', 'E'])
# dict_keys(['_norths', '_easts', '_src_va', '_src_vb', '_src_rho', '_rcv_va', '_rcv_vb', '_rcv_rho', 'Z', 'N', 'E'])
plot_static(static_syn, "synXY_dc2.svg")
# END NEW XY
# ---------------------------------------------------------------------------------
12 changes: 6 additions & 6 deletions docs/source/Tutorial/static/run_upar/run.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
def plot6(data:dict, title:str, out:str|None=None):
chs = [k for k in data.keys() if k[0]!='_']
chs.sort(reverse=True)
xarr = data['_xarr']
yarr = data['_yarr']
norths = data['_norths']
easts = data['_easts']
fig, axs = plt.subplots(len(chs)//3, 3, figsize=(10, len(chs)))
axs = axs.ravel()

Expand All @@ -25,7 +25,7 @@ def plot6(data:dict, title:str, out:str|None=None):
vmin = -1
vmax = 1

pcm = ax.pcolormesh(yarr, xarr, data[ch], shading='nearest', vmin=vmin, vmax=vmax, rasterized=True)
pcm = ax.pcolormesh(easts, norths, data[ch], shading='nearest', vmin=vmin, vmax=vmax, rasterized=True)
ax.set_aspect('equal')
ax.set_title(ch)
cbar = fig.colorbar(pcm, ax=ax)
Expand All @@ -42,10 +42,10 @@ def plot6(data:dict, title:str, out:str|None=None):

pymod = pygrt.PyModel1D(modarr, depsrc=2.0, deprcv=0.0)

xarr = np.linspace(-3, 3, 41)
yarr = np.linspace(-2.5, 2.5, 33)
norths = np.linspace(-3, 3, 41)
easts = np.linspace(-2.5, 2.5, 33)
# 传入calc_upar=True可计算空间导数
static_grn = pymod.compute_static_grn(xarr, yarr, calc_upar=True)
static_grn = pymod.compute_static_grn(norths, easts, calc_upar=True)

# 传入calc_upar=True可计算空间导数
# 传入ZNE=True返回ZNE分量
Expand Down
6 changes: 3 additions & 3 deletions pygrt/C_extension/include/grt/static/static_postprocess.h
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
* 与 syn 中轴点处 (1/r)∂_θ 有限部分配套。
*/
void grt_static_compute_stress(
size_t nx, size_t ny, const real_t *xs, const real_t *ys,
size_t nnorth, size_t neast, const real_t *norths, const real_t *easts,
real_t *const u[GRT_CHANNEL_NUM],
real_t *const upar[GRT_CHANNEL_NUM][GRT_CHANNEL_NUM],
real_t *const res[GRT_CHANNEL_NUM][GRT_CHANNEL_NUM],
Expand All @@ -29,7 +29,7 @@ void grt_static_compute_stress(
* 数组布局同 grt_static_compute_stress()。
*/
void grt_static_compute_strain(
size_t nx, size_t ny, const real_t *xs, const real_t *ys,
size_t nnorth, size_t neast, const real_t *norths, const real_t *easts,
real_t *const u[GRT_CHANNEL_NUM],
real_t *const upar[GRT_CHANNEL_NUM][GRT_CHANNEL_NUM],
real_t *const res[GRT_CHANNEL_NUM][GRT_CHANNEL_NUM], bool rot2ZNE);
Expand All @@ -39,7 +39,7 @@ void grt_static_compute_strain(
* 数组布局同 grt_static_compute_stress()。仅写入 res 的非对角分量。
*/
void grt_static_compute_rotation(
size_t nx, size_t ny, const real_t *xs, const real_t *ys,
size_t nnorth, size_t neast, const real_t *norths, const real_t *easts,
real_t *const u[GRT_CHANNEL_NUM],
real_t *const upar[GRT_CHANNEL_NUM][GRT_CHANNEL_NUM],
real_t *const res[GRT_CHANNEL_NUM][GRT_CHANNEL_NUM], bool rot2ZNE);
Loading
Loading