; fname: Footing.dat (2D) ; ; I Have mocked up the footing example to show a similar behaviour as Nicks has shown within his figure ; Create an assembly and install two shallow foundations next to each other ;========================================================================= model new model large-strain on ;Set the domain extent and condition model domain extent (-1,25) (-6,20) model domain condition destroy ;generate a box and a cloud of 2000 equally sized balls wall generate name 'box' box (0,24) (0,17) one-wall model random 10001 ball generate box (0,24) (0,10) number 3500 radius 0.1 ; Modify the default slots of the Contact Model Assignement Table ; Here we choose the linear contact model (with kn=1e6) for all contact ; types but ball-ball contacts, to which we assign the linearpbond model. ; Note that only the linear part of the linearpbond model is activated as ; long as the contact method bond is not called, which is done later contact cmat default type ball-ball model linearpbond ... property fric 0.577 kn 1e8 ks 1e8 ... pb_kn 1e8 pb_ks 1e8 pb_ten 1e6 ... pb_coh 1e6 pb_rmul 0.8 dp_nratio 0.2 contact cmat default type ball-facet model linear ... property kn 1e8 ks 1e8 fric 0.09 ... dp_nratio 0.2 ;define the density of the balls and increase their radius ball attribute density 2000 radius multiply 1.4 ;define some history to plot the velocity of a ball of the assembly and ;of the unbalanced force. Histories are stored each 5 cycles. history interval 5 ball history velocity-y position (12,5) model history mechanical unbalanced-maximum ; To reach a stable configuration faster, density scaling is activated. ; Gravity is introduced model mechanical timestep scale model gravity 0 -9.81 model cycle 1000 calm 50 model solve ratio-average 1e-5 ; creation of a box-shaped foundation ; the name 'footing' is associated to the respective group of walls wall delete range set id 3 wall generate name 'footing_left' group 'footing' box (0,5) (11,20) ;box (19,24) (11,20) wall generate name 'footing_right' group 'footing' box (19,24) (11,20) ; parallel bonds are finally installed. LinearPBond model is active ; for ball-ball contacts. The simulation is saved at this stage ; so that further restoring is possible contact method bond gap 0.0 model save 'Assembly' ;;; Here I have added some histories to plot the descrepancies in wall movement ; ; The foundations are supposed to settle with a constant velocity ; The contact force at the base of the foundations is stored during ; the simulation. wall attribute velocity-y -0.25 range group 'footing' wall history name 'reaction force left' force-contact-y name 'footing_leftBottom' wall history name 'reaction force right' force-contact-y name 'footing_rightBottom' wall history name 'footing settlement base left' displacement-y name 'footing_leftBottom' wall history name 'footing settlement base right' displacement-y name 'footing_rightBottom' wall history name 'footing settlement sides right' displacement-y name 'footing_rightLeft' wall history name 'footing settlement sides left' displacement-y name 'footing_leftRight' program call 'Wall_Displacement.dat' program call 'Bottom_Wall_Stress.dat' ; The timestep is set to its automatic value for dynamic simulations and ; an additional 5 seconds are simulated. The model is saved at the end of ; the simulation. model mechanical timestep auto model solve time 7.0 ; Solve to an equilibrium state again wall attribute velocity-y 0.0 model solve ratio-average 1e-4 model save 'Footing_touch-down' ;;; So far no relative movement of each parts of the footing walls is notceable model restore 'Footing_touch-down' ;;; From Here on I introduce the servo mechanism for the wall forces in 2 load increments wall servo activate on gain-factor 0.6 force-y -4e6 velocity-max 0.1 range group 'footing' model mechanical timestep auto model solve time 10.0 wall servo activate off range group 'footing' model save 'Footing_first-load' model restore 'Footing_first-load' ; Solve to an equilibrium state again wall attribute velocity-y 0.0 model solve ratio-average 1e-4 wall servo activate on gain-factor 0.6 force-y -4.5e6 velocity-max 0.1 range group 'footing' model mechanical timestep auto model solve time 10.0 wall servo activate off range group 'footing' ; Solve to an equilibrium state again wall attribute velocity-y 0.0 model solve ratio-average 1e-4 model save 'Footing_final-load' ;;; Here a relative movement of the bottom wall segments as opposed to the other wall segments - see inner sides of the footings in the plots for comparison ;========================================================================= ; eof: Footing.dat (2D)