flac3d常见问题总结_flac3d常见问题整理

2020-02-29 其他工作总结 下载本文

flac3d常见问题总结由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“flac3d常见问题整理”。

flac3d学习有一段时间,过一段时间没学究忘了很多,所以学习最好不要放下来。对自己总结,也是学习的一种。

flac3d命令很多,用到的不多,就那么几个,基础的就不多说了进入正题:

个人认为如果学习flac3d最好把flac的命令进行总结一下。做模型就好比拼盘:要地应力,就把地应力的那段命令摘入,要出图,加入plot的相关命令,要出动画,加个动画命令,所以总结好命令后,以后做模型,只要把命令组一条条的对应放入,一个程序就出来了,后期调试一下,改相关参数就可以了。接下来,我把自己弄好的整理一下,按照我上面的思路进行建模 什么人建模都会有自己的喜好,下面说一下我自己

建模第一步就是建立一个全新的txt文件(不论命令大小都是如此),这样的好处是,模型可以修改 方便快捷。而且还可以自我查错

建立新的txt后,第一行命令就是new,加new的目的是为了防止其他命令的影响(相当于刷新)再执行其他命令前刷新一下。

不用想,接下来就是建模了,建立模型,不同人有不同的方法,有的人喜欢建完后在对模型开挖最终得到自己想要的模型。model null 等;有的人喜欢用各种带缺角的组合成最终的模型。具体建模看各自的喜好,我觉得,不同点是建模的网格划分有区别,用带缺角的组合模型网格划分更好 最好把常用的集中模型记下来组成各种句子,以后用的时候直接插入 例如:

gen zone brick/radbrick size *,*,*,* ratio *,*,*,* 建模的过程中,或同一个文件中有重复应用的命令,就可以用宏命令了,宏命令

macro 名称 ‘命令的内容’ 例:

macro shiping ’ plot con zdip outline on’

用shiping 代替后面的引号里的东西。在建模中只要有相同的都可以用shiping代替,缩减了书写命令的时间,整体上也能让人看的更明白

注意点是,你命名的符号最好跟falc自带的命令不要重复,我的处理方法是,名称后带数字 如shiping1 如果你想修改宏对象,改变命令的内容,在名称上加单引号就是替换的意思 例

macro ’shiping1‘

‘新的命令’ 这些很多课本里都有讲,不在叙述

很多时候我们要对单一的对象进行操作,例如进行模拟运算后,只想单独的显示一部分的内容,单一的土层,锚杆,等就要用到group group给对象命名,例:在gen zone brick------size

----group name(name随便取,不要跟flac的已有的命令重合就行)这里的意思就是对这个体进行了命名 接下来想把这一块模型挖掉加 model null range group name

group的用法:1。group直接加到模型的后面相当于给整个模型命名 2.group name range x xyy zz给一个范围的体命名

继续学习,昨天说到了建模,我是搞巷道的,重点讲巷道。巷道建模,用到brick,radbrick,radtunnel,radcylinder这4个模型比较多,一般模型都是建一半,让后用镜像命令复制另一半,建模也是大家有各自不同的习惯,总的有两种,一种用点法,就是吧模型的所有关键点都输入进去,这种方法可以用来建立不规则的模型,弊端就是工作量大,不当在设点的时候考虑多,输入的时候也很麻烦。第二种。按照模型只要取三个点确定xyz三周的方法,有点输入简单,弊端,只能建立规则的模型,像要建立,路堤模型,边坡模型,就只能是按照数点的方法建模 range的命令:书上有,但是我用自己的话说一下他的用途

1:取圆球面的范围,就是同一个中心,不同半径之间夹的那一部分,用在给球面施加力,约束时用该命令,命令:

range annulus center xyz(中心坐标)radius r1 r2(两半径)

想要表达的是球面时,r1r2取值相差小点即可,如radius 2.9 3.1 这时范围就是半径为3的面。2。圆柱的环面施加力或约束时也用到该命令。命令

range cylinder end1 xyz end2 xyz radius r(end是表示柱体断面的中心点坐标)range plane above

表示的是z大于0的上部结构 range plane blow

表示的是z小于0的下部结构

range dd a dip b

origin xyz

表示的是走向角度a,倾向角度b的面

dd表示,当面与xoy面相交时的线的垂线与y轴正向的夹角,顺为正,说白话,就是面的指向方向 面是朝那个方向的意思。

dip面与xoy面的夹角,与z轴负向为正,origin表示面经过xyz点

range normal xyz 法线方向为xyz的面

range not 没试用过(范围外的东西,想想用到圆上取范围非常好)现在回到建模

上面说过建模一般只建一半然后用reflect命令(镜像)

镜像首先得有个面吧,就目前我用的面都是xoy面yoz面。估计大家也很少用到斜面镜像吧 面的命令上面range里说过了 这里就不讲了

命令:reflect normal xyz origin xyz(根据法线和过一点建的面)最常用至于 实际使用过程中有人问道:normal-1 0 0 与normal 1 0 0的区别,我试过两者的效果是一样的,没区别,虽然方向不同,但表达的是同一个面

reflect

dd a dip b origin xyz

这个就是用里建立斜面镜像的,各个符号的意思上面讲过,不重复了 有一点注意了,镜像的时候如果是模型镜像的话,相当于在建立一个模型,故,在reflect的前面要加 建模的关键字,gen zone reflect。。。先讲点后期出图的,然后总结一下(plot set rotation 20 0 30 设置观测角度的 plot set center auto 设置观测中心点 plot set magnification 1.5 设置放大倍数的 plot show)显示

这一整部分就是我开头说的要自己整理出来的句段了,等以后用到的时候直接插入,作用就是显示模型的。任何模型的显示都可以用他来表示。很好很强大。

如果还要显示其他功能就把相应的命令在插入上面那部分就行了 plot set rotation 20 0 30

plot set center auto plot set magnification 1.5

plot add surface yellow plot add axes plot show 这个就是我常用来查看模型的命令,大家也可以自己整理一分,总结,做个实例,给大家看看 隧道,半圆直墙隧道 分两步 一,建模,二,显示

建模 建一半然后镜像对吧

尺寸,自己在草纸上画好,点坐标都弄清楚了 把以前的句子直接套下来

gen zone radcylinder size 4 25 6 14(网格数量,自己看着办)ratio1 1 1 1.2& p0 0 0 0 p1 50 0 0 p2 0 100 0

p3 0 0 50 dimension 2 2 2 这是建上半部分

gen zone rad tunnel size 4 25 6 14 ratio 1 1 1 1.2 & p0 0 0 0 p1 0 0-50 p2 0 100 0

p3 50 0 0 dimension 1.8 2 2 建立下半部部分 建一半后,用镜像 命令也讲过了直接插入,gen zone reflect normal-1 0 0 origin 0 0 0

最后一步就是显示给大家看 那一打包显示直接插入 plot set rotation 20 0 30

plot set center auto plot set magnification 1.5

plot add surface yellow plot add axes plot show。整体的建模加显示,的命令就完了

合一块

建立一个新的txt

开头加一个new new gen zone radcylinder size 4 25 6 14 ratio1 1 1 1.2& p0 0 0 0 p1 50 0 0 p2 0 100 0

p3 0 0 50 dimension 2 2 2 gen zone rad tunnel size 4 25 6 14 ratio 1 1 1 1.2 & p0 0 0 0 p1 0 0-50 p2 0 100 0

p3 50 0 0 dimension 1.8 2 2 gen zone reflect normal-1 0 0 origin 0 0 0 plot set rotation 20 0 30

plot set center auto plot set magnification 1.5

plot add surface yellow plot add axes plot show 整体就这样了,大家可以粘贴一下看看。plot命令大集合: 显示切片的命令

plot set plane ori 0 0 0 norm 0 1 0 plot con zd plane 这两行命令,用来显示指定面上的位移变化云图。(吧第二行改改,还可以显示应力云图,等其他)plot con syy

y向应力云图

plot con szz outline on

z向应力云图加显示网格 plot con szz effective on z向有效应力

plot con szz inter 1e4

云图显示增量(后面的值越小,图上颜色条带就越细,)plot con szz min

-10e4 显示最小值,图上小于这个数的值都用同一色表示 plot con szz max

10e4 显示最大值,图上大于这个数的值都用同一色表示 plot fip outside on

显示力的箭头

建模完事后就要给模型赋值,赋参数了,关键词,model model mor(赋摩尔库伦模型,想要什么模型改相应的词)

pro den 2500(密度)bulk2e8体积模量,shear 2e8(剪切模量)co 2e6(内聚力)fric45(摩擦角)ten1e6 抗拉强度。range...........(我们要赋值的范围)给模型赋值就是hi这么简单,难在参数的选取。

现在看边界,如果是不动面,用fix x range。。。如果边界带速率,或位移用ini。。set grav 0 0,-9.81 ini dens 1000 设置重力就一定要设置密度

不考虑重力就不要设计密度。两者共存的,设计程序的时候一定要记的 set mech force 50 solve 用SET命令设定了最大不平衡力的上限值为50N,即:计算的最大不平衡力一旦小于此值,我们便人为模型达到了平衡状态。求解过程终止。设置这个目的是在一定精度要求下,加快计算(值越大,算的量越少,花的时间也越少)

说到这里,add与set的区别 add原来有的加新的用add set原来没有的,设置用set plot create GravV plot set plane dip=90 dd=0 origin=3,4,0 plot set rot 15 0 20 plot set center 2.5 4.2 4.0 plot add bound behind plot add bcont szz plane plot add axes plot show。如这个命令,显示图像的时候命令有很多,那么我们想显示别的图像,又不想吧这个弄好的图像丢掉 则用plot create name建立一个图像,在建立新的图像时 plot create name1(新的名)显示以前的图像

那么输入如下命令:plot current name。另一种方法,输入:plot show name 这里有一点最好开始的时候将网格剖分的相对稀疏一些(1000~1500个单元 左右),先求解一下,看看结果,然后再根据大致的结果有针对性的增加模型的 网格数,以得到更精确的解答。更快的检验一下自己 的模型是否建错了 不同的区域定义不同的本构模型 model mohr range z=0,5 prop ClayeyGravel range z=0,5 在定义参数后面加个range范围

为了避免在输入命令时总要通过range+全局坐标域的方法来限定该命令执 行的区域,我们可以先通过range命令来给不同的区域命名,然后就可以用range +区域名的方法来限定范围了。这样就避免了每次输入命令要限定在该区域执行 时,都要输入一遍坐标范围的麻烦。具体如何给区域命名,以及日后如何用区域 名来限定该区域,可以看下面这个例子: range name trench x=-1,1 y=0,4 z=-2,2 model null range trench 今天做方案,没时间,就讲几点得了,1:右手法则,建立模型时,的点的排放时有规律的,方法如下,拿出右手 伸直了

4指合并指向就是p0到p1的方向 掌心指向就是p0到p2的方向

拇指与4指垂直的方向就是p0到p3的方向

很多人说网格后的云图有带齿什么的,改进的方法就是重复用下面的命令 Gen

ADJust

用此命令来微调网格, 使之离散平滑。该命令可以连续使用以增进平滑效果的。

plo blo gro可以看到不同的group的颜色分布(例不同的土层定义组后,就可以用此命令显示不同的色了)如何查看剖面上任一点的位移值? print gp disp range x()y()z()或 print gp disp range id plot gp disp range x()y()z()或 plot gp disp range id 很多人都是这么做的,我也是学习,initial 与 apply 有何区别?

initial初始化命令,如初始化计算体的应力状态等; apply边界条件限制命令,如施加边界的力、位移等约束等。

initial的应力状态会随计算过程的发生而发生改变,一般体力需要初始化,而apply施加的边界条件不会发生变化

如果想看模型在计算过程中的变化情况

Set movie avi step 1 file 1.avi;定义动画,动画记录的频率为1时步一频率(计算量大的时候就没必要1时步的记录,可以10,100时步的记录,减少电脑的使用)Movie start;动画开始 hist n= 5 :N(Nstep)=5指定了每迭代计算5次 记录一次相关的值(如果不指定,则系统默认值为10)hist unbal 命令的第二行指定记录

最大不平衡力(the maximum unbalanced force)hist gp zdisp 4,4,8 记录坐标值为

(4,4,8)的节点Z方向的位移(这个用的多,查看收敛量时就是这个命令,上面两个个人人认为用处不大,也很少用过)

如何在程序中进行暂停,并可恢复计算?

答:在命令中加入pause命令,用continue进行继续 个人认为这个命令非常好

用在我们分步求解中想得到某一个过程中的结果,不用等到全求完,还可以在分布求解错误的时候就进行改正。而不是等到结果出来 关于dd、dip的理解:

不同人有不同的理解,我的理解就是dip面与水平面的夹角 dd是面与水平面的交线的垂线与y轴的夹角

1)在plot hist m vs n的形式里,m代表y轴,n代表x轴(不管m,n的正负);5 L0 D# _1 ~1 C-L 2)“-”表示对其值作“mirror”,如果大家使用AUTOCAD的话就明白“mirror”的含义了,比如上面的 hist 1 gp ydisp的值是0~100,那么vs-1就变成-100~0.以此类推.3)为什么要这么做呢?主要是为了符合岩土工程的习惯需要,例如桩载荷试验曲线,沉降曲线等都不是画在第一象限内.最近看有很多对后处理中的收敛有很多不同的想法,自己也总结一下

plot sk dis scale 0.07显示位移矢量箭头的后面的scale默认的是0.05 3越大箭头越大

magf也是放大变形的意思,但是不能放在sk dis的后面,计算机会出错

回到主题,收敛数据,我们想得到一条收敛量随时间变化,或者不同应力直间关系的图线 方法

1用set log on然后把数据导入excel或者其他的处理软件进行处理

2.用hist id=1(不写id的话,电脑会自己按123456的顺序进行排序)gp(点,如果是体的话 用zone)zdis xyz(xyz点处z向位移)

这里应力应变之类的都是用zone,位移之类的都是用gp 最后相要出相应的结果用命令 plot hist 1;

如果相要的不同的id之间的关系(比如说竖向应力szz与剪应力sxz的关系)命令 plot hist 2 v 3(2,3是对应应力开始设的id号)flac3d程序里面自动设置的步长是10,也就是说每隔10步记录一次,这样如果模型小得出的结果就数据少图线不光滑,如果模型大,得到的数据多计算文件又太大,浪费空间。设置步长的命令 set hist_rep n(n就是步长)上面说的plot多是flac里显示的 如果想把结果存到别处去 用命令

hist write 2 v 3 file namehist.txt(其实2相当于x轴,3相当于y轴)设置影片格式上面见过,温故而知新

set movie avi step 1(存储步长,可以任意设,就是每隔几步存储的意思)file name.avi movie start 分步开挖就是分布计算

每多一步(多添一块土,或多开挖,多掘进等)就计算一下,加一个solve即可

如果想保存每一步的结果和图,那就在每一步的solve后面添加保存命令设立相应的文件,以后调用即可 1.设定初始地应力场是十分必要的 没有地应力场进行计算会使模型在重力作用下发生过大的变形 从而不能与实际情况相符

2。apply是施加的外力

ini是初始的内力。

3.有人问如果改参数这样做的话地应力不是被人为改变了吗?为什么要人为加大它的参数呢,很不合理? 回答:不能改变bulk和shear模量,因为这两个参数是用来计算应力的。而con和fric是用来判断破坏状态的。如果将bulk和shear模量改变了,那你在重力条件下计算的应力就不真实了。咱们改大参数的目的是让模型在不破坏的条件下得到正确的应力,所以只有将con和fric变大才能达到目的。

当然如果在弹性模型下计算初始应力就没有这种问题了。因为弹性模型是没有破坏准侧的当然也没有描述达到破坏状态的参数了。

4.大家正好讨论地应力的问题,我也有个疑问,平衡地应力后,水平方向的地应力如何确定的?是由本构模型来确定的吗?

这个问题现在我也没答案也是我的问题

5.gen zone brick size 10,10,10 p1 20,0,0 p2 0,20,0 p3 0,0,20 model mohr prop bulk 5e9 shear 3e9 fric 35 ini density 2500

set gravity 0,0,-10 fix x y z range z-0.1 0.1 ini szz =-5.0e6 grad 0,0,2.5e4 ini sxx =-2.5e6 grad 0,0,1.25e4 ini syy =-2.5e6 grad 0,0,1.25e apply szz =-4.5e6 range z 19.9 20.1 apply szz =-5.0e6 range z-0.1 0.17 apply sxx =-2.5e6 grad 0,0,1.25e4 range x-0.1 0.1 apply sxx =-2.5e6 grad 0,0,1.25e4 range x 19.9 20.1 apply syy =-2.5e6 grad 0,0,1.25e4 range y-0.1 0.1 apply syy =-2.5e6 grad 0,0,1.25e4 range y 19.9 20.1

U# P!y-P$ _+ D 它的意思是通过ini szz来赋予初始地应力,但是为何又有set gravity 0,0,-10 这样不是重复了吗? ini是的确是模型的内力,这个内力通过set grav ,然后就像一些帖子上介绍的那样,让程序计算不就行了吗?干嘛还有手动在设定一次呢? 我感觉它这样的做法有点重复了.回答:(1)它这样做其实只是减少程序的计算步骤.5 _这样设置以后 整个模型就已经是平衡了

(2)设置重力的原因不是为了平衡减少程序计算步骤,而是因为如果未初始化应力的话,在set grav的时候,模型会在自重应力下发生应力变形。所以,初始化应力的原因是防止模型在自重应力下发生变形(我们认为地层自重变形已经发生,当然欠固结等现象是另外一回事)。3)其实就让模型发生变形,然后把位移清零也可以的

6。ini命令来对地层进行初始应力的施加,而APPLY是~7 u(施加应力边界条件 7.用到ini初始平衡的时候要和重力计算的相同才有用 8。

gen zone brick size 10 10 10 & p0 0,-25,0 p1 20,-25,0 p2 0,0,0 p3 0,-25,20 model elas prop bulk 5e9 shear 3e9 ini density 1600 range y-10,0 ini density 2000 range y-15,-10 ini density 2200 range y-25,-15 set gravity 0,-10 fix x range x-.1.1 fix x range x 19.9 20.1 fix z range z-.1.1 fix z range z 19.9 20.1 fix y range y-25.1-24.9 solve

如果这样是不是就完成了初应力的计算了? 当然在这个基础上进一步计算需初始位移为0: 如果加入下一段代码来计算初应力: ini syy 0.0 grad 0,1.6e4,0 range y-10,0 ini syy 4e4 grad 0,2.0e4,0 range y-15,-10 ini syy 7e4 grad 0,2.2e4,0 range y-15,-25 以上添加了力边界,在这种情况下,得到的初应力是不是和前一个方法得到的相同呢? 另外,这样做是不是就可以不初始(置零)位移呢?

我总感觉这个initial命令象流体软件fluent里面求解前设置初始条件,它的最重要的作用是帮助解收敛的快一些, a)不知道我的理解对不对,斑竹及各位大哥帮帮忙吧,我这个可怜的新手,谢谢!回答:

(1)我试着计算了这两种情况,对于ini应力的作用,我得出以下结论: A.对于差分法,为了加快收敛速度,在开始求解之前,最好能设置初始条件(如fluent),即在单元中心initial应力,那么在迭代中的单元应力以这个初始化的力开始计算,因为这个力与重力产生的应力差别不大,故而能很快收敛。

B.intial应力得到的位移解相比较于无intial应力的位移解更符合实际地层条件(即认为是0),对于这个我是根据解得到的猜测,也不能说明原因。*(2)是一致的,但是第一种通过施加力的方法,会产生初始位移,而且无法控制侧向初始应力,第二种方法是标准方法。标准方法的意思是说,大家普遍都是这么干的,9.每填一层,就应该用一个ini 命令,这样才能够有好的结果!(有人问填土是不是每填一次就要做一次初始应力归零

《flac3d常见问题总结.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
flac3d常见问题总结
点击下载文档
相关专题 flac3d常见问题整理 常见问题 FLAC3D flac3d常见问题整理 常见问题 FLAC3D
[其他工作总结]相关推荐
    [其他工作总结]热门文章
      下载全文