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 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')
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')
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
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]),
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:
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')
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
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(
# 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
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,
# ***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,
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,
#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