
参考资料
manual_SPECFEM2D.pdf
数值实现
Julia 1.4.2/MATLAB 2019a
备用系统
Ubuntu 64
地球物理局 地震波动力学实验室 谱元组 译# 声明
# 欢迎批评指正,禁止转载!
目 录
石中居士:地震波场正演模拟中的谱元法:基本原理与程序实现——目录zhuanlan.zhihu.com
关键词
#谱元法#
第3章 网格生成
3.1 如何使用SPECFEM2D

要运行网格生成器,请按照以下步骤操作:
- 编辑输入文件DATA/Par_file描述了仿真。代码根目录中提供的默认
DATA/Par_file
包含详细的注释,并且应该几乎是不言自明的(请注意,EXAMPLES
目录中提供的某些较旧的DATA/Par_file文件可以正常工作,但其中的某些注释可能已过时或错误;因此,请参考DATA/Par_file
以获得可靠说明)。如果需要更多详细信息,本手册中没有2D版本所有参数的详细说明,但是由于许多参数和一般原理相似,因此您可以在3D版本的手册中找到有用的信息。可在https://github.com/geodynamics/specfem3d/tree/master/doc/USER_MANUAL 中获得它们。要创建声(流体)区域,只需将波速度设置为零,代码将看到这些单元是流体,并自动在此处切换到正确的方程,并自动将它们与固体区域匹配。
- 如果您使用外部网格生成器(例如GiD或CUBIT/Trelis),则应将
read_external_mesh
设置为.true.
:
./DATA/Par_file
https://github.com/TheManLivingInRocks/specfem2d/blob/master/DATA/Par_file......
# use an external mesh created by an external meshing tool or use the internal mesher
read_external_mesh = .false.#-----------------------------------------------------------------------------
#
# PARAMETERS FOR EXTERNAL MESHING
#
#-----------------------------------------------------------------------------# data concerning mesh, when generated using third-party app (more info in README)
# (see also absorbing_conditions above)
mesh_file = ./DATA/mesh_file # file containing the mesh
nodes_coords_file = ./DATA/nodes_coords_file # file containing the nodes coordinates
materials_file = ./DATA/materials_file # file containing the material number for each element
free_surface_file = ./DATA/free_surface_file # file containing the free surface
axial_elements_file = ./DATA/axial_elements_file # file containing the axial elements if AXISYM is true
absorbing_surface_file = ./DATA/absorbing_surface_file # file containing the absorbing surface
acoustic_forcing_surface_file = ./DATA/MSH/Surf_acforcing_Bottom_enforcing_mesh # file containing the acoustic forcing surface
absorbing_cpml_file = ./DATA/absorbing_cpml_file # file containing the CPML element numbers
tangential_detection_curve_file = ./DATA/courbe_eros_nodes # file containing the curve delimiting the velocity model
......
mesh_file
:是描述网格的文件:第一行是单元的数量,然后是每行上形成每个单元的4个节点(仅四边形)的列表。
nodes_coords_file
:是包含每个节点的坐标(
materials_file
:是每个单元的材料编号:每行上从1到nbmodels
的整数。
free_surface_file
:是描述形成声学自由表面的边缘的文件:第一行上是边缘数量,然后在每一行上:单元数量、形成自由表面的节点数量(
axial_elements_file
:是描述轴对称仿真情况下轴向单元的文件。请参阅第4.2节。
absorbing_surface_file
:是描述形成吸收边界的边的文件:第一行,是边数;然后每行:单元数、形成吸收边的节点数(必须始终等于
tangential_detection_curve_file
:包含描述包络的点,这些点用于source_normal_to_surface
和rec_normal_to_surface
。应该精细颗粒、顺时针排列。第一行为点数,然后每行为
- 如果使用MPI进行编译,则必须指定进程数。
注意,后面用gnuplot画图,需要修改默认的output_grid_Gnuplot配置:

修改为:

然后输入
./bin/xmeshfem2D






来创建网格(将存储在目录OUTPUT_FILES/
中)。 xmeshfem2D
是串行的;它将输出几个名为Database??????.bin
的文件,每个进程一个。


首先安装plotutils。输入:
sudo apt install plotutils
输入密码,回车安装。然后安装gnuplot。输入:
sudo apt install gnuplot
输入密码,回车安装。
查看一下gnuplot安装在哪里。输入:
whereis gnuplot

想要进入这个位置,打开gnuplot,则输入:
cd /usr/bin/gnuplot

想要退出该软件,输入exit,回车

我们在gnuplot中输入:
plot "OUTPUT_FILES/gridfile.gnu" w l
得到

关于网格划分器创建的文件中的网格点编号,我们使用

局部坐标系为
xi
和eta
)。请注意,此约定仅用于描述几何。然后,在求解器中,根据谱元法中的经典方法——基于Gauss-Lobatto勒让德点的高阶拉格朗日插值描述波场。商业推广
封面:[1]
参考
- ^http://cdn.fishki.net/upload/post/2016/05/27/1964133/0-1195dd-6a5e2522-xxxl.jpg