高性能计算服务
>
软件专区
>
最佳实践
>
SPECFEM3D模拟地震波场中声弹耦合效应
SPECFEM3D(Spectral Element Method Finite Difference Method 3D)是一款基于Fortran 2003编写的用于地震波传播模拟和地震事件模拟的开源软件,可以进行六面体柔性网格中声学(流体)、弹性力学(固体)、声弹性耦合(流固耦合)及多孔弹性模拟。
软件基于SEM谱元法进行全波形成像或伴随层析成像,可以对地震后地震波在沉积盆地或任何区域地质模型中的传播进行建模,可以模拟地震波在本地或区域范围内的传播,广泛应用于地震灾害模拟、海洋勘探、非破坏性实验等领域。
本次实操,我们将通过声弹性耦合模拟来介绍如何利用超算互联网平台实现地震波传播模拟,算例名为“Coupled Acoustic and Elastic”。本次使用的软件为SPECFEM3D,具体操作流程如下:
本次模拟需要提前配置相应的软硬件资源,包括:
软件支持异构计算,您可以在算力市场申请使用相应配置的算力资源,本例使用的是“异构加速卡1 显存16GB-华东一区【昆山】”。 如下图所示,您可以按照Step1→Step3的顺序,通过点击“我的资源”→“高性能计算”查看申请的算力资源。
超算互联网平台已部署SPECFEM3D 加速版软件,可以直接申请使用。 如下图所示,您可以按照Step1→Step3的顺序,通过点击“已购商品”→“应用软件”→“命令行”通过命令行快速打开软件。
该软件用于计算结果后处理。超算互联网平台已部署不同版本的Paraview软件,可以直接申请使用。
我们使用官方提供的“coffee_mug_with_fluid_inside”算例进行模拟,算例文件包括.cub模型文件、DATA配置参数文件夹、.py网格转化脚本文件、使用xmeshfem3D预先生成的网格文件夹MESH-default以及slurm作业脚本文件,整体情况如下图所示: SPECFEM3D支持两种网格生成方式:1、使用第三方软件CUBIT生成.cub模型文件,然后利用官方提供的run_cubit2specfem3d.py脚本将.cub文件转换为SPECFEM支持的网格文件格式;2、使用自带工具xmeshfem3D直接生成网格,需要提供Mesh_Par_file配置文件指导网格划分。 这里直接使用预生成的网格模型文件,算例模型及网格情况如下图所示。
在求解之前,需要对主控文件进行配置。主控文件为Par_file,位于DATA文件夹中,其中包括网格划分、求解计算、可视化等多个过程的参数设置。这里对部分常用参数进行解释:
在执行求解前,需要将网格信息分解为Databases,用于生成SEM求解器所需的信息。该过程通过软件自带的xgenerate_databases工具实现,下图为软件求解流程示意。
CMTSOLUTION文件主要用于定义地震点源信息,相关信息可以直接从 Global Centroid-Moment Tensor (CMT)获取。其中各参数的含义可参考图13。
STATIONS文件主要用于设置地震监测站点位置。六列数据分别为:站点名、网格、纬度(度)、经度(度)、标高(米)、埋深(米)。其中各参数的含义可参考图15。
run_this_example.sh为程序运行脚本,其规定了计算流程,如下图所示。
超算互联网平台通过命令行的方式使用SPECFEM3D软件、通过Slurm作业调度系统进行作业提交、查询、修改等操作。为将计算任务提交至超算平台,需要将相关计算命令写入到slurm脚本中。脚本内容包括两部分,一部分为slurm命令,另一部分为SPECFEM3D运行命令。如下图所示。 其中:
本算例网格分区数为4,需要使用4个CPU核来进行计算。使用一个节点的4个CPU和4张异构加速卡进行计算。
使用“mkdir”命令新建测试文件夹test。
点击E-Shell的文件管理功能,选择本地上传文件,将算例文件及slurm脚本文件上传至新建的测试文件夹test中。上传成功后测试文件夹内容如下图所示。
算例模拟结束后,我们可以运行xcreate_movie_files.sh将SPECFEM3D输出的结果转换为Paraview支持的inp文件,然后使用Paraview软件对结果进行后处理。
使用Paraview软件打开算例文件夹OUTPUT_FILES/中的.inp组文件,如下图。
在本次实践中,我们详细介绍了如何在超算互联网平台申请软硬件资源,利用SPECFEM3D软件对声弹性耦合过程进行动态模拟,并且对模拟结果进行可视化处理,模拟结果形象展示了声波在固体区域内的传递。
希望本篇最佳实践为您提供一些SPECFEM3D的模拟技巧。