specfem2d是做地震模拟常用软件,安装较为简单,但只能在Linux系统上使用!
系统:ubuntu16.04
辅助工具:git
说明:git已经是Linux系统默认自带的,这很方便($ git 可以验证是否自带)
有了git后下面具体介绍specfem2d软件的安装流程:
步骤1:使用git从github上下载specfem2d的最新版本
命令:$ git clone --recursive --branch devel https://github.com/geodynamics/specfem2d.git
注意:选择branch为devel
说明1:在华为云服务器上用git下载速度非常的快!但是在自己电脑的虚拟机上下载网速有限,需等待!
说明2:下载的是原始完整程序,无需解压操作。
步骤2:进入specfem2d文件夹,为软件条件c++和fortran的编译器
命令:$ ./configure FC=gfortran CC=gcc
说明1:gcc所有linux自带,gfortran可能不自带,安装十分简单不累述;
说明2:在官方的教程中,此句还可以添加mpi并行计算的编译器
命令:$ ./configure FC=gfortran CC=gcc MPIFC=mpif90 --with-mpi
步骤3:安装
命令:$ make
说明1:安装之后所有的可执行程序都在bin文件夹中(原来该文件夹是空的)
至此,specfem2d软件安装完毕!
步骤4:测试,bin文件夹下的两个可执行程序(shell脚本)
命令1:$ ./bin/xmeshfem2D
命令2:$ ./bin/xspecfem2D
说明:如果终端出现大量的计算过程,说明安装成功!
至此,specfem2d已可以正常使用! have fun~
成功安装好软件好,下面进行简单的使用:
在EXAMPLES文件夹中有很多“功能(shell脚本)”,我们测试一个“自由界面的平面波”模拟!
步骤1:首先在EXAMPLES文件夹中找到initial_plane_wave_with_free_surface子文件夹并进入
命令:$ cd ./EXAMPLES/initial_plane_wave_with_free_surface
步骤2:用任何编辑器均可修改Par_file文件中的参数!将其中NPROC改为1,initialfield改为false;保存并退出
命令:$ vi Par_file
步骤3:运行shell脚本(模拟开始)
命令:$ ./run_this_example.sh
结果:会生成DATA和OUTPUT_FILES这两个文件夹,其中OUTPUT_FILES是模拟的结果(一大堆图像文件)
说明1:.jpg文件波场快照,看图像内容即可知道
说明2:OUTPUT_FILES文件夹中有很多*.semd文件,这些文件是生成的地震记录;
我们希望把这些地震记录文件转成sac可以识别的,这里需要借助前人写好的一个python程序!
地址:https://gitlab.com/ranor/specfem2d/blob/master/get-sac-from-semd.py
文件格式转换命令:$ python3 get-sac-from-semd.py semd
转换结果:OUTPUT_FILES文件夹中会生成一大堆*.SAC的文件,说明转换成功!
对get-sac-from-semd.py文件的补充说明:
说明1:说明的模块都改到python3+的版本下操作,上面网址中也有说明,但是是在python2.7下操作的!
说明2:首先把该python文件中所要用的模块都安装好,其中obspy是第三方的地震处理模块,安装如下
命令:$ sudo pip3 install obspy
说明3:注意说明1!使用命令一定是:$ python3 get-sac-from-semd.py semd