参考资料

manual_SPECFEM2D.pdf

数值实现

Julia 1.4.2/MATLAB 2019a

备用系统

Ubuntu 64

地球物理局 地震波动力学实验室 谱元组 译# 声明
# 欢迎批评指正,禁止转载!


目 录

石中居士:地震波场正演模拟中的谱元法:基本原理与程序实现——目录​zhuanlan.zhihu.com

关键词

#谱元法#


第3章 网格生成

3.1 如何使用SPECFEM2D

图3.1 SPECFEM2D仿真的示意性工作流程。可执行的xmeshfem2D创建GLL网格点并分配特定的模型参数。可执行文件xspecfem2D求解地震波传播问题。

要运行网格生成器,请按照以下步骤操作:

  • 编辑输入文件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_surfacerec_normal_to_surface。应该精细颗粒、顺时针排列。第一行为点数,然后每行为

坐标。
  • 如果使用MPI进行编译,则必须指定进程数。

注意,后面用gnuplot画图,需要修改默认的output_grid_Gnuplot配置:

修改为:

然后输入

./bin/xmeshfem2D

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

图3.2:由xmeshfem2D生成的网格文件实例,并用gnuplot可视化(在gnuplot中,输入'plot "OUTPUT_FILES/gridfile.gnu" w l')。

首先安装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

得到

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

节点和
节点有限元的经典约定:
manual_SPECFEM2D.pdf

局部坐标系为

xieta)。请注意,此约定仅用于描述几何。然后,在求解器中,根据谱元法中的经典方法——基于Gauss-Lobatto勒让德点的高阶拉格朗日插值描述波场。


商业推广


封面:[1]

参考

  1. ^http://cdn.fishki.net/upload/post/2016/05/27/1964133/0-1195dd-6a5e2522-xxxl.jpg

安卓第一行代码第3版pdf_SPECFEM2D用户手册——第3章 网格生成——3.1 如何使用SPECFEM2D...相关推荐

  1. 第一行代码-android-第三版-pdf扫描-思维导图-课件-源码

    第一行代码-android-第三版-pdf扫描-思维导图-课件-源码 一帮公众号各种要你关注, 各种压缩包层层套娃要密码, 还要进群, 真他妈日了gou了,找了半天 分享给大家, 毫无套路! pdf扫 ...

  2. Android 学习之《第一行代码》第二版 笔记(二十三)Material Design 实战 —— 卡片式布局

    实现基础: Android 学习之<第一行代码>第二版 笔记(二十二)Material Design 实战 -- 悬浮按钮和可交互提示 卡片式布局 卡片式布局是 Materials Des ...

  3. Android build.gradle文件详解(转述自《Android第一行代码》第二版)

    Android build.gradle文件详解 1. 最外层目录下的build.gradle文件 1.1 repostories 1.2 dependencies 2. app目录下的build.g ...

  4. 第一行代码第三版笔记

    第3章 Activity 主acitivity:程序运行起来首先启动的activity manifest <?xml version="1.0" encoding=" ...

  5. $《第一行代码:Android》读书笔记——第6章 数据持久化

    主要讲述了Android数据持久化的三种方式:文件存储.SharedPreference存储.SQLite数据库存储. (一)文件存储 其实Android中文件存储方式和Java的文件操作类似,就是用 ...

  6. Java学习经典《第一行代码》第二版

    第1章 开始启程--你的第一行Android代码 1 1.1 了解全貌--Android王国简介 2 1.1.1 Android系统架构 2 1.1.2 Android已发布的版本 3 1.1.3 A ...

  7. 第一行代码 第三版 第11章网络技术 11.6.1 Retrofit 应用 报错:android.system.ErrnoException: isConnected failed: ECONNRE

    在学习第11章 11.6.1Retrofit用法,这节的时候发生的报错:书上关于这个地方并没有说. 我搜索问题的关键语句是: java.net.ConnectException: Failed to ...

  8. 第一行代码 (第三版) 第八,九,十章

    一: 泛型和委托 1.泛型 泛型类: class MyClass<T>{ fun method(param: T) : T { return param } } 泛型方法: class M ...

  9. 第一行代码:Android(第三版)

    阿里云盘链接:「第一行代码 - 第三版.pdf」https://www.aliyundrive.com/s/E7nKMMjfKmT 提取码: x3y3

最新文章

  1. C#中base关键字的几种用法
  2. AWS re-Invent最新发布AI产品解析:场景为王
  3. fastjson异常问题
  4. saveas java_在SaveAs之后Excel崩溃
  5. file watchers怎么默认打开_Python读写文件怎么和我之前学的不一样?
  6. UNIX(进程间通信):03---僵尸进程
  7. 数学要考多少分?才能考上985、211,很多高中生看完后沉默了......
  8. php mysql 拆分join_PHP拼接Sql,MySql拆分数据(substring_index())作为判断条件
  9. Amazon behavior question
  10. 全球及中国木材干燥窑行业研究及十四五规划分析报告
  11. 好看的colormap颜色
  12. 【千锋Python2205班9.26笔记-day06-列表(一阶段)】
  13. 通过主成分分析实现三维模型对齐【Principal Component Analysis】
  14. Git(二) Git基础入门与实践
  15. LeetCode05最长回文子串
  16. 频点、带宽、FFT点数、采样率的关系
  17. Linux必备工具————虚拟机
  18. 如何对Win10电脑文件夹选项进行设置?
  19. 苹果支付(内购项目)回调验证
  20. 金立android怎么升级到7.o,金立手机怎么刷机?只需七步轻松刷机

热门文章

  1. 卷积在计算机中实现+pool作用+数据预处理目的+特征归一化+理解BN+感受野理解与计算+梯度回传+NMS/soft NMS
  2. Python 大规模异步新闻爬虫、google翻译、百度翻译、有道翻译、百度指数
  3. update-rc.d 更新 Linux 系统启动项 命令 用法详解
  4. C++学习之路 | PTA乙级—— 1083 是否存在相等的差 (20 分)(精简)
  5. js原生后代选择器_CSS 后代选择器
  6. php 短信验证码对比,php短信验证码的3个优势,你知道是什么吗?
  7. [记录] ---阿里云java.io.IOException: Connection reset by peer的问题
  8. 炫界 (795) -(脸兵马俑)_秦兵马俑彩绘脱落背后的秘密: 粘合剂竟然是动物胶与蛋类混合...
  9. python通讯录运用的知识点_案例驱动式Python学习--通讯录存取
  10. java resultset close_java代码ResultSet is closed