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 wind_LC(lcName,
            deckLineSet,
            vectWindDeck,
            windwardPileSet,
            vectWindwardPile,
            leewardPileSet=None,
            vectLeewardPile=None):
    '''Return the dead load case (asphalt, sidewalk, barriers, ...)

    :param lcName: load case name
    :param deckLineSet: set of lines to apply wind on deck.
    :param vectWindDeck: components [vx,vy] of the  uniform linear load due to wind on deck.
    :param windwardPileSet:set of lines to apply on piles windward.
    :param vectWindwardPile: components [vx,vy] of the  uniform linear load due to wind on piles (windward side).
    :param leewardPileSet:set of lines to apply wind on pilesleeward (defaults to None).
    :param vectLeewardPile: components [vx,vy] of the  uniform linear load due to wind on piles (leeward side) (defaults to None).
    '''
    preprocessor = deckLineSet.getPreprocessor
    lc = lcases.LoadCase(preprocessor, lcName, "default", "constant_ts")
    lc.create()
    #add linear loads
    lc.addLstLoads([
        loads.UniformLoadOnLines(name=lcName + 'deck',
                                 xcSet=deckLineSet,
                                 loadVector=xc.Vector([
                                     vectWindDeck[0], vectWindDeck[1], 0, 0, 0,
                                     0
                                 ]))
    ])
    lc.addLstLoads([
        loads.UniformLoadOnLines(name=lcName + 'pilewindward',
                                 xcSet=windwardPileSet,
                                 loadVector=xc.Vector([
                                     vectWindwardPile[0], vectWindwardPile[1],
                                     0, 0, 0, 0
                                 ]))
    ])
    if leewardPileSet:
        lc.addLstLoads([
            loads.UniformLoadOnLines(name=lcName + 'pileleeward',
                                     xcSet=leewardPileSet,
                                     loadVector=xc.Vector([
                                         vectLeewardPile[0],
                                         vectLeewardPile[1], 0, 0, 0, 0
                                     ]))
        ])
    return lc
Exemplo n.º 3
0
    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:
#                 xc.Vector([Fx,Fy,Fz,Mx,My,Mz]).

deadLoadKerb = loads.UniformLoadOnLines(name='deadLoadKerb',
                                        xcSet=kerbs,
                                        loadVector=xc.Vector(
                                            [0, 0, -linKerb, 0, 0, 0]))
deadLoadBarr = loads.UniformLoadOnLines(name='deadLoadKerb',
                                        xcSet=barrs,
                                        loadVector=xc.Vector(
                                            [0, 0, -linBarrier, 0, 0, 0]))

# *Traffic loads
# Sets definition
poly_lane_Bern = geom.Polygon2d()
poly_lane_Bern.appendVertex(geom.Pos2d(xList_deck[1], 0))
poly_lane_Bern.appendVertex(geom.Pos2d(xList_deck[1], yList_deck[lastYpos]))
poly_lane_Bern.appendVertex(geom.Pos2d(xList_deck[1] + 3,
                                       yList_deck[lastYpos]))
poly_lane_Bern.appendVertex(geom.Pos2d(xList_deck[1] + 3, 0))
lane_Bern = sets.set_included_in_orthoPrism(preprocessor=prep,
Exemplo n.º 4
0
#     nabla: strain gradient in the thickness of the elements:
#            nabla=espilon/thickness

#strGrad=loads.StrainLoadOnShells(name='strGrad', xcSet=deck,epsilon=0.001)

# 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:
#                 xc.Vector([Fx,Fy,Fz,Mx,My,Mz]).

unifLoadLinDeck2 = loads.UniformLoadOnLines(name='unifLoadLinDeck2',
                                            xcSet=decklv2,
                                            loadVector=xc.Vector(
                                                [0, qLinDeck2, 0, 0, 0, 0]))

# Point load distributed over the shell elements in xcSet whose
# centroids are inside the prism defined by the 2D polygon prismBase
# and one global axis.
# syntax: PointLoadOverShellElems(name, xcSet, loadVector,prismBase,prismAxis,refSystem):
#    name: name identifying the load
#    xcSet: set that contains the shell elements
#    loadVector: xc vector with the six components of the point load:
#                   xc.Vector([Fx,Fy,Fz,Mx,My,Mz]).
#    prismBase: 2D polygon that defines the n-sided base of the prism.
#                   The vertices of the polygon are defined in global
#                   coordinates in the following way:
#                      - for X-axis-prism: (y,z)
#                      - for Y-axis-prism: (x,z)
Exemplo n.º 5
0
  # canal de cables
# cm_can_cabl=loads.UniformLoadOnBeams(name='cm_can_cabl', xcSet=muretes, loadVector=xc.Vector([0,0,-ql_can_cabl,0,0,0]),refSystem='Global')
# # descarrilamiento en situación de proyecto 2
# sc_descarr_2=loads.UniformLoadOnBeams(name='sc_descarr_2', xcSet=murete_d, loadVector=xc.Vector([0,0,-qdesc2,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: 
#                 xc.Vector([Fx,Fy,Fz,Mx,My,Mz]).

# canal de cables
cm_can_cabl=loads.UniformLoadOnLines(name='cm_can_cabl',xcSet=muretes,loadVector=xc.Vector([0,0,-ql_can_cabl,0,0,0]))
# descarrilamiento en situación de proyecto 2
sc_descarr_2=loads.UniformLoadOnLines(name='sc_descarr_2',xcSet=murete_d,loadVector=xc.Vector([0,0,-qdesc2,0,0,0]))


# Load acting on one or several nodes
#     name:       name identifying the load
#     lstNod:     list of nodes  on which the load is applied
#     loadVector: xc.Vector with the six components of the load: 
#                 xc.Vector([Fx,Fy,Fz,Mx,My,Mz]).

#  cargas puntuales tren de carreteras
def trafficPointLoads(centerTruck):
    xc=centerTruck.x
    yc=centerTruck.y
    zc=centerTruck.z