文档库 最新最全的文档下载
当前位置:文档库 › FLAC3D塑性区State不同状态说明的探讨

FLAC3D塑性区State不同状态说明的探讨

FLAC3D塑性区State不同状态说明的探讨
FLAC3D塑性区State不同状态说明的探讨

FLAC 3D 塑性区State 不同状态说明的探讨

在FLAC 3D 后处理中,输入命令,plot block state 查看模型的塑性区分布,如下图所示。

图中左侧图例栏显示有shear-n, shear-p tension-n, tension-p 等多种状态或状态的组合,其意义好多人无法理解。这主要是跟应力加载的路径有关,以摩尔-库伦模型为例,进行说明。

请看下图

圆形隧洞周围存在破碎区(A 、B )、塑性区(C )和弹性区(D ),各区域在sig1-sig3坐标上的应力曲线如上图所示。

A 点在加载历史中逐渐靠近摩尔-库伦包络线,到达摩尔包络线时认为是shear-n ,应力曲线不可能停止,过屈服点后的区域认为是shear-p 区域,这样shear-n 、shear-p 都是塑性区。

S i g 1

同理,C点以更快的速度达到屈服,但在屈服过程中,曲线有漂移,一会到达屈服点,一会离开屈服点,这样程序会认为这时的状态为shear-n、shear-p,当然峰后曲线也为shear-p。

对于D点来说,D位于弹性区,其应力曲线不会到达mohr强度包络线,其状态为弹性。

数值计算方法比较

有限差分方法(FDM:Finite Difference Method)是计算机数值模拟最早采用的方法,至今仍被广泛运用。该方法将求解域划分为差分网格,用有限个网格节点代替连续的求解域。有限差分法以Taylor级数展开等方法,把控制方程中的导数用网格节点上的函数值的差商代替进行离散,从而建立以网格节点上的值为未知数的代数方程组。有限差分法主要集中在依赖于时间的问题(双曲型和抛物型方程)。有限差分法方面的经典文献有Richtmeyer & Morton的《Difference Methods for Initial-Value Problems》;R. LeVeque《Finite Difference Method for Differential Equations》;《Numerical Methods for C onservation Laws》。 注:差分格式: (1)从格式的精度来划分,有一阶格式、二阶格式和高阶格式。 (2)从差分的空间形式来考虑,可分为中心格式和逆风格式。 (3)考虑时间因子的影响,差分格式还可以分为显格式、隐格式、显隐交替格式等。 目前常见的差分格式,主要是上述几种形式的组合,不同的组合构成不同的差分格式。差分方法主要适用于有结构网格,网格的步长一般根据实际地形的情况和柯朗稳定条件来决定。 构造差分的方法: 构造差分的方法有多种形式,目前主要采用的是泰勒级数展开方法。其基本的差分表达式主要有三种形式:一阶向前差分、一阶向后差分、一阶中心差分和二阶中心差分等,其中前两种格式为一阶计算精度,后两种格式为二阶计算精度。通过对时间和空间这几种不同差分格式的组合,可以组合成不同的差分计算格式。 有限差分法的不足:由于采用的是直交网格,因此较难适应区域形状的任意性,而且区分不出场函数在区域中的轻重缓急之差异,缺乏统一有效的处理自然边值条件和内边值条件的方法,难以构造高精度(指收敛阶)差分格式,除非允许差分方程联系更多的节点(这又进一步增加处理边值条件韵困难)。另外它还有编制不出通用程序的困难。 有限差分法的优点:该方法是一种直接将微分问题变为代数问题的近似数值解法,数学概念 直观,表达简单,精度可选而且在一个时间步内,对于一个给定点来说其相关的空间点只是 与该相邻的几点,而不是全部的空间点。是发展较早且比较成熟的数值方法 广义差分法(有限体积法)(GDM:Generalized Difference Method):1953年,Mac—Neal 利用积分插值法(也称积分均衡法)建立了三角网格上的差分格 式,这就是以后通称的不规划网格上的差分法.这种方法的几何误差小,特别是给出了处理自然边值条件(及内边值条件)的有效方法,堪称差分法的一大进步。1978年,李荣华利用有限元空间和对偶单元上特征函数的推广——局部Taylor展式的公项,将积分插值法改写成广义Galerkin法形式,从而将不规则网格差分法推广为广义差分法.其基本思路是,将计算区域划分为一系列不重复的控制体积,并使每个网格点周围有

Flac3D命令--完整经典版

实例分析命令: 1. X ,Y ,Z 旋转 Shift+ X ,Y ,Z 反向旋转 Gen zone ……;model ……;prop ……(材料参数);set grav 0,0,-9.81(重力加速度) plot add block group red yellow 把在group 中的部分染成红色和黄色 plot add axes black 坐标轴线为黑色;print zone stress% K 单元应力结果输出 ini dens 2000 ran z a b (设置初始密度,有时不同层密度不同);ini ……(设置初始条件);fix ……(固定界面) set plot jpg ;set plot quality 100 ;plot hard file 1.jpg 图像输出(格式、像素、名称) plot set magf 1.0视图的放大倍数为1.0;plo con szz z 方向应力云图 2. ini z add -1 range group one 群one 的所有单元,在z 方向上向下移动1m ;然后合并 命令 gen merge 1e-5 range z 0此命令是接触面单元合并成一个整体,1e-5是容差 3. (基坑开挖步骤):Step 1: create initial model state (建立初始模型)Step 2: excavate trench (开挖隧道) 4. group Top range group Base not 定义(群组Base 以外的为)群组Top 5. plot blo gro 使得各个群组不同颜色显示 6. (两个部分间设置界面;切割法):gen separate Top 使两部分的接触网格分离 为两部分;interface 1 wrap Base Top 在(Base 和Top )这两部分之间添加接触单元;plot create view_int 显示,并创建标题view_int ;plot add surface 显示表面;plot add interface red 界面颜色红色 7. (简单的定义函数及运行函数)new ;def setup 定义函数setup ;numy = 8定义常 量numy 为8;depth = 10.0 定义depth 为10;end 结束对函数的定义;setup 运行函数setup 8. (隧道生成)上部圆形放射性圆柱及下部块体单元体的建立,然后镜像。 9. 模拟模型的材料问题时为什么要去定义某个方向上的初始速度?— 10. 渐变应力施加:apply nstress -1e6 gradient 0,0,1e5 range z 3.464,0 plane dip 60 dd 270 origin .1 0 0;施加法向应力:apply nstress -1e6 range plane dip 60 dd 270 origin .1 0 0 11. d ip dd 确定平面位置使用:(纠结) 12. p rint gp position range id=14647 输出节点坐标 13. a pply sxx -10e6 gradient 0 , 0, 1e5 range z -100 , 0在这个求解方程中,z 为变量,所以xx σ为:65=-1010+10xx z σ?? ;原点(0,0,0) 14. f ree x range x -.1 .1 z 6.9 10.1放松x=0 平面上,z=7,10 这一部分在x 方向的约 束(可以在此处产生破坏) 15. 体积模量K 和剪切模量G 与杨氏模量及泊松比v 之间的转换关系如下: =3(1-2v)E K G=2(1+v) E 16. 一般而言,大多数问题可以采用FLAC 3D 默认的收敛标准(或称相对收敛标准),即当体 系最大不平衡力与典型内力的比率R 小于定值10-5;(也可由用户自定义该值,命令:

数值分析插值算法源程序

#include #include float f(float x) //计算ex的值 { return (exp(x)); } float g(float x) //计算根号x的值 { return (pow(x,0.5)); } void linerity () //线性插值 { float px,x; float x0,x1; printf("请输入x0,x1的值\n"); scanf("%f,%f",&x0,&x1); printf("请输入x的值: "); scanf("%f",&x); px=(x-x1)/(x0-x1)*f(x0)+(x-x0)/(x1-x0)*f(x1); printf("f(%f)=%f \n",x,px); } void second () //二次插值 { float x0,x1,x2,x,px; x0=0; x1=0.5; x2=2; printf("请输入x的值:"); scanf("%f",&x); px=((x-x1)*(x-x2))/((x0-x1)*(x0-x2))*f(x0)+((x-x0)*(x-x2))/((x1-x0)*(x1-x2))*f(x1)+((x-x0)* (x-x1))/((x2-x0)*(x2-x1))*f(x2);

printf("f(%f)=%f\n",x,px); } void Hermite () //Hermite插值 { int i,k,n=2; int flag1=0; printf("Hermite插值多项式H5(x)="); for(i=0;i<=n;i++) { int flag=0; flag1++; if(flag1==1) { printf("y%d[1-2(x-x%d)*(",i,i); } else { printf("+y%d[1-2(x-x%d)*(",i,i); } for(k=0;k<=n;k++) { if(k!=i) { flag++; if(flag==1) { printf("(1/x%d-x%d)",i,k); } else { printf("+(1/x%d-x%d)",i,k);

flac3d常用命令

1、最先需要掌握的命令有哪些? 答:需要掌握gen, ini, app, plo, solve等建模、初始条件、边界条件、后处理和求解的命令。 2、怎样输出模型的后处理图? 答:File/Print type/Jpg file,然后选择File/Print,将保存格式选择为jpe文件。 3、怎样调用一个文件? 答:File/call或者call命令 4、如何施加面力? 答:app nstress 5、如何调整视图的大小、角度? 答:综合使用x, y, z, m, Shift键,配合使用Ctrl+R,Ctrl+Z等快捷键。 6、如何进行边界约束? 答:fix x ran (约束的是速度,在初始情况下约束等效于位移约束)。 7、如何知道每个单元的ID? 答:用鼠标双击单元的表面,可以知道单元的ID和坐标。 8、如何进行切片? 答:plo set plane ori (点坐标) norm (法向矢量) plo con sz plane (显示z方向应力的切片) 9、如何保存计算结果? 答:save +文件名 10、如何调用已保存的结果? 答:rest +文件名;或者File / Restor 11、如何暂停计算? 答:Esc 12、如何在程序中进行暂停,并可恢复计算? 答:在命令中加入pause命令,用continue进行继续。 在我们分步求解中想得到某一个过程中的结果,不用等到全求完,还可以在分布求解错误的时候就进行改正,而不是等到结果出来。 13、如何跳过某个计算步? 答:在计算中按空格键跳过本次计算,自动进入下一步 14、Fish是什么东西?Fish是否一定要学?

答:是FLAC3D的内置语言,可以用来进行参数化模型、完成命令本身不能进行的功能。Fish可以不用学,需要的时候查Mannual获得需要的变量就可以了。 15、FLAC3D允许的命令文件格式有哪些? 答:无所谓,只要是文本文件,什么后缀都可以。 16、如何调用一些可选模块? 答:config dyn (fluid, creep, cppudm) 17、如何在圆柱体四周如何施加约束条件? 可以用fix ... ran cylinder end1 end2 radius r1 cylinder end1 end2 radius r2 not,其中r2

FLAC3d后处理步骤

1、首先rest123.sav,然后再callFLAC3d2Tecplop生成Tec10.dat 2、打开Tecplot程序,执行【File】/【Load Data File】命令,打开数据文件对话 框,选择刚刚生成的tec10.dat文件,并执行【打开】命令,在出现的Select Initial Plot 对话框中,单击OK按钮。并在Tecplot左上角显示的3维笛卡尔坐标系下选择【3D Cartasion 】 3、在Tecplot中选中【Data】→【Extract】→【Slice from Plane】,打开切 面对话框。在对话框中我们可以选中x=6/y=5/z=7等切片,并单击Extract. 4、在Tecplot中选中【File】→【White Data File】,打开【White Data File Options】对话框,在对话框中选中ASCII、Point。并在下面的Zone(s)选项中选中你所要的2 SLc=3,在Variable(s)中同时选中1 x(m),2 y(m)及你所要的13 szz(pa)等,并单击OK按钮。保存的文件自己最好独自命名(如tec-90.dat格式) 5、以txt格式打开刚才命名的tec-90.dat,把里面的三列数复制到txt里面后 再导入Excel里面,同时在Excel里面把szz的值变成相反的值保存在D列,(txt里面注意不是三列的都不要,只复制三列数据,把前面的和后面的都去掉)。 6、打开surfer,【网格】→【数据】,选中刚才生成的123.xls(即刚才生成的Excel 数据,选中相应的A、B和D列),并单击打开。对于【网格化数据】选项单则单击【确定】,则会生成与123.xls相对应的123.grd(即与刚才生成的Excel 文件名相同)。 7、在【地图】→【表面图】单击,在【打开网格对话框】中选中生成的123.grd 文件,并单击打开。 8、右击图片选中【属性】并打击打开,可以对网格、颜色进行设置(颜色谱选 安装文件夹中的rainbow.CLR即可,具体是在打开的【属性对话框】→【常规】→【材质颜色】→【上部】单击上部中的颜色,在颜色谱中选择【载入】,在打开里面选中安装文件夹里面的rainbow.CLR即可,在多次确认) 9、此外也可以在surfer里面对其他参数进行设置。

flac3d建模方法

利用FLAC3D 进行数值分析的第一步便是如何将物理系统转化为由实体单元和结构单元所组合的网格模型(Modeling ),该模型与分析对象的几何外形特征相一致。目前,FLAC3D 网格模型的建立方法可分为两种,即直接法及间接法,直接法是按照分析对象的几何形状利用FLAC3D 内置的网格生成器建模,网格和几何模型同时生成,该方法较适用于简单几何外形的物理系统;与之不同,间接法则适用于复杂的、单元数目较多的物理系统,该方法建立网格模型时,像一般计算机绘图软件一样,通过点、线、面、体,先建立对象的几何外形,再进行实体模型的分网(Meshing ),以完成网格模型的建立,FLAC3D 自身不具备间接法建模功能,读者可借助第三方软件与FLAC3D 的接入轻松实现。本章主要介绍FLAC3D 的网格建模方法,包括利用网格生成器建立简单网格、利用第三方软件进行模型导入以及复杂模型的方法。 本章要点: z FLAC3D 网格单元的基本类型 z 网格的连接 z FLAC3D 网格的数据格式 z 常用有限元模型与FLAC3D 的接入 z 复杂模型的建立 5.1 简单网格的建立 5.1.1 基本网格的形状 FLAC3D 内置网格生成器中的基本形状网格有13种,通过匹配、连接这些基本形状网格单元,能够生成一些较为复杂的三维结构网格。网格单元的基本类型和特征如表5-1所示,基本可以归为四大类,即六面块体网格、退化网格、放射网格和交叉网格。 5 FLAC3D 建模方法

表5-1 FLAC3D 基本形状网格的基本特征

5.1.2 单元网格的生成 生成块体网格(Brick )的命令格式如下: generate zone brick p0 x0 y0 z0 p1 x1 y1 z1 …… p7 x7 y7 z7 size n1 n2 n3 ratio r1 r2 r3 或者 generate zone brick p0 x0 y0 z0 p1 add x1 y1 z1 …… p7 add x7 y7 z7 size n1 n2 n3 ratio r1 r2 r3 在该命令中,generate 为“生成网格”之意,可以缩写为gen ,zone 表示该命令文件生成的是实体单元,brick 关键词表明建立的网格采用的是brick 基本形状,p0,p1……p7是块体单元的8个控制点,其后跟这些点的三维坐标值(xn, yn, zn ),含义是由8个点可确定一个六面体网格。不过,p0~p7各点的定义需遵从“右手法则”,不能随意颠倒顺序。如果采用全局坐标系,三维坐标值应为建模空间内的全局三维坐标值;若采用局部坐标系,则除p0点采用全局三维坐标值外,其他点的坐标值都必须取其相对于点p0的三维坐标值,且在点编号后加关键词add (见本节第2行命令)。size 为定义坐标轴(x ,y ,z )方向网格单元数目的关键词,其后跟划分的单元数目(n1,n2,n3);ratio 为定义相邻单元尺寸大小比率的关键词,其后跟坐标轴方向相邻网格单元的比率(r1,r2,r3)。 如果生成的是长方体网格,前述命令可以简化为: generate zone brick p0 x0 y0 z0 p1 x1 y1 z1 p2 x2 y2 z2 p3 x3 y3 z3 size n1 n2 n3 ratio r1 r2 r3 或者 generate zone brick p0 x0 y0 z0 p1 add x1 y1 z1 p2 add x2 y2 z2 p3 add x3 y3 z3 & size n1 n2 n3 ratio r1 r2 r3 即只需采用4个控制点即可确定该长方体。 此外,当网格的几何形状为立方体时,上述命令文件可以用下列命令替代,进一步简化,关键词edge 后跟的evalue 是立方体的边长。 generate zone brick p0 x0 y0 z0 edge evalue size n1 n2 n3 ratio r1 r2 r3

数值分析常用的插值方法

数值分析报告 班级: 专业: 流水号: 学号: 姓名:

常用的插值方法 序言 在离散数据的基础上补插连续函数,使得这条连续曲线通过全部给定的离散数据点。插值是离散函数逼近的重要方法,利用它可通过函数在有限个点处的取值状况,估算出函数在其他点处的近似值。 早在6世纪,中国的刘焯已将等距二次插值用于天文计算。17世纪之后,牛顿、拉格朗日分别讨论了等距和非等距的一般插值公式。在近代,插值法仍然是数据处理和编制函数表的常用工具,又是数值积分、数值微分、非线性方程求根和微分方程数值解法的重要基础,许多求解计算公式都是以插值为基础导出的。 插值问题的提法是:假定区间[a,b〕上的实值函数f(x)在该区间上n+1个互不相同点x0,x1……x n处的值是f(x0),……f(x n),要求估算f(x)在[a,b〕中某点的值。其做法是:在事先选定的一个由简单函数构成的有n+1个参数C0, C1,……C n的函数类Φ(C0,C1,……C n)中求出满足条件P(x i)=f(x i)(i=0,1,……n)的函数P(x),并以P(x)作为f(x)的估值。此处f(x)称为被插值函数,x0,x1,……xn 称为插值结(节)点,Φ(C0,C1,……C n)称为插值函数类,上面等式称为插值条件,Φ(C0,……C n)中满足上式的函数称为插值函数,R(x)=f(x)-P(x)称为插值余项。

求解这类问题,它有很多种插值法,其中以拉格朗日(Lagrange)插值和牛顿(Newton)插值为代表的多项式插值最有特点,常用的插值还有Hermit 插值,分段插值和样条插值。 一.拉格朗日插值 1.问题提出: 已知函数()y f x =在n+1个点01,,,n x x x L 上的函数值01,,,n y y y L ,求任意一点 x '的函数值()f x '。 说明:函数()y f x =可能是未知的;也可能是已知的,但它比较复杂,很难计算其函数值()f x '。 2.解决方法: 构造一个n 次代数多项式函数()n P x 来替代未知(或复杂)函数()y f x =,则 用()n P x '作为函数值()f x '的近似值。 设()2012n n n P x a a x a x a x =++++L ,构造()n P x 即是确定n+1个多项式的系数 012,,,,n a a a a L 。 3.构造()n P x 的依据: 当多项式函数()n P x 也同时过已知的n+1个点时,我们可以认为多项式函数 ()n P x 逼近于原来的函数()f x 。根据这个条件,可以写出非齐次线性方程组: 20102000 20112111 2012n n n n n n n n n n a a x a x a x y a a x a x a x y a a x a x a x y ?++++=?++++=?? ? ?++++=?L L L L L 其系数矩阵的行列式D 为范德萌行列式: ()20 0021110 2111n n i j n i j n n n n x x x x x x D x x x x x ≥>≥= = -∏L L M M M M L

FLAC3D原理..

2、2 三维数值模拟方法及其原理 2、2、1 FLAC3D工程分析软件特点 FLAC3D就是由美国Itasca Consulting Group, Inc、为地质工程应用而开发得连续介质显式有限差分计算机软件。FLAC即Fast Lagrangian Analysis of Continua 得缩写。该软件主要适用于模拟计算岩土体材料得力学行为及岩土材料达到屈服极限后产生得塑性流动,对大变形情况应用效果更好。 FLAC3D程序在数学上采用得就是快速拉格朗日方法,基于显式差分来获得模型全部运动方程与本构方程得步长解,其本构方程由基本应力应变定义及虎克定律导出,运动平衡方程则直接应用了柯西运动方程,该方程由牛顿运动定律导出。 计算模型一般就是由若干不同形状得三维单元体组成,也即剖分得空间单元网络区,计算中又将每个单元体进一步划分成由四个节点构成得四面体,四面体得应力应变只通过四个节点向其它四面体传递,进而传递到其它单元体。当对某一节点施加荷载后,在某一个微小得时间段内,作用于该点得荷载只对周围得若干节点(相邻节点)有影响。利用运动方程,根据单元节点得速度变化与时间,可计算出单元之间得相对位移,进而求出单元应变,再利用单元模型得本构方程,可求出单元应力。在计算应变过程中,利用高斯积分理论,将三维问题转化为二维问题而使其简单化。在运动方程中,还充分考虑了岩土体所具有得粘滞性,将其视作阻尼附加于方程中。 FLAC3D具有一个功能强大得网格生成器,有12种基本形状得单元体可供选择,利用这12种基本单元体,几乎可以构成任何形状得空间立体模型。 FLAC3D主要就是为地质工程应用而开发得岩土体力学数值评价计算程序,自身设计有九种材料本构模型: (1)空模型(Null Model) (2)弹性各向同性材料模型(Elastic, Isotropic Model) (3)弹性各向异性材料模型(Elastic, anisotropic Model) (4)德拉克-普拉格弹塑性材料模型(Drucker-Prager Model) (5)莫尔-库伦弹塑性材料模型(Mohr-Coulomb Model)

FLAC3D学习笔记(自己总结版)

一、建立模型笔记 1键盘上的键的功能:X,Y,Z分别控制所建立的模型围绕X,Y,Z三个轴做逆时针旋转.如果打开大小写锁定键,分边按XYZ时建立的模型会做顺时针旋转.+号的功能是加大模型旋转的角度,-号的功能是减小模型旋转的角度。 2键盘上的上下左右四个键可以实现图形的向上向下,向左和向右的移动. 3当在一个区域建立多个模型的时候,有时候为了镜像单个模块儿,需要预先编组,编组的方法如下: gen zon tunint p0 0 0 0 p1 0 10 0 p2 5 5 0 p3 0 0 -5 p4 5 10 0 & p5 5 5 -5 p6 0 10 -5 p7 5 10 -5 dim sq2 sq2 1 sq2 1 1 1 group(编组) z1(组名为:z1) & fill group tunnel 4镜像整个模型的方法:首先判断即将镜像的模型在原模型的哪个方向(即三个轴的方向),然后在轴所在的方向上去两个点.其中一个是原点(origin(xyz)). 5镜像部分模型的方法: gen zone reflect normal (x,y,z) origin (x,y,z) range group z1就可以了. 6特别要注意的一点:交叉巷道的巷道充填和巷道的网格是两个组,所以在镜像的时候不要忘了给充填部分镜像. 7 group radcyl range group cylint not(编组的时候不包括cylint) 7 快捷键总结 Ctrl+Z 局部缩放的功能。Ctrl+R的功能是恢复到初始状态。 8模型建立的方法: 方法1:利用默认值生成网格, 各个默认值:(1)p0的默认值是(0,0,0),网格的每边的单元格数size默认值是10,网格每边的长度默认值为size的值. 方法2:利用4个点的坐标来生成矩形网格.p0~p3 size 方法3:利用edge来确定边长生成矩形网格. 方法4:利用参数ratio来确定单元体几何边画边生成矩形网格. 方法5:利用参数add(相对坐标)来生成矩形网格. 方法6:利用八个点的左边来生成矩形网格. 9、用户自定义模型的方法 我来贡献一点自己的成果: FLAC3D的二次开发环境提供了开放的用户接口,在软件安装文件中包含了软件自带所有本构模型的源代码,且给出了Mohr-Coulomb模型和应变软化模型的编译示例,因此可以方便地进行本构模型的修改与开发。为了方便起见,下面的说明以建立UserModel模型为例。 (1) 在模型头文件(usermodel.h)中进行新的本构模型派生类的声明,修改模型的ID(为避免与已有模型冲突,一般要求大于100)、名称和版本,修改派生类的私有成员,主要包括模型的基本参数及程序执行过程中主要的中间变量。( ? p6 u' J5 Q3 y( a (2) 在程序C++文件(usermodel.cpp)中修改模型结构(UserModel::UserModel(bool bRegister): Constit -utive Model)的定义,这是一个空函数,主要功能是给(1)中定义的所有私有成员赋初值,一般均赋值为0.0。(3) 修改const char **UserModel: roperties()函数,该函数包含了给定模型的参数名称字符串,在FLAC3D的计算命令中需要用到这些字符串进行模型参数赋值。 (4) const char **UserModel::States()函数是单元在计算过程中的状态指示器,可以按照需要进行修改指示器的内容。 (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

FLAC3D 高手总结

;模型镜像 gen zone radcylinder size 25 1 25 25 gen zone reflect normal -1 0 0 origin x y z(面上一点);沿X轴镜像,通过对称平面法线向量确定对称面 gen zone reflect normal 0 0 -1 ;沿z轴镜像 ;绘图控制 pl contour szz outline on ;在模型中显示位移-应变曲线 hist gp ydisp 0,0,0 hist zone syy 0,1,0 hist zone syy 1,1,0 pl his -2 -3 vs 1 ;在plot hist m vs n的形式里,m代表y轴,n代表x轴(不管m,n的正负); "-"表示对其值作"mirror" ;对模型进行压缩实验的方法 ;即在模型两侧施加相反方向的速度 ini yvel 1e-7 range y -.1 .1 ini yvel -1e-7 range y 1.9 2.1 ;修改模型的坐标值 ini x add -100 y add -100 z add -100 ;显示云图的同时也显示模型网格轮廓 plot add cont disp outline on ;gradient更精确 ;输入角度、弧度方法 pi=π,90°为90.0*degrad def set_vals ptA = 25.0 * sin(pi/2);ptA=25.0 ptB = 25.0 * cos( 60.0*degrad );ptB=12.5 ptC=pi;ptC=3.1415926 end set_vals print ptA ptB ptC ;施加结构单元方法 sel shell id=5 range cylinder end1=(0.0, 0.0,0.0) & end2=(0.0,25.0,0.0) radius=24.5 not plot add sel geom black black cid on scale=0.03 sel node init zpos add -25.0 ;如何显示某一平面 plot create name_plane plot set plane origin 3 4 0 normal 1 0 0 plot add cont disp plane behind shade on plot add sel geom black plot add axes red

FLAC3D建模(复杂边坡)问题

FLAC3D建模(复杂边坡)问题 总在论坛里面看帖子,学习到了很多建模的技巧,觉得基本上是通过ansys与surfer导网格到FLAC3D进行建模,这其中就存在一些问题,如果模型比较复杂的话,可能会严重失真,例如边坡(我是岩土工程专业的,比较关注边坡),如果边坡内部存在多条断层,且存在崩积物、坡积物叠加分布的现象,我们假设存在基岩上覆盖10层崩坡积物,那用ansys与surfer 导入的网格是否能够真实反映边坡的真实情况呢?(我没有具体用ansys与surfer做过,所以并不知道是否可行!),最近做的一个边坡,强风化基岩上存在15层叠加分布的崩坡积物,且边坡内部存在3条断层,考虑了很久,觉得用ansys与surfer做的话可能不合适(如果有朋友能做的话,请告诉我,先谢谢了!),最后考虑用AutoCAD建模,然后导入FLAC3D的方法,模型建立起来后,觉得效果还不错,下面就说下我的方法,有什么不恰当之处,还请各位批评指正。 1、首先在AutoCAD中建模,因为我觉得我们的剖面图基本上是AutoCAD绘制的,尽量就CAD建模的话可以省下不少事(个人观点),建立3维模型需要尽量多的剖面,因此,在边坡表面地形变化处、坡体内部不同成因岩土体处都需要做剖面; 2、剖面做好后,进行剖面分层,就是在剖面上尽量细致的划分出不同成因性质的岩土体层,例如崩积物、坡积物,之后利用AutoCAD的3dmesh功能进行网格划分; 3、基本上只需要brick与wedge就可以了,自己编写一个VB的程序,可以读出3dmesh网格节点并输出成*.dat文件; 例如:Z方向为单位长度,读取3dmesh(brick)程序 Dim AcadApp As AutoCAD.AcadApplication Set AcadApp = GetObject(, "AutoCAD.Application") Dim Mydocument As AcadDocument Set Mydocument = AcadApp.ActiveDocument Dim Myentity As AcadPolygonMesh Dim Mysel As AcadSelectionSet Dim fil_type(0) As Integer Dim fil_data(0) As Variant Dim Mycoordinates As Variant

FLAC3D基础知识介绍解析word版本

FLAC 3D基础知识介绍 一、概述 FLAC(Fast Lagrangian Analysis of Continua)由美国Itasca公司开发的。目前,FLAC有二维和三维计算程序两个版本,二维计算程序V3.0以前的为DOS版本,V2.5版本仅仅能够使用计算机的基本内存64K),所以,程序求解的最大结点数仅限于2000个以内。1995年,FLAC2D已升级为V3.3的版本,其程序能够使用护展内存。因此,大大发护展了计算规模。FLAC3D是一个三维有限差分程序,目前已发展到V3.0版本。 FLAC3D的输入和一般的数值分析程序不同,它可以用交互的方式,从键盘输入各种命令,也可以写成命令(集)文件,类似于批处理,由文件来驱动。因此,采用FLAC程序进行计算,必须了解各种命令关键词的功能,然后,按照计算顺序,将命令按先后,依次排列,形成可以完成一定计算任务的命令文件。 FLAC3D是二维的有限差分程序FLAC2D的护展,能够进行土质、岩石和其它材料的三维结构受力特性模拟和塑性流动分析。调整三维网格中的多面体单元来拟合实际的结构。单元材料可采用线性或非线性本构模型,在外力作用下,当材料发生屈服流动后,网格能够相应发生变形和移动(大变形模式)。FLAC3D采用的显式拉格朗日算法和混合-离散分区技术,能够非常准确的模拟材料的塑性破坏和流动。由于无须形成刚度矩阵,因此,基于较小内存空间就能够求解大范围

的三维问题。 三维快速拉格朗日法是一种基于三维显式有限差分法的数值分析方法,它可以模拟岩土或其他材料的三维力学行为。三维快速拉格朗日分析将计算区域划分为若干四面体单元,每个单元在给定的边界条件下遵循指定的线性或非线性本构关系,如果单元应力使得材料屈服或产生塑性流动,则单元网格可以随着材料的变形而变形,这就是所谓的拉格朗日算法,这种算法非常适合于模拟大变形问题。三维快速拉格朗日分析采用了显式有限差分格式来求解场的控制微分方程,并应用了混合单元离散模型,可以准确地模拟材料的屈服、塑性流动、软化直至大变形,尤其在材料的弹塑性分析、大变形分析以及模拟施工过程等领域有其独到的优点。 FLAC-3D(Three Dimensional Fast Lagrangian Analysis of Continua)是美国Itasca Consulting Goup lnc开发的三维快速拉格朗日分析程序,该程序能较好地模拟地质材料在达到强度极限或屈服极限时发生的破坏或塑性流动的力学行为,特别适用于分析渐进破坏和失稳以及模拟大变形。它包含10种弹塑性材料本构模型,有静力、动力、蠕变、渗流、温度五种计算模式,各种模式间可以互相藕合,可以模拟多种结构形式,如岩体、土体或其他材料实体,梁、锚元、桩、壳以及人工结构如支护、衬砌、锚索、岩栓、土工织物、摩擦桩、板桩、界面单元等,可以模拟复杂的岩土工程或力学问题。 FLAC3D采用ANSI C++语言编写的。 二、FLAC3D的优点与不足

数值计算方法复习题2

习题二 1. 已知 ,求的二次值多项式。 2. 令 解:; ,介于x和0,1决定的区 间内;,当时。 的数表,分别用线性插值与二次插值求 3. 给出函数 ,试利用拉格朗日余项定理写出以为节点的三次 4. 设 插值多项式。 ,求及的值。1,0 5. 已知 6. 根据如下函数值表求四次牛顿插值多项式,并用其计算 , 的如下函数值表,解答下列问题(1)试列出相应 7. 已知函数 的差分表;(2)分别写出牛顿向前插值公式和牛顿向后插值公式。 解:向前插值公式

向后插值公式 8. 下表为概率积分 的数据表,试问:1)时, 积分 在各点的数据(取五位有效数 9. 利用 字),求方程 在0.3和0.4之间的根的近似值。0.3376489 10. 依据表10中数据,求三次埃尔米特插值多项式。 11. 依据数表11 项式。 上给出的等距节点函数表,用分段线性插值求 12. 在 的近似值,要使截断误差不超过 取? 13. 将区间 分成n等分,求在上的分段三次埃尔米 特插值多项式,并估计截断误差。 14、给定的数值表

用线性插值与二次插值计算ln0.54的近似值并估计误差限 解:仍可使用n=1及n=2的Lagrange插值或Newton插值,并应用误差估计。线性插值时,用0.5及0.6两点,用Newton插值 误差限 ,因,故 二次插值时,用0.5,0.6,0.7三点,作二次Newton插值 误差限, 故 15、在-4≤x≤4上给出的等距节点函数表,若用二次插值法 求的近似值,要使误差不超过,函数表的步长h应取多少? 解:用误差估计式, 令因 得

16、若,求和 解:由均差与导数关系 于是 17、若互异,求 的值,这里p≤n+1. 解:,由均差对称性 可知当有 而当P=n+1时 于是得 18、求证 解:只要按差分定义直接展开得 19、已知的函数表

FLAC3D和3DEC的区别(itasca论坛)

FLAC3D和3DEC的区别(itasca论坛) 在“三维可视化”专区中一位坛友讲到了3DEC建模和参数取值困难的问题,且被业界所“诟病”。楼主是3DEC的忠实用户,也用过FLAC3D和PFC,就3DEC自身的这些“问题”,略谈一二。 在建模环节上,3DEC是典型的“欺生”,即生手上来的时候可能觉得无从下手,而掌握以后觉得游刃有余。有兴趣的坛友可以访问Itasca网站中咨询研究专题下的一些应用实例,看看那里的3DEC模型,所有这些模型,除其中一个以外,建模时间都在5天以内,一般为3天,不助任何第三方软件。大家可以比较一下,这些模型用其他软件建模时需要花多长时间。 与其他ITASCA软件如FLAC3D一致地,3DEC采用命令流建模,可以嵌入FISH。这对初学者而言有些困难,但如果掌握了就很灵活: 相比较菜单操作而言,命令流显然要困难一些,因此难学。但一旦掌握,修改模型只需要修改命令流,无需进行重复的菜单操作,熟手因此多喜欢命令流的方式; FISH本身就不是为初学者准备的,但掌握了FISH以后,任何有规律性对象的建模就容易得多。比如多机组的地下厂房洞室群,用FISH建立起来了其中一个单元以后,修改参数即可很快获得其他单元。建模过程中FISH的应用可以大大提高效率,是命令流、特别是菜单操作所难以比拟的。 因此,3DEC是典型的“欺生”,学习3DEC和训一匹“烈马”有得

一比,如果你不能驯服它,你只能是望而却步。 学习3DEC还需要“洗脑”,即固有的理论和思维模式可能会有所障碍。 不知道哪位坛友在基础理论学习过程中系统学习过非连续力学方法、或者说学习过离散元方法。以楼主的理解,国内一些关于离散元的文献中,只要谈深一点,就不乏误解和错误。其中的原因是多方面的,一是没有跟上国际潮流,没有真正弄懂就开始写文章。二是既往的教育背景基本都是连续理论和有限元方法,当用这种思维定式来应用离散元程序如3DEC时,可能会受到一些制约。 3DEC处理的对象包括两大部分,即块体和接触(结构面),相比较而言,有限元乃至FLAC3D针对的对象只是其中的块体,即便存在结构面,但在程序结构中的处理方式也与3DEC有着本质的差别。 如果说单元网格是数值模型的基本单元,那么,3DEC中包括两种网格体系,即接触网格和块体网格。这要求用户在脑子里建立这种概念,即3DEC程序结构中有两个系列的网格,而不是传统的一个系列。当然,从应用角度,如果不理会这一点也无所谓,但如果是达到写文章和理解程序的深度,则需要理解这种差别及其带来的不同。 在3DEC中,接触被作为块体的边界,因此,两个块体相接触时,无需节点之间有任何的对应关系。在FLAC专区中有一幅帖子问“这样的网格行不行”,如果放在3DEC中,这不是问题。这一差别显

(完整word版)FLAC3D常见命令与使用技巧

FLAC3D常见命令与使用技巧 1、FLAC3D常见命令: 1.FLAC3D是有限元程序吗?答:不是!是有限差分法。 2.最先需要掌握的命令有哪些? 答:需要掌握gen, ini, app, plo, solve等建模、初始条件、边界条件、后处理和求解的命令。 3.怎样看模型的样子?答:plo blo gro可以看到不同的group的颜色分布 4.怎样看模型的边界情况?答:plo gpfix red 5.怎样看模型的体力分布?答:plo fap red 6.怎样看模型的云图?答:位移:plo con dis (xdis, ydis, zdis)应力:plo con sz (sy, sx,sxy, syz, sxz) 7.怎样看模型的矢量图?答:plo dis (xdis, ydis, zdis) 8.怎样看模型有多少单元、节点?答:pri info 9.怎样输出模型的后处理图? 答:File/Print type/Jpg file,然后选择File/Print,将保存格式选择为jpe文件 10.怎样调用一个文件?答:File/call或者call命令 10.如何施加面力?答:app nstress 11.如何调整视图的大小、角度?答:综合使用x, y, z, m, Shift键,配合使用Ctrl+R,Ctrl+Z等快捷键 12.如何进行边界约束?答:fix x ran(约束的是速度,在初始情况下约束等效于位移约束) 13.如何知道每个单元的ID?答:用鼠标双击单元的表面,可以知道单元的ID和坐标 14.如何进行切片? 答:plo set plane ori (点坐标) norm (法向矢量) plo con sz plane (显示z方向应力的切片) 15.如何保存计算结果?答:save +文件名. 16.如何调用已保存的结果?答:rest +文件名;或者File / Restore 17.如何暂停计算?答:Esc 18.如何在程序中进行暂停,并可恢复计算?答:在命令中加入pause命令,用continue进行继续 19.如何跳过某个计算步?答:在计算中按空格键跳过本次计算,自动进入下一步 20. Fish是什么东西? 答:是FLAC3D的内置语言,可以用来进行参数化模型、完成命令本身不能进行的功能 21. Fish是否一定要学?答:可以不用,需要的时候查Mannual获得需要的变量就可以了 22.FLAC3D允许的命令文件格式有哪些?答:无所谓,只要是文本文件,什么后缀都可以 23.如何调用一些可选模块?答:config dyn (fluid, creep, cppudm) 24 .如何在圆柱体四周如何施加约束条件?答:可以用fix ... ran cylinder end1 end2 radius r1 cylinder end1 end2radius r2 not,其中r2 25.如何能把一个PLOT的图像数据导出来以便用其他软件绘图?答:用set log on命令,把数据导出来,转到excel里处理一下,然后用surfer或者什么作图软件绘制就行了。 26.关于dd、dip的理解: 答:首先你要确定你定义面的法线方向,dip是倾角的意思(xoy面和定义面的夹角),法线向上dip 是锐角,法线向下dip时钝角。dd是y轴顺时针转到法线在xoy面上的投影线时,所转过的角度。 27.如何调用FISH文件? 答:新手调用FISH文件出错的原因是:文件名为fishcall.fis.txt(因为在记事本里这个txt的后缀是默认的)。修改方法是:将fishcall.fis.txt里面的内容全部复制到新的记事本里,再按保存,保存时候将保存类型改为所有文件(*,*),这时你便可在文件名栏内输入fishcall.fis,类型也就正确了。 28.如何理解Tension-p shear-p tension-n shear-n表示的含义? 答:在计算的循环里面,每个循环中,每个zone都依据failure criterion处于不同的状态,shear和tension 分别表示因受剪和受拉而处于塑性状态.n表示now,p表示previous,即分别表示在现在和以前的循环当中处于塑性状态. 29.绘制相关曲线命令的一些解释在plot hist m vs n的形式里,m代表y轴,n代表x轴(不管m,n的正负);"-"表示对其值作"mirror",如果大家使用AUTOCAD的话就明白"mirror"的含义了 30.如何查看剖面上任一点的位移值? 答:print gp disp range x() y( ) z( )

相关文档