PFCBBS交流论坛---群号: 45609530

Would you like to react to this message? Create an account in a few clicks or log in to continue.
PFCBBS交流论坛---群号: 45609530

交流PFC中的技术问题与常见问题,以便提高PFC软件在国内的认知度。让颗粒联系你我,共同进步!!~

十一月 2024

周一周二周三周四周五周六周日
    123
45678910
11121314151617
18192021222324
252627282930 

日历 日历

最新主题

» 模拟沙堆生成的平衡问题
PFC学习初期总结 Empty周四 四月 17, 2014 11:00 pm 由 violinn

» 求助~询问。。PFC2D 求助ing
PFC学习初期总结 Empty周五 一月 10, 2014 8:26 pm 由 Ms.Yang

» 求助~询问。。PFC2D
PFC学习初期总结 Empty周五 一月 10, 2014 8:25 pm 由 Ms.Yang

» PFC是怎么用颗粒模拟岩体的
PFC学习初期总结 Empty周五 十一月 08, 2013 11:25 pm 由 求实engineer

» 希望大家踊跃发言,积极讨论PFC 技术与问题~
PFC学习初期总结 Empty周三 六月 19, 2013 9:14 pm 由 yuanyuekafu

» PFC2D学习笔记之流固耦合
PFC学习初期总结 Empty周二 四月 23, 2013 11:15 pm 由 yuanyuekafu

» PFC2D学习笔记之使用细则
PFC学习初期总结 Empty周二 四月 23, 2013 11:12 pm 由 yuanyuekafu

» PFC学习初期总结
PFC学习初期总结 Empty周二 四月 23, 2013 11:07 pm 由 yuanyuekafu

» PFC2D学习笔记之颗粒生成
PFC学习初期总结 Empty周二 十月 16, 2012 4:37 pm 由 黄亮岩土

合作伙伴

免费论坛

免費論壇

有谁在线?

总计有12位用户在线:: 0位注册用户, 0位隐身和 12位游客


[ 查看所有列表 ]


用户同时在线最高记录是37人在周五 九月 06, 2019 3:22 pm


+2
jsqcx
画之缘
6 posters

    PFC学习初期总结

    画之缘
    画之缘
    版主


    帖子数 : 43
    3 : 16704
    威望 : 1
    注册日期 : 09-10-03
    年龄 : 39
    地点 : 浙江省杭州市

    PFC学习初期总结 Empty PFC学习初期总结

    帖子  画之缘 周六 十月 03, 2009 7:43 pm

    下面是前人PFC学习总结,供大家参考与学习:
    PFC2D学习初期总结
    最近学了一段时间PFC2D,由于做课题要用到它,时间又很紧,只是粗粗的学了一下,现将我的学习笔记抄录如下,比较乱一些。以期对比我更初级的学习者有所帮助。
      
    内存分配
    当载入PFC程序后,程序将动态分配内存,随着模型的构建,内存相应地增大。Print memory 将显示当前内存大小。
    内存分配
    当载入PFC程序后,程序将动态分配内存,随着模型的构建,内存相应地增大。Print memory 将显示当前内存大小。
    图形控制
    在图形模式下,按键M为放大图形,缩小为Shift+M;箭头来移动;Ctrl+G为在彩图与黑白图形间转换;Ctrl+C显示照相机对话框;Ctrl+L为cutting plane;Ctrl+R为恢复图形显示为默认值;Ctrl+Z为用一矩形框来放大图形局部;F9为重画。
    实例
    new
    ;将球体看成一定厚度的盘子;Note that only mass properties are affected by the SET disk command
    set disk on
    ;下面为建立四个直线边壁,分别赋予1~4的编号。每一直线壁以两点连线建立。
    wall id=1 nodes ( 0, -5) (10, -5)
    wall id=2 nodes (10, -5) (10, 0)
    wall id=3 nodes (10, 0) ( 0, 0)
    wall id=4 nodes ( 0, 0) ( 0, -5)
    ;下面为产生500个球,每个球的编号被赋予1~500,产生球的地方在0<x<10,-5<y<-0.5的范围内,而且球的半径在0.08<r<0.13的范围内随机产生;如果产生球的范围不足以产生500个球则系统会给出提示。
    gen id=1,500 rad 0.08,0.13 x=0,10 y=-5,-0.5
    ;转入图形显示模式的语句为:plot。输入这条语句后,程序将由命令模式转到图形模式,即Plot 0\Base>,在此模式下输入的语句都是和plot有关的。

    plot
    ;建立视点Footing
    create Footing
    set title text ’Basic collection of particles in a box’
    add ball lblue
    add wall black
    add axes brown
    show
    ;建立视点Footing2
    create Footing2
    add ball lblue
    add wall black
    add axes brown
    set size -1.0 1.0 -2.0 2.0
    set title bottom
    set caption right
    close
    quit
    ;给边壁墙的刚度赋值,法向刚度与切向刚度都为108N/m
    wall id=1 kn=1e8 ks=1e8
    wall id=2 kn=1e8 ks=1e8
    wall id=3 kn=1e8 ks=1e8
    wall id=4 kn=1e8 ks=1e8
    ;给球赋属性,密度为1000kg/m3,刚度都为108N/m
    prop density 1000 kn 1e8 ks 1e8
    ;给球的半径乘以一个系数,从而减小球与球间的空隙
    prop rad mul 1.51
    ;每5步监测一下变量的变化,从而将变化的数据存入一数组,默认为每10步;两个变量被监测,一个是圆点在(3,0)附近的球在Y方向的速度,一个是平均不不衡力mean unbalanced force(muf)的诊断
    set hist_rep = 5
    history ball yvel (3, 0)
    history diagnostic muf
    ;因为这是一个静态分析,用密度缩放参数(density-scaling option)使问题最优化
    set dt dscale
    cycle 4000
    ;视图Footing中,图像每20步进行一次更新,更新间隔可以通过SET pinterval 命令改变
    ;以下4条命令进入到视点0中,显示刚才设定的历史1的图形,在该例中是圆点在(3,0)附近的球在Y方向的速度和hist 2的图形
    plot
    current 0 ;当前视点
    hist 1
    hist 2
    ;将显示当前的几个视点,如在plot 模式下。
    print list
    ;如果在命令模式下,则如下:
    plot print list
    ;在命令模式下,如下的命令将显示所有的历史信息
    print hist
    ;提供重力,加速度为9.81m/s2
    set grav 0,-9.81
    ;提供球之间的磨擦力,磨擦系数为1.0
    property fric 1.0
    cycle 1000
    ;以下命令将建立一个关于接触力的视点
    plot create Contact Force
    plot set title text ’Model at equilibrium’
    plot add ball lblue
    plot add wall black
    ;查看接触面
    plot add cforce black
    plot add axes brown
    plot show
    ;保存建立的模型,以便于以后恢复进行参数研究
    save foot1.sav
    ;查看当前视图的详细信息
    plot print view
    ;查看当前视图的具体模型
    plot print item
    ;改变当前视图为另一视图
    plot current Footing
    ;显示任何已存在的视图
    plot show <viewname>
    ;以下命令将壁3删除,并建立壁10,因密度缩放比例是开着的,所以其速度单位为m/step,如果是动态分析的话,则速度单位为length/time
    delete wall 3
    wall id 10 nodes (2,0) (0,0)
    wall id 10 ks 1e8 kn 1e8 fric 1.0
    wall id 10 yvel = -0.5e-3
    ;在接触面上提供法向强度normal strength和切向强度shear strength,即内聚力cohesion,单位为:N.当超过法向或切向强度后,bond就会失稳破坏,球之间的摩擦力即发生效果。
    property n_bond=5e5 s_bond=5e5
    ;记录ID号为10的wall在Y方向的力
    hist wall yforce id 10
    cycle 2000
    plot current 0
    plot hist 3
    ;拷贝Contact_ Force 到Foot_Load下,并定义标题为:Loaded footing
    plot
    copy Contact_ Force Foot_Load both
    current 4
    set title text ’Loaded footing’
    show
    ;显示所有的球
    print ball
    ;显示所有的墙
    print wall
    ;显示模型的信息
    print info

    ; 定义宏
    macro wall_s_stiff ’1e6’
    macro wall_n_stiff ’1e6’
    macro wall_fric ’0.0’
    macro pt1 ’0.0 0.0’
    macro pt2 ’1.0 0.0’
    macro pt3 ’1.0 1.0’
    macro pt4 ’0.0 1.0’
    macro wall_props ’kn wall_n_stiff ks wall_s_stiff fric wall_fric’
    wall id 1 wall_props node pt2 pt3 ;side
    wall id 2 wall_props node pt4 pt1 ;side
    wall id 3 wall_props node pt3 pt4 ;top
    ;
    macro ’wall_fric’ ’0.5’
    wall id 4 wall_props node pt1 pt2 ;bottom
    new
    gen id 1 400 x 0 5 y 0 5 rad 0.05 0.05
    ini rad mul 1.4
    ;定义一组范围的球体,名为Tunnel
    group Tunnel range x 1.5 3.5 y 0 5
    plot create the_view
    plot add ball yellow
    plot show
    pause
    ;删除先前定义的组
    delete ball range group Tunnel
    ;只产生一个球,半径是必需的,如果ID未指定,则自动赋一个比现在ID大的数,如果x与y未指定,则在坐标原点,指定参数hertz后,则质点将服从Hertz-Mindlin contact而不是默认的Linear law,指定该法则后,则弹性体必需给出其属性,通过PROPERTY给出。产生的该质点可以与其它质点重叠,而不像GENERATE命令,当执行循环后,重叠的质点将产生排斥力,除非给定边界限制。
    ball rad v id i x v y v <hertz>
    ;建立球的最大与最小半径相同;如果半径不同的话,则产生的半径是最小的或是最大的,随机分布的。如果指定gauss后,则按高斯分布,即按(R1+R2)/2与 (R2-R1)/2确定半径。
    gen big rad=.6,.6 x=0,10 y=0,10
    gen small rad=.3,.3 x=0,10 y=0,10
    ;将大球定义Index为0,小球为1
    change c_index 0 range big
    change c_index 1 range small
    ;定义的wall的光面是向上的,故而在定义球时的no_shadow即这光面上方。
    wall id 1 nodes -10 -10 10 10
    gen no_shadow gauss x 0 6 y 0 6 rad .2 .22 id=1,50
    del wall 1
    ;定义的wall的光面是向下的,故而在定义球时的no_shadow即这光面上方。
    wall id 1 nodes 10 10 -10 -10
    gen no_shadow gauss x 0 6 y 0 6 rad .3 .32 id=51 75

    ;球为白色但有影子
    plot add ball white shade on

    一. 粒子创建
    两种创建粒子的命令:BALL and GENERATE
    BALL 创建单一的粒子,并指定其位置,其不受已存在粒子的制约,也就是说其创建的粒子可以与已存在的粒子叠加。
    GENERATE 创建一系列的粒子,其不可重叠。
    有两种粒子集:规则的和不规则的。
    1. 规则粒子集
    规则粒子集一般用来表现如梁等结构,当建立规则粒子集后,应正确恰当地提供初始的接触力,因为法向接触力仅仅与粒子集接触处的相关位置有关。当两粒子集发生重叠后,其法向力(Fn)将增大,Fn=KnUn
    规则粒子集的创建通过编写FISH程序,再通过BALL命令建立一系列的球体而形成的。
    Example 3.1 Producing a planar hexagonal packing
    ;fname: hex.DAT Generates a sheet of close-packed balls
    new
    def hex
    xc = x0
    yc = y0
    rc = radius
    idc = id_start
    r2 = 2.0 * radius
    yinc = radius * sqrt(3.0)
    loop row (1,n_row)
    loop col (1,n_col)
    command
    ball id=idc x=xc y=yc rad=rc
    end_command
    idc = idc + 1
    xc = xc + r2
    end_loop
    yc = yc + yinc
    ;熟悉下面坐标点创建,很好地利用了/的功能。
    xc = x0 + radius * (row - (row/2) * 2)
    end_loop
    end
    set echo off
    set x0=0.2 y0=0.4 radius=0.1
    set id_start=100 n_col=7 n_row=8
    hex
    set echo on
    plot set cap size 20
    plot add axes black
    plot add ball yellow
    plot show

    2. 不规则粒子集
    不规则粒子集常用来表示如实体或颗粒状物体,其内在结构是无规则的。不规则粒子集必须经过压缩后才能进一步提供初始接触力。
    创建的不规则粒子集,为了使其有效地充满所填区域,有两种方法:一是增大粒子半径,另一种是移动边界墙。
    However, there are at least three difficulties with such an alternative approach: first, the specified wall geometry is lost, because the walls must be moved to new positions; second, the convergence to equilibrium is slow, because disturbances need to propagate across the whole assembly; and third, the final distribution tends to be nonuniform because different parts of the system compact at different rates.
    If the requested number of particles should fit into the given space, then the keyword tries may be added to the GENERATE command line to increase the number of attempts. (The default is 20,000.) The command SET gen error off may be used to avoid an error message (and allow the processing of the remainder of the data file) when truncated generation occurs.

    This formula provides the number(m) by which all radii must be multiplied in order to change the porosity from n0 to n
    加载方法是不同于边界条件和初始条件的,有两种加载方式:主动加载,被动加载。
    被动加载如:开挖,重力。
    主动加载包括提供外力,提供速度。粒子可通过力与速度加载,但是wall是不能用力去加载的,因为程序不对wall进行平衡计算。但是可以通过以下方式来模拟对wall的力加载。
    1.Control of Walls
    Wall的速度包括两个平移量和一个旋转量。
    通过编写FISH程序给定wall速度,从而计算出wall的力和位移。
    2.Control of particle forces-----a “stress boundary’
    3.Control of Particle Velocities

    ;输出当前视图的图像为一个文件
    ;首先定义输出类型
    set plot jpg ;输出为JPG图片
    set plot bmp
    set plot clipboard ;输出到系统剪贴板中
    set plot emf
    set plot pcx
    set plot postscript
    ;输出图片
    plot hardcopy id file filename ;ID为视图号,如果省略则默认为是当前视图。

    ;输出当前视图的图像为一个文件
    ;首先定义输出类型
    set plot jpg ;输出为JPG图片
    set plot bmp
    set plot clipboard ;输出到系统剪贴板中
    set plot emf
    set plot pcx
    set plot postscript
    ;输出图片
    plot hardcopy id file filename ;ID为视图号,如果省略则默认为是当前视
    图。
    avatar
    jsqcx
    版主


    帖子数 : 3
    3 : 16596
    威望 : 0
    注册日期 : 09-10-03

    PFC学习初期总结 Empty 回复: PFC学习初期总结

    帖子  jsqcx 周六 十月 03, 2009 10:05 pm

    顶起
    avatar
    cgzsxmz


    帖子数 : 1
    3 : 16282
    威望 : 0
    注册日期 : 10-01-15

    PFC学习初期总结 Empty 回复: PFC学习初期总结

    帖子  cgzsxmz 周五 一月 15, 2010 5:35 pm

    期待楼主的继续分享啊
    avatar
    long_dz


    帖子数 : 1
    3 : 16018
    威望 : 0
    注册日期 : 10-04-13

    PFC学习初期总结 Empty 询问

    帖子  long_dz 周四 四月 15, 2010 1:31 pm

    请问一下
    1.Control of Walls
    Wall的速度包括两个平移量和一个旋转量。
    这点有没有例子啊 或者是在pfc手册中那一章节啊
    avatar
    sunbabe


    帖子数 : 2
    3 : 16132
    威望 : 0
    注册日期 : 10-03-07

    PFC学习初期总结 Empty 回复: PFC学习初期总结

    帖子  sunbabe 周四 四月 15, 2010 10:36 pm

    ;熟悉下面坐标点创建,很好地利用了/的功能。
    xc = x0 + radius * (row - (row/2) * 2)
    沈兄,本来就没有明白这句话的意思……您一说/的功能,不知道这里/展示的什么功能?
    avatar
    yuanyuekafu


    帖子数 : 4
    3 : 12703
    威望 : 0
    注册日期 : 13-04-23

    PFC学习初期总结 Empty 谢谢lz分享经验,一起进步!!

    帖子  yuanyuekafu 周二 四月 23, 2013 11:07 pm

    画之缘 写道:下面是前人PFC学习总结,供大家参考与学习:
    PFC2D学习初期总结
    最近学了一段时间PFC2D,由于做课题要用到它,时间又很紧,只是粗粗的学了一下,现将我的学习笔记抄录如下,比较乱一些。以期对比我更初级的学习者有所帮助。
      
    内存分配
    当载入PFC程序后,程序将动态分配内存,随着模型的构建,内存相应地增大。Print memory 将显示当前内存大小。
    内存分配
    当载入PFC程序后,程序将动态分配内存,随着模型的构建,内存相应地增大。Print memory 将显示当前内存大小。
    图形控制
    在图形模式下,按键M为放大图形,缩小为Shift+M;箭头来移动;Ctrl+G为在彩图与黑白图形间转换;Ctrl+C显示照相机对话框;Ctrl+L为cutting plane;Ctrl+R为恢复图形显示为默认值;Ctrl+Z为用一矩形框来放大图形局部;F9为重画。
    实例
    new
    ;将球体看成一定厚度的盘子;Note that only mass properties are affected by the SET disk command
    set disk on
    ;下面为建立四个直线边壁,分别赋予1~4的编号。每一直线壁以两点连线建立。
    wall id=1 nodes ( 0, -5) (10, -5)
    wall id=2 nodes (10, -5) (10, 0)
    wall id=3 nodes (10, 0) ( 0, 0)
    wall id=4 nodes ( 0, 0) ( 0, -5)
    ;下面为产生500个球,每个球的编号被赋予1~500,产生球的地方在0<x<10,-5<y<-0.5的范围内,而且球的半径在0.08<r<0.13的范围内随机产生;如果产生球的范围不足以产生500个球则系统会给出提示。
    gen id=1,500 rad 0.08,0.13 x=0,10 y=-5,-0.5
    ;转入图形显示模式的语句为:plot。输入这条语句后,程序将由命令模式转到图形模式,即Plot 0\Base>,在此模式下输入的语句都是和plot有关的。

    plot
    ;建立视点Footing
    create Footing
    set title text ’Basic collection of particles in a box’
    add ball lblue
    add wall black
    add axes brown
    show
    ;建立视点Footing2
    create Footing2
    add ball lblue
    add wall black
    add axes brown
    set size -1.0 1.0 -2.0 2.0
    set title bottom
    set caption right
    close
    quit
    ;给边壁墙的刚度赋值,法向刚度与切向刚度都为108N/m
    wall id=1 kn=1e8 ks=1e8
    wall id=2 kn=1e8 ks=1e8
    wall id=3 kn=1e8 ks=1e8
    wall id=4 kn=1e8 ks=1e8
    ;给球赋属性,密度为1000kg/m3,刚度都为108N/m
    prop density 1000 kn 1e8 ks 1e8
    ;给球的半径乘以一个系数,从而减小球与球间的空隙
    prop rad mul 1.51
    ;每5步监测一下变量的变化,从而将变化的数据存入一数组,默认为每10步;两个变量被监测,一个是圆点在(3,0)附近的球在Y方向的速度,一个是平均不不衡力mean unbalanced force(muf)的诊断
    set hist_rep = 5
    history ball yvel (3, 0)
    history diagnostic muf
    ;因为这是一个静态分析,用密度缩放参数(density-scaling option)使问题最优化
    set dt dscale
    cycle 4000
    ;视图Footing中,图像每20步进行一次更新,更新间隔可以通过SET pinterval 命令改变
    ;以下4条命令进入到视点0中,显示刚才设定的历史1的图形,在该例中是圆点在(3,0)附近的球在Y方向的速度和hist 2的图形
    plot
    current 0 ;当前视点
    hist 1
    hist 2
    ;将显示当前的几个视点,如在plot 模式下。
    print list
    ;如果在命令模式下,则如下:
    plot print list
    ;在命令模式下,如下的命令将显示所有的历史信息
    print hist
    ;提供重力,加速度为9.81m/s2
    set grav 0,-9.81
    ;提供球之间的磨擦力,磨擦系数为1.0
    property fric 1.0
    cycle 1000
    ;以下命令将建立一个关于接触力的视点
    plot create Contact Force
    plot set title text ’Model at equilibrium’
    plot add ball lblue
    plot add wall black
    ;查看接触面
    plot add cforce black
    plot add axes brown
    plot show
    ;保存建立的模型,以便于以后恢复进行参数研究
    save foot1.sav
    ;查看当前视图的详细信息
    plot print view
    ;查看当前视图的具体模型
    plot print item
    ;改变当前视图为另一视图
    plot current Footing
    ;显示任何已存在的视图
    plot show <viewname>
    ;以下命令将壁3删除,并建立壁10,因密度缩放比例是开着的,所以其速度单位为m/step,如果是动态分析的话,则速度单位为length/time
    delete wall 3
    wall id 10 nodes (2,0) (0,0)
    wall id 10 ks 1e8 kn 1e8 fric 1.0
    wall id 10 yvel = -0.5e-3
    ;在接触面上提供法向强度normal strength和切向强度shear strength,即内聚力cohesion,单位为:N.当超过法向或切向强度后,bond就会失稳破坏,球之间的摩擦力即发生效果。
    property n_bond=5e5 s_bond=5e5
    ;记录ID号为10的wall在Y方向的力
    hist wall yforce id 10
    cycle 2000
    plot current 0
    plot hist 3
    ;拷贝Contact_ Force 到Foot_Load下,并定义标题为:Loaded footing
    plot
    copy Contact_ Force Foot_Load both
    current 4
    set title text ’Loaded footing’
    show
    ;显示所有的球
    print ball
    ;显示所有的墙
    print wall
    ;显示模型的信息
    print info

    ; 定义宏
    macro wall_s_stiff ’1e6’
    macro wall_n_stiff ’1e6’
    macro wall_fric ’0.0’
    macro pt1 ’0.0 0.0’
    macro pt2 ’1.0 0.0’
    macro pt3 ’1.0 1.0’
    macro pt4 ’0.0 1.0’
    macro wall_props ’kn wall_n_stiff ks wall_s_stiff fric wall_fric’
    wall id 1 wall_props node pt2 pt3 ;side
    wall id 2 wall_props node pt4 pt1 ;side
    wall id 3 wall_props node pt3 pt4 ;top
    ;
    macro ’wall_fric’ ’0.5’
    wall id 4 wall_props node pt1 pt2 ;bottom
    new
    gen id 1 400 x 0 5 y 0 5 rad 0.05 0.05
    ini rad mul 1.4
    ;定义一组范围的球体,名为Tunnel
    group Tunnel range x 1.5 3.5 y 0 5
    plot create the_view
    plot add ball yellow
    plot show
    pause
    ;删除先前定义的组
    delete ball range group Tunnel
    ;只产生一个球,半径是必需的,如果ID未指定,则自动赋一个比现在ID大的数,如果x与y未指定,则在坐标原点,指定参数hertz后,则质点将服从Hertz-Mindlin contact而不是默认的Linear law,指定该法则后,则弹性体必需给出其属性,通过PROPERTY给出。产生的该质点可以与其它质点重叠,而不像GENERATE命令,当执行循环后,重叠的质点将产生排斥力,除非给定边界限制。
    ball rad v id i x v y v <hertz>
    ;建立球的最大与最小半径相同;如果半径不同的话,则产生的半径是最小的或是最大的,随机分布的。如果指定gauss后,则按高斯分布,即按(R1+R2)/2与 (R2-R1)/2确定半径。
    gen big rad=.6,.6 x=0,10 y=0,10
    gen small rad=.3,.3 x=0,10 y=0,10
    ;将大球定义Index为0,小球为1
    change c_index 0 range big
    change c_index 1 range small
    ;定义的wall的光面是向上的,故而在定义球时的no_shadow即这光面上方。
    wall id 1 nodes -10 -10 10 10
    gen no_shadow gauss x 0 6 y 0 6 rad .2 .22 id=1,50
    del wall 1
    ;定义的wall的光面是向下的,故而在定义球时的no_shadow即这光面上方。
    wall id 1 nodes 10 10 -10 -10
    gen no_shadow gauss x 0 6 y 0 6 rad .3 .32 id=51 75

    ;球为白色但有影子
    plot add ball white shade on

    一. 粒子创建
    两种创建粒子的命令:BALL and GENERATE
    BALL 创建单一的粒子,并指定其位置,其不受已存在粒子的制约,也就是说其创建的粒子可以与已存在的粒子叠加。
    GENERATE 创建一系列的粒子,其不可重叠。
    有两种粒子集:规则的和不规则的。
    1. 规则粒子集
    规则粒子集一般用来表现如梁等结构,当建立规则粒子集后,应正确恰当地提供初始的接触力,因为法向接触力仅仅与粒子集接触处的相关位置有关。当两粒子集发生重叠后,其法向力(Fn)将增大,Fn=KnUn
    规则粒子集的创建通过编写FISH程序,再通过BALL命令建立一系列的球体而形成的。
    Example 3.1 Producing a planar hexagonal packing
    ;fname: hex.DAT Generates a sheet of close-packed balls
    new
    def hex
    xc = x0
    yc = y0
    rc = radius
    idc = id_start
    r2 = 2.0 * radius
    yinc = radius * sqrt(3.0)
    loop row (1,n_row)
    loop col (1,n_col)
    command
    ball id=idc x=xc y=yc rad=rc
    end_command
    idc = idc + 1
    xc = xc + r2
    end_loop
    yc = yc + yinc
    ;熟悉下面坐标点创建,很好地利用了/的功能。
    xc = x0 + radius * (row - (row/2) * 2)
    end_loop
    end
    set echo off
    set x0=0.2 y0=0.4 radius=0.1
    set id_start=100 n_col=7 n_row=8
    hex
    set echo on
    plot set cap size 20
    plot add axes black
    plot add ball yellow
    plot show

    2. 不规则粒子集
    不规则粒子集常用来表示如实体或颗粒状物体,其内在结构是无规则的。不规则粒子集必须经过压缩后才能进一步提供初始接触力。
    创建的不规则粒子集,为了使其有效地充满所填区域,有两种方法:一是增大粒子半径,另一种是移动边界墙。
    However, there are at least three difficulties with such an alternative approach: first, the specified wall geometry is lost, because the walls must be moved to new positions; second, the convergence to equilibrium is slow, because disturbances need to propagate across the whole assembly; and third, the final distribution tends to be nonuniform because different parts of the system compact at different rates.
    If the requested number of particles should fit into the given space, then the keyword tries may be added to the GENERATE command line to increase the number of attempts. (The default is 20,000.) The command SET gen error off may be used to avoid an error message (and allow the processing of the remainder of the data file) when truncated generation occurs.

    This formula provides the number(m) by which all radii must be multiplied in order to change the porosity from n0 to n
    加载方法是不同于边界条件和初始条件的,有两种加载方式:主动加载,被动加载。
    被动加载如:开挖,重力。
    主动加载包括提供外力,提供速度。粒子可通过力与速度加载,但是wall是不能用力去加载的,因为程序不对wall进行平衡计算。但是可以通过以下方式来模拟对wall的力加载。
    1.Control of Walls
    Wall的速度包括两个平移量和一个旋转量。
    通过编写FISH程序给定wall速度,从而计算出wall的力和位移。
    2.Control of particle forces-----a “stress boundary’
    3.Control of Particle Velocities

    ;输出当前视图的图像为一个文件
    ;首先定义输出类型
    set plot jpg ;输出为JPG图片
    set plot bmp
    set plot clipboard ;输出到系统剪贴板中
    set plot emf
    set plot pcx
    set plot postscript
    ;输出图片
    plot hardcopy id file filename ;ID为视图号,如果省略则默认为是当前视图。

    ;输出当前视图的图像为一个文件
    ;首先定义输出类型
    set plot jpg ;输出为JPG图片
    set plot bmp
    set plot clipboard ;输出到系统剪贴板中
    set plot emf
    set plot pcx
    set plot postscript
    ;输出图片
    plot hardcopy id file filename ;ID为视图号,如果省略则默认为是当前视
    图。

      目前的日期/时间是周日 十一月 24, 2024 11:35 pm