1、fishtank--巴西实验与双轴压缩实验 说明 许多同学可能都对这部分很疑惑,这部分在manual中显得比较神秘,原因很简单,是因为这不风的程序代码比较复杂。仅仅et2.fis一个文件就长达30多页。但实际上我们在调用这些函数的时候,不需要逐一去看。我们要做的是理解每个函数的功能及函数间的参数传递。0 `# n3 y. u' q3 n2 J5 J Y 我将部分稍做整理如下,对部分文件和函数进行了初步解读:' R9 e4 t$ n5 r- {. I4 v - v0 @$ U q( E r# z% L$ R 一:文件+ Z6 X, x, X1 d+ k7 N1 f 实例中提供了不
2、同类型实验的文件,以AGC.dvr为例。这个文件看起来很怪,其实很简单。可以用txt或其他文本编辑器打开。也可以令存为txt文件。其中A表示材料类型,G表示实验精度,gross;c表示粒子的接触模型,为contact-bond。 . G1 \+ P) \+ | , x/ p; Z+ G# {4 `& W' ^打开这个文件,其文件编辑和普通的建模文件没两样。这个文件开始就调用了三个fish函数文件,分别是md.fis, et2.fis, flt.fis。(稍后详细说明这三个文件)。就是参数设置,包括文件自动运行后保存的文件名的赋值,与具体fish函数中参数的赋值。 在agc.dvr文件运行
3、后将生成以下文件:; \- W7 F* P( x! Q: D6 m- S agc-bal.sav 生成的粒子集合,没有运算 7 I9 \* H. U# q& r3 b: Q5 Q8 Xagc-pck.sav 接上一步调整模型粒子大小,达到近似无摩擦状态的平衡 9 r( T T- J+ U. h3 zagc-iso.sav 进一步调整并赋值粘结模型,是模型达到各向同性应力状态! d6 p6 m; y6 q agc-flt.sav 消除模型的中的浮动粒子,默认值为接触数小于2的粒子;2 M2 X# A/ K. K l8 \* P agc-spc.sav 生成最终模型 3
4、i% b5 o* Q$ M* v! X接下来就是调用agc_ex.dvr 文件进行压缩实验了; 2 _% _3 Y' d. k3 V0 q这个文件将巴西圆实验与双轴压缩实验一同解决了,都用的同一个样本,即前面生成的文件agc-spc.sav 中的模型。在这个dvr文件中调用了两个dvr文件, 即:_brazil1.dvr 和 _btw.dvr。 这两个文件分别是调用巴西圆测试功能函数与双轴压缩功能函数。生成的文件分别为:3 u/ q$ u% w& n' ?7 d4 B: _ 巴西测试:agc_bt0.sav 巴西测试条件初始化 3 j% J1 v9 }# L
5、 agc_bt1.sav 巴西测试结果 " l Q5 @$ m) c/ h: ]6 n6 x ( H5 q$ t9 |$ |0 p8 r3 ]8 h/ l: h: y双轴压缩:agc_nn_bw0.sav 测试条件初始化 3 @3 O: M# a% @ agc_nn_bw1.sav 测试结果 ' B: I6 f6 G: O" @这里的nn表示围呀的大小,在manual中,粒子的围压为0, 所以保存的文件就是agc_00_bw0.sav和agc_00_bw1.sav 4 f3 W6 r7 m, f1 s) t- w; F ! N; G! o4
6、M% l, U# @" V; @- z0 z; h到此为止,基本上将运行中相关文件和运行的大致过程说完。 补充说明在manual中出现的相关的其他文件:. {( p' p& g& _" _2 `+ B 这部分的文件有头三个字母加横短线后的补充说明部分组成。 T' i7 E1 H, _7 j6 {, q" |) w前三个字母分别表示材料类型,计算精度和接触的本构模型。# u& J. \+ \2 T6 G2 W! r- d 材料类型由ABC来表示;计算精度分别与哦那个g,c,f,v表示,分别表示总体,粗糙,精确,非常精确,四类;接触的本构模型分别用C,P,U表示,分别为接触粘结,平行粘
7、结与散体)。因此在mannual中出的相关文件名就不难理解了,如afc表示a行材料,精确计算精度,接触粘结实验。 二 参数 (还是以agc.dvr 为例) * l+ D; a- _4 Q! r! e. s' z在agc.dvr文件中,除了调用几个fish函数外,就是参数设置,正确理解这些参数就可以任意调整实验以达到生成自己特殊模型实验的目的。在mannual中,提到了两类重要参数的设置,并对这些参数进行了解释。 $ k7 `/ P9 u% `0 S; I( L, l( T第一类:样本模型生成及相关过程中的参数" P8 F& J# h8 j* u2 F+ `
8、 et2_ylen 样本高 et2_xlen 样本宽 et2_rlo 最小粒子半径 et2_radius_ratio 最大与最小粒子半径比例 md_wEcfac 墙体法相刚度的扩大器 tm_req_isostr 内锁各向同性应力 flt_def 非浮动粒子最少接触数 flt_remain 剩余的浮动粒子所占比例 $ O0 W5 R; f# m) p, ^ # L# A( p5 V( @- S4 V& b8 f5 d第二类:接触本构模型的微观参数 # w0 [3 m$ a" d$ d" o# z* [在这类参数中,不同的接触模型要求的参数不一样,所以理解接
9、触模型的意义很重要。/ R" w+ d G5 L8 M D) y! _ 以接触粘结模型为例,因为接触粘结模型是点接触型,与平行接触比较没有刚度,也没有粘结圆半径等参数。其需要的参数如下表: md_dens 密度 md_Ec 9 o; P# H/ Y7 `. Q# D 接触模量 md_knoverks 球法向与切向刚度比例 md_fric 球摩擦系数 cb_sn_mean 接触粘结平均法向强度 cb_sn_sdev 接触粘结偏载法向强度 cb_ss_mean 接触粘结平均切向强度 cb_ss_sdev 接触粘结偏载切向强度 1 l0 w,
10、R+ M. ^( g3 E2 D* t:7 ? {$ H& N& D1 ~+ o到目前位置,重要的建模参数都在这里了,这些弄清楚了,模型基本能建成功。8 G' x- `! T/ [* E0 i 由于Fishtank含有的众多函数,一一列举在说明达不到很好的效果,所以以fishtank中FisTEnv-testpack文件夹中的doall-2d.DVR文件进行说明。 源文件: set cwdir calibration-2d\sCx_mA_tAy call doall.DVR ;调用calibration-2d\sCx_mA_tAy\doall.dvr文件 return 则
11、调用calibration-2d文件夹中sCx_mA_tAy文件夹中doall.dvr文件 dollar.dvr源文件: call sCx_mA-spc.DVR ; specimengenesis, x={x} callsCx_mA_tAy-bt.DVR ; biax/brazil tests,x={x}; y={00,1,5,10,20,30,70} return 首先call sCx_mA-spc.DVR的源文件如下: ;fname: sCx_mA-spc.DVR Specimen Genesis ;
12、 (specimen& material parameters) ; =>sC{1}_mA-{spc} ; Itasca Consulting Group, Inc. ;=========================================================================== set logfile sC1_mA-spc.log set log on ; ------------------------------------------ new setsafe_conversion on SET disk on ;
13、 model unit-thickness cylinders SET echo off ; load support functions call%itascaFishTank%\FishPfc\md\md.FIS call%itascaFishTank%\FishPfc2\et2\et2.FIS call%itascaFishTank%\FishPfc\md\flt.FIS SET echo on call mA-param.DAT SETmd_run_name='sC1_mA' title 'sC1_mA' SET random 10001
14、 SETet2_xlen=31.7e-3 et2_ylen=63.4e-3 SETet2_prep_saveall=1 et2_prep ;=> sC1_mA-spc.SAV ; EOF: sCx_mA-spc.DVR call sCx_mA-spc.DVR首先先分别调用:md.FIS;et2.FIS;和flt.FIS文件。这在后面详细讨论。 然后调用call mA-param.DAT文件(该文件为参数文件)。具体内容如下: ;fname: mA-param.DAT Material Parameters (PFC2D) ; ; Itas
15、ca Consulting Group, Inc. ; =========================================================================== ; Specify specimen-genesis control parameters. ; SET et2_radius_ratio=1.66 et2_rlo=0.275e-3 SET md_wEcfac=1.1 SET tm_req_isostr=-1.0e6 tm_req_isostr_tol=0.50 SET flt_def=3 flt_remain=0.0
16、 ; ; Specify particle-based material parameters. ; SET md_dens=2630.0 SET md_Ec=62e9 md_knoverks=2.5 SET md_fric=0.50 ; ; Specify parallel-bond parameters. ; SET md_add_pbonds=1 SET pb_radmult=1.0 pb_Ec=62e9 pb_knoverks=2.5 SET pb_sn_mean=157e6 pb_sn_sdev=36e6 SET pb_ss_mean=157e6
17、pb_ss_sdev=36e6 ; ; Specify contact-bond parameters. ; SET md_add_cbonds=0 SET cb_sn_mean=0.0 cb_sn_sdev=0.0 SET cb_ss_mean=0.0 cb_ss_sdev=0.0 ; =========================================================================== return ;EOF: mA-param.DAT 之后et2_prep命令开始调用上面的md.FIS;et2.FIS;和flt
18、FIS文件,生成模型。 et2_prep命令是et2.FIS中的函数,也是整个模型生成的总命令。 1. et2_prep首先调用et2_setup函数 et2_setup函数用来创建试验试样的函数 内部分别调用bg_fillbox函数 bg_fillbox:根据mA-param.DAT文件生成最小粒径为et2_rlo和最大粒径为et2_radius_ratio×et2_rlo均匀分布的颗粒
19、 生成的区域为宽为et2_xlen=31.7e-3,高为et2_ylen=63.4e-3的矩形区域。 然后调用et2_install_meas_ciecles函数 et2_install_meas_ciecles:生成三个上中下meascircles。(如下图所示) 试验及测量圆 2. et2_prep接着调用et2_plot_assembly函数(根据mA-param.DAT
20、文件,以后省略) et2_plot_assembly:建立所要显示的内容(球、墙和坐标如上图所示)。 3. et2_prep接着调用md_save_state函数 md_save_state:保存现阶段的所获结果 4. et2_prep接着调用tm_assemble_isopack函数 tm_assemble_isopack:主要用来使试样获得四周相同的压力,即消除试样之间的不平衡力 tm_assemble_is
21、opack分别一次调用一下内部函数: md_balldeform:根据md_Ec=62e9 md_knoverks=2.5定义球的刚度(切向刚度和法向刚度) 法向刚度:kn = 2.0 * md_Ec * md2_thick 切向刚度:ks = _kn / md_knoverks
22、md_wallkn: 根据md_wEcfac=1.1定义墙的刚度。 即为求得刚度的1.1倍。(此只设置了墙的法向刚度,并未设置切向刚度和摩擦系数) 之后cyc消除不平衡力。 5. et2_prep接着调用md_save_state函数(md_save_state:保存现阶段的所获结果) 6. et2_prep接着调用tm_assemble_isostr函数 tm_assemble_is
23、ostr函数为了获得说要达到的初始应力调用md_expand_radii函数,通过适当的改变球的半径,满足abs(_diso/tm_req_isostr) <= tm_req_isostr_tol的要求,即为所要求达到的初始的应力状态。 7 et2_prep接着调用flt_eliminate函数 flt_eliminate函数就是消除悬浮颗粒(及颗粒的接触数小于给定的flt_def则视为悬浮颗粒),由于说明起
24、来较为复杂,在此省略。 8. et2_prep接着调用md_pbprops函数 md_pbprops函数:设置parallel-bond参数 9. et2_prep最后调用md_ballfric函数 md_ballfric函数设置球的摩擦系数 则et2_prep函数运行完毕,试样也建好。 下面讲讲 call sCx_mA_tAy-bt.DVR文件,文件的主要内容是 _btw.DVR的调用。 _btw.DVR源文件为: ; Filename: _btw.DVR ; ; PURPOSE: P
25、erform biaxial test using existing four walls and ; extract responses upon test completion. If et2_ucs=1, ; then move sidewalls away from the specimen and lock in place ; to perform fully unconfined test. ; ; INPUT: 'md_run_name' 'bnd' bonded assembly ; OUTPUT
26、 'md_run_name' 'bw0' stage-0 during testing, start of test ; 'md_run_name' 'bw1' stage-1, test complete ; ; INPUT(Fish): et2_knxfac, et2_knyfac ; et2_ucs, et2_wsxx_req, et2_wsyy_req, et2_ws_tol ; p_vel, p_cyc, p_stages ; md_granular, et2_pe
27、akfac, et2_wexx_lim ; pk_ci_fac ; ; Itasca Consulting Group, Inc. ; =================================================================== SET echo off ; load support functions call %itascaFishTank%\FishPfc\md\fishcall.FIS call %itascaFishTank%\FishPfc\md\crk.FIS SET echo on
28、 ; =================================================================== ; Specify in calling routine: ; SET et2_knxfac= et2_knyfac= ; SET et2_ucs= et2_wsxx_req= et2_wsyy_req= et2_ws_tol= p_vel= et2_wallstiff et2_seatbiax et2_sample_dimensions crk_init ; ================================
29、 ; Install test monitoring variables and histories ; history reset history nstep=20 history id=1 crk_num ; microcracking history id=50 crk_num_cnf history id=51 crk_num_csf history id=52 crk_num_pnf history id=53 crk_num_psf ;
30、 ; wall-derived stresses & strains history id=2 et2_wexx ; wall-derived strains history id=3 et2_weyy history id=6 et2_wevol history id=202 et2_**x ; specimen-derived strains history id=203 et2_seyy history id=206 et2_sevol history id=4 et2_wsxx ; wall-derived stresse
31、s history id=5 et2_wsyy history id=7 et2_wsm history id=8 et2_wsd ; history id=102 et2_mexx ; averaged stresses & strains history id=103 et2_meyy ; from 3 measurement circles history id=106 et2_mevol history id=104 et2_msxx history id=105 et2_msyy history id=107 et2_msm hi
32、story id=108 et2_msd ; trace energy on ; energy quantities history id=15 energy boundary history id=16 energy bond history id=17 energy frictional history id=18 energy kinetic history id=19 energy strain history id=23 et2_e_delstrain ; increment of strain energy ; history id=20
33、 et2_n ; wall-derived microstructural quantities history id=21 et2_e history id=22 et2_phy_e ; physical void ratio ; et2_viewsbiax prop xdisp=0.0 ydisp=0.0 ; SET md_tag_name = '-bw0' md_save_state ; =================================================================== ; Perform t
34、he entire test. ; ; Specify in calling routine: ; SET p_vel= p_cyc= p_stages= ; SET md_granular= et2_peakfac= et2_wexx_lim= SET p_close=1 ; load SET et2_servo_yon=0 et2_accel_platens et2_runbiax et2_gd_biax ; SET md_tag_name='-bw1' md_save_state ; =================================================================== return ; END OF Filename: _btw.DVR






