Example #1
0
diafRP2_mesh=fem.SurfSetToMesh(surfSet=diafRP2,matSect=diafRP_mat,elemSize=eSize,elemType='ShellMITC4')

voladzCentV1_mesh=fem.SurfSetToMesh(surfSet=voladzCentV1,matSect=voladzCent_mat,elemSize=eSize,elemType='ShellMITC4')
voladzCentV2_mesh=fem.SurfSetToMesh(surfSet=voladzCentV2,matSect=voladzCent_mat,elemSize=eSize,elemType='ShellMITC4')
voladzCentV3_mesh=fem.SurfSetToMesh(surfSet=voladzCentV3,matSect=voladzCent_mat,elemSize=eSize,elemType='ShellMITC4')
voladzCentRP1_mesh=fem.SurfSetToMesh(surfSet=voladzCentRP1,matSect=voladzCent_mat,elemSize=eSize,elemType='ShellMITC4')
voladzCentRP2_mesh=fem.SurfSetToMesh(surfSet=voladzCentRP2,matSect=voladzCent_mat,elemSize=eSize,elemType='ShellMITC4')

voladzExtrV1_mesh=fem.SurfSetToMesh(surfSet=voladzExtrV1,matSect=voladzExtr_mat,elemSize=eSize,elemType='ShellMITC4')
voladzExtrV2_mesh=fem.SurfSetToMesh(surfSet=voladzExtrV2,matSect=voladzExtr_mat,elemSize=eSize,elemType='ShellMITC4')
voladzExtrV3_mesh=fem.SurfSetToMesh(surfSet=voladzExtrV3,matSect=voladzExtr_mat,elemSize=eSize,elemType='ShellMITC4')
voladzExtrRP1_mesh=fem.SurfSetToMesh(surfSet=voladzExtrRP1,matSect=voladzExtr_mat,elemSize=eSize,elemType='ShellMITC4')
voladzExtrRP2_mesh=fem.SurfSetToMesh(surfSet=voladzExtrRP2,matSect=voladzExtr_mat,elemSize=eSize,elemType='ShellMITC4')

mesh_01=[riostrEstr1_mesh,riostrEstr2_mesh]
fem.multi_mesh(preprocessor=prep,lstMeshSets=mesh_01)
mesh_02=[losInfV1_mesh,losInfV2_mesh,losInfV3_mesh,losInfRP1_mesh,losInfRP2_mesh,losSupV1_mesh,losSupV2_mesh,losSupV3_mesh,losSupRP1_mesh,losSupRP2_mesh]
fem.multi_mesh(preprocessor=prep,lstMeshSets=mesh_02)
mesh_03=[murAligV1_mesh,murAligV2_mesh,murAligV3_mesh]
fem.multi_mesh(preprocessor=prep,lstMeshSets=mesh_03)
mesh_04=[murExtAligV1_mesh,murExtAligV2_mesh,murExtAligV3_mesh]
fem.multi_mesh(preprocessor=prep,lstMeshSets=mesh_04)
mesh_05=[murRP1_mesh,murRP2_mesh]
fem.multi_mesh(preprocessor=prep,lstMeshSets=mesh_05)
mesh_06=[diafRP1_mesh,diafRP2_mesh]
fem.multi_mesh(preprocessor=prep,lstMeshSets=mesh_06)
mesh_07=[voladzCentV1_mesh,voladzCentV2_mesh,voladzCentV3_mesh,voladzCentRP1_mesh,voladzCentRP2_mesh,voladzExtrV1_mesh,voladzExtrV2_mesh,voladzExtrV3_mesh,voladzExtrRP1_mesh,voladzExtrRP2_mesh]
fem.multi_mesh(preprocessor=prep,lstMeshSets=mesh_07)
allmesh=mesh_01+mesh_02+mesh_03+mesh_04+mesh_05+mesh_06+mesh_07

losInf=losInfV1+losInfV2+losInfV3+losInfRP1+losInfRP2
Example #2
0
pile_rg=gm.IJKRange((0,0,0),(0,0,1))
pile=gridGeom.genLinOneRegion(ijkRange=pile_rg,setName='pile')

#                         *** MATERIALS *** 
concrProp=tm.MaterialData(name='concrProp',E=concrete.Ecm(),nu=concrete.nuc,rho=concrete.density())
#Geometric sections
#rectangular sections
from materials.sections import section_properties as sectpr
geomSectPile=sectpr.RectangularSection(name='geomSectPile',b=LeqPile,h=LeqPile)
# Elastic material-section
pile_mat=tm.BeamMaterialData(name='pile_mat', section=geomSectPile, material=concrProp)
pile_mat.setupElasticShear3DSection(preprocessor=prep)

#                         ***FE model - MESH***
pile_mesh=fem.LinSetToMesh(linSet=pile,matSect=pile_mat,elemSize=eSize,vDirLAxZ=xc.Vector([0,1,0]),elemType='ElasticBeam3d',dimElemSpace=3,coordTransfType='linear')
fem.multi_mesh(preprocessor=prep,lstMeshSets=[pile_mesh])


#                       ***BOUNDARY CONDITIONS***
pileBC=sbc.PileFoundation(setPile=pile,pileDiam=fiPile,E=concrete.Ecm(),pileType='endBearing',pileBearingCapacity=bearCap,groundLevel=zGround,soilsProp=soils)
pileBC.generateSpringsPile(alphaKh_x=1,alphaKh_y=1,alphaKv_z=1)
springs=pileBC.springs
springSet=preprocessor.getSets.defSet('springSet')
for e in springs:
    springSet.getElements.append(e)
    #print 'z:',e.getCooCentroid(True)[2], ' Kx (t/m):',round(e.getMaterials()[0].E*1e-4,2)
springSet.fillDownwards()
allSets=pile+springSet
'''
from postprocess.xcVtk.FE_model import vtk_FE_graphic
displaySettings= vtk_FE_graphic.DisplaySettingsFE()
Example #3
0
#out.displayBlocks()

steel = tm.defElasticIsotropic3d(preprocessor=preprocessor,
                                 name='steel',
                                 E=172e9,
                                 nu=0.3,
                                 rho=matRho)
ring_mat = tm.defMembranePlateFiberSection(preprocessor,
                                           name='ring_mat',
                                           h=t,
                                           nDMaterial=steel)
ring_mesh = fem.SurfSetToMesh(surfSet=ring,
                              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
Example #4
0
                                elemType='ShellMITC4')
floor2_mesh = fem.SurfSetToMesh(surfSet=floor2,
                                matSect=deck_mat,
                                elemSize=eSize,
                                elemType='ShellMITC4')
#wall_mesh=fem.SurfSetToMesh(surfSet=wall,matSect=wall_mat,elemSize=eSize,elemType='ShellMITC4')
columns_mesh = fem.LinSetToMesh(linSet=columns,
                                matSect=columns_mat,
                                elemSize=eSize,
                                vDirLAxZ=xc.Vector([1, 0, 0]),
                                elemType='ElasticBeam3d',
                                dimElemSpace=3,
                                coordTransfType='linear')

fem.multi_mesh(preprocessor=prep,
               lstMeshSets=[columns_mesh, floor1_mesh,
                            floor2_mesh])  #mesh these sets

surfElInters = floor1.getElements.size

subset1_rg = gm.IJKRange((2, 5, 2), (8, 15, 4))
subset1 = gridGeom.getSubsetSurfOneRegion(superset=floor2,
                                          ijkRange=subset1_rg,
                                          nameSubset='subset1')
ratio1 = subset1.getElements.size - surfElInters

subset2 = gridGeom.getSubsetSurfOneXYZRegion(superset=floor2,
                                             xyzRange=((2, 5, 2), (8, 15, 4)),
                                             nameSubset='subset2')
ratio2 = subset2.getElements.size - surfElInters
Example #5
0
slab_step2_mesh = fem.SurfSetToMesh(surfSet=slab_step2,
                                    matSect=slab_step2_mat,
                                    elemSize=eSize,
                                    elemType='ShellMITC4')
slab_step3_mesh = fem.SurfSetToMesh(surfSet=slab_step3,
                                    matSect=slab_step3_mat,
                                    elemSize=eSize,
                                    elemType='ShellMITC4')
slab_step4_mesh = fem.SurfSetToMesh(surfSet=slab_step4,
                                    matSect=slab_step4_mat,
                                    elemSize=eSize,
                                    elemType='ShellMITC4')

fem.multi_mesh(preprocessor=prep,
               lstMeshSets=[
                   slab_unif_mesh, slab_step1_mesh, slab_step2_mesh,
                   slab_step3_mesh, slab_step4_mesh
               ])  #mesh these sets

#                       ***BOUNDARY CONDITIONS***

# Springs (defined by Kx,Ky,Kz) to apply on nodes, points, 3Dpos, ...
# Default values for Kx, Ky, Kz are 0, which means that no spring is
# created in the corresponding direction

#abutment A- springs XY
abutmA_spr1 = sprbc.SpringBC(name='abutmA_spr1',
                             modelSpace=modelSpace,
                             Kx=9.55 / 12. * 1e6,
                             Ky=178.8 / 12. * 1e6)
r = gm.IJKRange((1, 8, 0), (3, 11, 0))
Example #6
0
                                   matSect=beamXsteel_mat,
                                   elemSize=eSize,
                                   vDirLAxZ=xc.Vector([0, -1, 0]),
                                   elemType='ElasticBeam3d',
                                   dimElemSpace=3,
                                   coordTransfType='linear')
columnZsteel_mesh = fem.LinSetToMesh(linSet=columnZsteel,
                                     matSect=columnZsteel_mat,
                                     elemSize=eSize,
                                     vDirLAxZ=xc.Vector([-1, 0, 0]),
                                     elemType='ElasticBeam3d',
                                     coordTransfType='linear')

fem.multi_mesh(preprocessor=prep,
               lstMeshSets=[
                   beamXconcr_mesh, beamXsteel_mesh, beamY_mesh,
                   columnZconcr_mesh, columnZsteel_mesh
               ])  #mesh these sets

#out.displayFEMesh([beamXconcr,beamY,columnZconcr,decklv1,decklv2,wall,foot])
#out.displayFEMesh([beamXconcr,beamXsteel])
#out.displayFEMesh([columnZconcr,columnZsteel])
#out.displayLocalAxes()
#out.displayStrongWeakAxis(beams)

#                       ***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)
foot_wink = sprbc.ElasticFoundation(wModulus=20e7, cRoz=0.2)
Example #7
0
#Sections geometry
#rectangular sections
geomSectColumns=sectpr.RectangularSection(name='geomSectColumns',b=0.25,h=0.25)
columns_mat= tm.BeamMaterialData(name= 'columns_mat', section=geomSectColumns, material=mat_cols)
columns_mat.setupElasticShear3DSection(preprocessor=prep)


#                         ***FE model - MESH***
eSize=1
floor1_mesh=fem.SurfSetToMesh(surfSet=floor1,matSect=deck_mat,elemSize=eSize,elemType='ShellMITC4')
floor2_mesh=fem.SurfSetToMesh(surfSet=floor2,matSect=deck_mat,elemSize=eSize,elemType='ShellMITC4')
wall_mesh=fem.SurfSetToMesh(surfSet=wall,matSect=wall_mat,elemSize=eSize,elemType='ShellMITC4')
columns_mesh=fem.LinSetToMesh(linSet=columns,matSect=columns_mat,elemSize=eSize,vDirLAxZ=xc.Vector([1,0,0]),elemType='ElasticBeam3d',dimElemSpace=3,coordTransfType='linear')

fem.multi_mesh(preprocessor=prep,lstMeshSets=[columns_mesh,floor1_mesh,floor2_mesh,wall_mesh])     #mesh these sets

#      *** SETS ***
wall_nel=wall.getNumElements
wall_nel_targ=(wall_rg.getIMax()-wall_rg.getIMin())*(wall_rg.getKMax()-wall_rg.getKMin())
floor1_nel=floor1.getNumElements
floor1_nel_targ=(floor1_rg.getIMax()-floor1_rg.getIMin())*(floor1_rg.getJMax()-floor1_rg.getJMin())
floor2_nel=floor2.getNumElements
floor2_nel_targ=(floor2_rg[0].getIMax()-floor2_rg[0].getIMin())*(floor2_rg[0].getJMax()-floor2_rg[0].getJMin())
columns_nel=columns.getNumElements
columns_nel_targ=4*4
ratio1=(wall_nel-wall_nel_targ)+(floor1_nel-floor1_nel_targ)+(floor2_nel-floor2_nel_targ)+(columns_nel-columns_nel_targ)

# *** Boolean operations with sets
# Union and difference
overallSet=wall+floor1+floor2+columns
Example #8
0
#                         ***FE model - MESH***

losCim_mesh = fem.SurfSetToMesh(surfSet=losCim,
                                matSect=found_mat,
                                elemType='ShellMITC4',
                                elemSize=eSize)
hastiales_mesh = fem.SurfSetToMesh(surfSet=hastiales,
                                   matSect=wall_mat,
                                   elemType='ShellMITC4',
                                   elemSize=eSize)
dintel_mesh = fem.SurfSetToMesh(surfSet=dintel,
                                matSect=deck_mat,
                                elemType='ShellMITC4',
                                elemSize=eSize)

fem.multi_mesh(preprocessor=prep,
               lstMeshSets=[losCim_mesh, hastiales_mesh, dintel_mesh])

murete_i_mesh = fem.LinSetToMesh(linSet=murete_i,
                                 matSect=muretes_mat,
                                 elemSize=eSize,
                                 vDirLAxZ=xc.Vector([0, 0, 1]),
                                 elemType='ElasticBeam3d',
                                 coordTransfType='linear')
murete_i_mesh.generateMesh(prep)  # mesh this set of lines
murete_d_mesh = fem.LinSetToMesh(linSet=murete_d,
                                 matSect=muretes_mat,
                                 elemSize=eSize,
                                 vDirLAxZ=xc.Vector([0, 0, 1]),
                                 elemType='ElasticBeam3d',
                                 coordTransfType='linear')
murete_d_mesh.generateMesh(prep)  # mesh this set of lines
Example #9
0
                                       elemSize=eSize)
downDeckExtSlab_mesh = fem.SurfSetToMesh(surfSet=downDeckExtSlab,
                                         matSect=downDeck_mat,
                                         elemType='ShellMITC4',
                                         elemSize=eSize)
downDeckIntSlab_mesh = fem.SurfSetToMesh(surfSet=downDeckIntSlab,
                                         matSect=downDeck_mat,
                                         elemType='ShellMITC4',
                                         elemSize=eSize)

allSurfList = [
    foundExtSlab_mesh, foundIntSlab_mesh, leftDownWall_mesh, leftUpWall_mesh,
    midWall_mesh, rightDownWall_mesh, rightUpWall_mesh, upDeckExtSlab_mesh,
    upDeckIntSlab_mesh, downDeckExtSlab_mesh, downDeckIntSlab_mesh
]
fem.multi_mesh(preprocessor=prep, lstMeshSets=allSurfList)

#                       ***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)
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
Example #10
0
hastDer_M1_mesh=fem.SurfSetToMesh(surfSet=hastDer_M1,matSect=wall_mat,elemType='ShellMITC4',elemSize=eSize)
hastDer_M2_mesh=fem.SurfSetToMesh(surfSet=hastDer_M2,matSect=wall_mat,elemType='ShellMITC4',elemSize=eSize)
hastDer_M3_mesh=fem.SurfSetToMesh(surfSet=hastDer_M3,matSect=wall_mat,elemType='ShellMITC4',elemSize=eSize)

dintExt_M1_mesh=fem.SurfSetToMesh(surfSet=dintExt_M1,matSect=deck_mat,elemType='ShellMITC4',elemSize=eSize)
dintExt_M2_mesh=fem.SurfSetToMesh(surfSet=dintExt_M2,matSect=deck_mat,elemType='ShellMITC4',elemSize=eSize)
dintExt_M3_mesh=fem.SurfSetToMesh(surfSet=dintExt_M3,matSect=deck_mat,elemType='ShellMITC4',elemSize=eSize)

dintCent_M1_mesh=fem.SurfSetToMesh(surfSet=dintCent_M1,matSect=deck_mat,elemType='ShellMITC4',elemSize=eSize)
dintCent_M2_mesh=fem.SurfSetToMesh(surfSet=dintCent_M2,matSect=deck_mat,elemType='ShellMITC4',elemSize=eSize)
dintCent_M3_mesh=fem.SurfSetToMesh(surfSet=dintCent_M3,matSect=deck_mat,elemType='ShellMITC4',elemSize=eSize)

fem.multi_mesh(preprocessor=prep,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=fem.LinSetToMesh(linSet=muretes,matSect=muretes_mat,elemSize=eSize,vDirLAxZ=xc.Vector([0,0,1]),elemType='ElasticBeam3d',coordTransfType='linear')
muretes_mesh.generateMesh(prep)    # mesh this set of lines

overallSet=prep.getSets.getSet('total')
overallSet.description='Marco'
losCim=losCimExt_M1+losCimExt_M2+losCimExt_M3+losCimCent_M1+losCimCent_M2+losCimCent_M3
losCim.name='losCim'
losCim.description='Losa de cimentaciĆ³n'
hastIzq=hastIzq_M1+hastIzq_M2+hastIzq_M3
hastIzq.name='hastIzq'
hastIzq.description='Hastial izquierdo'
hastDer=hastDer_M1+hastDer_M2+hastDer_M3
Example #11
0
if Lvoladzd > 0:
    voladzd_mesh = fem.SurfSetToMesh(surfSet=voladzd,
                                     matSect=aletdZ3_mat,
                                     elemSize=eSize,
                                     elemType='ShellMITC4')

lstSups = [
    zap_mesh, murestrZ1_mesh, murestrZ2_mesh, aletiZ1_mesh, aletiZ2_mesh,
    aletiZ3_mesh, aletdZ1_mesh, aletdZ2_mesh, aletdZ3_mesh
]
if Lvoladzi > 0:
    lstSups.append(voladzi_mesh)
if Lvoladzd > 0:
    lstSups.append(voladzd_mesh)

fem.multi_mesh(preprocessor=prep, lstMeshSets=lstSups)

#Sets for loading
murestr = murestrZ1 + murestrZ2

if Lvoladzi > 0:
    aleti = aletiZ1 + aletiZ2 + aletiZ3 + voladzi
else:
    aleti = aletiZ1 + aletiZ2 + aletiZ3

if Lvoladzd > 0:
    aletd = aletdZ1 + aletdZ2 + aletdZ3 + voladzd
else:
    aletd = aletdZ1 + aletdZ2 + aletdZ3

#                       ***BOUNDARY CONDITIONS***
Example #12
0
rightWall_mesh = fem.SurfSetToMesh(surfSet=rightWall,
                                   matSect=wall_mat,
                                   elemType='ShellMITC4',
                                   elemSize=eSize)
deckExtSlab_mesh = fem.SurfSetToMesh(surfSet=deckExtSlab,
                                     matSect=deck_mat,
                                     elemType='ShellMITC4',
                                     elemSize=eSize)
deckIntSlab_mesh = fem.SurfSetToMesh(surfSet=deckIntSlab,
                                     matSect=deck_mat,
                                     elemType='ShellMITC4',
                                     elemSize=eSize)

fem.multi_mesh(preprocessor=prep,
               lstMeshSets=[
                   foundExtSlab_mesh, foundIntSlab_mesh, leftWall_mesh,
                   rightWall_mesh, deckExtSlab_mesh, deckIntSlab_mesh
               ])

#                       ***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)
#foundationElasticSupports=
from model.boundary_cond import spring_bound_cond as sprbc
from model.sets import sets_mng as sets
from materials import typical_materials as tm
from actions import loads
from actions import load_cases as lcases
from actions import combinations as cc
Example #13
0
steel.gammaM=1.0
steel_prop=tm.MaterialData(name='steel',E=steel.E,nu=steel.nu,rho=steel.rho)
column_mat=EC3_materials.HEShape(steel,'HE_140_B')
column_mat.defElasticShearSection3d(prep)
beam_mat=EC3_materials.UPNShape(steel,'UPN_80')
beam_mat.defElasticShearSection3d(prep)
diag_mat=EC3_materials.SHSShape(steel,'SHS50x50x2_5')
xcDiagSteel=steel.defElasticMaterial(prep)

#                         ***FE model - MESH***
#Meshing
#Steel elements: local Z-axis corresponds to weak axis of the steel shape

columns_mesh=fem.LinSetToMesh(columns,column_mat,0.25,xc.Vector([1,0,0]))
beams_mesh=fem.LinSetToMesh(beams,beam_mat,0.25,xc.Vector([0,0,1]))
fem.multi_mesh(prep,[columns_mesh,beams_mesh],sectGeom='Y')  #mesh these sets and creates property 'sectionGeometry' for each element)

diagonals_mesh=fem.LinSetToMesh(diagonals,xcDiagSteel,100,xc.Vector([1,0,0]),'Truss',3,None)
diagonals_mesh.generateMesh(prep)
for e in diagonals.getElements:
    e.sectionArea=diag_mat.A()

#Boundary conditions
nodBase=sets.get_set_nodes_plane_XY(setName='nodBase', setBusq=columns, zCoord=zGround, tol=0.001)
for n in nodBase.nodes:
    modelSpace.fixNode('000_000',n.tag)

    
# Wind action
windParams=bw.windParams(v,Kd,Kzt,I,alpha,zg)
wind_columns=loads.WindLoadOnBeams('wind_columns',columns,windParams,Cp,xc.Vector([0,1,0]),column_mat.h())
Example #14
0
found_mat.setupElasticSection(preprocessor=prep)   #creates de section-material

#                         ***FE model - MESH***

losCimExt_mesh=fem.SurfSetToMesh(surfSet=losCimExt,matSect=found_mat,elemType='ShellMITC4',elemSize=eSize)
losCimCent_mesh=fem.SurfSetToMesh(surfSet=losCimCent,matSect=found_mat,elemType='ShellMITC4',elemSize=eSize)
hastIzqInf_mesh=fem.SurfSetToMesh(surfSet=hastIzqInf,matSect=wall_mat,elemType='ShellMITC4',elemSize=eSize)
hastIzqCent_mesh=fem.SurfSetToMesh(surfSet=hastIzqCent,matSect=wall_mat,elemType='ShellMITC4',elemSize=eSize)
hastIzqSup_mesh=fem.SurfSetToMesh(surfSet=hastIzqSup,matSect=wall_mat,elemType='ShellMITC4',elemSize=eSize)
hastDerInf_mesh=fem.SurfSetToMesh(surfSet=hastDerInf,matSect=wall_mat,elemType='ShellMITC4',elemSize=eSize)
hastDerCent_mesh=fem.SurfSetToMesh(surfSet=hastDerCent,matSect=wall_mat,elemType='ShellMITC4',elemSize=eSize)
hastDerSup_mesh=fem.SurfSetToMesh(surfSet=hastDerSup,matSect=wall_mat,elemType='ShellMITC4',elemSize=eSize)
dintExt_mesh=fem.SurfSetToMesh(surfSet=dintExt,matSect=deck_mat,elemType='ShellMITC4',elemSize=eSize)
dintCent_mesh=fem.SurfSetToMesh(surfSet=dintCent,matSect=deck_mat,elemType='ShellMITC4',elemSize=eSize)

fem.multi_mesh(preprocessor=prep,lstMeshSets=[losCimExt_mesh,losCimCent_mesh,hastIzqInf_mesh,hastIzqCent_mesh,hastIzqSup_mesh,hastDerInf_mesh,hastDerCent_mesh,hastDerSup_mesh,dintExt_mesh,dintCent_mesh])

murete_i_mesh=fem.LinSetToMesh(linSet=murete_i,matSect=muretes_mat,elemSize=eSize,vDirLAxZ=xc.Vector([0,0,1]),elemType='ElasticBeam3d',coordTransfType='linear')
murete_i_mesh.generateMesh(prep)    # mesh this set of lines
murete_d_mesh=fem.LinSetToMesh(linSet=murete_d,matSect=muretes_mat,elemSize=eSize,vDirLAxZ=xc.Vector([0,0,1]),elemType='ElasticBeam3d',coordTransfType='linear')
murete_d_mesh.generateMesh(prep)    # mesh this set of lines

overallSet=prep.getSets.getSet('total')
overallSet.description='Marco'
losCim=losCimExt+losCimCent
losCim.name='losCim'
losCim.description='Losa de cimentaciĆ³n'
hastIzq=hastIzqInf+hastIzqCent+hastIzqSup
hastIzq.name='hastIzq'
hastIzq.description='Hastial izquierdo'
hastDer=hastDerInf+hastDerCent+hastDerSup
Example #15
0
# them

beamX_mesh=fem.LinSetToMesh(linSet=beamX,matSect=beamX_mat,elemSize=eSize,vDirLAxZ=xc.Vector([0,1,0]),elemType='ElasticBeam3d',dimElemSpace=3,coordTransfType='linear')

beamY_mesh=fem.LinSetToMesh(linSet=beamY,matSect=beamY_mat,elemSize=eSize,vDirLAxZ=xc.Vector([1,0,0]),elemType='ElasticBeam3d',coordTransfType='linear')
columnZ_mesh=fem.LinSetToMesh(linSet=columnZ,matSect=columnZ_mat,elemSize=eSize,vDirLAxZ=xc.Vector([1,0,0]),elemType='ElasticBeam3d',coordTransfType='linear')
decklv1_mesh=fem.SurfSetToMesh(surfSet=decklv1,matSect=deck_mat,elemSize=eSize,elemType='ShellMITC4')
decklv1_mesh.generateMesh(prep)     #mesh the set of surfaces
decklv2_mesh=fem.SurfSetToMesh(surfSet=decklv2,matSect=deck_mat,elemSize=eSize,elemType='ShellMITC4')
decklv2_mesh.generateMesh(prep)     #mesh the set of surfaces
wall_mesh=fem.SurfSetToMesh(surfSet=wall,matSect=wall_mat,elemSize=eSize,elemType='ShellMITC4')
wall_mesh.generateMesh(prep) 
foot_mesh=fem.SurfSetToMesh(surfSet=foot,matSect=foot_mat,elemSize=eSize,elemType='ShellMITC4')
foot_mesh.generateMesh(prep)

fem.multi_mesh(preprocessor=prep,lstMeshSets=[beamX_mesh,beamY_mesh,columnZ_mesh])     #mesh these sets


#                       ***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)
foot_wink=sprbc.ElasticFoundation(wModulus=20e7,cRoz=0.2)
foot_wink.generateSprings(xcSet=foot)

# Springs (defined by Kx,Ky,Kz) to apply on nodes, points, 3Dpos, ...
# Default values for Kx, Ky, Kz are 0, which means that no spring is
# created in the corresponding direction
# spring_col=sprbc.SpringBC(name='spring_col',modelSpace=modelSpace,Kx=10e3,Ky=50e3,Kz=30e3)
# a=spring_col.applyOnNodesIn3Dpos(lst3DPos=[geom.Pos3d(0,LbeamY,0)])