PFC软件fishtank讲解中文版.docx
《PFC软件fishtank讲解中文版.docx》由会员分享,可在线阅读,更多相关《PFC软件fishtank讲解中文版.docx(12页珍藏版)》请在冰豆网上搜索。
![PFC软件fishtank讲解中文版.docx](https://file1.bdocx.com/fileroot1/2023-2/6/6638831a-b317-4ad3-9737-68a245fddd68/6638831a-b317-4ad3-9737-68a245fddd681.gif)
PFC软件fishtank讲解中文版
fishtank--巴西实验与双轴压缩实验说明
许多同学可能都对这部分很疑惑,这部分在manual中显得比较神秘,原因很简单,是因为这不风的程序代码比较复杂。
仅仅et2.fis一个文件就长达30多页。
但实际上我们在调用这些函数的时候,不需要逐一去看。
我们要做的是理解每个函数的功能及函数间的参数传递。
0`#n3y.u'q3n2J5J Y
我将部分稍做整理如下,对部分文件和函数进行了初步解读:
'R9e4t$n5r-{.I4v
-v0@$U q(E r#z%L$R
一:
文件+Z6X,x,X1d+k7N1f
实例中提供了不同类型实验的文件,以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文件运行后将生成以下文件:
;\-W7F*P(x!
Q:
D6m-S
agc-bal.sav 生成的粒子集合,没有运算
7I9\*H.U#q&r3b:
Q5Q8Xagc-pck.sav 接上一步调整模型粒子大小,达到近似无摩擦状态的平衡
9r(T T-J+U.h3zagc-iso.sav 进一步调整并赋值粘结模型,是模型达到各向同性应力状态!
d6p6m;y6q
agc-flt.sav消除模型的中的浮动粒子,默认值为接触数小于2的粒子;2M2X#A/K.K l8\*P
agc-spc.sav生成最终模型
3i%b5o*Q$M*v!
X接下来就是调用agc_ex.dvr文件进行压缩实验了;
2_%_3Y'd.k3V0q这个文件将巴西圆实验与双轴压缩实验一同解决了,都用的同一个样本,即前面生成的文件agc-spc.sav中的模型。
在这个dvr文件中调用了两个dvr文件,即:
_brazil1.dvr和_btw.dvr。
这两个文件分别是调用巴西圆测试功能函数与双轴压缩功能函数。
生成的文件分别为:
3u/q$u%w&n'?
7d4B:
_
巴西测试:
agc_bt0.sav巴西测试条件初始化
3j%J1v9}#L agc_bt1.sav巴西测试结果
"l Q5@$m)c/h:
]6n6x
(H5q$t9|$|0p8r3]8h/l:
h:
y双轴压缩:
agc_nn_bw0.sav测试条件初始化
3@3O:
M#a%@ agc_nn_bw1.sav测试结果
'B:
I6f6G:
O"@这里的nn表示围呀的大小,在manual中,粒子的围压为0,所以保存的文件就是agc_00_bw0.sav和agc_00_bw1.sav
4f3W6r7m,f1s)t-w;F
!
N;G!
o4M%l,U#@"V;@-z0z;h到此为止,基本上将运行中相关文件和运行的大致过程说完。
补充说明在manual中出现的相关的其他文件:
.{(p'p&g&_"_2`+B
这部分的文件有头三个字母加横短线后的补充说明部分组成。
T'i7E1H,_7j6{,q"|)w前三个字母分别表示材料类型,计算精度和接触的本构模型。
#u&J.\+\2T6G2W!
r-d
材料类型由ABC来表示;计算精度分别与哦那个g,c,f,v表示,分别表示总体,粗糙,精确,非常精确,四类;接触的本构模型分别用C,P,U表示,分别为接触粘结,平行粘结与散体)。
因此在mannual中出的相关文件名就不难理解了,如afc表示a行材料,精确计算精度,接触粘结实验。
二参数(还是以agc.dvr为例)
*l+D;a-_4Q!
r!
e.s'z在agc.dvr文件中,除了调用几个fish函数外,就是参数设置,正确理解这些参数就可以任意调整实验以达到生成自己特殊模型实验的目的。
在mannual中,提到了两类重要参数的设置,并对这些参数进行了解释。
$k7`/P9u%`0S;I(L,l(T第一类:
样本模型生成及相关过程中的参数"P8F&J#h8j*u2F+`
et2_ylen
样本高
et2_xlen
样本宽
et2_rlo
最小粒子半径
et2_radius_ratio
最大与最小粒子半径比例
md_wEcfac
墙体法相刚度的扩大器
tm_req_isostr
内锁各向同性应力
flt_def
非浮动粒子最少接触数
flt_remain
剩余的浮动粒子所占比例
$O0W5R;f#m)p,^
#L#A(p5V(@-S4V&b8f5d第二类:
接触本构模型的微观参数
#w0[3m$a"d$d"o#z*[在这类参数中,不同的接触模型要求的参数不一样,所以理解接触模型的意义很重要。
/R"w+d G5L8M D)y!
_
以接触粘结模型为例,因为接触粘结模型是点接触型,与平行接触比较没有刚度,也没有粘结圆半径等参数。
其需要的参数如下表:
md_dens
密度
md_Ec
9o;P#H/Y7`.Q#D
接触模量
md_knoverks
球法向与切向刚度比例
md_fric
球摩擦系数
cb_sn_mean
接触粘结平均法向强度
cb_sn_sdev
接触粘结偏载法向强度
cb_ss_mean
接触粘结平均切向强度
cb_ss_sdev
接触粘结偏载切向强度
1l0w,R+M.^(g3E2D*t:
7?
{$H&N&D1~+o到目前位置,重要的建模参数都在这里了,这些弄清楚了,模型基本能建成功。
8G'x-`!
T/[*E0i
由于Fishtank含有的众多函数,一一列举在说明达不到很好的效果,所以以fishtank中FisTEnv-testpack文件夹中的doall-2d.DVR文件进行说明。
源文件:
setcwdircalibration-2d\sCx_mA_tAy
calldoall.DVR ;调用calibration-2d\sCx_mA_tAy\doall.dvr文件
return
则调用calibration-2d文件夹中sCx_mA_tAy文件夹中doall.dvr文件
dollar.dvr源文件:
callsCx_mA-spc.DVR ;specimengenesis, x={x}
callsCx_mA_tAy-bt.DVR ;biax/braziltests,x={x};y={00,1,5,10,20,30,70}
return
首先callsCx_mA-spc.DVR的源文件如下:
;fname:
sCx_mA-spc.DVRSpecimenGenesis
; (specimen&materialparameters)
; =>sC{1}_mA-{spc}
;ItascaConsultingGroup,Inc.
;===========================================================================
setlogfilesC1_mA-spc.log
setlogon
;------------------------------------------
new
setsafe_conversionon
SETdiskon ;modelunit-thicknesscylinders
SETechooff ;loadsupportfunctions
call%itascaFishTank%\FishPfc\md\md.FIS
call%itascaFishTank%\FishPfc2\et2\et2.FIS
call%itascaFishTank%\FishPfc\md\flt.FIS
SETechoon
callmA-param.DAT
SETmd_run_name='sC1_mA'
title'sC1_mA'
SETrandom10001
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
callsCx_mA-spc.DVR首先先分别调用:
md.FIS;et2.FIS;和flt.FIS文件。
这在后面详细讨论。
然后调用callmA-param.DAT文件(该文件为参数文件)。
具体内容如下:
;fname:
mA-param.DAT MaterialParameters(PFC2D)
;
;ItascaConsultingGroup,Inc.
;===========================================================================
;Specifyspecimen-genesiscontrolparameters.
;
SETet2_radius_ratio=1.66 et2_rlo=0.275e-3
SETmd_wEcfac=1.1
SETtm_req_isostr=-1.0e6 tm_req_isostr_tol=0.50
SETflt_def=3 flt_remain=0.0
;
;Specifyparticle-basedmaterialparameters.
;
SETmd_dens=2630.0
SETmd_Ec=62e9 md_knoverks=2.5
SETmd_fric=0.50
;
;Specifyparallel-bondparameters.
;
SETmd_add_pbonds=1
SETpb_radmult=1.0 pb_Ec=62e9 pb_knoverks=2.5
SETpb_sn_mean=157e6 pb_sn_sdev=36e6
SETpb_ss_mean=157e6 pb_ss_sdev=36e6
;
;Specifycontact-bondparameters.
;
SETmd_add_cbonds=0
SETcb_sn_mean=0.0 cb_sn_sdev=0.0
SETcb_ss_mean=0.0 cb_ss_sdev=0.0
;===========================================================================
return
;EOF:
mA-param.DAT
之后et2_prep命令开始调用上面的md.FIS;et2.FIS;和flt.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均匀分布的颗粒
生成的区域为宽为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文件,以后省略)
et2_plot_assembly:
建立所要显示的内容(球、墙和坐标如上图所示)。
3. et2_prep接着调用md_save_state函数
md_save_state:
保存现阶段的所获结果
4. et2_prep接着调用tm_assemble_isopack函数
tm_assemble_isopack:
主要用来使试样获得四周相同的压力,即消除试样之间的不平衡力
tm_assemble_isopack分别一次调用一下内部函数:
md_balldeform:
根据md_Ec=62e9 md_knoverks=2.5定义球的刚度(切向刚度和法向刚度)
法向刚度:
kn=2.0*md_Ec*md2_thick
切向刚度:
ks=_kn/md_knoverks
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_isostr函数为了获得说要达到的初始应力调用md_expand_radii函数,通过适当的改变球的半径,满足abs(_diso/tm_req_isostr)<= tm_req_isostr_tol的要求,即为所要求达到的初始的应力状态。
7 et2_prep接着调用flt_eliminate函数
flt_eliminate函数就是消除悬浮颗粒(及颗粒的接触数小于给定的flt_def则视为悬浮颗粒),由于说明起来较为复杂,在此省略。
8. et2_prep接着调用md_pbprops函数
md_pbprops函数:
设置parallel-bond参数
9. et2_prep最后调用md_ballfric函数
md_ballfric函数设置球的摩擦系数
则et2_prep函数运行完毕,试样也建好。
下面讲讲callsCx_mA_tAy-bt.DVR文件,文件的主要内容是_btw.DVR的调用。
_btw.DVR源文件为:
;Filename:
_btw.DVR
;
;PURPOSE:
Performbiaxialtestusingexistingfourwallsand
; extractresponsesupontestcompletion. Ifet2_ucs=1,
; thenmovesidewallsawayfromthespecimenandlockinplace
; toperformfullyunconfinedtest.
;
;INPUT:
'md_run_name''bnd'bondedassembly
;OUTPUT:
'md_run_name''bw0' stage-0duringtesting,startoftest
; 'md_run_name''bw1' stage-1,testcomplete
;
;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_peakfac,et2_wexx_lim
; pk_ci_fac
;
;ItascaConsultingGroup,Inc.
;===================================================================
SETechooff ;loadsupportfunctions
call%itascaFishTank%\FishPfc\md\fishcall.FIS
call%itascaFishTank%\FishPfc\md\crk.FIS
SETechoon
;===================================================================
;Specifyincallingroutine:
;SETet2_knxfac= et2_knyfac=
;SETet2_ucs= et2_wsxx_req= et2_wsyy_req= et2_ws_tol= p_vel=
et2_wallstiff
et2_seatbiax
et2_sample_dimensions
crk_init
;===================================================================
;Installtestmonitoringvariablesandhistories
;
historyreset
historynstep=20
historyid=1 crk_num ;microcracking
historyid=50crk_num_cnf
historyid=51crk_num_csf
historyid=52crk_num_pnf
historyid=53crk_num_psf
; ;wall-derivedstresses&strains
historyid=2 et2_wexx ;wall-derivedstrains
historyid=3 et2_weyy
historyid=6 et2_wevol
historyid=202et2_**x ;specimen-derivedstrains
historyid=203et2_seyy
historyid=206et2_sevol
historyid=4 et2_wsxx ;wall-derivedstresses
historyid=5 et2_wsyy
historyid=7 et2_wsm
historyid=8 et2_wsd
;
historyid=102 et2_mexx ;averagedstresses&strains
historyid=103 et2_meyy ;from3measurementcircles
historyid=106 et2_mevol
historyid=104 et2_msxx
historyid=105 et2_msyy
historyid=107 et2_msm
historyid=108 et2_msd
;
traceenergyon ;energyquantities
historyid=15energyboundary
historyid=16energybond
historyid=17energyfrictional
historyid=18energykinetic
historyid=19energystrain
historyid=23et2_e_delstrain;incrementofstrainenergy
;
historyid=20et2_n ;wall-derivedmicrostructuralquantities
historyid=21et2_e
historyid=22et2_phy_e ;physicalvoidratio
;
et2_viewsbiax
propxdisp=0.0ydisp=0.0
;
SETmd_tag_name='-bw0'
md_save_state
;===================================================================
;Performtheentiretest.
;
;Specifyincallingroutine:
;SETp_vel=