Exemplo n.º 1
0
def dead_LC(lcName,drivewaySet,qAsphalt,sidewalkSet=None,qSidewalk=None,barrierSet=None,qBarrier=None,deckEdgeSet=None,qDeckEdge=None):
    '''Return the dead load case (asphalt, sidewalk, barriers, ...)

    :param lcName: load case name
    :param drivewaySet: driveway set of elements (where to apply asphalt load)
    :param qAsphalt: uniform load due to asphalt weight
    :param sidewalkSet:sidewalk set of elements (defaults to None)
    :param qSidewalk: uniform surface dead load on sidewalks (defaults to None).
    :param barrierSet: set of lines where to apply barrier linear loads (defaults to None).
    :param qBarrier: uniform linear load due to barrier weight (defaults to None)
    :param deckEdgeSet: set of lines in the edges of the deck (defaults to None).
    :param qDeckEdge: uniform linear load to apply on the edges of the deck (defaults to None).
    '''
    preprocessor=drivewaySet.getPreprocessor
    lc=lcases.LoadCase(preprocessor,lcName,"default","constant_ts")
    lc.create()
    # add surface loads
    lc.addLstLoads([loads.UniformLoadOnSurfaces(name= lcName+'asph',xcSet=drivewaySet,loadVector=xc.Vector([0,0,-qAsphalt,0,0,0]),refSystem='Global')])
    if sidewalkSet:
        lc.addLstLoads([loads.UniformLoadOnSurfaces(name= lcName+'sidew',xcSet=sidewalkSet,loadVector=xc.Vector([0,0,-qSidewalk,0,0,0]),refSystem='Global')])
    #add linear loads
    if barrierSet:
        lc.addLstLoads([loads.UniformLoadOnLines(name= lcName+'barr', xcSet=barrierSet, loadVector=xc.Vector([0,0,-qBarrier,0,0,0]))])
    if deckEdgeSet:
        lc.addLstLoads([loads.UniformLoadOnLines(name= lcName+'deckEdg', xcSet=deckEdgeSet, loadVector=xc.Vector([0,0,-qDeckEdge,0,0,0]))])
    return lc
Exemplo n.º 2
0
def qPuntEjeReparto(prep,setBusq,hTot,angrepRad,x_punt,y_punt,lTrav,distTrav,Qpunt,nameToLoad):
    '''Carga repartida sobre el dintel debida a la carga puntual de un eje del tren de cargas n vías sobre balasto. La carga vertical puntual actuando sobre el carril se reparte a lo largo de tres traviesas consecutivas, (En el hormigón se reparte a 45º)'''
    Lx=lTrav+2*hTot*math.tan(angrepRad)
    Ly=2*distTrav
    pol=polygon(xCent=x_punt,yCent=y_punt,Lx=Lx,Ly=Ly)
    aux_set=sets.set_included_in_orthoPrism(preprocessor=prep,setInit=setBusq,prismBase=pol,prismAxis='Z',setName='aux_set'+nameToLoad)
    if aux_set.getNumElements==0:
        print 'OJO!! no encuentro elementos para repartir la carga ', nameToLoad
    areaSet=np.sum([e.getArea(False) for e in aux_set.elements])
    return loads.UniformLoadOnSurfaces(name=nameToLoad,xcSet=aux_set,loadVector=xc.Vector([0,0,-Qpunt/areaSet,0,0,0]),refSystem='Global')
Exemplo n.º 3
0
def qLinYsobreMontera(prep,setBusq,hMont,angrepRad,x_coord,y_inic,y_fin,qLin,nameToLoad):
    '''Carga repartida sobre el dintel debida a una carga en línea sobre la montera '''
    Lx=hMont*math.tan(angrepRad)
    Ly=y_fin-y_inic
    pol=polygon(xCent=x_coord,yCent=y_inic+Ly/2.0,Lx=Lx,Ly=Ly)
    aux_set=sets.set_included_in_orthoPrism(preprocessor=prep,setInit=setBusq,prismBase=pol,prismAxis='Z',setName='aux_set'+nameToLoad)
    if aux_set.getNumElements==0:
        print 'OJO!! no encuentro elementos para repartir la carga ', nameToLoad
    areaSet=np.sum([e.getArea(False) for e in aux_set.elements])
    return loads.UniformLoadOnSurfaces(name=nameToLoad,xcSet=aux_set,loadVector=xc.Vector([0,0,-qLin*Ly/areaSet,0,0,0]),refSystem='Global')
Exemplo n.º 4
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
Exemplo n.º 5
0
unifPavRoad = 2.35e3  # dead uniform load on the roadway [N/m2]
unifPavSide = 1.57e3  # dead uniform load on the sideways [N/m2]
linKerb = 2.35e3  # linear uniform load on kerbs [N/m]
linBarrier = 1.57e3  # linear uniform load due to barrier weight [N/m]

coef_tr_load = 0.9
qunif1_Trafmod1 = coef_tr_load * 9e3  #[N/m2] Load model 1, lane 1
Qpoint1_Trafmod1 = coef_tr_load * 300e3 / 2.0  #[N]  Load model  1, lane 1
qunif2_Trafmod1 = coef_tr_load * 2.5e3  #[N/m2] Load model 1, rest
Qpoint2_Trafmod1 = coef_tr_load * 200e3 / 2.0  #[N]  Load model  1, lane 1

#Inertial load (density*acceleration) applied to the elements in a set
grav = 9.81  #Gravity acceleration (m/s2)
overallSet.elemType = 'ShellMITC4'
selfWeight = loads.UniformLoadOnSurfaces(
    name='selfWeight',
    xcSet=overallSet,
    loadVector=xc.Vector([0.0, 0.0, -grav * 0.25 * 2500, 0, 0, 0]))

# Uniform loads applied on shell elements
#    name:       name identifying the load
#    xcSet:     set that contains the surfaces
#    loadVector: xc.Vector with the six components of the load:
#                xc.Vector([Fx,Fy,Fz,Mx,My,Mz]).
#    refSystem: reference system in which loadVector is defined:
#               'Local': element local coordinate system
#               'Global': global coordinate system (defaults to 'Global)
roadway.elemType = 'ShellMITC4'
deadLoadRoadway = loads.UniformLoadOnSurfaces(
    name='deadLoadRoadway',
    xcSet=roadway,
    loadVector=xc.Vector([0, 0, -unifPavRoad, 0, 0, 0]),
Exemplo n.º 6
0
selfWeight = loads.InertialLoad(name='selfWeight',
                                lstMeshSets=[deck_mesh, curb_mesh],
                                vAccel=xc.Vector([0.0, 0.0, -grav, 0, 0, 0]))

# Uniform loads applied on shell elements
#    name:       name identifying the load
#    xcSet:     set that contains the surfaces
#    loadVector: xc.Vector with the six components of the load:
#                xc.Vector([Fx,Fy,Fz,Mx,My,Mz]).
#    refSystem: reference system in which loadVector is defined:
#               'Local': element local coordinate system
#               'Global': global coordinate system (defaults to 'Global)

deadLoadRoadway = loads.UniformLoadOnSurfaces(
    name='deadLoadRoadway',
    xcSet=roadway,
    loadVector=xc.Vector([0, 0, -unifPavRoad, 0, 0, 0]),
    refSystem='Global')
deadLoadSideway = loads.UniformLoadOnSurfaces(
    name='deadLoadSideway',
    xcSet=sideway,
    loadVector=xc.Vector([0, 0, -unifPavSide, 0, 0, 0]),
    refSystem='Global')

# Uniform load applied to all the lines (not necessarily defined as lines
# for latter generation of beam elements, they can be lines belonging to
# surfaces for example) found in the xcSet
# The uniform load is introduced as point loads in the nodes
#     name:   name identifying the load
#     xcSet:  set that contains the lines
#     loadVector: xc.Vector with the six components of the load:
Exemplo n.º 7
0
for e in totalSet.elements:
    pos= e.getPosCentroid(True)
    if(pos.y<1.5):
        if(pos.z>1.5-0.4):
            impactOnHead.elements.append(e)
        else:
            if((pos.z<(0.75+0.2)) and (pos.z>(0.75-0.2))):
                impactOnBody.elements.append(e)

impactOnHead.fillDownwards()
impactOnBody.fillDownwards()

# ***ACTIONS***
impactUniformLoad= 300e3/1.5/0.4
# Impact on parapet head:
impactOnHeadLoad= loads.UniformLoadOnSurfaces(name= 'impactOnHeadLoad',xcSet=impactOnHead,loadVector=xc.Vector([impactUniformLoad,0,0]),refSystem='Global')
impactOnBodyLoad= loads.UniformLoadOnSurfaces(name= 'impactOnBodyLoad',xcSet=impactOnBody,loadVector=xc.Vector([impactUniformLoad,0,0]),refSystem='Global')
    
# ***LOAD CASES***
A1=lcases.LoadCase(preprocessor=prep,name="A1",loadPType="default",timeSType="constant_ts")
A1.create()
A1.addLstLoads([impactOnHeadLoad])

A2=lcases.LoadCase(preprocessor=prep,name="A2",loadPType="default",timeSType="constant_ts")
A2.create()
A2.addLstLoads([impactOnBodyLoad])

# ***LOAD COMBINATIONS***
combContainer= cc.CombContainer()  #Container of load combinations
# COMBINATIONS OF ACTIONS FOR ULTIMATE LIMIT STATES
combContainer.ULS.perm.add('ULSA1', '1.00*A1')
Exemplo n.º 8
0
QpuntBeams = loads.NodalLoad(name='QpuntBeams',
                             lstNod=nodPLoad,
                             loadVector=xc.Vector([0, 0, -Qbeam, 0, 0, 0]))

# Uniform loads applied on shell elements
#    name:       name identifying the load
#    xcSet:     set that contains the surfaces
#    loadVector: xc.Vector with the six components of the load:
#                xc.Vector([Fx,Fy,Fz,Mx,My,Mz]).
#    refSystem: reference system in which loadVector is defined:
#               'Local': element local coordinate system
#               'Global': global coordinate system (defaults to 'Global)

unifLoadDeck1 = loads.UniformLoadOnSurfaces(name='unifLoadDeck1',
                                            xcSet=decklv1,
                                            loadVector=xc.Vector(
                                                [0, 0, -qdeck1, 0, 0, 0]),
                                            refSystem='Global')
unifLoadDeck2 = loads.UniformLoadOnSurfaces(name='unifLoadDeck2',
                                            xcSet=decklv2,
                                            loadVector=xc.Vector(
                                                [0, 0, -qdeck2, 0, 0, 0]),
                                            refSystem='Global')

# Earth pressure applied to shell or beam elements
#     Attributes:
#     name:       name identifying the load
#     xcSet:      set that contains the elements to be loaded
#     soilData: instance of the class EarthPressureModel, with
#               the following attributes:
#                 zGround: global Z coordinate of ground level
Exemplo n.º 9
0
                                    murete_i_mesh, murete_d_mesh
                                ],
                                vAccel=xc.Vector([0.0, 0.0, -grav]))

# Uniform loads applied on shell elements
#    name:       name identifying the load
#    xcSet:     set that contains the surfaces
#    loadVector: xc.Vector with the six components of the load:
#                xc.Vector([Fx,Fy,Fz,Mx,My,Mz]).
#    refSystem: reference system in which loadVector is defined:
#               'Local': element local coordinate system
#               'Global': global coordinate system (defaults to 'Global)

# Camiones prueba de carga
sc_cam_eje1 = loads.UniformLoadOnSurfaces(name='sc_cam_eje1',
                                          xcSet=surf_eje1_set,
                                          loadVector=xc.Vector(
                                              [0, 0, -qunifeje1Cam, 0, 0, 0]))
sc_cam_eje2 = loads.UniformLoadOnSurfaces(name='sc_cam_eje2',
                                          xcSet=surf_eje2_set,
                                          loadVector=xc.Vector(
                                              [0, 0, -qunifeje2Cam, 0, 0, 0]))
sc_cam_eje3 = loads.UniformLoadOnSurfaces(name='sc_cam_eje3',
                                          xcSet=surf_eje3_set,
                                          loadVector=xc.Vector(
                                              [0, 0, -qunifeje3Cam, 0, 0, 0]))
sc_cam_eje4 = loads.UniformLoadOnSurfaces(name='sc_cam_eje4',
                                          xcSet=surf_eje4_set,
                                          loadVector=xc.Vector(
                                              [0, 0, -qunifeje4Cam, 0, 0, 0]))
# Balasto y relleno sobre dintel
cp_dintel = loads.UniformLoadOnSurfaces(
Exemplo n.º 10
0
# Uniform loads applied on shell elements
#    name:       name identifying the load
#    xcSet:     set that contains the surfaces
#    loadVector: xc.Vector with the six components of the load: 
#                xc.Vector([Fx,Fy,Fz,Mx,My,Mz]).
#    refSystem: reference system in which loadVector is defined:
#               'Local': element local coordinate system
#               'Global': global coordinate system (defaults to 'Global)

#     Dead load.
#relleno
Hrell_tali1=(Hrelli/3.)/2.
Hrell_tali2=Hrell_tali1+Hrelli/3.
Hrell_tali3=Hrell_tali2+Hrelli/3.
cm_rell_tali1=loads.UniformLoadOnSurfaces(name= 'cm_rell_tali1',xcSet=rell_tali1_set,loadVector= xc.Vector([0,0,-grav*densrell*Hrell_tali1,0,0,0]),refSystem='Global')
cm_rell_tali2=loads.UniformLoadOnSurfaces(name= 'cm_rell_tali2',xcSet=rell_tali2_set,loadVector= xc.Vector([0,0,-grav*densrell*Hrell_tali2,0,0,0]),refSystem='Global')
cm_rell_tali3=loads.UniformLoadOnSurfaces(name= 'cm_rell_tali3',xcSet=rell_tali3_set,loadVector= xc.Vector([0,0,-grav*densrell*Hrell_tali3,0,0,0]),refSystem='Global')

cm_rell_i=loads.UniformLoadOnSurfaces(name= 'cm_rell_i',xcSet=rell_i_set,loadVector= xc.Vector([0,0,-grav*densrell*Hrelli,0,0,0]))
cm_rell_d=loads.UniformLoadOnSurfaces(name= 'cm_rell_d',xcSet=rell_d_set,loadVector= xc.Vector([0,0,-grav*densrell*Hrelld,0,0,0]))

Hrell_tald1=(Hrelld/3.)/2.
Hrell_tald2=Hrell_tald1+Hrelld/3.
Hrell_tald3=Hrell_tald2+Hrelld/3.
cm_rell_tald1=loads.UniformLoadOnSurfaces(name= 'cm_rell_tald1',xcSet=rell_tald1_set,loadVector= xc.Vector([0,0,-grav*densrell*Hrell_tald1,0,0,0]),refSystem='Global')
cm_rell_tald2=loads.UniformLoadOnSurfaces(name= 'cm_rell_tald2',xcSet=rell_tald2_set,loadVector= xc.Vector([0,0,-grav*densrell*Hrell_tald2,0,0,0]),refSystem='Global')
cm_rell_tald3=loads.UniformLoadOnSurfaces(name= 'cm_rell_tald3',xcSet=rell_tald3_set,loadVector= xc.Vector([0,0,-grav*densrell*Hrell_tald3,0,0,0]),refSystem='Global')


#balasto        
Exemplo n.º 11
0
    ijkRange=trafLoadSit1Lane3Hw_rg, setName='trafLoadSit1Lane3HwSet')
trafLoadSit1RestHwSet = gridGeom.getSetSurfOneRegion(
    ijkRange=trafLoadSit1RestHw_rg, setName='trafLoadSit1RestHwSet')
trafLoadSit2Lane1HwSet = gridGeom.getSetSurfOneRegion(
    ijkRange=trafLoadSit2Lane1Hw_rg, setName='trafLoadSit2Lane1HwSet')
trafLoadSit2Lane2HwSet = gridGeom.getSetSurfOneRegion(
    ijkRange=trafLoadSit2Lane2Hw_rg, setName='trafLoadSit2Lane2HwSet')
trafLoadSit2Lane3HwSet = gridGeom.getSetSurfOneRegion(
    ijkRange=trafLoadSit2Lane3Hw_rg, setName='trafLoadSit2Lane3HwSet')
trafLoadSit2RestHwSet = gridGeom.getSetSurfOneRegion(
    ijkRange=trafLoadSit2RestHw_rg, setName='trafLoadSit2RestHwSet')
trafLoadSit12Lane1SrSet = gridGeom.getSetSurfOneRegion(
    ijkRange=trafLoadSit12Lane1Sr_rg, setName='trafLoadSit12Lane1SrSet')

deadLoadAsphalt = loads.UniformLoadOnSurfaces(
    name='deadLoadAsphalt',
    xcSet=deadLoadAsphaltSet,
    loadVector=xc.Vector([0, 0, -grav * asphaltDens * asphaltTh]))
deadLoadSubbSr = loads.UniformLoadOnSurfaces(
    name='deadLoadSubbSr',
    xcSet=deadLoadSubbSrSet,
    loadVector=xc.Vector([0, 0, -gammaSubb * grav * subbThSr]))
deadLoadGuardrail = loads.UniformLoadOnSurfaces(
    name='deadLoadGuardrail',
    xcSet=deadLoadGuardrailSet,
    loadVector=xc.Vector([0, 0, -guardRailWght / (yList[2] - yList[1])]))
trafLoadSit1Lane1Hw = loads.UniformLoadOnSurfaces(name='trafLoadSit1Lane1Hw',
                                                  xcSet=trafLoadSit1Lane1HwSet,
                                                  loadVector=xc.Vector(
                                                      [0, 0, -alphq1hw * qk1]))
trafLoadSit1Lane2Hw = loads.UniformLoadOnSurfaces(name='trafLoadSit1Lane2Hw',
                                                  xcSet=trafLoadSit1Lane2HwSet,
Exemplo n.º 12
0
#                       ***ACTIONS***
#Inertial load (density*acceleration) applied to the elements in a set
selfWeight = loads.InertialLoad(name='selfWeight',
                                lstMeshSets=lstSups,
                                vAccel=xc.Vector([0.0, 0.0, -grav]))

# Peso del relleno sobre la zapata
zapTrasdos_rg = gut.def_rg_cooLim(XYZLists, Xmurestr, (yMurEstr, yZap), (0, 0))
zapTrasdos = gridGeom.getSetSurfOneRegion(ijkRange=zapTrasdos_rg,
                                          nameSet='zapTrasdos')
zapTrasdos.fillDownwards()

rell_zap = loads.UniformLoadOnSurfaces(
    name='rell_zap',
    xcSet=zapTrasdos,
    loadVector=xc.Vector(
        [0, 0, -grav * densrell * (zGround - zZap - cantoZap / 2.)]))

SCep_zap = loads.UniformLoadOnSurfaces(name='rell_zap',
                                       xcSet=zapTrasdos,
                                       loadVector=xc.Vector([0, 0,
                                                             -qunifTerr]))

# empuje del terreno
soil = ep.EarthPressureModel(K=K0,
                             zGround=zGround,
                             gammaSoil=densrell * grav,
                             zWater=-10.0,
                             gammaWater=grav)
qunifTerr = ep.StripLoadOnBackfill(qLoad=qunifTerr,
Exemplo n.º 13
0
                                              setName='GuardrailSet')
Lane1Sit1Set = gridGeom.getSetSurfOneRegion(ijkRange=Lane1Sit1Set_rg,
                                            setName='Lane1Sit1Set')
Lane1Sit2Set = gridGeom.getSetSurfOneRegion(ijkRange=Lane1Sit2Set_rg,
                                            setName='Lane1Sit2Set')
Lane2Set = gridGeom.getSetSurfOneRegion(ijkRange=Lane2Set_rg,
                                        setName='Lane2Set')
Lane3Sit1Set = gridGeom.getSetSurfOneRegion(ijkRange=Lane3Sit1Set_rg,
                                            setName='Lane3Sit1Set')
Lane3Sit2Set = gridGeom.getSetSurfOneRegion(ijkRange=Lane3Sit2Set_rg,
                                            setName='Lane3Sit2Set')
RestSet = gridGeom.getSetSurfMultiRegion(lstIJKRange=RestSet_rg,
                                         setName='RestSet')

deadLoadAsphalt = loads.UniformLoadOnSurfaces(
    name='deadLoadAsphalt',
    xcSet=AsphaltSet,
    loadVector=xc.Vector([0, 0, -grav * asphaltDens * asphaltTh]))
deadLoadGuardrail = loads.UniformLoadOnSurfaces(
    name='deadLoadGuardrail',
    xcSet=GuardrailSet,
    loadVector=xc.Vector([0, 0, -guardRailWght / (yList[2] - yList[1])]))
trafLoadSit1Lane1 = loads.UniformLoadOnSurfaces(name='trafLoadSit1Lane1',
                                                xcSet=Lane1Sit1Set,
                                                loadVector=xc.Vector(
                                                    [0, 0, -alphq1act * qk1]))
trafLoadSit1Lane2 = loads.UniformLoadOnSurfaces(name='trafLoadSit1Lane2',
                                                xcSet=Lane2Set,
                                                loadVector=xc.Vector(
                                                    [0, 0, -alphq2act * qk2]))
trafLoadSit1Lane3 = loads.UniformLoadOnSurfaces(name='trafLoadSit1Lane3',
                                                xcSet=Lane3Sit1Set,
Exemplo n.º 14
0
#Inertial load (density*acceleration) applied to the elements in a set
grav=9.81 #Gravity acceleration (m/s2)
selfWeight= loads.InertialLoad(name='selfWeight', lstMeshSets=[hastIzqInf_mesh,hastIzqCent_mesh,hastIzqSup_mesh,hastDerInf_mesh,hastDerCent_mesh,hastDerSup_mesh,losCimCent_mesh,losCimExt_mesh,dintCent_mesh,dintExt_mesh,murete_i_mesh,murete_d_mesh], vAccel=xc.Vector( [0.0,0.0,-grav]))

# Uniform loads applied on shell elements
#    name:       name identifying the load
#    xcSet:     set that contains the surfaces
#    loadVector: xc.Vector with the six components of the load: 
#                xc.Vector([Fx,Fy,Fz,Mx,My,Mz]).
#    refSystem: reference system in which loadVector is defined:
#               'Local': element local coordinate system
#               'Global': global coordinate system (defaults to 'Global)

#     Dead load.
#balasto        
cm_bal_tali=loads.UniformLoadOnSurfaces(name= 'cm_bal_tali',xcSet=bal_tali_set,loadVector= xc.Vector([0,0,-grav*densbal*Hbali/2]))
cm_bal_i=loads.UniformLoadOnSurfaces(name= 'cm_bal_i',xcSet=bal_i_set,loadVector= xc.Vector([0,0,-grav*densbal*Hbali,0,0,0]))
cm_bal_d=loads.UniformLoadOnSurfaces(name= 'cm_bal_d',xcSet=bal_d_set,loadVector= xc.Vector([0,0,-grav*densbal*Hbald,0,0,0]))
cm_bal_tald=loads.UniformLoadOnSurfaces(name= 'cm_bal_tald',xcSet=bal_tald_set,loadVector= xc.Vector([0,0,-grav*densbal*Hbald/2,0,0,0]))
            
#tren de cargas carreteras sobre losa cimentación
sc_unif_carr=loads.UniformLoadOnSurfaces(name='sc_unif_carr',xcSet=losc_int_set,loadVector= xc.Vector([0,0,-cunifCarr,0,0,0]))

#carga no ferroviaria en paseos
sc_paseos=loads.UniformLoadOnSurfaces(name='sc_paseos',xcSet=paseos_set,loadVector= xc.Vector([0,0,-qnferr,0,0,0]))


# Superficie de reparto sobre el dintel de las cargas puntuales del tren de cargas
# en cada carril
angrep_rad=math.radians(angrep)
Qptren_carr=nQptren_carr*Qptren