离散元软件PFC2D学习问题总结
- 格式:pdf
- 大小:331.96 KB
- 文档页数:9
关于颗粒流软件PFC的离散元数值模拟参数标定摘要:简要介绍了运用离散元理论及颗粒流软件PFC进行岩土类工程问题数值模拟的研究思路和方法,简述了运用PFC软件进行数值模拟时通常会遇到的关键性问题,通过结合笔者在研究过程中的实践经验,针对数值模拟的首要步骤即参数标定这一步,给出了相应的解决方案及研究结论。
关键词:颗粒流软件PFC;离散元;数值模拟;参数标定1工程背景随着工程规模的日益扩大,作为建筑材料以及地基介质的岩土体一直以来都是人们研究的热点。
目前,解决岩土类工程问题的主要研究手段有三大类,分别是理论分析、室内实验和数值模拟。
其中,数值模拟又因其便捷、高效以及可控性成为当今最为常用的研究方法。
常用的数值模拟方法主要基于有限元分析理论或离散元分析理论,运用计算机软件对实际的工程问题进行模拟,从而发现问题、得到内在规律并作出研究结论,对于指导工程实践具有重大意义。
2研究方法针对不连续介质问题以及大变形问题[1],近年来新兴的离散元理论逐步代替传统的有限元理论被人们采用。
其主要理论依据是牛顿第二定律和力与位移的关系,求解思路为:将求解空间离散为分离的单元阵,相邻两个单元之间用合理的元件相连接;基本变量是单元间的相对位移,通过位移和力的关系可以分别得到单元之间的法向、切向作用力;求单元上受到的合力及合力矩,由牛顿运动定律计算出单元体的加速度;最后,积分得到单元的速度和位移。
通过以上计算过程可以得到任意时刻所有单元体的位移、速度和加速度。
在基于离散元分析理论开发出来的计算机软件中,最为广泛使用的是美国ITASCA公司开发的UDEC(univeralditinctelementcode)、3DEC(3-dimenionalditinctelementcode)块体离散元程序,和PFC2D (particleflowcodein2dimenion)、PFC3D(particleflowcodein3dimenion)软件。
PFC二维模拟的缺点PFC二维模拟的缺点在分析PFC2D模拟的结果时,需要考虑PFC2D的这些局限性,对结果做出合理的解释。
与三维模拟具有三个力的分量和三个弯矩分量不同,二维模拟只有两个力的分量和一个弯矩,其余几个分量并未考虑在平衡方程中。
默认情况下,生成的BALLS是圆心位于同一平面上的球体;当SET DISK ON命令打开后,BALLS是具有单位厚度的圆柱体,该命令影响到球的质量和内在特性的计算。
应力和应变PFC2D的应力和应变不是存在于颗粒组的任何地方,而是离散的,因此需要设置测量圆对其进行平均化计算。
平均化计算中,不考虑命令SET DISK,默认所有颗粒为单位厚度,这种算法在SET DISK OFF 时并不精确。
(算法见“PFC2D学习笔记之理论与背景”)PFC2D的运动方程中没有考虑平面外的力分量和应力应变,而是采用力-位移关系,为确定平面应变状态所必需的平面外约束在这里没有考虑。
填密和孔隙比孔隙比用来表示颗粒填密的程度,但是二维和三维孔隙比的计算没有明显关系,这使得PFC2D在模拟三维效应明显的材料时很难让人满意。
在三维下,均匀球体在矩形区域最紧密状态(无侵入)的孔隙比为0.2595;在二维下,则为0.0931,这说明三维可以容纳更多的空隙。
在真实材料中,是达不到这种最紧密状态的,因为在填密过程中颗粒之间会形成“锁合”,而三维情况下形成“锁合”的机率也比二维要多得多。
因此,三维条件下,孔隙比会更大。
三维条件下,小颗粒会从大颗粒的空隙中漏出,而在二维条件下则不可能发生这种渗漏。
因此,对于三维敏感的问题,有必要先使用PFC3D做少量的计算,得到某些物理响应的相关参数,然后再利用这些参数进行PFC2D的大量的二维模拟。
质量特性每个颗粒的质量特性取决于嗦采用的颗粒是球体还是圆盘,这会影响到运动计算和重力。
质量特性受到影响,但并不意味着其他模型特性,如应力和空隙比也必然受到影响。
与FLAC3D 的2.0和2.1版本相比,FLAC3D 3.0有哪些新功能?答:计算方面:1.所有的计算和数据均采用双精度浮点制。
2.其运行速度较2.1约快10-15%功能方面:1. 动力模块中增加了hysteretic阻尼对于动力计算,加入了一个新的阻尼特性:hysteretic阻尼。
采用这种形式的阻尼,数值计算模拟产生的应变可基于模型模量和阻尼函数的共同作用。
这就可以使用户将等价线性计算方法的结果与完全非线性无折减本构模型的计算结果进行比较。
另外,对一些其它形式的阻尼,如Rayleigh阻尼,进行了较大的折减,这样在使用hysteretic 阻尼时可以有效地节省计算时间。
2. 在岩石本构模型中增加了Hook-Brown(霍克-布朗)模型加入了霍克-布朗屈服准则,使用户对岩石材料计算结果较为合理。
它的屈服面是非线性的,同时是考虑最大、最小主应力的关系的基础上产生的。
该模型综合了塑性流准则,其特性随着不同的应力水平,呈一变化的函数。
3.热/流体水平对流模型FLAC3D之前已经能提供非线性固体与多孔介质渗流的流固耦合模拟,机械地耦合流体和固体。
而3.0版本的新功能增加了温度可受流体密度影响和流体中温度的水平对流。
4. 3Dshop生成的网格导入3DSHOP是一种能力强大的固体建摸和六面体网格的软件包,也是ITASA的产品。
FLAC3D 原始的网格仍可用,但是用基于WINDOWS操作系统的3DSHOP建复杂模型更为简单方便。
3DSHOP生成的网格能被FLAC直接读取。
5. 动画命令:FLAC3D现在能产生AVI和DCX动画,这是以前的版本没有的功能。
6. 记录颗粒轨迹:颗粒的路径能被记录和显示此外,FLAC3D 3.0也包含下面的新特点(这也是以前版本所不能实现的):1)网络版2)应用于混凝土加工模拟的水合作用模型。
问:如何显示变形轮廓线的命令?答:plo ske magf 10 其中10为放大系数问:如何查看各个时段不平衡力的具体数值?答:采用his来记录计算,包括位移应力等命令his unbalhis gp(zone) zdis range (0 0 0) 或者id=?导出数据命令his write n vs m begin 时步 end 时步 file filename.hisn表示纪录的id m表示时步要导出不平衡力的具体数值his unbalstep 100000 or solvehis write 1 vs step begin 1 end 1000 file 123.his使用上述命令就可以查看各个时步下的不平衡力的具体数值问:initial 与 apply 有何区别?答:initial初始化命令,如初始化计算体的应力状态等;apply边界条件限制命令,如施加边界的力、位移等约束等。
关于颗粒流软件PFC的离散元数值模拟参数标定作者:孙婧何佩珊齐梦菊来源:《山东工业技术》2016年第10期摘要:简要介绍了运用离散元理论及颗粒流软件PFC进行岩土类工程问题数值模拟的研究思路和方法,简述了运用PFC软件进行数值模拟时通常会遇到的关键性问题,通过结合笔者在研究过程中的实践经验,针对数值模拟的首要步骤即参数标定这一步,给出了相应的解决方案及研究结论。
关键词:颗粒流软件PFC;离散元;数值模拟;参数标定DOI:10.16640/ki.37-1222/t.2016.10.0391 工程背景随着工程规模的日益扩大,作为建筑材料以及地基介质的岩土体一直以来都是人们研究的热点。
目前,解决岩土类工程问题的主要研究手段有三大类,分别是理论分析、室内实验和数值模拟。
其中,数值模拟又因其便捷、高效以及可控性成为当今最为常用的研究方法。
常用的数值模拟方法主要基于有限元分析理论或离散元分析理论,运用计算机软件对实际的工程问题进行模拟,从而发现问题、得到内在规律并作出研究结论,对于指导工程实践具有重大意义。
2 研究方法针对不连续介质问题以及大变形问题[1],近年来新兴的离散元理论逐步代替传统的有限元理论被人们采用。
其主要理论依据是牛顿第二定律和力与位移的关系,求解思路为:将求解空间离散为分离的单元阵,相邻两个单元之间用合理的元件相连接;基本变量是单元间的相对位移,通过位移和力的关系可以分别得到单元之间的法向、切向作用力;求单元上受到的合力及合力矩,由牛顿运动定律计算出单元体的加速度;最后,积分得到单元的速度和位移。
通过以上计算过程可以得到任意时刻所有单元体的位移、速度和加速度。
在基于离散元分析理论开发出来的计算机软件中,最为广泛使用的是美国ITASCA公司开发的UDEC(universal distinct element code)、3DEC(3-dimensional distinct element code)块体离散元程序,和PFC2D(particle flow code in 2 dimensions)、PFC3D(particle flow code in 3 dimensions)软件。
使用命令BALL和GENERATE可以生成颗粒。
BALL命令只能单个生成的颗粒,且可以相互重叠;GENERA TE命令可以生成颗粒组,但自动生成的一组颗粒间没有重叠。
生成的颗粒组有两种,一种是规则的排列,用于模拟结构部件,这种阵列的初始接触力可以精确的预测;另一种是不规则的排列,用于模拟实体或内部结构无序的粒状材料,要预估其初始接触力量值是不可能的。
对于第二种颗粒组,尽管颗粒排列是任意的,但某些特性还是需要在颗粒生成后添加,比如弱面或各向异性强度等。
规则排列通过用户自定义FISH函数,在循环体内使用BALL命令生成。
示例如下loop row (1,n_row)loop col (1,n_col)commandball id=idc x=xc y=yc rad=rcend_commandidc = idc + 1xc = xc + r2end_loopyc = yc + yincxc = x0 + radius * (row - (row/2) * 2)end_loop不规则排列一般,边界都是由墙定义好的,要在给定空间内生成颗粒,既要保证孔隙比符合要求,又要使组合达到平衡。
显然,孔隙比不能任意的小。
无法将圆颗粒在紧密堆积时将他们设置在任意紧密的区域(低孔隙比)。
这里讨论两种方法来以给定的半径和孔隙比生成颗粒,这两种方法都是先固定边界,即半径扩大法和颗粒排斥法。
还有一种方法是移动边界法,可以得到精确的孔隙比,但这种方法有三个缺点:边界条件改变了;达到平衡的时间很慢;最终分布很不均匀。
半径扩大法和颗粒排斥法中,颗粒半径按照某种概率分布生成,如均匀分布或高斯分布,也可以通过FISH自定义其分布形式。
BALL和GENERA TE的具体用法,参考《PFC2D学习笔记之命令篇》。
半径扩大法其基本FISH函数语句如下:mult = 1.6 ; initial radius multiplication factorn0 = 1.0 - (1.0 - poros) / multˆ2r0 = sqrt(height*width*(1.0 - n0)/(pi*num))rlo = 2.0 * r0 / (1.0 + rat)rhi = rat * rlo... ...gen id=1,num rad=rlo,rhi x=0,width y=0,heightprop dens=1000 ks=s_stiff kn=n_stiff... ...sum = 0.0bp = ball_headloop while bp # nullsum = sum + pi * b_rad(bp)ˆ2bp = b_next(bp)end_looppmeas = 1.0 - sum / (width * height)mult = sqrt((1.0 - poros) / (1.0 - pmeas))ini rad mul multcycle 1000prop fric 0.2cycle 2000注意,为了使颗粒组在比较快的时间内达到平衡,必须设置在CYCLE前使用FRIC设置摩擦系数,用于消散颗粒能量,但这种干预方式阻碍了颗粒的自由运动,对其最终组合状态有影响。
PFC2D术语颗粒:不同特性的颗粒表示紧邻基床面的材料,并沿着节理存在弱面。
墙:模拟边界,刚性光滑实体。
颗粒链:采用一个具有平行粘结的颗粒簇表示。
球:ball可以是球体,也可以是指定厚度的圆盘。
Ball的另一名称即颗粒。
Wall: 有两种墙,标准墙和一般墙。
一般墙在几何形状上和标准墙不同,且一般墙的两边都是激活的。
标准墙是一条或多条线段,并在与颗粒的交界面上任意定义接触特性。
Contact: 球与球或球与墙之间通过点接触相互作用。
接触通过球与球或球与墙的重叠来创建,该重叠与物理变形相对应。
Model boundary: 模型边界。
墙可以用来定义模型边界,或者规定一组球的速度。
CLUSTER:簇,簇内颗粒是粘结在一起的,用来模拟角或块体。
簇与簇之间可以相互作用并近似模拟块体系统的行为。
簇可以表示自然结构,例如块状岩体或任意结构(隧道线或钢筋等)。
簇内颗粒间的粘结可以发生破坏而分离。
聚粒(超级颗粒):组成聚粒的颗粒彼此间保持固定距离,且不能分开,像一个具有柔性边界的刚体。
DISCONTINUITY:一个间断由块体系统中相互分离的颗粒簇的一个或多个接触组成,并具有不同于颗粒簇内部的接触特性。
间断可以表示岩体中的节理、断层或基岩等。
BOUNDARY CONDITION:边界条件。
INITIAL CONTINUITY: 初始条件。
ID NUMBER: 具有ID号的模型单元有,balls, walls, measurement circles, histories, tables, clumps and plot items. 使用PRINT命令可以得到ID号。
ID号可以由用户指定,也可以有程序自动分配。
RANG:范围,即一个变量的边界。
GROUP: 一组同名的球。
组可以用来限制一些命令仅作用在组内成员上。
CYCLE OR STEP:得到静态解的平衡状态需要经历的计算步数。
Unbalanced force: 不平衡力。
材料特性使用命令PROPERTY可以分配材料特性参数信息。
难点在于选择能反映真实材料的特性参数。
连续介质程序中的材料参数是宏观参数,可以由实验室得到,而PFC2D则是采用颗粒之间的微观参数。
如果材料的微观参数已知,则可以直接应用PFC2D模拟;如果微观参数未知,则需要采用逆向模拟,即进行许多试验和模拟,建立宏观参数和微观参数的关系。
当不连续体(如裂缝、断层、节理等)要设置在材料中进行模拟时,可以使用节理生成器引入弱面。
颗粒和接触的特性除了与粘结相关的特性以外,都要使用PROPERTY命令给颗粒分配特性参数。
有些参数,如摩擦系数和接触刚度,与接触行为相关,但是也必须分配给颗粒。
这些接触行为由组成接触的两个颗粒的特性得到。
特性在空间的变化参数沿空间线性变化:prop s_bond 1e6 grad -1e4 range x 0 50。
即,接触粘结剪切强度由x=0处的1e6线性变化到x=50处的5e5(10e6 − 1e4*50)。
参数按照更复杂的函数变化则需要通过FISH函数完成。
参数按组分配:使用命令GROUP和RANGE GROUP。
GROUP将某空间范围内的颗粒定义为一组后,即使以后这些颗粒移动到初始定义的RANGE空间范围外,仍然保持在一个组内,仍然可以对其同时分配或改变参数。
需要注意的是,通过GROUP设置接触特性时,只有GROUP内部球体间形成的接触可以被改变,而属于不同GROUP的颗粒间形成的接触不受影响。
如果需要改变不同GROUP之间的颗粒形成的接触的特性,则需要使用JSET命令,这将在后面的节理平面部分给出详细说明。
基于已知微观特性的直接模拟如果模拟的材料由圆颗粒组成,则颗粒的特性可以直接输入PFC2D。
各参数的相对重要性取决于模拟的类型和目的。
如果颗粒材料小应变时的整体模量很重要,则应该使用HERTZ-MINDLIN模型,输入剪切模量和孔隙比;如果材料的强度比模量更重要,则使用计算效率高的线性接触模型,这种情况下,如果颗粒的重叠在合理范围(比如小于平均半径的5%),则切向和法向接触刚度就不重要了;如果没用颗粒间粘结,则材料的强度决定于摩擦系数。
PFC2D培训课件一、引言PFC2D是一款功能强大的二维颗粒流模拟软件,广泛应用于岩土工程、矿业工程、土木工程等领域。
为了帮助用户更好地了解和应用PFC2D软件,本课件将详细介绍PFC2D的基本原理、操作流程、模型构建、参数设置、模拟分析等方面的内容。
通过本课件的学习,用户将能够熟练掌握PFC2D软件的使用方法,为实际工程问题提供有效的数值模拟解决方案。
二、PFC2D基本原理PFC2D基于颗粒流理论,通过模拟颗粒之间的相互作用和运动规律,实现对岩土体等颗粒材料的力学行为的数值模拟。
在PFC2D 中,颗粒被视为具有一定半径和质量的小球,颗粒之间的相互作用通过接触模型来描述。
接触模型包括弹性模型、粘弹性模型、粘塑性模型等,可以模拟颗粒之间的弹性变形、滑动、粘结和断裂等力学行为。
通过计算颗粒之间的接触力、位移和速度等参数,PFC2D 能够模拟颗粒材料的应力应变关系、破坏过程和稳定性分析等。
三、PFC2D操作流程1.创建项目:打开PFC2D软件,创建一个新的项目,设置模拟的边界条件和计算参数。
2.构建模型:通过绘制颗粒、设置颗粒属性、创建边界和加载条件等操作,构建模拟模型。
3.设置参数:根据实际工程问题,设置颗粒的物理参数、接触模型参数和计算控制参数等。
4.运行模拟:启动模拟计算,观察颗粒的运动和相互作用过程,记录计算结果。
5.分析结果:对模拟结果进行分析,提取应力应变数据、颗粒位移、速度等参数,进行后处理和可视化分析。
四、PFC2D模型构建1.创建颗粒:通过指定颗粒的位置、半径和质量等参数,创建颗粒模型。
可以使用绘图工具手动绘制颗粒,也可以通过导入CAD 文件等方式自动颗粒。
2.设置颗粒属性:根据实际工程问题,设置颗粒的物理参数,如密度、弹性模量、泊松比等。
3.创建边界:根据模拟问题的需求,创建边界条件,如固定边界、滑动边界、自由边界等。
4.加载条件:根据实际工程情况,设置加载条件,如施加力、位移、速度等。
PFC2D学习笔记之加载-求解-模拟-结果分析加载方法加载分为被动加载和主动加载。
被动加载,是指模型内部的改变引起的模型内的加载,这种作用是自动发生的,如开挖,重力加载也属于被动加载的一种,因为重力总是在模拟开始时就设置了的。
需要注意的是,SET GRA VITY命令只是根据颗粒的重度和半径给颗粒施加一个体力,颗粒间的接触力不受该命令影响。
主动加载,由外部施加的速度和力组成。
墙的控制可以给墙施加速度,包括平动和转到。
墙运动时所受到的力和力矩可以用PRINT WALL显示,或用HISTORY WALL跟踪,或用FISH函数对其操作。
还可以用FISH函数创建一个伺服控制机制,给WALL施加速度以使力或力矩保持为常量。
也可以定义WALL的运动方程,使其动态行为像一个惯性实体一样。
颗粒受力控制——应力边界可以用一组平衡力作用在边界颗粒上,以取代WALL,且这组力可以放大或缩小以表示侧应力的变化。
但是,应力控制式边界在颗粒材料内不具有代表性;应变控制式边界更更真实地体现材料内部约束;施加的力边界对于为破坏的粘结材料几乎已经足够了。
颗粒速度的控制一组边界颗粒可以用命令FIX和INIITIAL XVEL,YVEL固定并施加速度。
但是需要用一下FISH函数获取控制颗粒的总反力:fxsum_lh = 0.0fxsum_rh = 0.0bp = ball_headloop while bp # nullif b_xfix(bp) = 1if b_xvel(bp) > 0.0fxsum_lh = fxsum_lh + b_xfob(bp)end_ifif b_xvel(bp) < 0.0fxsum_rh = fxsum_rh + b_xfob(bp)end_ifend_ifbp = b_next(bp)end_loop周期性边界当需要使所求解问题在给定区域循环进行时,使用周期性边界能够减少颗粒数目以计算时间。
PFC2D术语颗粒:不同特性的颗粒表示紧邻基床面的材料,并沿着节理存在弱面。
墙:模拟边界,刚性光滑实体。
颗粒链:采用一个具有平行粘结的颗粒簇表示。
球:ball可以是球体,也可以是指定厚度的圆盘。
Ball的另一名称即颗粒。
Wall: 有两种墙,标准墙和一般墙。
一般墙在几何形状上和标准墙不同,且一般墙的两边都是激活的。
标准墙是一条或多条线段,并在与颗粒的交界面上任意定义接触特性。
Contact: 球与球或球与墙之间通过点接触相互作用。
接触通过球与球或球与墙的重叠来创建,该重叠与物理变形相对应。
Model boundary: 模型边界。
墙可以用来定义模型边界,或者规定一组球的速度。
CLUSTER:簇,簇内颗粒是粘结在一起的,用来模拟角或块体。
簇与簇之间可以相互作用并近似模拟块体系统的行为。
簇可以表示自然结构,例如块状岩体或任意结构(隧道线或钢筋等)。
簇内颗粒间的粘结可以发生破坏而分离。
聚粒(超级颗粒):组成聚粒的颗粒彼此间保持固定距离,且不能分开,像一个具有柔性边界的刚体。
DISCONTINUITY:一个间断由块体系统中相互分离的颗粒簇的一个或多个接触组成,并具有不同于颗粒簇内部的接触特性。
间断可以表示岩体中的节理、断层或基岩等。
BOUNDARY CONDITION:边界条件。
INITIAL CONTINUITY: 初始条件。
ID NUMBER: 具有ID号的模型单元有,balls, walls, measurement circles, histories, tables, clumps and plot items. 使用PRINT命令可以得到ID号。
ID号可以由用户指定,也可以有程序自动分配。
RANG:范围,即一个变量的边界。
GROUP: 一组同名的球。
组可以用来限制一些命令仅作用在组内成员上。
CYCLE OR STEP:得到静态解的平衡状态需要经历的计算步数。
Unbalanced force: 不平衡力。
1.PFC对计算机配置有何要求?与其他程序(如3DEC)相似,PFC5.0是采用自动多线程技术进行计算的。
但是当计算机核数高于8时,计算效率降低。
因此,并非配置越高级,软件计算速度越快,用时越短。
这一特点取决于内存记录和等待。
实际上,处理器的快慢比处理器的数量更有用。
2.模型中只能采用圆形颗粒?PFC的最基本颗粒为圆形(2D)或者球形(3D),但模型中除了采用基本颗粒,还可以采用另外的颗粒形态,具体可使用clump实现。
使用clump可以模拟不同的颗粒形态,但生成计算模型所用颗粒之前,必须先生成颗粒模板,然后才可在模型中按照需求正式创建计算用的多形态颗粒集合体。
这种颗粒形态既可以通过外部程序导入进来,也可以在PFC5.0中直接创建。
3.PFC对边界条件有何要求?PFC中的边界条件与其他程序(如3DEC、FLAC3D等)不同,可以是不规则的任意边界。
且PFC的边界按照变形能力和受力特点可以分为两类:刚性边界和柔性边界。
刚性边界指边界是由墙体组成,墙体本身不能直接被施加外荷载,一般通过施加速度来控制墙体运动。
但墙体一旦与颗粒接触,这种接触是具有力属性的。
柔性边界一般指由颗粒形成的边界,既可以具有变形能力,也可以接受任意的加载方式,能够同时承受外荷载和运动速度。
4.PFC中的本构模型与一般程序中的本构模型含义相同吗?PFC中的本构模型是针对接触的,是细观本构模型,模型参数一般是包含接触的刚度和强度参数。
与宏观意义上的本构模型有很大差别。
3DEC中当采用Morh-Coloumb 和Hoek-Brown本构模型时,模型参数里所包含的诸如体积模量、摩擦角等参数都可以采用物理试验参数直接引入,但PFC的本构模型中的参数无法直接引入宏观参数,必须将一些宏观参数作为校核标准,调试出一组相对应的细观参数。
5.property和attribute都是属性的意思,使用起来有何不同?在PFC4.0及更早的版本里,所有的属性参数都采用property命令设置。