Exemple #1
0
windParams = bw.windParams(v, Kd, Kzt, I, alpha, zg)
tankWind = bw.cylindrWind(diam,
                          height,
                          windParams,
                          windComp,
                          zGround,
                          xCent=0,
                          yCent=0)

#elems=[e for e in tankwall.getElements]

#                       ***ACTIONS***
#Inertial load (density*acceleration) applied to the elements in a set
grav = 9.81  #Gravity acceleration (m/s2)
selfWeight = loads.InertialLoad(name='selfWeight',
                                lstMeshSets=[tankwall_mesh],
                                vAccel=xc.Vector([0.0, 0.0, -grav]))

#Thermal expansion
## tangential
thermExpansTang = loads.StrainLoadOnShells(name='thermExpansTang',
                                           xcSet=tankwall,
                                           DOFstrain=0,
                                           strain=tempRise * steel.alpha)
## vertical
thermExpansVert = loads.StrainLoadOnShells(name='thermExpansVert',
                                           xcSet=tankwall,
                                           DOFstrain=1,
                                           strain=tempRise * steel.alpha)

#Thermal contraction
Exemple #2
0
                              matSect=ring_mat,
                              elemSize=0.5,
                              elemType='ShellMITC4')
fem.multi_mesh(prep, [ring_mesh])

# Constraints
xcTotalSet = modelSpace.getTotalSet()
constrainedNodes = list()
for n in xcTotalSet.nodes:
    modelSpace.fixNode000_FFF(n.tag)
    constrainedNodes.append(n)

#out.displayFEMesh()

selfWeight = loads.InertialLoad(name='selfWeight',
                                lstSets=[ring],
                                vAccel=xc.Vector([0.0, 0.0,
                                                  -grav]))  # Ana uses -accel

D = lcases.LoadCase(preprocessor=prep,
                    name="D",
                    loadPType="default",
                    timeSType="constant_ts")
D.create()
D.addLstLoads([selfWeight])
modelSpace.addLoadCaseToDomain("D")

# Solution
result = modelSpace.analyze(calculateNodalReactions=True)
#out.displayReactions()

zReaction = 0.0
execfile(modelDataScriptDir + "/sets_lines_to_glue.py")

#Aux sets (LCPT)
deckCenter = prep.getSets.defSet('deckCenter')
for e in deck.getElements:
    c = e.getPosCentroid(True)
    y = c.y
    if (y > 5.0 and y < 22.0):
        deckCenter.getElements.append(e)
deckCenter.fillDownwards()
#                       ***ACTIONS***

#Inertial load (density*acceleration) applied to the elements in a set
grav = 9.81  #Gravity acceleration (m/s2)
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]),
Exemple #4
0
'''
#Balasto
bal_tali_set=gridGeom.getSetSurfOneRegion(ijkRange=gm.IJKRange([pxmxp1,0,lastZpos],[pxcarr1-1,lastYpos,lastZpos]),setName='bal_tali_set')
bal_i_set=gridGeom.getSetSurfOneRegion(ijkRange=gm.IJKRange([pxcarr1-1,0,lastZpos],[pxcarr3-1,lastYpos,lastZpos]),setName='bal_i_set')
bal_d_set=gridGeom.getSetSurfOneRegion(ijkRange=gm.IJKRange([pxcarr3-1,0,lastZpos],[pxcarr4+1,lastYpos,lastZpos]),setName='bal_d_set')
bal_tald_set=gridGeom.getSetSurfOneRegion(ijkRange=gm.IJKRange([pxcarr4+1,0,lastZpos],[pxmnp2,lastYpos,lastZpos]),setName='bal_tald_set')
paseos_set=gridGeom.getSetSurfMultiRegion(lstIJKRange=[gm.IJKRange([pxmnp1,pyhast1,lastZpos],[pxmxp1,pyhast2,lastZpos]),gm.IJKRange([pxmnp2,pyhast1,lastZpos],[pxmxp2,pyhast2,lastZpos])],setName='paseos_set')
#Losa cimentación interior marco
losc_int_set=gridGeom.getSetSurfOneRegion(ijkRange=gm.IJKRange([0,pyhast1,0],[lastXpos,pyhast2,0]),setName='losc_int_set')
'''

#Inertial load (density*acceleration) applied to the elements in a set
grav = 9.81  #Gravity acceleration (m/s2)
selfWeight = loads.InertialLoad(name='selfWeight',
                                lstMeshSets=[
                                    hastiales_mesh, losCim_mesh, dintel_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)

# Camiones prueba de carga
sc_cam_eje1 = loads.UniformLoadOnSurfaces(name='sc_cam_eje1',
                                          xcSet=surf_eje1_set,
Exemple #5
0
n_col2 = nodes.getDomain.getMesh.getNearestNode(geom.Pos3d(LbeamX, LbeamY, 0))
modelSpace.fixNode('000_FFF', n_col2.tag)
n_col3 = nodes.getDomain.getMesh.getNearestNode(
    geom.Pos3d(LbeamX / 2., LbeamY, 0))
modelSpace.fixNode('FF0_000', n_col3.tag)
#out.displayFEMesh()

#                       ***ACTIONS***

#Inertial load (density*acceleration) applied to the elements in a set
grav = 9.81  #Gravity acceleration (m/s2)
#selfWeight=loads.InertialLoad(name='selfWeight', lstMeshSets=[beamXconcr_mesh,beamY_mesh,columnZconcr_mesh,deck_mesh,wall_mesh,foot_mesh], vAccel=xc.Vector( [0.0,0.0,-grav]))
selfWeight = loads.InertialLoad(name='selfWeight',
                                lstMeshSets=[
                                    beamXconcr_mesh, beamY_mesh,
                                    columnZconcr_mesh, decklv1_mesh,
                                    decklv2_mesh
                                ],
                                vAccel=xc.Vector([0.0, 0.0, -grav]))

# Point 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]).

nodPLoad = sets.get_lstNod_from_lst3DPos(
    preprocessor=prep,
    lst3DPos=[
        geom.Pos3d(0, yList[lastYpos] / 2.0, zList[lastZpos]),
        geom.Pos3d(xList[lastXpos], yList[lastYpos] / 2.0, zList[lastZpos])
Exemple #6
0
rell_tald1_set=gridGeom.getSetSurfOneRegion(ijkRange=gm.IJKRange([pxmxp2+3,0,lastZpos],[pxmxp2+4,lastYpos,lastZpos]),setName='rell_tald1_set')
rell_tald2_set=gridGeom.getSetSurfOneRegion(ijkRange=gm.IJKRange([pxmxp2+2,0,lastZpos],[pxmxp2+3,lastYpos,lastZpos]),setName='rell_tald2_set')
rell_tald3_set=gridGeom.getSetSurfOneRegion(ijkRange=gm.IJKRange([pxmxp2+1,0,lastZpos],[pxmxp2+2,lastYpos,lastZpos]),setName='rell_tald3_set')
#Balasto

bal_tali_set=gridGeom.getSetSurfOneRegion(ijkRange=gm.IJKRange([pxmxp1,0,lastZpos],[pxcarr1-1,lastYpos,lastZpos]),setName='bal_tali_set')
bal_i_set=gridGeom.getSetSurfOneRegion(ijkRange=gm.IJKRange([pxcarr1-1,0,lastZpos],[pxcarr3-1,lastYpos,lastZpos]),setName='bal_i_set')
bal_d_set=gridGeom.getSetSurfOneRegion(ijkRange=gm.IJKRange([pxcarr3-1,0,lastZpos],[pxcarr4+1,lastYpos,lastZpos]),setName='bal_d_set')
bal_tald_set=gridGeom.getSetSurfOneRegion(ijkRange=gm.IJKRange([pxcarr4+1,0,lastZpos],[pxmnp2,lastYpos,lastZpos]),setName='bal_tald_set')
paseos_set=gridGeom.getSetSurfMultiRegion(lstIJKRange=[gm.IJKRange([pxmnp1,pyhast1,lastZpos],[pxmxp1,pyhast2,lastZpos]),gm.IJKRange([pxmnp2,pyhast1,lastZpos],[pxmxp2,pyhast2,lastZpos])],setName='paseos_set')
#Losa cimentación interior marco
losc_int_set=gridGeom.getSetSurfOneRegion(ijkRange=gm.IJKRange([0,pyhast1,0],[lastXpos,pyhast2,0]),setName='losc_int_set')

#Inertial load (density*acceleration) applied to the elements in a set
grav=9.81 #Gravity acceleration (m/s2)
selfWeight= loads.InertialLoad(name='selfWeight', lstMeshSets=[losCimExt_M1_mesh,losCimExt_M2_mesh,losCimExt_M3_mesh,losCimCent_M1_mesh,losCimCent_M2_mesh,losCimCent_M3_mesh,hastIzq_M1_mesh,hastIzq_M2_mesh,hastIzq_M3_mesh,hastDer_M1_mesh,hastDer_M2_mesh,hastDer_M3_mesh,dintExt_M1_mesh,dintExt_M2_mesh,dintExt_M3_mesh,dintCent_M1_mesh,dintCent_M2_mesh,dintCent_M3_mesh,muretes_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.
#relleno
Hrell_tali1=(Hrelli/3.)/2.
Hrell_tali2=Hrell_tali1+Hrelli/3.
Hrell_tali3=Hrell_tali2+Hrelli/3.
Exemple #7
0
# Regions resting on springs (Winkler elastic foundation)
#       wModulus: Winkler modulus of the foundation (springs in Z direction)
#       cRoz:     fraction of the Winkler modulus to apply for friction in
#                 the contact plane (springs in X, Y directions)
foundationElasticSupports = sprbc.ElasticFoundation(wModulus=winkMod,
                                                    cRoz=coefHorVerSprings)
found = foundExtSlab + foundIntSlab
foundationElasticSupports.generateSprings(xcSet=found)

# ***** ACTIONS *****

#                       ***ACTIONS***
#Inertial load (density*acceleration) applied to the elements in a set
grav = 9.81  #Gravity acceleration (m/s2)
selfWeight = loads.InertialLoad(name='selfWeight',
                                lstMeshSets=allSurfList,
                                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)

deadLoadAsphalt_rg = [
    gm.IJKRange([0, 3, zPosDownDeck], [lastXpos, 4, zPosDownDeck]),
    gm.IJKRange([0, 5, lastZpos], [lastXpos, 9, lastZpos])
]
else:
    aletd = aletdZ1 + aletdZ2 + aletdZ3

#                       ***BOUNDARY CONDITIONS***
# Regions resting on springs (Winkler elastic foundation)
#       wModulus: Winkler modulus of the foundation (springs in Z direction)
#       cRoz:     fraction of the Winkler modulus to apply for friction in
#                 the contact plane (springs in X, Y directions)
cRoz = 0.5
found_wink = sprbc.ElasticFoundation(wModulus=Kbalasto, cRoz=0.2)
found_wink.generateSprings(xcSet=zap)

#                       ***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',
Exemple #9
0
# Regions resting on springs (Winkler elastic foundation)
#       wModulus: Winkler modulus of the foundation (springs in Z direction)
#       cRoz:     fraction of the Winkler modulus to apply for friction in
#                 the contact plane (springs in X, Y directions)
foundationElasticSupports = sprbc.ElasticFoundation(wModulus=winkMod,
                                                    cRoz=coefHorVerSprings)
found = foundExtSlab + foundIntSlab
foundationElasticSupports.generateSprings(xcSet=found)

#                       ***ACTIONS***
#Inertial load (density*acceleration) applied to the elements in a set
grav = 9.81  #Gravity acceleration (m/s2)
selfWeight = loads.InertialLoad(name='selfWeight',
                                lstMeshSets=[
                                    leftWall_mesh, rightWall_mesh,
                                    foundIntSlab_mesh, foundExtSlab_mesh,
                                    deckIntSlab_mesh, deckExtSlab_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.
AsphaltSet_rg = gm.IJKRange([0, 2, lastZpos],
Exemple #10
0
foundationElasticSupports.generateSprings(xcSet=losCim)

#                       ***ACTIONS***
# Auxiliary ranges and sets
#Balasto
bal_tali_set=gridGeom.getSetSurfOneRegion(ijkRange=gm.IJKRange([pxmxp1,0,lastZpos],[pxcarr1-1,lastYpos,lastZpos]),setName='bal_tali_set')
bal_i_set=gridGeom.getSetSurfOneRegion(ijkRange=gm.IJKRange([pxcarr1-1,0,lastZpos],[pxcarr3-1,lastYpos,lastZpos]),setName='bal_i_set')
bal_d_set=gridGeom.getSetSurfOneRegion(ijkRange=gm.IJKRange([pxcarr3-1,0,lastZpos],[pxcarr4+1,lastYpos,lastZpos]),setName='bal_d_set')
bal_tald_set=gridGeom.getSetSurfOneRegion(ijkRange=gm.IJKRange([pxcarr4+1,0,lastZpos],[pxmnp2,lastYpos,lastZpos]),setName='bal_tald_set')
paseos_set=gridGeom.getSetSurfMultiRegion(lstIJKRange=[gm.IJKRange([pxmnp1,pyhast1,lastZpos],[pxmxp1,pyhast2,lastZpos]),gm.IJKRange([pxmnp2,pyhast1,lastZpos],[pxmxp2,pyhast2,lastZpos])],setName='paseos_set')
#Losa cimentación interior marco
losc_int_set=gridGeom.getSetSurfOneRegion(ijkRange=gm.IJKRange([0,pyhast1,0],[lastXpos,pyhast2,0]),setName='losc_int_set')

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