最近用COMSOL按照网上视频做了一个实验,中间建模过程很复杂,花了不少时间。效果还是有的。最后,按照COMSOL自动输出PRESENTATION规则,得到英文版的PRESENTATION.pptx.将大部分内容粘贴出来。作为后期波场模参考。
Soundwei
Global Definitions
Name | Expression | Value | Description |
---|---|---|---|
alpha | 28[deg] | 0.48869 rad | |
H | 10[mm] | 0.01 m | |
L | 16[mm] | 0.016 m | |
D | 14[mm] | 0.014 m | |
W_ts | 100[mm] | 0.1 m | |
H_ts | 15[mm] | 0.015 m | |
f0 | 1.5[MHz] | 1.5E6 Hz | |
T0 | 1/f0 | 6.6667E−7 s | |
cp_plast | 2080[m/s] | 2080 m/s | |
cs_plast | 1000[m/s] | 1000 m/s | |
cp_al | 6200[m/s] | 6200 m/s | |
cs_al | 3120[m/s] | 3120 m/s |
Component 1
Definitions
Function name | f1 |
Function type | Analytic |
Description | Value |
---|---|
Expression | exp(-((t - 2*T0)/(T0/2))^2)*sin(2*pi*f0*t) |
Arguments | t |
Description | Value |
---|---|
Function | m/s |
Argument | Unit |
---|---|
t | s |
图1 汉宁窗函数子波
Pair type | Identity pair |
Pair name | p1 |
图2 一致对
Length unit | m |
Angular unit | deg |
Description | Value |
---|---|
Space dimension | 2 |
Number of domains | 4 |
Number of boundaries | 25 |
Number of vertices | 28 |
Materials
Geometric entity level | Domain |
Selection | Geometry geom1: Dimension 2: Domain 4 |
Name | Value | Unit |
---|---|---|
Density | 1190[kg/m^3] | kg/m³ |
Young's modulus | 3.2e9[Pa] | Pa |
Poisson's ratio | 0.35 | 1 |
Geometric entity level | Domain |
Selection | Geometry geom1: Dimension 2: Domains 1–3 |
Name | Value | Unit |
---|---|---|
Density | rho_solid_1(T) | kg/m³ |
Young's modulus | E(T) | Pa |
Poisson's ratio | nu(T) | 1 |
Geometric entity level | Domain |
Selection | Geometry geom1: Dimension 2: All domains |
Equations
Name | Level |
---|---|
Elastic Waves, Time Explicit Model 1 | Domain |
Free 1 | Boundary |
Initial Values 1 | Domain |
Continuity 1 | Boundary |
Low-Reflecting Boundary 1 | Boundary |
Prescribed Velocity 1 | Boundary |
Description | Value |
---|---|
Status | Mesh with unmeshed edges |
Mesh vertices | 1924 |
Triangles | 3541 |
Edge elements | 327 |
Vertex elements | 20 |
Number of elements | 3541 |
Minimum element quality | 0.5926 |
Average element quality | 0.9224 |
Element area ratio | 0.036403 |
Mesh area | 0.001598 m² |
Results
Datasets
Description | Value |
---|---|
Solution | Solution 1 |
Component | Component 1 (comp1) |
Plot Groups
Surface: Velocity magnitude (m/s)
最后是调用COMSOL LIVE LINK WITH MATLAB
参考前面我写过的帖子,注意comsolstartup.m脚本中文件路径的双引号规则,不能是单引号。成功配置后,在MATLAB一连贯的输入如下:
1.调用模型 :weimod=mphload("路径\soundwei.mph");
我电脑上的路径weimod=mphload("C:\tunnel\FD\soundwei.mph");
2.插值定义好的检波点位置,得到地震记录。
weige=mphinterp(weimod,'comp1.vy','coord',[0.02:0.01:0.08;zeros(size(0.02:0.01:0.08))]);
3.显示记录
wiggle(weige)%wiggle是matsgy函数库中的函数
图3最终Matlab livelink插值得到的地震记录
重要说明:上面这些做完,不是为了科研,而是为了测试自己大脑是不是老化了。以上关键是能看懂网上视频,记下不明白的地方,然后思考。
最终,看到COMSOL还可以把做好的MODEL打包成APPBUILDER。因而,急忙做了一个。
主要是新建FORM->basic->添加一系列先要的参数,绘图区,和按钮。
这个最终的APP可以给其他人看,让别人观摩一下。谢谢关注!后面发现自己建立的模型存在一些瑕疵。上部楔形结构探头部件边界上边的编号存在两套编号23-25,另一套是18-20.
(a) 几何模型编号1
(b)速度加载时边24显示成另一个编号(左上角的19)
以上两个编号和边的方向可以在左侧树形结构图中通过创建视图(view)节点,然后定义属性菜单来实现。这个地方我思考良久,一开始很懵,总觉得速度波加载边界24是对的,后面觉悟了,对边24(几何边界,无网格)加子波源在软件中是not applicable的;而19(有网格,网格化之后的编号)是适合子波加载的,是可以被选择的。原因是,有限元积分依赖单元网格,子波需要加载到网格上或者网格对应的边上,否则COMSOL会提出警告,即是有些地方作用到几何边号上(与网格边号不一致),也会强行变为位置重合的网格边号上去。
另外总结一下,用DG-FEM可以处理两个部件的非一致网格大小情况。如下图:
DG-FEM两个部件的非一致网格问题
混合网格
1个重合边2个边号,imprints成多个独立的三角边
COMSOL dip-beam demo中的非一致带悬挂点的网格
由于这里采用DG-FEM,模型构建最后一步需要使用装配体而不是联合体。装配体里面可以指定保留一致对和脚印之类的。装配体允许两个相邻单元边界不共享节点,相邻单元同一条边的场是不连续的,所以后续需要一致对连续性处理。而联合体必须共享边和节点,场必须默认连续。装配体还允许公共边或者某些多次处理用的边有2个边号出现,而联合体貌似一条边只能一个边号出现。这也解释了前面图(b)的一条边对应两个边号的问题。
探头和铝板接触部分的边是17和7需要在component中定义出一致对,然后在弹性波complie中需要将这个一致对定义为continuity(场的连续性)条件(这里我想到了SEISSOL2D软件有个non-conforming-102边界,其作用与此类似)。所以对于这个模型,COMSOL适合这个模式的处理:
Assembly + Identity Pairs + Continuity
由于模拟采用DG-FEM,速度在网格边界上不连续(单元边界点自由度翻倍了),COMSOL提供一个nonlocal coupling-average 功能,可以从24或19所在边作为source,采用nonlocal coupling operator为 average integration之类的算子,以全局几何模型为distination进行逐个运算,可以得到连续的速度场,以便后处理显示。 其它间断有限元后处理软件,很少有逐个单元显示出边界间断波场的情况,即使有,也需要笔者自己开发相应模块。比如TECPLOT都没有这种功能。所以对于间断有限元DG-FEM后处理,需要nonlocal coupling operator。这个用SEISSOL(ADER-DG)处理平台时,最后的显示处理,也需要多个单元节点速度和应力场的average。但其它连续有限元方法应该不需要这个non-local coupling算子。该算子的具体情况参考网址[1].【1】https://doc.comsol.com/5.5/doc/com.comsol.help.comsol/comsol_ref_definitions.12.069.html
如你有其它问题需要沟通请以书面方式联系:weiyiwen1982@126.com