首页 > 其他分享 >土工格栅拉拔试验2

土工格栅拉拔试验2

时间:2023-12-28 10:33:50浏览次数:23  
标签:real 拉拔 pos joint 格栅 rc 土工 rib pebble

 

define make_clump_bars(bar_id_start)

   global maxn_row_0=5

   global maxn_col_0=7

   global clump_idc=bar_id_start+1

   global bar_idc_start=clump_idc

   global ball_overlap_ratio_in_bar=1e-15

   global rc_joint_real=rc_joint*(1.0+ball_overlap_ratio_in_bar)

   global rc_rib_real=rc_rib*(1.0+ball_overlap_ratio_in_bar)

   

   maxn_row=maxn_row_0

   maxn_col=maxn_col_0

   global xc_joint=-90/unit

   global yc_joint=-80/unit

   global zc_joint=0/unit

   loop n_row(1,maxn_row)

       loop n_col(1,maxn_col)

           pebble_pos_vec1=vector(xc_joint,yc_joint,zc_joint)

           pebble_pos_vec2=vector(xc_joint-rc_joint,yc_joint,zc_joint)

           pebble_pos_vec3=vector(xc_joint+rc_joint,yc_joint,zc_joint)

           pebble_pos_vec4=vector(xc_joint,yc_joint-rc_joint,zc_joint)

           pebble_pos_vec5=vector(xc_joint,yc_joint+rc_joint,zc_joint)

           pebble_pos_vec6=vector(xc_joint-rc_joint,yc_joint-rc_joint,zc_joint)

           pebble_pos_vec7=vector(xc_joint+rc_joint,yc_joint-rc_joint,zc_joint)

           pebble_pos_vec8=vector(xc_joint-rc_joint,yc_joint+rc_joint,zc_joint)

           pebble_pos_vec9=vector(xc_joint+rc_joint,yc_joint+rc_joint,zc_joint)

           

           pebble_pos_vec10=vector(xc_joint-rc_joint-rc_rib,yc_joint,zc_joint)

           pebble_pos_vec11=vector(xc_joint-rc_joint-rc_rib,yc_joint-rc_rib,zc_joint)

           pebble_pos_vec12=vector(xc_joint-rc_joint-rc_rib,yc_joint+rc_rib,zc_joint)

           

           pebble_pos_vec13=vector(xc_joint+rc_joint+rc_rib,yc_joint,zc_joint)

           pebble_pos_vec14=vector(xc_joint+rc_joint+rc_rib,yc_joint-rc_rib,zc_joint)

           pebble_pos_vec15=vector(xc_joint+rc_joint+rc_rib,yc_joint+rc_rib,zc_joint)

         

           pebble_pos_vec16=vector(xc_joint,yc_joint-rc_joint-rc_rib,zc_joint)

           pebble_pos_vec17=vector(xc_joint-rc_rib,yc_joint-rc_joint-rc_rib,zc_joint)

           pebble_pos_vec18=vector(xc_joint+rc_rib,yc_joint-rc_joint-rc_rib,zc_joint)

           

           pebble_pos_vec19=vector(xc_joint,yc_joint+rc_joint+rc_rib,zc_joint)

           pebble_pos_vec20=vector(xc_joint-rc_rib,yc_joint+rc_joint+rc_rib,zc_joint)

           pebble_pos_vec21=vector(xc_joint+rc_rib,yc_joint+rc_joint+rc_rib,zc_joint)

           

           command

               ;;pause key

               ;ball delete range sphere center [pebble_pos_vec1] radius [rc_joint_real]

               ;ball delete range sphere center [pebble_pos_vec2] radius [rc_rib_real]

               ;ball delete range sphere center [pebble_pos_vec3] radius [rc_rib_real]

               ;ball delete range sphere center [pebble_pos_vec4] radius [rc_rib_real]

               ;ball delete range sphere center [pebble_pos_vec5] radius [rc_rib_real]

               ;ball delete range sphere center [pebble_pos_vec6] radius [rc_rib_real]

               ;ball delete range sphere center [pebble_pos_vec7] radius [rc_rib_real]

               ;ball delete range sphere center [pebble_pos_vec8] radius [rc_rib_real]

               ;ball delete range sphere center [pebble_pos_vec9] radius [rc_rib_real]

               ;

               ;ball delete range sphere center [pebble_pos_vec10] radius [rc_rib_real]

               ;ball delete range sphere center [pebble_pos_vec11] radius [rc_rib_real]

               ;ball delete range sphere center [pebble_pos_vec12] radius [rc_rib_real]

               ;ball delete range sphere center [pebble_pos_vec13] radius [rc_rib_real]

               ;ball delete range sphere center [pebble_pos_vec14] radius [rc_rib_real]

               ;ball delete range sphere center [pebble_pos_vec15] radius [rc_rib_real]

               ;ball delete range sphere center [pebble_pos_vec16] radius [rc_rib_real]

               ;ball delete range sphere center [pebble_pos_vec17] radius [rc_rib_real]

               ;ball delete range sphere center [pebble_pos_vec18] radius [rc_rib_real]

               ;ball delete range sphere center [pebble_pos_vec19] radius [rc_rib_real]

               ;ball delete range sphere center [pebble_pos_vec20] radius [rc_rib_real]

               ;ball delete range sphere center [pebble_pos_vec21] radius [rc_rib_real]

               clump create id=[clump_idc] pebbles 21   &

                           @rc_joint_real [pebble_pos_vec1] &

                           @rc_rib_real   [pebble_pos_vec2] &

                           @rc_rib_real   [pebble_pos_vec3] &

                           @rc_rib_real   [pebble_pos_vec4] &

                           @rc_rib_real   [pebble_pos_vec5] &

                           @rc_rib_real   [pebble_pos_vec6] &

                           @rc_rib_real   [pebble_pos_vec7] &

                           @rc_rib_real   [pebble_pos_vec8] &

                           @rc_rib_real   [pebble_pos_vec9] &

                           @rc_rib_real   [pebble_pos_vec10] &

                           @rc_rib_real   [pebble_pos_vec11] &

                           @rc_rib_real   [pebble_pos_vec12] &

                           @rc_rib_real   [pebble_pos_vec13] &

                           @rc_rib_real   [pebble_pos_vec14] &

                           @rc_rib_real   [pebble_pos_vec15] &

                           @rc_rib_real   [pebble_pos_vec16] &

                           @rc_rib_real   [pebble_pos_vec17] &

                           @rc_rib_real   [pebble_pos_vec18] &

                           @rc_rib_real   [pebble_pos_vec19] &

                           @rc_rib_real   [pebble_pos_vec20] &

                           @rc_rib_real   [pebble_pos_vec21] &

                           calculate 0.1

               

               ;ball delete range sphere center [xc_joint] [yc_joint] [zc_joint] radius [rc_joint]

               ;ball delete range sphere center [xc_joint-rc_joint] [yc_joint] [zc_joint] radius [rc_rib]

               ;ball delete range sphere center [xc_joint+rc_joint] [yc_joint] [zc_joint] radius [rc_rib]

               ;ball delete range sphere center [xc_joint] [yc_joint-rc_joint] [zc_joint] radius [rc_rib]

               ;ball delete range sphere center [xc_joint] [yc_joint+rc_joint] [zc_joint] radius [rc_rib]

               ;ball delete range sphere center [xc_joint-rc_joint] [yc_joint-rc_joint] [zc_joint] radius [rc_rib]

               ;ball delete range sphere center [xc_joint+rc_joint] [yc_joint-rc_joint] [zc_joint] radius [rc_rib]

               ;ball delete range sphere center [xc_joint-rc_joint] [yc_joint+rc_joint] [zc_joint] radius [rc_rib]

               ;ball delete range sphere center [xc_joint+rc_joint] [yc_joint+rc_joint] [zc_joint] radius [rc_rib]

               ;clump create id=[clump_idc] pebbles 9 &

               ;            @rc_joint [xc_joint] [yc_joint] [zc_joint] &

               ;            @rc_rib [xc_joint-rc_joint] [yc_joint] [zc_joint] &

               ;            @rc_rib [xc_joint+rc_joint] [yc_joint] [zc_joint] &

               ;            @rc_rib [xc_joint] [yc_joint-rc_joint] [zc_joint] &

               ;            @rc_rib [xc_joint] [yc_joint+rc_joint] [zc_joint] &

               ;            @rc_rib [xc_joint-rc_joint] [yc_joint-rc_joint] [zc_joint] &

               ;            @rc_rib [xc_joint+rc_joint] [yc_joint-rc_joint] [zc_joint] &

               ;            @rc_rib [xc_joint-rc_joint] [yc_joint+rc_joint] [zc_joint] &

               ;            @rc_rib [xc_joint+rc_joint] [yc_joint+rc_joint] [zc_joint] &

               ;            calculate 0.1

               ;pause ;key

           end_command

           clump_idc=clump_idc+1

           xc_joint=xc_joint+40/unit

       end_loop

       yc_joint=yc_joint+40/unit

       xc_joint=-90/unit

   end_loop

   

   ;command

   ;    pause

   ;end_command

   

   maxn_row=maxn_row_0

   maxn_col=maxn_col_0-1

   global xc_joint=-90/unit

   global yc_joint=-80/unit

   global zc_joint=0/unit

   global maxnum=int((40/unit-d_joint-d_rib*2)/rc_rib)+1


   loop n_row(1,maxn_row)

       xc_joint=-90/unit

       loop n_col(1,maxn_col)

           xc_rib=xc_joint+rc_joint+d_rib  ;+rc_rib

           yc_rib=yc_joint

           loop num(1,maxnum)

               pebble_pos_vec1=vector(xc_rib,yc_rib,zc_rib)

               pebble_pos_vec2=vector(xc_rib,yc_rib-rc_rib,zc_rib)

               pebble_pos_vec3=vector(xc_rib,yc_rib+rc_rib,zc_rib)

               

               bp=ball.create(rc_rib_real,pebble_pos_vec1,clump_idc)

               clump_idc=clump_idc+1

               bp=ball.create(rc_rib_real,pebble_pos_vec2,clump_idc)

               clump_idc=clump_idc+1

               bp=ball.create(rc_rib_real,pebble_pos_vec3,clump_idc)

               ;command

               ;    ;pause key

               ;    ball delete range sphere center [pebble_pos_vec1] radius [rc_rib_real]

               ;    ball delete range sphere center [pebble_pos_vec2] radius [rc_rib_real]

               ;    ball delete range sphere center [pebble_pos_vec3] radius [rc_rib_real]

               ;    clump create id=[clump_idc] pebbles 3 &

               ;                @rc_rib_real [pebble_pos_vec1] &

               ;                @rc_rib_real [pebble_pos_vec2] &

               ;                @rc_rib_real [pebble_pos_vec3] &

               ;                calculate 0.1

               ;end_command

               clump_idc=clump_idc+1

               xc_rib=xc_rib+rc_rib

           end_loop

           ;command

           ;    pause key

           ;end_command

           xc_joint=xc_joint+40/unit

       end_loop

       yc_joint=yc_joint+40/unit

   end_loop

   

   maxn_row=maxn_row_0-1

   maxn_col=maxn_col_0

   global xc_joint=-90/unit

   global yc_joint=-80/unit

   global zc_joint=0/unit

   global maxnum=int((40/unit-d_joint-d_rib*2)/rc_rib)+1

   loop n_col(1,maxn_col)

       yc_joint=-80/unit

       loop n_row(1,maxn_row)

           yc_rib=yc_joint+rc_joint+d_rib    ;+rc_rib

           xc_rib=xc_joint

           loop num(1,maxnum)

               pebble_pos_vec1=vector(xc_rib,yc_rib,zc_rib)

               pebble_pos_vec2=vector(xc_rib-rc_rib,yc_rib,zc_rib)

               pebble_pos_vec3=vector(xc_rib+rc_rib,yc_rib,zc_rib)

               

               bp=ball.create(rc_rib_real,pebble_pos_vec1,clump_idc)

               clump_idc=clump_idc+1

               bp=ball.create(rc_rib_real,pebble_pos_vec2,clump_idc)

               clump_idc=clump_idc+1

               bp=ball.create(rc_rib_real,pebble_pos_vec3,clump_idc)

               ;command

               ;    ;pause key

               ;    ball delete range sphere center [pebble_pos_vec1] radius [rc_rib_real]

               ;    ball delete range sphere center [pebble_pos_vec2] radius [rc_rib_real]

               ;    ball delete range sphere center [pebble_pos_vec3] radius [rc_rib_real]

               ;    clump create id=[clump_idc] pebbles 3 &

               ;                @rc_rib_real [pebble_pos_vec1] &

               ;                @rc_rib_real [pebble_pos_vec2] &

               ;                @rc_rib_real [pebble_pos_vec3] &

               ;                calculate 0.1

               ;end_command

               clump_idc=clump_idc+1

               yc_rib=yc_rib+rc_rib

           end_loop

           ;command

           ;    pause key

           ;end_command

           yc_joint=yc_joint+40/unit

       end_loop

       xc_joint=xc_joint+40/unit

   end_loop

   bar_idc_end=clump_idc-1

   

   ;loop foreach clp clump.list

   ;    clump.density(clp)=bar_dens

   ;    clump.damp(clp)=loc_damp

   ;    clump.group(clp) = 'bar_joint'

   ;end_loop

end

; -------------------------------------------------------------------------------------------

def get_ss ; determine average stress and strain at walls

   new_height = wall.pos.z(wadd202) - wall.pos.z(wadd201)

   zdif  = new_height - height

   ;wszz  = 0.5*(wall.force.contact.z(wadd201) - wall.force.contact.z(wadd202)) / area

   wszz  = - wall.force.contact.z(wadd202) / area

   wezz  = 2.0 * zdif / (height + new_height)

   wevol = wezz

end

; -------------------------------------------------------------------------------------------

def get_gain ; determine servo gain parameters for axial and lateral motion

   global alpha = 0.5 ; relaxation factor

   global count = 0

   global avg_stiff = 0

   

   loop foreach contact wall.contactmap(wadd202)

       avg_stiff = avg_stiff + contact.prop(contact,"kn")

       count = count + 1

   endloop

   if get_bottom_avg_stiff = 1         ; switch stress servo on or off

       loop foreach contact wall.contactmap(wadd201)

           avg_stiff = avg_stiff + contact.prop(contact,"kn")

           count = count + 1

       endloop

   end_if

   

   ;loop foreach cp contact.list('ball-facet')

   ;    fp=contact.end2(cp)

   ;    if type.pointer(fp)='facet'

   ;        wp=wall.facet.wall(fp)  

   ;        if get_bottom_avg_stiff = 1         ; switch stress servo on or off

   ;            if wp = wadd201

   ;                count = count + 1

   ;                avg_stiff = avg_stiff + contact.prop(cp,'kn')

   ;            end_if

   ;        end_if

   ;        if wp = wadd202

   ;            count = count + 1

   ;            avg_stiff = avg_stiff + contact.prop(cp,'kn')

   ;        end_if

   ;    end_if

   ;end_loop

   ;

   ;

   ;loop foreach cp contact.list('pebble-facet')

   ;    fp=contact.end2(cp)

   ;    if type.pointer(fp)='facet'

   ;        wp=wall.facet.wall(fp)  

   ;        if get_bottom_avg_stiff = 1         ; switch stress servo on or off

   ;            if wp = wadd201

   ;                count = count + 1

   ;                avg_stiff = avg_stiff + contact.prop(cp,'kn')

   ;            end_if

   ;        end_if

   ;        if wp = wadd202

   ;            count = count + 1

   ;            avg_stiff = avg_stiff + contact.prop(cp,'kn')

   ;        end_if

   ;    end_if

   ;end_loop

   

   if count = 0 then

       exit

   end_if

   

   if get_bottom_avg_stiff = 1

       ncount = count / 2.0

   else

       ncount = count

   end_if

   

   avg_stiff = avg_stiff / count

   gz = alpha * length * width/ (avg_stiff * ncount * mech.timestep)

end

; -------------------------------------------------------------------------------------------

def servo

   if z_servo_close=1 then

       wall.vel.z(wadd201) = 0.0

       wall.vel.z(wadd201) = 0.0

   else

       get_ss                 ; compute stresses & strains

       udz = gz * (wszz - szzreq)

       if count = 0 then

           udz=math.abs(udz0)

       ;    wall.vel.y(wadd105) = udz

       ;    wall.vel.y(wadd106) = -udz

       ;else

       ;    wall.vel.y(wadd205) = 0.0

       ;    wall.vel.y(wadd206) = 0.0

       end_if

       wall.vel.z(wadd202) = -udz

       if bottom_servo_close = 1         ; switch stress servo on or off

           wall.vel.z(wadd201) = 0.0

       else

           wall.vel.z(wadd201) = udz

       end_if

   end_if

end

; -------------------------------------------------------------------------------------------

def get_wszz_tol

   cycle_cnt=cycle_cnt+1

   cycle_mod=int((float(cycle_cnt)/cycle_cnt_dist-cycle_cnt/cycle_cnt_dist)*cycle_cnt_dist)

   if cycle_mod=0

       get_gain

   end_if

   wszz_tol=math.abs((wszz - szzreq)/szzreq)

end

; -------------------------------------------------------------------------------------------

def iterate_limit

   if wszz_tol < sig_tol then

       iterate_limit=1

   end_if

end

;==============================================================================================


domain extent [-length*0.6] [length*1.1] &

             [-width*0.6]  [width*0.6]  &

             [-height*0.7] [height*0.7]

domain condition destroy

set orientation on


[rad=1.0]

clump template create name rock                     ...

           pebbles 4                               ...

           [rad] [-rad*0.5] 0 0                     ...

           [0.7*rad] [rad*0.6] 0 0                      ...

           [0.9*rad] 0 0 [rad*0.9]                      ...

           [0.6*rad] 0 [rad*0.2] [rad*1.6]                      ...

           pebcalculate 0.1


;geometry import rock.stl

;clump template create name rock                    ...

;            geometry rock                         ...

;            bubblepack ratio 0.3 distance 90       ...

;            surfcalculate


;pause ;key

标签:real,拉拔,pos,joint,格栅,rc,土工,rib,pebble
From: https://blog.51cto.com/u_15867247/9010430

相关文章

  • 振弦采集仪在岩土工程监测中的应用技术研究
    振弦采集仪在岩土工程监测中的应用技术研究振弦采集仪是一种用于测量地表振动信号的设备,可以应用于岩土工程监测中。其应用技术研究包括以下几个方面: 1.振弦采集仪的原理和机制:研究振弦采集仪的工作原理和振动信号的采集机制,包括传感器的特性、采样频率和精度等。2.信号处......
  • 振弦采集仪:岩土工程监测数据的精准收集
    振弦采集仪:岩土工程监测数据的精准收集随着近年来岩土工程的发展,越来越多的建筑项目需要进行监测,以确保工程的安全稳定。而振弦采集仪作为岩土工程监测的重要工具,能够对地表振动、地震震动以及建筑物结构振动等进行精准的数据收集,为工程安全提供了重要的保障。 振弦采集仪的......
  • 振弦采集仪在岩土工程中的探索与应用
    振弦采集仪在岩土工程中的探索与应用振弦采集仪是一种常用的测量仪器,在岩土工程中具有重要的应用价值。它主要利用振弦原理,通过测量振动信号的特征参数来分析地下土体的力学特性以及工程中的变形情况。振弦采集仪早期主要用于建筑物、桥梁、堤坝等大型民用工程的震动检测中。随......
  • 振弦采集仪助力岩土工程质量控制
    振弦采集仪助力岩土工程质量控制随着工程建设规模越来越大,建筑结构的安全性和稳定性越来越成为人们所关注的焦点。岩土工程在工程建设中占据着非常重要的地位,岩土工程质量控制更是至关重要。而振弦采集仪作为一种先进的检测设备,正得到越来越广泛的应用,为岩土工程质量控制提供了有......
  • 岩土工程仪器振弦采集仪在极端气候下如何稳定运行
    岩土工程仪器振弦采集仪在极端气候下如何稳定运行岩土工程仪器振弦采集仪在极端气候下的稳定运行取决于以下几个因素:温度:振弦采集仪应在指定的工作温度范围内运行。在极端气候下,温度可能会超出仪器的工作温度范围,这会影响仪器的稳定性。因此,在使用仪器之前,需要检查工作温度范围,并确......
  • 振弦采集仪在岩土工程中的应用与优势
    振弦采集仪在岩土工程中的应用与优势振弦采集仪是一种先进的岩土工程测试设备,可以用于进行土壤动力学性质的试验和监测。它在岩土工程中的应用非常广泛,具有许多优势,可以大幅提高岩土工程的监测效率和测试准确性。下面,我们来详细探讨振弦采集仪在岩土工程中的应用和优势。 一......
  • 岩土工程监测新利器——振弦采集仪
    岩土工程监测新利器——振弦采集仪振弦采集仪是一种常用的岩土工程监测仪器,主要用于测量岩土体的振动和应变情况。它采用先进的数字信号处理技术,可以实时采集和处理振弦信号,快速准确地获取岩土体的振动和应变信息。振弦采集仪具有以下优点: 1.高精度:振弦采集仪采用先进的传......
  • 振弦式土压力计在岩土工程安全监测应用的方案
    振弦式土压力计在岩土工程安全监测应用的方案振弦式土压力计是一种常见的土压力测量仪器,其原理是利用振弦在土中传播的速度与土的应力状态有关的特点测量土压力。在岩土工程安全监测中,振弦式土压力计可以应用于以下方面: 1.地下连续墙和桩基工程的土压力监测:振弦式土压力计可......
  • 振弦传感器表面钢筋计与振弦采集仪形成岩土工程监测的案例
    振弦传感器表面钢筋计与振弦采集仪形成岩土工程监测的案例振弦传感器和表面钢筋计是岩土工程监测中常用的仪器设备,可用于测量结构物的振动和变形情况,以及土体的变形和应力状态等。 以下是一个振弦传感器和表面钢筋计结合使用的案例:在一座高层建筑物的施工中,需要对建筑物周围......
  • 振弦传感器表面钢筋计与振弦采集仪组成岩土工程安全监测
    振弦传感器表面钢筋计与振弦采集仪组成岩土工程安全监测振弦传感器表面钢筋计和振弦采集仪可以组成岩土工程安全监测系统,用于监测结构物或岩土体的振动和应变变化情况。具体可以实现以下功能: 1.振动监测:振弦传感器可以实时监测结构物或岩土体的振动情况,包括振动频率、振幅、......