Пример #1
0
'''

from __future__ import print_function
from __future__ import division

from actions.earth_pressure import earth_pressure as ep


__author__= "Ana Ortega (AO_O)"
__copyright__= "Copyright 2019, AO_O"
__license__= "GPL"
__version__= "3.0"
__email__= "*****@*****.**"


soil01=ep.EarthPressureModel(zGround=50, zBottomSoils=[40,30,20,10,-10],KSoils=[1.1,1.2,1.3,1.4,1.5],gammaSoils=[2,2.1,2.2,2.3,2.4], zWater=25, gammaWater=1)

pres01_45=soil01.getPressure(45)
pres01_40=soil01.getPressure(40)
pres01_35=soil01.getPressure(35)
pres01_30=soil01.getPressure(30)
pres01_25=soil01.getPressure(25)
pres01_20=soil01.getPressure(20)
pres01_15=soil01.getPressure(15)
pres01_10=soil01.getPressure(10)
pres01_5=soil01.getPressure(5)
pres01_0=soil01.getPressure(0)

pres01_45_tg=1.1*2*5
pres01_40_tg=1.1*2*10
pres01_35_tg=pres01_40_tg+1.2*2.1*5
Пример #2
0
#Self weight.
selfWeight= loadCaseManager.setCurrentLoadCase('selfWeight')
gravity=9.81 #Aceleración de la gravedad (m/s2)
wall.createSelfWeightLoads(rho= 2500,grav= gravity)

#Dead load.
#  Dead load. Earth self weight.
gSoil= backFillSoilModel.rho*gravity
frontFillDepth= 1.0
deadLoad= loadCaseManager.setCurrentLoadCase('deadLoad')
wall.createDeadLoad(heelFillDepth= wall.stemHeight,toeFillDepth= frontFillDepth,rho= backFillSoilModel.rho, grav= gravity)

#  Dead load. Earth pressure.
Ka= backFillSoilModel.Ka()
zGroundBackFill= 0.0 #Back fill
backFillPressureModel=  earth_pressure.EarthPressureModel(K= Ka, zGround= zGroundBackFill, gammaSoil= gSoil, zWater= -1e3, gammaWater= 1000*gravity)
wall.createBackFillPressures(backFillPressureModel, Delta= backFillDelta)
zGroundFrontFill= zGroundBackFill-wall.stemHeight+frontFillDepth #Front fill
frontFillPressureModel=  earth_pressure.EarthPressureModel(K= Ka, zGround= zGroundFrontFill, gammaSoil= gSoil, zWater= -1e3, gammaWater= 1000*gravity)
wall.createFrontFillPressures(frontFillPressureModel)

#Live load. Crowd loading.
crowdLoad= loadCaseManager.setCurrentLoadCase('crowdLoad')
crowdEarthPressure= earth_pressure.StripLoadOnBackfill(qLoad= 4e3,zLoad= 0.0, distWall= 2.5/2.0, stripWidth= 2.5)
wall.createPressuresFromLoadOnBackFill(crowdEarthPressure, Delta= backFillDelta)
wall.createLoadOnTopOfStem(xc.Vector([-3e3,0.0,3.6e3]))

#Live load. Rail traffic load.
distRailCLWall= 4.12 #Distance from the center line of the rail track to the wall.  
railLoad= loadCaseManager.setCurrentLoadCase('railLoad')
railLoadEarthPressure= earth_pressure.StripLoadOnBackfill(qLoad= 62.5e3,zLoad= -0.6, distWall= distRailCLWall, stripWidth= 2.0)
Пример #3
0
#Actions.
loadCaseManager= load_cases.LoadCaseManager(preprocessor)
loadCaseNames= ['selfWeight','earthPress','earthPressAcc']
loadCaseManager.defineSimpleLoadCases(loadCaseNames)

#Self weight.
selfWeight= loadCaseManager.setCurrentLoadCase('selfWeight')
wall.createSelfWeightLoads(rho= concrete.density(),grav= gravity)

# Earth pressure. (drainage ok)
gSoil= backFillSoilModel.rho*gravity
earthPress= loadCaseManager.setCurrentLoadCase('earthPress')
wall.createDeadLoad(heelFillDepth= wall.stemHeight,toeFillDepth= frontFillDepth,rho= backFillSoilModel.rho, grav= gravity)
Ka= backFillSoilModel.Ka()
backFillPressureModel=  earth_pressure.EarthPressureModel(zGround= zGroundBackFill, zBottomSoils=[-1e3],KSoils= [Ka], gammaSoils= [gSoil], zWater= -1e3, gammaWater= 1000*gravity,qUnif=0)
wall.createBackFillPressures(backFillPressureModel, Delta= backFillDelta)
zGroundFrontFill= zGroundBackFill-wall.stemHeight+frontFillDepth #Front fill
frontFillPressureModel=  earth_pressure.EarthPressureModel(zGround= zGroundFrontFill, zBottomSoils=[-1e3],KSoils= [Ka], gammaSoils= [gSoil], zWater= -1e3, gammaWater= 1000*gravity,qUnif=0)
wall.createFrontFillPressures(frontFillPressureModel)

#Accidental: earth pressure failure drainage system.
gSoil= backFillSoilModel.rho*gravity
earthPressAcc= loadCaseManager.setCurrentLoadCase('earthPressAcc')
wall.createDeadLoad(heelFillDepth= wall.stemHeight,toeFillDepth= frontFillDepth,rho= backFillSoilModel.rho, grav= gravity)
Ka= backFillSoilModel.Ka()
backFillPressureModelAcc=  earth_pressure.EarthPressureModel(zGround= zGroundBackFill, zBottomSoils=[-1e3],KSoils= [Ka], gammaSoils= [gSoil], zWater=zGroundBackFill-stemHeight+HwaterAcc, gammaWater= 1000*gravity,qUnif=0)
wall.createBackFillPressures(backFillPressureModelAcc, Delta= backFillDelta)
zGroundFrontFill= zGroundBackFill-wall.stemHeight+frontFillDepth #Front fill
frontFillPressureModel=  earth_pressure.EarthPressureModel(zGround= zGroundFrontFill, zBottomSoils=[-1e3],KSoils= [Ka], gammaSoils= [gSoil], zWater= -1e3, gammaWater= 1000*gravity,qUnif=0)
wall.createFrontFillPressures(frontFillPressureModel)
Пример #4
0
#                 zGround: global Z coordinate of ground level
#                 zBottomSoils: list of global Z coordinates of the bottom level
#                   for each soil (from top to bottom)
#                 KSoils: list of pressure coefficients for each soil (from top
#                   to bottom)
#                 gammaSoils: list of weight density for each soil (from top to
#                   bottom)
#                 zWater: global Z coordinate of groundwater level
#                   (if zGroundwater<minimum z of model => there is no groundwater)
#                 gammaWater: weight density of water
#                 qUnif: uniform load over the backfill surface (defaults to 0)
#     vDir: unit xc vector defining pressures direction

soil01 = ep.EarthPressureModel(zGround=zList[lastZpos] - 3,
                               zBottomSoils=[-10],
                               KSoils=[KearthPress],
                               gammaSoils=[densSoil * grav],
                               zWater=0,
                               gammaWater=densWater * grav)
earthPressLoadWall = loads.EarthPressLoad(name='earthPressLoadWall',
                                          xcSet=wall,
                                          soilData=soil01,
                                          vDir=xc.Vector([0, 1, 0]))

earthPressLoadColumn = loads.EarthPressLoad(name='earthPressLoadColumn',
                                            xcSet=columnZconcr,
                                            soilData=soil01,
                                            vDir=xc.Vector([0, 1, 0]))

soil02 = ep.EarthPressureModel(zGround=zList[lastZpos],
                               zBottomSoils=[-10],
                               KSoils=[0.001],
Пример #5
0
murd_z2_set=gridGeom.getSetSurfMultiRegion(lstIJKRange=[gm.IJKRange((pxmnp1,pyhast2,0),(pxmxp1,pyhast2,lastZpos)),gm.IJKRange((pxmnp2,pyhast2,0),(pxmxp2,pyhast2,lastZpos))],setName='murd_z2_set')
murd_z3_set=gridGeom.getSetSurfMultiRegion(lstIJKRange=[gm.IJKRange((pxmxp1,pyhast2,0),(pxcarr3-1,pyhast2,lastZpos))],setName='murd_z3_set')
murd_z4_set=gridGeom.getSetSurfMultiRegion(lstIJKRange=[gm.IJKRange((pxcarr3-1,pyhast2,0),(pxmnp2,pyhast2,lastZpos))],setName='murd_z4_set')

# empuje del terreno
zGroundZ1_1=zList[lastZpos]+deckTh/2.0+(Hrell_tali1+Hrell_tald1)/2.0
zGroundZ1_2=zList[lastZpos]+deckTh/2.0+(Hrell_tali2+Hrell_tald2)/2.0
zGroundZ1_3=zList[lastZpos]+deckTh/2.0+(Hrell_tali3+Hrell_tald3)/2.0

zGroundZ2=zList[lastZpos]+deckTh/2.0+(Hrelli+Hrelld)/2.0
zGroundZ3=zList[lastZpos]+deckTh/2.0+Hrelli+Hbali
zGroundZ4=zList[lastZpos]+deckTh/2.0+Hrelld+Hbald
zGroundZ4_desbalastado=zList[lastZpos]+deckTh/2.0+Hrelld

soilZ1_1=ep.EarthPressureModel( zGround=zGroundZ1_1,zBottomSoils=[-10], KSoils=[K0],gammaSoils=[densrell*grav], zWater=-10.0, gammaWater=grav)
soilZ1_2=ep.EarthPressureModel(zGround=zGroundZ1_2,zBottomSoils=[-10], KSoils=[K0], gammaSoils=[densrell*grav], zWater=-10.0, gammaWater=grav)
soilZ1_3=ep.EarthPressureModel(zGround=zGroundZ1_3, zBottomSoils=[-10], KSoils=[K0],gammaSoils=[densrell*grav], zWater=-10.0, gammaWater=grav)

soilZ2=ep.EarthPressureModel(zGround=zGroundZ2, zBottomSoils=[-10], KSoils=[K0],gammaSoils=[densrell*grav], zWater=0, gammaWater=0)
soilZ3=ep.EarthPressureModel(zGround=zGroundZ3, zBottomSoils=[-10], KSoils=[K0],gammaSoils=[densrell*grav], zWater=-10, gammaWater=grav)
soilZ4=ep.EarthPressureModel(zGround=zGroundZ4, zBottomSoils=[-10], KSoils=[K0],gammaSoils=[densrell*grav], zWater=-10, gammaWater=0)
soilZ4_desbal=ep.EarthPressureModel(zGround=zGroundZ4_desbalastado, zBottomSoils=[-10], KSoils=[K0],gammaSoils=[densrell*grav], zWater=-10, gammaWater=grav)

ep_muri_z1_1= loads.EarthPressLoad(name= 'ep_muri_z1_1', xcSet=muri_z1_1_set,soilData=soilZ1_1, vDir=xc.Vector([0,1,0]))
ep_muri_z1_2= loads.EarthPressLoad(name= 'ep_muri_z1_2', xcSet=muri_z1_2_set,soilData=soilZ1_2, vDir=xc.Vector([0,1,0]))
ep_muri_z1_3= loads.EarthPressLoad(name= 'ep_muri_z1_3', xcSet=muri_z1_3_set,soilData=soilZ1_3, vDir=xc.Vector([0,1,0]))

ep_muri_z2= loads.EarthPressLoad(name= 'ep_muri_z2', xcSet=muri_z2_set,soilData=soilZ2, vDir=xc.Vector([0,1,0]))
ep_muri_z3= loads.EarthPressLoad(name= 'ep_muri_z3', xcSet=muri_z3_set,soilData=soilZ3, vDir=xc.Vector([0,1,0]))
ep_muri_z4= loads.EarthPressLoad(name= 'ep_muri_z4', xcSet=muri_z4_set,soilData=soilZ4, vDir=xc.Vector([0,1,0]))
Пример #6
0
#   muro izquierdo
muri_z1_set = gridGeom.getSetSurfMultiRegion(
    lstIJKRange=[gm.IJKRange((0, 0, 0), (lastXpos, 0, lastZpos))],
    setName='muri_z1_set')
#   muro derecho
murd_z1_set = gridGeom.getSetSurfMultiRegion(lstIJKRange=[
    gm.IJKRange((0, lastYpos, 0), (lastXpos, lastYpos, lastZpos))
],
                                             setName='murd_z1_set')

# empuje del terreno
zGroundZ1 = zList[lastZpos] + deckTh / 2.0

soilZ1 = ep.EarthPressureModel(zGround=zGroundZ1,
                               zBottomSoils=[-10],
                               KSoils=[K0],
                               gammaSoils=[densrell * grav],
                               zWater=-10.0,
                               gammaWater=grav)

ep_muri_z1 = loads.EarthPressLoad(name='ep_muri_z1',
                                  xcSet=muri_z1_set,
                                  soilData=soilZ1,
                                  vDir=xc.Vector([0, 1, 0]))

ep_murd_z1 = loads.EarthPressLoad(name='ep_murd_z1',
                                  xcSet=murd_z1_set,
                                  soilData=soilZ1,
                                  vDir=xc.Vector([0, -1, 0]))
#    ***LOAD CASES***
# G1: Peso propio
G1 = lcases.LoadCase(preprocessor=prep,
Пример #7
0
#     Attributes:
#     name:       name identifying the load
#     xcSet:      set that contains the surfaces to be loaded
#     EarthPressureModel: instance of the class EarthPressureModel, with
#                 the following attributes:
#                   K:Coefficient of pressure
#                   zGround:global Z coordinate of ground level
#                   gammaSoil: weight density of soil
#                   zWater: global Z coordinate of groundwater level
#                           (if zGroundwater<minimum z of model => there is no groundwater)
#                   gammaWater: weight density of water
#     vDir: unit xc vector defining pressures direction

soil01 = ep.EarthPressureModel(zGround=zList[lastZpos] + asphaltTh,
                               zBottomSoils=[-10],
                               KSoils=[KearthPress],
                               gammaSoils=[densSoil * grav],
                               zWater=-10.0,
                               gammaWater=densWater * grav)
leftWall = leftDownWall + leftUpWall
rightWall = rightDownWall + rightUpWall
earthPressLoadleftWall = loads.EarthPressLoad(name='earthPressLoadleftWall',
                                              xcSet=leftWall,
                                              soilData=soil01,
                                              vDir=xc.Vector([1, 0, 0]))
earthPressLoadrightWall = loads.EarthPressLoad(name='earthPressLoadrightWall',
                                               xcSet=rightWall,
                                               soilData=soil01,
                                               vDir=xc.Vector([-1, 0, 0]))
earthPressLoadmidWall = loads.EarthPressLoad(
    name='earthPressLoadmidWall',
    xcSet=midWall,
Пример #8
0
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,
                                   zLoad=zGround,
                                   distWall=0,
                                   stripWidth=10)

ep_aleti = loads.EarthPressLoad(name='ep_aleti',
                                xcSet=aleti,
                                soilData=soil,
                                vDir=xc.Vector([-1, 0, 0]))
ep_aletd = loads.EarthPressLoad(name='ep_aletd',
                                xcSet=aletd,
                                soilData=soil,
                                vDir=xc.Vector([1, 0, 0]))
Пример #9
0
#     Attributes:
#     name:       name identifying the load
#     xcSet:      set that contains the surfaces to be loaded
#     EarthPressureModel: instance of the class EarthPressureModel, with
#                 the following attributes:
#                   K:Coefficient of pressure
#                   zGround:global Z coordinate of ground level
#                   gammaSoil: weight density of soil
#                   zWater: global Z coordinate of groundwater level
#                           (if zGroundwater<minimum z of model => there is no groundwater)
#                   gammaWater: weight density of water
#     vDir: unit xc vector defining pressures direction

soil01 = ep.EarthPressureModel(K=KearthPress,
                               zGround=zList[lastZpos] + asphaltTh,
                               gammaSoil=densSoil * grav,
                               zWater=-10.0,
                               gammaWater=densWater * grav)
leftWall = leftDownWall + leftUpWall
rightWall = rightDownWall + rightUpWall
earthPressLoadleftWall = loads.EarthPressLoad(name='earthPressLoadleftWall',
                                              xcSet=leftWall,
                                              soilData=soil01,
                                              vDir=xc.Vector([1, 0, 0]))
earthPressLoadrightWall = loads.EarthPressLoad(name='earthPressLoadrightWall',
                                               xcSet=rightWall,
                                               soilData=soil01,
                                               vDir=xc.Vector([-1, 0, 0]))
earthPressLoadmidWall = loads.EarthPressLoad(
    name='earthPressLoadmidWall',
    xcSet=midWall,
Пример #10
0
#Self weight.
selfWeight= loadCaseManager.setCurrentLoadCase('selfWeight')
gravity=9.81 #Aceleración de la gravedad (m/s2)
wall.createSelfWeightLoads(rho= 2500,grav= gravity)

#Dead load.
#  Dead load. Earth self weight.
gSoil= backFillSoilModel.rho*gravity
frontFillDepth= 1.0
deadLoad= loadCaseManager.setCurrentLoadCase('deadLoad')
wall.createDeadLoad(heelFillDepth= wall.stemHeight,toeFillDepth= frontFillDepth,rho= backFillSoilModel.rho, grav= gravity)

#  Dead load. Earth pressure.
Ka= backFillSoilModel.Ka()
zGroundBackFill= 0.0 #Back fill
backFillPressureModel=  earth_pressure.EarthPressureModel( zGround= zGroundBackFill, zBottomSoils=[-10],KSoils= [Ka],gammaSoils= [gSoil], zWater= -1e3, gammaWater= 1000*gravity)
wall.createBackFillPressures(backFillPressureModel, Delta= backFillDelta)
zGroundFrontFill= zGroundBackFill-wall.stemHeight+frontFillDepth #Front fill
frontFillPressureModel=  earth_pressure.EarthPressureModel(zGround= zGroundFrontFill, zBottomSoils=[-10],KSoils= [Ka], gammaSoils= [gSoil], zWater= -1e3, gammaWater= 1000*gravity)
wall.createFrontFillPressures(frontFillPressureModel)

#Live load. Crowd loading.
crowdLoad= loadCaseManager.setCurrentLoadCase('crowdLoad')
crowdEarthPressure= earth_pressure.StripLoadOnBackfill(qLoad= 4e3,zLoad= 0.0, distWall= 2.5/2.0, stripWidth= 2.5)
wall.createPressuresFromLoadOnBackFill(crowdEarthPressure, Delta= backFillDelta)
wall.createLoadOnTopOfStem(xc.Vector([-3e3,0.0,3.6e3]))

#Live load. Rail traffic load.
distRailCLWall= 4.12 #Distance from the center line of the rail track to the wall.  
railLoad= loadCaseManager.setCurrentLoadCase('railLoad')
railLoadEarthPressure= earth_pressure.StripLoadOnBackfill(qLoad= 62.5e3,zLoad= -0.6, distWall= distRailCLWall, stripWidth= 2.0)
Пример #11
0
# Earth pressure applied to shell or beam elements
#     Attributes:
#     name:       name identifying the load
#     xcSet:      set that contains the elements to be loaded
#     EarthPressureModel: instance of the class EarthPressureModel, with 
#                 the following attributes:
#                   K:Coefficient of pressure
#                   zGround:global Z coordinate of ground level
#                   gammaSoil: weight density of soil 
#                   zWater: global Z coordinate of groundwater level 
#                   (if zGroundwater<minimum z of model => there is no groundwater)
#                   gammaWater: weight density of water
#     if EarthPressureModel==None no earth thrust is considered
#     vDir: unit xc vector defining pressures direction

soil01=ep.EarthPressureModel(K=KearthPress, zGround=zList[lastZpos]-3, gammaSoil=densSoil*grav, zWater=0, gammaWater=densWater*grav)
earthPressLoadWall= loads.EarthPressLoad(name= 'earthPressLoadWall', xcSet=wall,soilData=soil01, vDir=xc.Vector([0,1,0]))

earthPressLoadColumn= loads.EarthPressLoad(name= 'earthPressLoadColumn', xcSet=columnZ,soilData=soil01, vDir=xc.Vector([0,1,0]))

soil02=ep.EarthPressureModel(K=0.001, zGround=zList[lastZpos], gammaSoil=densSoil*grav, zWater=0.05, gammaWater=densWater*grav)
stripL01=ep.StripLoadOnBackfill(qLoad=2e5, zLoad=zList[lastZpos],distWall=1.5, stripWidth=1.2)
earthPColumnStrL= loads.EarthPressLoad(name= 'earthPColumnStrL', xcSet=columnZ,soilData=None, vDir=xc.Vector([0,1,0]))
earthPColumnStrL.stripLoads=[stripL01]

lineL01=ep.LineVerticalLoadOnBackfill(qLoad=1e5, zLoad=zList[lastZpos],distWall=1.0)
earthPColumnLinL= loads.EarthPressLoad(name= 'earthPColumnLinL', xcSet=columnZ,soilData=None, vDir=xc.Vector([0,1,0]))
earthPColumnLinL.lineLoads=[lineL01]

hrzL01=ep.HorizontalLoadOnBackfill(soilIntFi=30, qLoad=2e5, zLoad=zList[lastZpos],distWall=1,widthLoadArea=0.5,lengthLoadArea=1.5,horDistrAngle=45)
earthPColumnHrzL=loads.EarthPressLoad(name= 'earthPColumnHrzL', xcSet=columnZ,soilData=None, vDir=xc.Vector([0,1,0]))