A strip of length 20 metres and width 0.3 metres is subjected to uniform loading. The STxx and FIxx defines/marks the start end points of the loaded region (the wheel tire). ST1R - STart position of Rear tire of vehicle 1. FI1R - FInisihing position of Rear tire of vehicle 1. ST1F - STart position of Front tire of vehicle 1 and so on. 2 is for vehicle 2. By adding TIME(1) * multiplied by (RDL-1) allows the loading to move from the left to the right for the full span of the road. This models a moving load region of length 1 metre. THe expression for F can be generalised to specify a mon-uniform loading across the loaded region. THe dimensions used are NOT based on REAL roads/vehicles. 2 parallel roads are considered. tire tracks are 0.3 m wide and are spaced 1 m apart. Only 2 set of tires (say front and back pair) are modelled. Similarly another 2 set of tires in the second roadway is modelled with a time shift. This can be extended to model 3 or more sets of wheels/tires and more vehicles. C To start with the whole length of the tire tracks are subjected to non-uniform pressure loading. Note : It is not necessary to apply the non-uniform loading to the tire tracts alone. It would be simpler and easier to specify this loading to the entire surface area. This would not result in any error as the subroutine checks that the loading is restricted to the tracks by checking the Z co-ordinates. The Load Facor F is set to zero outside of the tracks. Also note that the magnitude of the pressure loading antered in the dialog box should be set to 1 to avoid any confusion. Earlier it was assumed that the magnitude was used to scale up the F value specified in the subroutine. The results indicate otherwise and the loading is solely determined by the F value and the load magnitude specified in CAE is ignored and has no effect on the loading. The input file has been modofoed accordingly. Then ST and FI defines the position of the tire (a loaded region of length 1 m) and for this length the load is set to be uniform. Beyond this region the load is set to zero. By adding the time into the expression the region loaded is moved along modelling the movement of the wheel/tire. C IROAD = 1 refers to the first road. IROAD = 2 is for other road. Remember the subroutine is only called when the co-ordinates falls on the 4 tire tracks. (strips). The Z co-ordinate is used to check which tire strip is referred to in the current call. Z = 2.0 to 2.3 road 1 tire track 1 Z = 3.3 to 3.6 road 1 tire track 2 C Z = 8.6 to 8.9 road 2 tire track 1 Z = 9.9 to 10.2 road 2 tire track 2 C More vehicles on both roads can be modelled by working out which position and which region of the track is loaded at any given time and then adjusting the scale factor for the time the speed of the movement can be modelled for each vehicle. C Use the DIRECT method to give constant increment size in the ABAQUS step. If using CAE in the STEP module toggle the FIXED button instead of AUTOMATIC. C Automatic time stepping should be avoided. C Since time step = 1. I have used a factor of (RDL-1) * TIME which takes the moving load right across the length of 20 metres in the given time of 1 second. Speed of 20 m/s. C C----------------------ROAD LENGTH RDL=20. C C----------------------WHEEL LOADING Vehicle : 1 or 2. F - front R - Rear WLD1F=200. WLD1R=200. WLD2F=200. WLD2R=200. C C----------------------FRONT to REAR WHEEL SPACING for the 2 vehicles WLSP1=5. WLSP2=5. C C-----------This determines which strip/track loading is dealt with C in the current subrotuine call. if(coords(3).gt.2.0.and.coords(3).lt.2.3) then IROAD=1 else if(coords(3).gt.3.3.and.coords(3).lt.3.6) then IROAD=1 else if(coords(3).gt.8.6.and.coords(3).lt.8.9) then IROAD=2 else if(coords(3).gt.9.9.and.coords(3).lt.10.2) then IROAD=2 endif C IF(IROAD.EQ.1) THEN ST1R=0.+TIME(1)*(RDL-1.) FI1R=1.+TIME(1)*(RDL-1.) C ST1F=ST1R+WLSP1 FI1F=FI1R+WLSP1 C ELSE IF(IROAD.EQ.2) THEN ST2R=3.+TIME(1)*(RDL-1.) FI2R=4.+TIME(1)*(RDL-1.) C ST2F=ST2R+WLSP2 FI2F=FI2R+WLSP2 ENDIF C F=0. C C--------------- VEHICLE 1 REAR wheel load if(COORDS(1).GE.ST1R.AND.COORDS(1).LE.FI1R)THEN F=WLD1R ST=ST1R FI=FI1R C Note that ST and FI set below are purely for printing these values out for checking purposes. C C---------------- VEHICLE 1 FRONT wheel load ELSE IF(COORDS(1).ge.ST1F.AND.COORDS(1).LE.FI1F) THEN C C-------------FOR UNIFORM LOADING over the loaded region F=WLD1F ST=ST1F FI=FI1F C C---------------- VEHICLE 2 REAR wheel load else if(COORDS(1).GE.ST2R.AND.COORDS(1).LE.FI2R)THEN F=WLD2R ST=ST2R FI=FI2R C C--------------- VEHICLE 2 FRONT wheel load ELSE IF(COORDS(1).ge.ST2F.AND.COORDS(1).LE.FI2F) THEN C C-------------FOR UNIFORM LOADING. F=WLD2F ST=ST2F FI=FI2F C C------------ FOR PARABOLIC DISTRIBUTION OVER THE LOADED REGION WITH A MAXIMUM VALUE OF 1 for the bracketed term. This expression should be scaled with the wheel load. C F=((COORDS(1) - ST) * (FI - COORDS(1) / 0.25) F=WLD2F * F C ENDIF write(6,910)COORDS(1),ST,FI,F C 910 FORMAT(1X,'COORDS(1), ST, FI, F =',4E15.5) C RETURN END