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
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
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,
# 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)
# 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