SPH粒子教程
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SPH粒⼦教程
Ls-dyna中⽆⽹格法的⼀点⼼得
前处理:
⼀.采⽤ls-prepost
在ls-prepost中第7页有sphgen的功能,利⽤这个功能可以建⽴⼀些简单的⽆⽹格模型。
操作具体步骤是:
1.选择sphgen,出现如图1的菜单,选择其中的new,表⽰新建⼀个⽆⽹格的命令。
可以看到下⾯有⼏个选项:
box,sphere,cylinder,sketch
图1
2.选择box,出现如图2所⽰的菜单,即为创建⼀个具有长⽅体形的⽆⽹格模型。
图2
可以看到有坐标x,y,z,⽽且标号为x1,x2,y1,y2,z1,z2,表⽰以p1点(x1,y1,z1)起点,以向量(由(x1,y1,z1)指向(x2,y2,z2))为对⾓线创建⼀个长⽅形的box。
NX,NY,NZ表⽰X,Y,Z⽅向的sph粒⼦的数量。
Box name和part id都需要⽤户制定,当给定part的id,⽐如“1”后,即表明创建的sph单元属于part1,然后点“enter”,可以看到material id也被激活,可以看到如图3的标识,点击这个按钮,就可以为这个part选择相应的材料了。
图3
点这个按钮出现如图4的对话框,选择⼀种材料,如elastic,点击edit,出现如图5的窗⼝
图4
图5
可以选择add,或者newid,新建⼀种材料,⽐如点击add,可以看到mid的选项下⾯出现了1的标号,代表材料id为“1”,然后填写相应的属性,填写完成选择“accept”,表⽰接受这种材料类型。
如果还要创建,那么选择“add”,如果想保持当前的数据,只是想把材料id改为别的数值,那么点击“newid”。
创建了材料之后,选择done推出当前窗⼝,再选择done结束材料的创建。
在sph的主窗⼝下,选择apply,可以看到我们创建的box形的sph模型,出现在窗⼝中,如图6所⽰。
如果不选择“done”,可以继续创建sph 模型。
图6
3.我们现在创建的box使⽤的缺省尺⼨1,1,1。
⽤户可以根据需要采⽤不同的尺⼨和sph 的数量。
4.现在所创建的仅仅是sph的⼏何模型,对于属性的定义还要采⽤其他的关键字,⽐如section_sph。
下⾯就section_sph的⼀些参数谈⼀下应⽤。
在ls-prepost的第三页有各种关键字的定义。
选择“*section”,进⾏单元属性的定义。
在弹出的菜单中选择sph,点击edit,我们进⾏sph单元属性的定义。
与材料定义⼀样,出现了如图7的窗⼝,点击add,表⽰新建⼀个*section_sph的属性。
图7
需要填写的参数有:
i.CLSH:这是⽤于确定smooth length 的⼀个常数。
通常⽤缺省的1.2
就⾏。
这个常数的⽤途可能是这样的:在开始的时候,程序根据当前
的粒⼦的间隔确定⼀个例⼦间隔的最⼤值,把它作为sph法的最初的
光滑长度,CLSH是最初的光滑长度的系数,有点类似于显⽰积分中
步长的确定,如果实际步长⼤于初始光滑长度,那么采⽤CLSH给
初始光滑长度增加倍数,以满⾜程序的需要。
ii.Hmin,Hmax和CLSH的原理是⼀样的,都是调整smooth length的
参数。
iii.SPHINI是强制的初始步长,如果采⽤这个步长,那么程序中就不会
⾃动计算步长,⽽是⼀直使⽤这个SPHINI的⼤⼩作为SMOOTH
LENGTH。
iv.Death:sph粒⼦消亡的时间
v.Start:sph粒⼦开始的时间
这两个参数,是设定sph算法的作⽤时间的,可以设定什么时候sph法有
作⽤,什么时候sph法结束。
设定完这些参数后,点击“accept”,表⽰接受这些设定。
然后点击done推出section_sph的定义。
5.把所创建的*section_sph付给相应的part。
还是在当前页,选择“*part”,如图8。
选择part【1】,点edit,弹出如下窗⼝,如图9。
图8
图9
把secid给值为1,表⽰将刚才创建的section付给了part1。
出现提⽰,点击replace。
这样我们就完成了⼀个sph有限元模型的创建过程,包含⼏何,单元属性,材料属性的有限元模型。
6.Control_sph的⽤法
在当前页点击“*control”,在当前窗⼝中选择sph,点击cre/edit,进⼊“control_sph”的创建菜单,如图10所⽰。
图10
关于其中参数的说明:
i.NCBS,表⽰搜索sph时的循环次数
ii.Boxid,表⽰在这个box⾥⾯sph参与计算,⽽出去了就不对模型有贡献。
这两个的意思有些类似于contact的搜索过程
iii.Dt和section_sph中的death⼀样
iv.Dim,设定有限元模型的维数,3表⽰三维有限元模型,2表⽰平⾯问题,-2表⽰2维轴对称。
对于2d的应⽤⽽⾔,模型必须建⽴在xy平⾯中。
v.Start和section_sph中的功能⼀样
vi.MAXV,粒⼦允许的最⼤速度,如果超过了这个速度,粒⼦就会失效。
7.在ls-dyna970中还增加了symmetry(对称条件的定义),sph_flow的设定,我没有试过,以后有时间我会试⼀下的。
⼆.后处理
Sph的后处理可以以下⼏步实现。
1.定义ASCII关键字中的sphout
2.通过*database_history_sph(_set),定义输出那些sph单元。
3.利⽤ls-prepost中第⼀页的ASCII菜单,把sph调⼊到后处理中来。
如图11,12所⽰,在file右侧的列表中选择sphout,然后点load,载⼊sph的结果⽂件。
其中结果分为两个部分,⼀个是stress,⼀个strain。
由如图13所⽰的图标控制。
可以进⾏sph的后处理。
图11
图12
图13
以上是我对sph法的⼀些体会,只是我个⼈的理解,如果哪⾥不对,请⼤家指正。
同时也殷切的希望多和⼤家交流和分享。