# Grid geometric entities definition (points, lines, surfaces) # Points' generation gridGeom.generatePoints() #Lines generation 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)
for i in range(1, 3): p = points.newPntFromPos3d(geom.Pos3d(0, i * span / 3, -deltaTendon)) tendonPoints.append(p) tendonLines.append(lines.newLine(beamPoints[0].tag, tendonPoints[0].tag)) tendonLines.append(lines.newLine(tendonPoints[0].tag, tendonPoints[1].tag)) tendonLines.append(lines.newLine(tendonPoints[1].tag, beamPoints[3].tag)) #BEAM #Geometric section from materials.sections import section_properties as sectpr geomSectBeam = sectpr.RectangularSection(name='geomSectBeam', b=wBeam, h=hBeam) # Material definition concrete = tm.MaterialData(name='concrete', E=Ec, nu=nuc, rho=densc) beamMat = tm.BeamMaterialData(name='beamMat', section=geomSectBeam, material=concrete) beamMat.setupElasticShear3DSection(prep) #Meshing for l in beamSet.getLines: l.nDiv = nDivLines beam_mesh = fem.LinSetToMesh(linSet=beamSet, matSect=beamMat, elemSize=None, vDirLAxZ=xc.Vector([1, 0, 0]), elemType='ElasticBeam3d', dimElemSpace=3, coordTransfType='linear') beam_mesh.generateMesh(prep)
#Geometric sections #rectangular sections from materials.sections import section_properties as sectpr geomSectRiostrEstr=sectpr.RectangularSection(name='geomSectRiostrEstr',b=LriosrEstr,h=cantoRiostrEstr) # Elastic material-section appropiate for 3D beam analysis, including shear # deformations. # Attributes: # name: name identifying the section # section: instance of a class that defines the geometric and # mechanical characteristiscs # of a section (e.g: RectangularSection, CircularSection, # ISection, ...) # material: instance of a class that defines the elastic modulus, # shear modulus and mass density of the material riostrEstr_mat= tm.BeamMaterialData(name= 'riostrEstr_mat', section=geomSectRiostrEstr, material=concrProp) riostrEstr_mat.setupElasticShear3DSection(preprocessor=prep) # ***FE model - MESH*** riostrEstr1_mesh=fem.LinSetToMesh(linSet=riostrEstr1,matSect=riostrEstr_mat,elemSize=eSize,vDirLAxZ=xc.Vector([0,-1,0]),elemType='ElasticBeam3d',dimElemSpace=3,coordTransfType='linear') riostrEstr2_mesh=fem.LinSetToMesh(linSet=riostrEstr2,matSect=riostrEstr_mat,elemSize=eSize,vDirLAxZ=xc.Vector([0,-1,0]),elemType='ElasticBeam3d',dimElemSpace=3,coordTransfType='linear') losInfV1_mesh=fem.SurfSetToMesh(surfSet=losInfV1,matSect=losInf_mat,elemSize=eSize,elemType='ShellMITC4') losInfV2_mesh=fem.SurfSetToMesh(surfSet=losInfV2,matSect=losInf_mat,elemSize=eSize,elemType='ShellMITC4') losInfV3_mesh=fem.SurfSetToMesh(surfSet=losInfV3,matSect=losInf_mat,elemSize=eSize,elemType='ShellMITC4') losInfRP1_mesh=fem.SurfSetToMesh(surfSet=losInfRP1,matSect=losInf_mat,elemSize=eSize,elemType='ShellMITC4') losInfRP2_mesh=fem.SurfSetToMesh(surfSet=losInfRP2,matSect=losInf_mat,elemSize=eSize,elemType='ShellMITC4') losSupV1_mesh=fem.SurfSetToMesh(surfSet=losSupV1,matSect=losSup_mat,elemSize=eSize,elemType='ShellMITC4') losSupV2_mesh=fem.SurfSetToMesh(surfSet=losSupV2,matSect=losSup_mat,elemSize=eSize,elemType='ShellMITC4')
deck_mat = tm.DeckMaterialData(name='deck_mat', thickness=0.25, material=mat_slabs) deck_mat.setupElasticSection(preprocessor=prep) #creates de section-material wall_mat = tm.DeckMaterialData(name='wall_mat', thickness=0.15, material=mat_walls) wall_mat.setupElasticSection(preprocessor=prep) #creates de section-material #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 = 0.5 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,
yList=[0,Lsquare/3,Lsquare] zList=[1] gridGeom= gm.GridModel(prep,xList,yList,zList) gridGeom.generatePoints() loadedSurf=gridGeom.genSurfOneXYZRegion(xyzRange=((0,0,1),(1,1,1)),setName='loadedSurf') beams=gridGeom.genLinOneXYZRegion(((0,0,1),(1,1,1)),'beams') concrete=EHE_materials.HA30 concrProp=tm.MaterialData(name='concrProp',E=concrete.Ecm(),nu=concrete.nuc,rho=concrete.density()) from materials.sections import section_properties as sectpr geomSect=sectpr.RectangularSection(name='geomSect',b=0.2,h=0.2) linel_mat= tm.BeamMaterialData(name= 'linel_mat', section=geomSect, material=concrProp) linel_mat.setupElasticShear3DSection(preprocessor=prep) beams_mesh=fem.LinSetToMesh(linSet=beams,matSect=linel_mat,elemSize=0.5,vDirLAxZ=xc.Vector([0,0,1]),elemType='ElasticBeam3d',coordTransfType='linear') beams_mesh.generateMesh(prep) surfUnifLoad= loads.UnifLoadSurfNodesDistributed(name= 'surfUnifLoad',surfSet=loadedSurf,loadVector=xc.Vector([0,0,-qUnif,0,0,0])) LC1=lcases.LoadCase(preprocessor=prep,name="LC1",loadPType="default",timeSType="constant_ts") LC1.create() LC1.addLstLoads([surfUnifLoad]) modelSpace.addLoadCaseToDomain('LC1') lp=modelSpace.getCurrentLoadPattern()
b=wcolumnZ, h=hcolumnZ) # Elastic material-section appropiate for 3D beam analysis, including shear # deformations. # Attributes: # name: name identifying the section # section: instance of a class that defines the geometric and # mechanical characteristiscs # of a section (e.g: RectangularSection, CircularSection, # ISection, ...) # material: instance of a class that defines the elastic modulus, # shear modulus and mass density of the material beamXconcr_mat = tm.BeamMaterialData(name='beamXconcr_mat', section=geomSectBeamX, material=concrProp) beamXconcr_mat.setupElasticShear3DSection(preprocessor=prep) beamY_mat = tm.BeamMaterialData(name='beamY_mat', section=geomSectBeamY, material=concrProp) beamY_mat.setupElasticShear3DSection(preprocessor=prep) columnZconcr_mat = tm.BeamMaterialData(name='columnZconcr_mat', section=geomSectColumnZ, material=concrProp) columnZconcr_mat.setupElasticShear3DSection(preprocessor=prep) # Steel material-section appropiate for 3D beam analysis, including shear # deformations. # Attributes: # steel: steel material (
b=0.5, h=0.5) # Elastic material-section appropiate for 3D beam analysis, including shear # deformations. # Attributes: # name: name identifying the section # section: instance of a class that defines the geometric and # mechanical characteristiscs # of a section (e.g: RectangularSection, CircularSection, # ISection, ...) # material: instance of a class that defines the elastic modulus, # shear modulus and mass density of the material muretes_mat = tm.BeamMaterialData(name='muretes_mat', section=geomSectMuretes, material=concrDeck) muretes_mat.setupElasticShear3DSection(preprocessor=prep) # Isotropic elastic section-material appropiate for plate and shell analysis deck_mat = tm.DeckMaterialData(name='deck_mat', thickness=deckTh, material=concrDeck) deck_mat.setupElasticSection(preprocessor=prep) #creates de section-material wall_mat = tm.DeckMaterialData(name='wall_mat', thickness=wallTh, material=concrWalls) wall_mat.setupElasticSection(preprocessor=prep) #creates de section-material found_mat = tm.DeckMaterialData(name='found_mat', thickness=baseSlabTh, material=concrFound)