FLAC3D学习笔记自己总结版_第1页
FLAC3D学习笔记自己总结版_第2页
FLAC3D学习笔记自己总结版_第3页
FLAC3D学习笔记自己总结版_第4页
FLAC3D学习笔记自己总结版_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、FLAC3D学习笔记(自己总结版)一、建立模型笔记1键盘上的键的功能:X,Y,Z分别控制所建 立的模型围绕X,Y,Z三个轴做逆时针旋转、如果打开大小写锁定 键,分边按XYZ时建立的模型会做顺时针旋转、+号的功能是加大 模型旋转的角度,-号的功能是减小模型旋转的角度。2键盘上的 上下左右四个键可以实现图形的向上向下,向左和向右的移动、3 当在一个区域建立多个模型的时候,有时候为了镜像单个模块儿, 需要预先编组,编组的方法如下:gen zon tunint pO 0 0 0 pl 010 0 p255 0 p3 0 05 p6 0105 dim sq2 sq21 sq2111 group(编 组)

2、zl(组名为:zl)&f订1 group tunnel4镜像整个模型的方法:首先判断即将镜 像的模型在原模型的哪个方向(即三个轴的方向),然后在轴所在的 方向上去两个点、其中一个是原点(origin(xyz). 5镜像部分模 型的方法:gen zone reflect normeil (x, y, z)origin (x,y,z)range group zl就可以了、6特别要注意的一点:交叉巷道的 巷道充填和巷道的网格是两个组,所以在镜像的时候不要忘了给充 填部分镜像、7 group radcyl range group cylint not (编组的 时候不包括cylint)7快捷键

3、总结Ctrl+Z局部缩放的功能。 Ctrl+R的功能是恢复到初始状态。8模型建立的方法:方法1:利用 默认值生成网格,各个默认值:(l)pO的默认值是(0,0,0),网格的每 边的单元格数size默认值是10,网格每边的长度默认值为size的 值、方法2:利用4个点的坐标来生成矩形网格、p0、p3 size方法 3:利用edge来确定边长生成矩形网格、方法4:利用参数ratio来 确定单元体几何边画边生成矩形网格、方法5:利用参数add(相对 坐标)来生成矩形网格、方法6:利用八个点的左边来生成矩形网 格、9、用户自定义模型的方法我来贡献一点自己的成果:;U" j/ ?7 L+ a0

4、 UFLAC3D的二次开发环境提供了开放的用户接口,在 软件安装文件中包含了软件自带所有本构模型的源代码,且给出 了 Mohr-Coulomb模型和应变软化模型的编译示例,因此可以方便 地进行本构模型的修改与开发。为了方便起见,下面的说明以建 立 UserModel 模型为例。c % bl h、 K6 Q: 1(1)在模型头文件(usermodeE h)中进行新的本构模型派生类的 声明,修改模型的ID(为避免与已有模型冲突,一般要求大于 100)、名称和版本,修改派生类的私有成员,主要包括模型的基 本参数及程序执行过程中主要的中间变量。(? p6 u J5 Q3 y ( a (2)在程序C+文

5、件(usermodel, cpp)中修改模型结构(UserModel:UserModel(bool bRegister): Constit L, t% V、 D(4)const char *UserModel: : States ()函数是单元在计算过程中的状态指示器,可以按照需要进行修改指示器的内容。/ p!s$ c; h: + p- t (5)按照派生类中定义的模型参数变量修改double UserModel::GetProperty()和 void UserModel:: SetProperty () 函数,这两个函数共同完成模型参数的赋值功能。U ; e G Q# R4 q/ 9 G&

6、quot; h(6)const char * UserModel: : Initialize0 函数在执行 CYCLE 命令或大应变模式下对于每个模型单元(zone)调用一次,主要执 行参数和状态指示器的初始化,并对派生类声明中定义的私有变 量进行赋值。值得注意的是,InitializeO函数调用时没有定义 应变分量,但可以调用应力分量,但不能对应力进行修改。9 n# e8 | c- B/ q, B B5 m(7)const char * UserModel: : Run()是整个模型编制过程中最主 要的函数,它对每一个字单元(sub-zone)在每次循环时均进行调 用,由应变增量计算得到应力

7、增量,从而获得新的应力。在计算 过程中,要根据单元应力情况对单元状态指示器进行赋值。当进 行塑性模型编制时,需对达到塑性的应力状态进行修正。2/ 、U( A” G、b3 6 、' (8)修改 const char * UserModel: : SaveRestore ()中的变量,修 改方法同(2)和(5),该函数的主要功能是对计算结果进行保存。; 8 ! Q!C、S# _5 (9)程序的调试有两种方法。在VC+的工程设置中将FLAC3D软 件中的EXE文件路径加入到程序的调试范围中,并将FLAC3D自带 的DLL文件加入到附加动态链接库(Additional DLLs)中,然后在 I

8、nitialize()或RunO函数中设置断点,进行调试;在程序文件 中加入return()语句,这样可以将希望得到的变量值以错误提示 的形式在FLAC3D窗口中得到。10、网格剖面的画法方法:首先在命令行里输入edit11、想知道有多少单元体和节点?方法:用命令print info12、绘制塑形区域命令是什么?方法:Plot block state shear ;获得剪切屈服的单元,包括 shear-n 和 shear-pPlot block state tension-p ;获得过去拉伸 屈服的单元Plot block state now ;获得当前处于塑性状态的单 元,包括 shear-

9、n 和 tension-nPlot block state past ;获得过 去处于塑性状态的单元,包括shear-p和tension-p13、step后面的数字是怎么确定的?答:14、开挖模型的命令Model null range group组名Model null range group x xl,x2画圈的正负号是啥意思?答:正号表示 10的正的几次方、而负号表示负的几次方、11、关于ratioratio代表单元体尺寸变化率,关于只需要记 住一点:不同模型的两个尺寸相等的面,采用相同的集合变化 率,网格才会重合,ratio对于减少单元的数目有很好的效果。12、地震波的模拟命令流set

10、dyn onset dyn multi onset largefree x y z range z34、9 ;去掉模型底部原有的静力条件apply nquiet squiet dquiet ran z34、9 ;静态边界条件 tablel read crvel20、 txtapply szz35、11、 26984e7 hist tablel ran z34、9apply ff ;设置阻尼 set dyn damp rayleigh 0、057、14set dyn time=0http:/www、 baisi. net/thread-1-1、html http:/www、 baisi、 net

11、/thread1-4、html参考资料二、材料参数、边界条件,初始条件1要特别注意fix x y z range z 范围与fix z range z 范围之间的差别,前者是 x、y、z三方向的位移全被限制,后者只限制了 z方向的位移。fix x range (范围)命令的功能是保持网格节点在x轴方向 制定的参数(速度、压力和温度)不变,range为指定的范围Fix x y z range x0、1 0、1表示x二0是一个平面,只是x的方向不能 发生运动。2、plot hist m vs n其中m代表y轴,n代表x轴。3、sxx sxy syy这都是指那个方向:SXX是x方向的正应力, SYY

12、是y方向的正应力,SXY是指法向指向x轴方向平面(也就是 yz面)上的y方向剪应力。4、history命令Hist unbal监测不平衡力,并保留记录Hist gp zdisp4,4,8监测网格坐标点(4,4,8)在z轴方向的记录, 并保留记录、Plot his3 vsl其中的符号表示图形的方向及位置 的不同,1代表hist代码中的第一条记录,2代表hist代码中的第 二条记录,3代表hist代码中的第三条记录、一次类推、补充:在 记录历史记录的时候可以自己定义记录的编号:如his idl2 gp zdisp4,4,4 绘制图形:如 plot hisl25、在fish函数中如:(l)p_gp=

13、gp_head (意思是指向节点表) 那么后面肯定有一个:P_gP=gP_next(p_gp)(意思是查找下一个节点的ID号)(2)pnt=zone_head ; zone_head 指向单元体表 pnt=z_next (pnt);查找下一个单元体表6、sei del link range id23sel link id=2323 targetnode tgt_num (代表目标节点的ID号)1,7、想知道一个节点的x y z三个分量则用它:;已知IDdefgetgpxyz gpl=find_gp(1)gplx=gp_xpos(gpl)gpiy二gp_ypos(gpi) gplz=gp_zpo

14、s(gpl) endgetgpxyzprintgplxgplygplz8、交集就是range group a group b指的是a和b的公共部 分;并集就是range group a any group b any指的是a和b两 个部分;Not指的是出了什么什么之外。三、求解1、FLAC计算的过程中想终止pause,想要继续,continue2、收敛的准则:第一:相对收敛准则:一般而言,大多数问 题可以采用FLAC3D默认的收敛标准(或称相对收敛标准),即当 体系最大不平衡力与典型内力的比率R小于定值10-5 (也可由用 户自定义该值,命令:SET mech ratio <value&

15、gt;)时,计算即行 终止。这里,阐述两个名词的定义。所谓体系最大不平衡力,是 指每一个计算循环(或称计算时步)中,外力通过网格节点传递分 配到体系各节点时,所有节点的外力与内力之差中的最大值;所 谓典型内力,则是指计算模型所有网格点力的平均值。图2-9为 简单示例中R默认为10-5时,计算终止时所花费的时步以及R 值。由于R为无量纲的,所以它适用于不同的单位系统。有时, 也可采用体系最大不平衡力小于某一临界值(命令:SET mech force <value>)作为一个收敛标准,也称绝对收敛标准。由于这 一临界值需用户自行定义,并且没有比较统一的取值范围,若取 较小值,对单元数众

16、多的复杂模型而言无疑是分苛刻的,因而有 较大的局限性。第二:用户自定义准则:FLAC3D还允许用户根据实际分析的 需要,自定义收敛标准,比如以某关键点的位移或速度达到某一 临界值作为收敛标准等等。3、记录最大不平衡力:his unbal记录最大不平衡力(命令 流位置),plot hisl绘制最大不平衡力曲线图。注意:体系最 大不平衡力随着计算的进行,逐渐趋近于0,表明体系最终达到了 力平衡状态。不过,力平衡状态仅表示所有网格节点的合力为0, 并非表明体系处于真实的物理平衡状态,因为在力平衡状态下, 体系也有可能正在发生稳定的塑性流动。这时,就需要借助其它 方式如观察网格节点速度、塑性区标识等来

17、进一步评估模型所处 的状态。(平衡状态就是说静止状态和匀速直线运动状态。)4、观察网格节点速度的方法:(1)跟踪记录网格中一些关 键点的速度(命令:HIST gp vel <x y z>)并绘制其历时曲线。注意:如果速度历时曲线在最后阶段显示为水平线,表明体系达到 了稳定状态。如果速度历时曲线最终收敛并趋近于零,如果速度历时曲线 最终收敛并趋近于零。如果速度历时曲线最终收敛并趋近于零,表明与记录相应的 网格点进入塑性流动状态;如果一个或多个点的速度的历时曲线 都出现明显的上下波动,表明系统此时可能处于瞬时调整状态。(2)采用PLOT vel命令绘制完整的速度矢量场图。注意:通 常,

18、体系在达到真实平衡状态时,因网格节点力的变化已低于计 算机的精度(约小数点后六位),速度场表现为大小和方向不确 定的低振幅随机场。如果速度场矢量是一致的,且量级很大,则 体系有可能正发生塑性流动或正进行弹性调整(如发生弹性阻尼 振动)。在这种情况下,要确认塑性流动是否正在发生,则应观 察塑性区标识来研判体系所处的状态。5、塑性区标识命令:plot block state某一区域的应力正 位于屈服面上,或者说正处于破坏状态时,以shear-n或 tension-n标识;某一区域在计算过程中曾进入过屈服状态,但 现在已经退出,以shear-p或tension-p标识。判断破坏机制是否起作用的步骤:

19、观察连接两个面的活性塑 性区域(由shear-n或tension-n标识)是否存在交线(或有交 集),若存在,表示破坏机制正在起作用;观察速度矢量图,若 速度矢量图出现了与破坏机制相一致的运动,则确认第(1)步 的判断;若活性塑性区域不存在交线或交集,则应再执行一些时 步后比较前后两种图形:若塑性区域减少了,体系可能正向平衡 发展;若增加了,体系最终有可能发生破坏。如果确认是连续塑 性流动的情形,则有一个问题需注意,人工边界的选取有可能影 响塑性区的范围。所谓“人工边界”是指用来界定网格模型大小 (或分析域)的边界。如果塑性流动沿着人工边界发生,那么求 解是不真实的,因为破坏机制受到了人工边界

20、的影响。因此,在 实际分析时,应做些简单的人工边界设置比较分析,将其设置在 对分析所关注区域的应力和位移影响较小的区域。6、计算塑性区域的面积def get_plastshearnow =1 tensionnow =2 shearpast =4 tensionpast 二8 v_shear_now = Ov_tension_now = Ov_shear_past = Ov_tension_past = 0 ; flac 默认的值;xx=z_state (f ind_zone (11779), 0);通过本步可验证 p_z = zone_headloop while p_z # nullif a

21、nd(z_state(p_z,0)t shearnow)=shearnow thenv_shear_now = v_shear_now + z_volume(p_z)endifif and(z_state(p_z,0),tensionnow)= tensionnow thenv_tension_now = v_tension_now + z_volume(p_z)endifif and(z_state(p_z,0),shearpast)=shearpast thenv_shear_past 二 v_shear_past + z_volume(p_z)endifif and(z_state(p_

22、z,0),tensionpast)=tensionpast thenv_tension_past 二 v_tension_past + z_volume(p_z)endifp_z = z_next(p_z)endloopii = out(shear_now : + string (v_shear_now)ii = out(tension_now : + string(v_tension_now)ii = out(shear_past : + string(v_shear_past)ii 二 out(tension_past : + string(v_tension_past)endget_plast 运行fish后,执行pri fish就可以显示shearnow (当前剪切破 坏)、t ens ionnow (当前拉帐破坏)、shearpas t (过去剪切破 坏)、tensionpast (过去拉帐破坏)的体积值。http:/ww. baisi、net/thread-1-2、html有解释四、基本命令1、怎么统计网格单元体的个数?答:在FLAC3D中输入prin information2、怎么画出网格的剖面?答:set pla dip90 dd90 ori2 0 03、绘制网格线框命令?答:Plot gri

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论