FLAC3D学习笔记自己总结版
FLAC3DFLAC3D 学习笔记学习笔记( (自己总结版自己总结版) ) 一、建立模型笔记 1 键盘上的键的功能:X,Y,Z 分别控制所建 立的模型围绕 X,Y,Z 三个轴做逆时针旋转、如果打开大小写锁定 键,分边按 XYZ 时建立的模型会做顺时针旋转、+号的功能是加大 模型旋转的角度,-号的功能是减小模型旋转的角度。2 键盘上的 上下左右四个键可以实现图形的向上向下,向左和向右的移动、3 当在一个区域建立多个模型的时候,有时候为了镜像单个模块儿, 需要预先编组,编组的方法如下:gen zon tunint p0 0 0 0 p1 010 0 p255 0 p3 0 05 p6 0105 dim sq2 sq21 sq2111 group(编 组) z1(组名为:z1) U“ j/ ?7 L+ a0 uFLAC3D 的二次开发环境提供了开放的用户接口,在 软件安装文件中包含了软件自带所有本构模型的源代码,且给出 了 Mohr-Coulomb 模型和应变软化模型的编译示例,因此可以方便 地进行本构模型的修改与开发。为了方便起见,下面的说明以建 立 UserModel 模型为例。c % b1 h、 \ K6 Q: l(1) 在模型头文件(usermodel、h)中进行新的本构模型派生类的 声明,修改模型的 ID(为避免与已有模型冲突,一般要求大于 100)、名称和版本,修改派生类的私有成员,主要包括模型的基 本参数及程序执行过程中主要的中间变量。( ? p6 u J5 Q3 y( a(2) 在程序 C++文件(usermodel、cpp)中修改模型结构 (UserModel::UserModel(bool bRegister): Constit L, t% V、 D(4) 第 1 页 共 1 页 const char **UserModel::States()函数是单元在计算过程 中的状态指示器,可以按照需要进行修改指示器的内容。/ p! s$ c; h: {+ p- t(5) 按照派生类中定义的模型参数变量修改 double UserModel::GetProperty()和 void UserModel:: SetProperty() 函数,这两个函数共同完成模型参数的赋值功能。U ; e G W“ Q# R4 q/ @9 G“ h(6) const char * UserModel::Initialize()函数在执行 CYCLE 命令或大应变模式下对于每个模型单元(zone)调用一次,主要执 行参数和状态指示器的初始化,并对派生类声明中定义的私有变 量进行赋值。值得注意的是,Initialize()函数调用时没有定义 应变分量,但可以调用应力分量,但不能对应力进行修改。9 n# e8 | c- B/ q, B B5 m(7) const char * UserModel::Run()是整个模型编制过程中最主 要的函数,它对每一个字单元(sub-zone)在每次循环时均进行调 用,由应变增量计算得到应力增量,从而获得新的应力。在计算 过程中,要根据单元应力情况对单元状态指示器进行赋值。当进 行塑性模型编制时,需对达到塑性的应力状态进行修正。2 [/ ~、 U( A“ G、 b3 @6 ]、 `(8) 修改 const char * UserModel::SaveRestore()中的变量,修 改方法同(2)和(5),该函数的主要功能是对计算结果进行保存。; ^8 ]! Q! 第 1 页 共 1 页 C、 S# _5 }(9) 程序的调试有两种方法。①在 VC++的工程设置中将 FLAC3D 软 件中的 文件路径加入到程序的调试范围中,并将 FLAC3D 自带 的 DLL 文件加入到附加动态链接库(Additional DLLs)中,然后在 Initialize()或 Run()函数中设置断点,进行调试;②在程序文件 中加入 return()语句,这样可以将希望得到的变量值以错误提示 的形式在 FLAC3D 窗口中得到。 10、网格剖面的画法方法:首先在命令行里输入 edit 11、想知道有多少单元体和节点?方法:用命令 print info 12、绘制塑形区域命令是什么?方法: Plot block state shear ;获得剪切屈服的单元,包括 shear-n 和 shear-pPlot block state tension-p ;获得过去拉伸 屈服的单元 Plot block state now ;获得当前处于塑性状态的单 元,包括 shear-n 和 tension-nPlot block state past ;获得过 去处于塑性状态的单元,包括 shear-p 和 tension-p 13、step 后面的数字是怎么确定的?答: 14、开挖模型的命令 Model null range group 组名 Model null range group x x1,x2 画圈的正负号是啥意思?答:正号表示 10 的正的几次方、而负号表示负的几次方、 11、关于 ratioratio 代表单元体尺寸变化率,关于只需要记 住一点:不同模型的两个尺寸相等的面,采用相同的集合变化 率,网格才会重合,ratio 对于减少单元的数目有很好的效果。 第 1 页 共 1 页 12、地震波的模拟命令流 set dyn onset dyn multi onset largefree x y z range z 34、9 ;去掉模型底部原有的静力条件 apply nquiet squiet dquiet ran z 34、9 ;静态边界条件 table1 read crvel 20、txtapply szz 35、 11、26984e7 hist table1 ran z 34、9apply ff ;设置阻尼 set dyn damp rayleigh 0、05 7、14set dyn time=0http://www、baisi、net/thread--1- 1、html http://www、baisi、net/thread--1- 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 轴。 第 1 页 共 1 页 3、sxx sxy syy 这都是指那个方向:SXX 是 x 方向的正应力, SYY 是 y 方向的正应力, SXY 是指法向指向 x 轴方向平面(也就是 yz 面)上的 y 方向剪应力。 4、history 命令 Hist unbal 监测不平衡力,并保留记录 Hist gp zdis