Flac3d Pile-Laterallyloaded 学习过程

call 'LaterallyLoaded'
call 'check' suppress

 

model new
model title "Laterally loaded pile"
; Create zones
zone create brick size 8 8 8 edge=11
zone face skin ; Label model boundaries
; Assign material model and properties
zone cmodel assign elastic
zone prop bulk=5e9 shear=1e9 density=2000
; Boundary conditions
zone face apply velocity-normal 0 range group 'East' or 'West'
zone face apply velocity-normal 0 range group 'North' or 'South'
zone face apply velocity-normal 0 range group 'Bottom'
; Initial conditions
model gravity 10
zone initialize-stresses ratio 0.6,0.4
model solve ratio-local 1e-4 ; Should be instant
; =======================================================
; Create a pile in the center of the soil block
struct pile create by-line (5.5,5.5,12.0) (5.5,5.5,4.0) segments=8
struct node group 'Top' range position-z 12 ; Tag top node
struct pile property young=8.0e10 poisson=0.30 cross-sectional-area=0.7854 ...
            moi-polar=9.82e-2 moi-y=4.91e-2 moi-z=4.91e-2 ...
            perimeter=3.14 ...
            coupling-stiffness-shear=1.3e11 coupling-cohesion-shear=1.0e10 coupling-friction-shear=0.0 ...
            coupling-stiffness-normal=1.3e09 coupling-cohesion-normal=1.0e04 coupling-friction-normal=0.0 ...
            coupling-gap-normal=off ...
            direction-y=(1,1,0) ; so that shear force Fy corresponds with diagonal direction
; =======================================================
; Fish function to find lateral displacement of top node
fish define lateralDisp
    global topNode
    if type.name(topNode) == 'integer' then
        topNode = struct.node.near(5.5,5.5,12)
    endif
    local disp = struct.node.disp.global(topNode)
    lateralDisp = math.sqrt(disp(1)^2 + disp(2)^2) * math.sgn(disp(1))
end
; =======================================================
struct pile history name='force' force-y position (5.5,5.5,12) ; shear force at top
fish history name='disp' @lateralDisp  ; lateral displacement
; =======================================================
struct damping combined-local
struct node fix velocity-y range group 'Top'  ; fix velocities in lateral plane, top node
struct node fix velocity-z range group 'Top'
; move (+) diag-dir
struct node initialize velocity (0,0.707e-8,0.707e-8) local range group 'Top'
model save 'Initial'
; =======================================================
; Run no-gap case
; =======================================================
model cycle 40000  ; disp of +4e-4
model save 'NoGap-1'
; move (-) diag-dir
struct node initialize velocity (0,-0.707e-8,-0.707e-8) local range group 'Top'
model cycle 80000  ; disp of -8e-4
model save 'NoGap-2'
; move (+) diag-dir
struct node initialize velocity (0,0.707e-8,.707e-8) local range group 'Top'
model cycle 40000                                           ; disp of +4e-4
model save 'NoGap-Final'
; =======================================================
; Run full-gap case
; =======================================================
model restore 'Initial'
struct pile property coupling-gap-normal on
model cycle 40000  ; disp of +4e-4
model save 'FullGap-1'
; move (-) diag-dir
struct node initialize velocity (0,-0.707e-8,-0.707e-8) local range group 'Top'
model cycle 80000  ; disp of -8e-4
model save 'FullGap-2'
; move (+) diag-dir
struct node initialize velocity (0,0.707e-8,.707e-8) local range group 'Top'
model cycle 40000                                           ; disp of +4e-4
model save 'FullGap-Final'

; File for testing "Laterally loaded pile"
model restore 'NoGap-1'
-test check real [struct.pile.normal.stress(struct.find(5),2)] -3.185e3 tol 1
-test check real [struct.pile.moment(struct.find(3),2,3)] 5.5e4 tol 2
plot 'Geom' export bitmap filename 'laterallyloaded-geom.png'
plot 'Stress' export bitmap filename 'laterallyloaded-stress.png'
plot 'Moment' export bitmap filename 'laterallyloaded-moment.png'

model restore 'NoGap-Final'
-test check real [struct.pile.normal.stress(struct.find(5),2)] -1.331e3 tol 1
plot 'Chart' export bitmap filename 'laterallyloaded-nogap-chart.png'

model restore 'FullGap-Final'
-test check real [struct.pile.normal.stress(struct.find(5),2)] 0 tol 2
plot 'Chart' export bitmap filename 'laterallyloaded-fullgap-chart.png'

 

 

你可能感兴趣的:(Flac3d Pile-Laterallyloaded 学习过程)