← Back to team overview

yade-users team mailing list archive

[Question #693513]: How to import the PFC model into YADE?

 

New question #693513 on Yade:
https://answers.launchpad.net/yade/+question/693513

Hi~

I am trying to import  a complex model that comes from PFC into YADE, but I don’t know how to achieve it. 

May you guide me~? 

and the PFC code like this:


; Filename: Agc.DVR
;
; PURPOSE: Create the gross resolution, contact-bonded instance of
;          material-A
;
; INPUT:    none
; OUTPUT:   'md_run_name' 'spc'  final specimen (bonded or unbonded)
;
; Itasca Consulting Group, Inc.
; ===================================================================
SET random 111  ; for reproducibility
new
;===================================
def set_fist_env
	environment('itascaFishTank')='D:\\pfc2d-3.1\\pfc2d_310\\fishtank'
end
set_fist_env

;===================================
set logfile Agc.log
set log on
set safe_conversion on
SET disk on  ; model unit-thickness cylinders
;
SET echo off   ; load support functions
  call %itascaFishTank%\FishPfc\md\md.FIS
  call %itascaFishTank%\SHPBzw\et2_Beam_zw.FIS
  call %itascaFishTank%\FishPfc\md\flt.FIS
SET echo on
; ===================================================================
SET md_run_name = 'Split'
title
Agc (material-A, fine resolution, contact-bonded)
; ===================================================================
; Specify parameters that control the specimen-genesis procedures
;==============================
def read_nsign
   array aa(40000)
   status = open('nsign-100-1.dat',0,1)
   status = read(aa,40000)
   status = close
end
;====================================================
read_nsign
;==============================
def rock_element
    range_element
;
; ----- Defines a FISH range element that determines whether an object
;       lies within rocks in concrete
;
; INPUT: fc_arg(0) - object being queried for range inclusion
;        fc_arg(1) - object position (x-component)
;        fc_arg(2) - object position (y-component)
;
; RETURN VALUE: 0 - object does not lie within circle
;               When called, function value is initialized to 1.
;   
   _aalen=round(2000*et2_ylen-1)
   _x = round((fc_arg(1)+et2_ylen/2)*_aalen/et2_ylen)
   _y = round((fc_arg(2)+et2_ylen/2)*_aalen/et2_ylen)
   _xx = min(max(_x,0),_aalen)
   _yy = min(max(_y,0),_aalen)
  if aa(_xx*(_aalen+1)+_yy+1) = 'scc' then  ; ball is not within the rock
      rock_element = 0
  else
      rock_element = 1
  end_if
end
;====================================================
 set et2_xlen=0.0985  et2_ylen=0.10
 SET et2_radius_ratio=1.5 et2_rlo=0.4e-3
;
;pause
 SET md_wEcfac=1.1 
 SET tm_req_isostr=-5e4  tm_req_isostr_tol=0.50 
 SET flt_def=3  flt_remain=0.0
;
;====================================================
;; Specify parameters that define a contact-bonded material
;;
 SET md_add_pbonds=1
 SET md_dens=2800
 SET md_Ec=32e9  md_Ec_scc=32e9 md_Ec_rock=48e9               
 SET md_knoverks=1.7 md_knoverks_scc=1.7 md_knoverks_rock=1.5
 SET md_fric=0.5 
;
 SET pb_radmult=1.0    
 SET pb_Ec=32e9  pb_Ec_scc=32e9 pb_Ec_rock=48e9 pb_Ec_inter=16e9
 SET pb_knoverks=1.7 pb_knoverks_scc=1.7 pb_knoverks_rock=1.5 pb_knoverks_inter=1.9               
 SET pb_sn_mean=10e6  pb_sn_sdev=0 
 SET pb_ss_mean=10e6  pb_ss_sdev=0 
;                                 
 SET pb_sn_mean_rock	=42.0e6   pb_sn_sdev_rock	=100   
 SET pb_ss_mean_rock	=84.0e6   pb_ss_sdev_rock	=100   
 SET pb_sn_mean_scc		=15.0e6   pb_sn_sdev_scc	=100
 SET pb_ss_mean_scc		=30.0e6   pb_ss_sdev_scc	=100               
 SET pb_sn_mean_inter	= 6.0e6	  pb_sn_sdev_inter=100
 SET pb_ss_mean_inter	=12.0e6   pb_ss_sdev_inter=100  
;==========================================================================
 SET et2_prep_saveall=1                                      
 et2_prep  ; invoke the specimen-genesis procedures      
;
;      
group rock_element range fish rock_element
range name scc_element group rock_element not
group scc_element1 range scc_element
prop c_index 0 range group scc_element1
prop c_index 1 range group rock_element
;
md_pbprops_group_rock
md_pbprops_group_scc
md_pbprops_group_inter   
;========================================================================
print group
md_tag_name = '-spc'
md_save_state
; ===================================================================
set log off
call Agc_ex_bra.DVR
return
; END OF Filename:  Agc.DVR




; fname: Agc_ex.DVR
;
; PURPOSE: 1) Create Agc specimen,
;          2) perform Brazilian test upon it,
;          3) perform biaxial test upon it at Pc=0.0 MPa.
;
; Itasca Consulting Group, Inc.
; ===================================================================
; ----------------------------------
;Create Agc specimen using specimen-genesis procedures
; call Agc.DVR  ;=> Agc-spc.SAV
; ----------------------------------
; Execute Brazilian test
 restore Split-spc.SAV
 set safe_conversion on
; SET md_run_name='Agc'
 title 'Agc Brazilian test'

; ----------------------------------
SET echo off   ; load support functions
  call %itascaFishTank%\FishPfc\md\fishcall.FIS
  call %itascaFishTank%\FishPfc\md\crk.FIS
SET echo on
; ===================================================================
;
 SET et2_knxfac=1000  et2_knyfac=0.001
 SET et2_wsxx_req=-1.0e4 et2_wsyy_req=-1.0e0 et2_ws_tol=0.01
 SET p_vel=1.0e-3  p_cyc=1000  p_stages=1000
 SET et2_peakfac=0.50
;
et2_wallstiff
;
ini xvel 0.0 yvel 0.0 spin 0.0
 SET fishcall #FC_CYC_MOT et2_servo
 SET et2_servo_xon=1 et2_servo_yon=0
 SET et2_servo_gain_cyc=2  et2_servo_vmax=@p_vel
 del wall 1
 del wall 2
 wadd1 = null
 wadd2 = null
et2_install_ws
solve         ; do it 3 times to assure we are near equil.
et2_install_ws
solve
et2_install_ws
;
; ===================================================================
SET fishcall 0 remove et2_strains
bt_sample_dimensions
bt_carve
;
prop xdisp=0.0 ydisp=0.0
prop xv=0.0 yv=0.0
wall id=3 xvel=0.0 yvel=0.0
wall id=4 xvel=0.0 yvel=0.0
;;
cycle 10000
prop xdisp=0.0 ydisp=0.0
prop xv=0.0 yv=0.0
;
split_gage
crk_init
;=======================================
; Install test monitoring variables and histories
;
history reset
history nstep=100
;history id=1  crk_num
;history id=50 crk_num_cnf
;history id=51 crk_num_csf
history id=52 crk_num_pnf
history id=53 crk_num_psf
;
history id=11  time_t
history id=12  time_t_2
;
;
history id=3  et2_meyy_2
history id=4  split_gage_ey
history id=5  wsyy
history id=6  wsyy2
;
history id=204  et2_wfxx ; wall-derived forces
history id=205  et2_wfyy
;
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 et2_n     ; wall-derived microstructural quantities
history id=21 et2_e
history id=22 et2_phy_e ; physical void ratio
;
; ===================================================================
plot set color on
plot cur 1
plot set foreground black
plot set background white
plot clear
plot add wall
plot add ball white yellow white white white white white outline lgray
plot add fish crk_item black red black red
plot add his 5 6 v 3 xmin 0 ymin 0
;; 
;============================================
SET md_tag_name = '-bt0'
md_save_state
; ----------------------------------
return
; EOF: Agc_ex.DVR



-- 
You received this question notification because your team yade-users is
an answer contact for Yade.