Ejemplo n.º 1
0
def IAP_traffic_LC(lcName,deckSet,virtLane1Set,xyCentPL1,hDistrPL,slopeDistrPL=1.0,vQbraking=None,virtLane2Set=None,xyCentPL2=None,virtLane3Set=None,xyCentPL3=None,restDrivewaySet=None,sidewalkSet=None):
    '''Return a traffic load case according to IAP.

    :param lcName: load case name
    :param deckSet: deck set of elements (used to distribute point loads)
    :param virtLane1Set: virtual lane 1 set of elements
    :param xyCentPL1: [xCent,yCent] global coord. X,Y where to place the centroid of the 
                     vehicle on virtual lane 1
    :param hDistrPL: height considered to distribute each point load with
                  slope slopeDistr 
    :param slopeDistrPL: slope (H/V) through hDistr to distribute the load of 
                  a wheel (defaults to 1)
    :param vQbraking: [qfrenX,qfrenY] x, y components of the uniform load due to braking
                      on virtual lane 1 (defaults to None)
    :param virtLane2Set: virtual lane 2 set of elements
    :param xyCentPL2: [xCent,yCent] global coord. X,Y where to place the centroid of the 
                     vehicle on virtual lane 2
    :param virtLane3Set: virtual lane 3 set of elements (defaults to None, not considered)
    :param xyCentPL3: [xCent,yCent] global coord. X,Y where to place the centroid of the 
                     vehicle on virtual lane 3 (defaults to None)
    :param restDrivewaySet: rest of driveway set of elements (defaults to None, not considered)
    :param sidewalkSet: sidewalk set of elements (defaults to None, not considered)
 
    '''
    preprocessor=deckSet.getPreprocessor
    if vQbraking:
        qunifVL1,qunifVL2,qunifVL3,qunifRest,qunifSidewalk=[0.4*9e3]+4*[0.4*2.5e3] #uniform load on virtual lanes, rest of driveway and sidewalks when braking forceis considered
        QpointVL1,QpointVL2,QpointVL3=[IAP_carril_virt1_fren,IAP_carril_virt2_fren,IAP_carril_virt3_fren]
    else:
        qunifVL1,qunifVL2,qunifVL3,qunifRest,qunifSidewalk=[9e3]+4*[2.5e3]    
        QpointVL1,QpointVL2,QpointVL3=[IAP_carril_virt1,IAP_carril_virt2,IAP_carril_virt3]
    lc=lcases.LoadCase(preprocessor,lcName,"default","constant_ts")
    lc.create()
    # add uniform loads
    lc.addLstLoads([loads.UniformLoadOnSurfaces(name= lcName+'quVL1',xcSet=virtLane1Set,loadVector=xc.Vector([0,0,-qunifVL1,0,0,0]),refSystem='Global')])
    if virtLane2Set:
        lc.addLstLoads([loads.UniformLoadOnSurfaces(name= lcName+'quVL2',xcSet=virtLane2Set,loadVector=xc.Vector([0,0,-qunifVL2,0,0,0]),refSystem='Global')])
    if virtLane3Set:
        lc.addLstLoads([loads.UniformLoadOnSurfaces(name= lcName+'quVL3',xcSet=virtLane3Set,loadVector=xc.Vector([0,0,-qunifVL3,0,0,0]),refSystem='Global')])
    if restDrivewaySet:
        lc.addLstLoads([loads.UniformLoadOnSurfaces(name= lcName+'quVL3',xcSet=restDrivewaySet,loadVector=xc.Vector([0,0,-qunifRest,0,0,0]),refSystem='Global')])
    if sidewalkSet:
        lc.addLstLoads([loads.UniformLoadOnSurfaces(name= lcName+'quVL3',xcSet=sidewalkSet,loadVector=xc.Vector([0,0,-qunifSidewalk,0,0,0]),refSystem='Global')])
    #add point loads
    lc.addLstLoads([lmb.VehicleDistrLoad(name=lcName+'QpVL1',xcSet=deckSet,loadModel=QpointVL1, xCentr=xyCentPL1[0],yCentr=xyCentPL1[1],hDistr=hDistrPL,slopeDistr=slopeDistrPL)])
    if virtLane2Set:
        lc.addLstLoads([lmb.VehicleDistrLoad(name=lcName+'QpVL2',xcSet=deckSet,loadModel=QpointVL2, xCentr=xyCentPL2[0],yCentr=xyCentPL2[1],hDistr=hDistrPL,slopeDistr=slopeDistrPL)])
    if virtLane3Set:
        lc.addLstLoads([lmb.VehicleDistrLoad(name=lcName+'QpVL3',xcSet=deckSet,loadModel=QpointVL3, xCentr=xyCentPL3[0],yCentr=xyCentPL3[1],hDistr=hDistrPL,slopeDistr=slopeDistrPL)])
    #add braking load
    if vQbraking:
        lc.addLstLoads([loads.UniformLoadOnSurfaces(name= lcName+'qfren',xcSet=virtLane1Set,loadVector=xc.Vector([vQbraking[0],vQbraking[1],0,0,0,0]),refSystem='Global')])
    return lc
Ejemplo n.º 2
0
def load_test_LC(lcName, deckSet, lstVehiclData, hDistrPL, slopeDistrPL=1.0):
    '''Return load case that reproduces one configuration of a load 
       in a bridge.

    :param lcName: load case name
    :param deckSet: deck set of elements (used to distribute point loads)
    :param lstVehiclData: list of data for each vehicle used in the load test.
           for each vehicle, data are its type (instance of the class LoadModel)
           and the coordinates (x,y)  where to place the centroid of the vehicle
           ex: lstVehiclData=[[truck38t_forward,(0,15)],
                              [truck26t_backward,(2,15), ...] 
    :param hDistrPL: height considered to distribute each point load with
                  slope slopeDistr 
    :param slopeDistrPL: slope (H/V) through hDistr to distribute the load of 
                  a wheel (defaults to 1)
                 
    '''
    preprocessor = deckSet.getPreprocessor
    lc = lcases.LoadCase(preprocessor, lcName, "default", "constant_ts")
    lc.create()
    for vehicDat in lstVehiclData:
        vehicType = vehicDat[0]
        xCentr = vehicDat[1][0]
        yCentr = vehicDat[1][1]
        lc.addLstLoads([
            lmb.VehicleDistrLoad(name=lcName + 'QpVL1',
                                 xcSet=deckSet,
                                 loadModel=vehicType,
                                 xCentr=xCentr,
                                 yCentr=yCentr,
                                 hDistr=hDistrPL,
                                 slopeDistr=slopeDistrPL)
        ])
    return lc
Ejemplo n.º 3
0
#      xcSet: set that contains the shell elements
#      lModel: instance of the class LoadModel with the definition of
#               vehicle of the load model.
#      xCent: global coord. X where to place the centroid of the vehicle
#      yCent: global coord. Y where  to place the centroid of the vehicle
#      hDistr: height considered to distribute each point load with
#               slope slopeDistr
#      slopeDistr: slope (H/V) through hDistr to distribute the load of
#               a wheel

from actions.roadway_trafic import IAP_load_models as slm
from actions.roadway_trafic import load_model_base as lmb
vehicleDeck1 = lmb.VehicleDistrLoad(name='vehicleDeck1',
                                    xcSet=decklv1,
                                    loadModel=slm.IAP_carril_virt3_fren,
                                    xCentr=LbeamX / 2,
                                    yCentr=LbeamY / 2.,
                                    hDistr=0.25,
                                    slopeDistr=1.0)

#    ***LOAD CASES***

GselfWeight = lcases.LoadCase(preprocessor=prep,
                              name="GselfWeight",
                              loadPType="default",
                              timeSType="constant_ts")
GselfWeight.create()
GselfWeight.addLstLoads([selfWeight])
'''
modelSpace.addLoadCaseToDomain("GselfWeight")
out.displayLoadVectors()
Ejemplo n.º 4
0
#coordenadas auxiliares
xCent_vext=(xViaFict[0][0]+xViaFict[0][-1])/2.
xCent_vcent=(xViaFict[1][0]+xViaFict[1][-1])/2.
xCent_vint=(xViaFict[2][0]+xViaFict[2][-1])/2.

yCent_van1=yPil1/2.0
yCent_van2=(yPil1+yPil2)/2.0
yCent_van3=(yPil2+yEstr2)/2.0

yExtr_van1=2
yExtr_van2=yPil1+2

from actions.roadway_trafic import IAP_load_models as slm
from actions.roadway_trafic import load_model_base as lmb
Q1c_vext_v1=lmb.VehicleDistrLoad(name='Q1c_vext_v1',xcSet=supTablero,loadModel=slm.IAP_carril_virt1, xCentr=xCent_vext,yCentr=yCent_van1,hDistr=hDistrQ,slopeDistr=1.0)
Q1c_vext_v2=lmb.VehicleDistrLoad(name='Q1c_vext_v2',xcSet=supTablero,loadModel=slm.IAP_carril_virt1, xCentr=xCent_vext,yCentr=yCent_van2,hDistr=hDistrQ,slopeDistr=1.0)
Q2c_vcent_v1=lmb.VehicleDistrLoad(name='Q2c_vcent_v1',xcSet=supTablero,loadModel=slm.IAP_carril_virt2, xCentr=xCent_vcent,yCentr=yCent_van1,hDistr=hDistrQ,slopeDistr=1.0)
Q2c_vcent_v2=lmb.VehicleDistrLoad(name='Q2c_vcent_v2',xcSet=supTablero,loadModel=slm.IAP_carril_virt2, xCentr=xCent_vcent,yCentr=yCent_van2,hDistr=hDistrQ,slopeDistr=1.0)
Q3c_vint_v1=lmb.VehicleDistrLoad(name='Q3c_vint_v1',xcSet=supTablero,loadModel=slm.IAP_carril_virt3, xCentr=xCent_vint,yCentr=yCent_van1,hDistr=hDistrQ,slopeDistr=1.0)
Q3c_vint_v2=lmb.VehicleDistrLoad(name='Q3c_intt_v2',xcSet=supTablero,loadModel=slm.IAP_carril_virt3, xCentr=xCent_vint,yCentr=yCent_van2,hDistr=hDistrQ,slopeDistr=1.0)
Q1c_vcent_v2=lmb.VehicleDistrLoad(name='Q1c_vcent_v2',xcSet=supTablero,loadModel=slm.IAP_carril_virt1, xCentr=xCent_vcent,yCentr=yCent_van2,hDistr=hDistrQ,slopeDistr=1.0)
Q2c_vint_v2=lmb.VehicleDistrLoad(name='Q2c_vint_v2',xcSet=supTablero,loadModel=slm.IAP_carril_virt2, xCentr=xCent_vint,yCentr=yCent_van2,hDistr=hDistrQ,slopeDistr=1.0)
Q3c_vext_v2=lmb.VehicleDistrLoad(name='Q3c_vext_v2',xcSet=supTablero,loadModel=slm.IAP_carril_virt3, xCentr=xCent_vext,yCentr=yCent_van2,hDistr=hDistrQ,slopeDistr=1.0)

Q1e_vcent_v2=lmb.VehicleDistrLoad(name='Q1e_vcent_v2',xcSet=supTablero,loadModel=slm.IAP_carril_virt1, xCentr=xCent_vcent,yCentr=yExtr_van2,hDistr=hDistrQ,slopeDistr=1.0)
Q2e_vint_v2=lmb.VehicleDistrLoad(name='Q2e_vint_v2',xcSet=supTablero,loadModel=slm.IAP_carril_virt2, xCentr=xCent_vint,yCentr=yExtr_van2,hDistr=hDistrQ,slopeDistr=1.0)
Q3e_vext_v2=lmb.VehicleDistrLoad(name='Q3e_vext_v2',xcSet=supTablero,loadModel=slm.IAP_carril_virt3, xCentr=xCent_vext,yCentr=yExtr_van2,hDistr=hDistrQ,slopeDistr=1.0)

Q1e_vcent_v1=lmb.VehicleDistrLoad(name='Q1e_vcent_v1',xcSet=supTablero,loadModel=slm.IAP_carril_virt1, xCentr=xCent_vcent,yCentr=yExtr_van1,hDistr=hDistrQ,slopeDistr=1.0)
Q2e_vint_v1=lmb.VehicleDistrLoad(name='Q2e_vint_v1',xcSet=supTablero,loadModel=slm.IAP_carril_virt2, xCentr=xCent_vint,yCentr=yExtr_van1,hDistr=hDistrQ,slopeDistr=1.0)