Zcoo = [zBase, zTop] grid = gm.GridModel(prep, Rcoo, Angcoo, Zcoo, xCentCoo=xCent, yCentCoo=yCent) grid.generateCylZPoints() tank = grid.genSurfOneXYZRegion(xyzRange=((R, 0, zBase), (R, Angcoo[-1], zTop)), setName='tank', closeCyl='Y') steel = astm.A36 steel_prop = tm.MaterialData(name='steel', E=steel.E, nu=steel.nu, rho=steel.rho) tank_mat = tm.DeckMaterialData(name='tank_mat', thickness=thickness, material=steel_prop) tank_mat.setupElasticSection(preprocessor=prep) #creates the section-materia tank_mesh = fem.SurfSetToMesh(surfSet=tank, matSect=tank_mat, elemSize=0.25, elemType='ShellMITC4') tank_mesh.generateMesh(prep) # Boundary condition nodBase = sets.get_set_nodes_plane_XY(setName='nodBase', setBusq=tank, zCoord=zBase, tol=0.001) for n in nodBase.nodes: modelSpace.fixNode('000_FFF', n.tag)
cylwall = gridGeom.genSurfMultiRegion(lstIJKRange=cylwall_rg, nameSet='cylwall') flatdeck = gridGeom.genSurfMultiRegion(lstIJKRange=flatdeck_rg, nameSet='flatdeck') cyldeck = gridGeom.genSurfMultiRegion(lstIJKRange=cyldeck_rg, nameSet='cyldeck') deck2 = gridGeom.genSurfMultiRegion(lstIJKRange=deck2_rg, nameSet='deck2') # *** MATERIALS *** concrProp = tm.MaterialData(name='concrProp', E=concrete.Ecm(), nu=concrete.nuc, rho=concrete.density()) # Isotropic elastic section-material appropiate for plate and shell analysis wall_mat = tm.DeckMaterialData(name='wall_mat', thickness=0.2, material=concrProp) wall_mat.setupElasticSection(preprocessor=prep) #creates the section-material deck_mat = tm.DeckMaterialData(name='deck_mat', thickness=0.1, material=concrProp) deck_mat.setupElasticSection(preprocessor=prep) #creates the section-material # ***FE model - MESH*** # Fix lines' division st = sets.get_subset_lin_parallel_to_axis(axis='Z', fromSet=flatwall + cylwall, toSetName='st') fem.assign_ndiv_to_lines_in_set(lnSet=st, ndiv=5) st.clear() st = sets.get_subset_lin_parallel_to_axis(axis='X',
voladzCentRP1=gridTabl.genSurfMultiRegion(lstIJKRange=voladzCentRP1_rg,setName='voladzCentRP1') voladzCentRP2=gridTabl.genSurfMultiRegion(lstIJKRange=voladzCentRP2_rg,setName='voladzCentRP2') voladzExtrV1=gridTabl.genSurfMultiRegion(lstIJKRange=voladzExtrV1_rg,setName='voladzExtrV1') voladzExtrV2=gridTabl.genSurfMultiRegion(lstIJKRange=voladzExtrV2_rg,setName='voladzExtrV2') voladzExtrV3=gridTabl.genSurfMultiRegion(lstIJKRange=voladzExtrV3_rg,setName='voladzExtrV3') voladzExtrRP1=gridTabl.genSurfMultiRegion(lstIJKRange=voladzExtrRP1_rg,setName='voladzExtrRP1') voladzExtrRP2=gridTabl.genSurfMultiRegion(lstIJKRange=voladzExtrRP2_rg,setName='voladzExtrRP2') # *** MATERIALS *** concrete=EHE_materials.HA30 concrProp=tm.MaterialData(name='concrProp',E=concrete.Ecm(),nu=concrete.nuc,rho=concrete.density()) # Isotropic elastic section-material appropiate for plate and shell analysis losInf_mat=tm.DeckMaterialData(name='losInf_mat',thickness= espLosAlig,material=concrProp) losInf_mat.setupElasticSection(preprocessor=prep) #creates the section-material losSup_mat=tm.DeckMaterialData(name='losSup_mat',thickness= espLosAlig,material=concrProp) losSup_mat.setupElasticSection(preprocessor=prep) #creates the section-material murAlig_mat=tm.DeckMaterialData(name='murAlig_mat',thickness= espEntreAlig,material=concrProp) murAlig_mat.setupElasticSection(preprocessor=prep) #creates the section-material diafRP_mat=tm.DeckMaterialData(name='diafRP_mat',thickness=espDiafRP ,material=concrProp) diafRP_mat.setupElasticSection(preprocessor=prep) murExtAlig_mat=tm.DeckMaterialData(name='murExtAlig_mat',thickness=espExtAlig,material=concrProp) murExtAlig_mat.setupElasticSection(preprocessor=prep) #creates the section-material voladzCent_mat=tm.DeckMaterialData(name='voladzCent_mat',thickness= espVoladzMax,material=concrProp)
#Lines generation cabl_rg = gm.IJKRange( (0, 0, 0), (lastXpos_cabl, lastYpos_cabl, 0)).extractIncludedJranges() cables = gridCables.genLinMultiRegion(lstIJKRange=cabl_rg, nameSet='cables') cables.description = 'Prestressing cables' # *** MATERIALS *** concrete = tm.MaterialData(name='concrete', E=EcConcr, nu=cpoisConcr, rho=densConcr) # Isotropic elastic section-material appropiate for plate and shell analysis deck_mat = tm.DeckMaterialData(name='deck_mat', thickness=deckTh, material=concrete) deck_mat.setupElasticSection(preprocessor=prep) #creates de section-material curb_mat = tm.DeckMaterialData(name='curb_mat', thickness=curbTh, material=concrete) curb_mat.setupElasticSection(preprocessor=prep) #creates de section-material #Geometric sections #rectangular sections # from materials.sections import section_properties as sectpr # geomSectCabl=sectpr.RectangularSection(name='geomSectCabl',b=0.01,h=0.01) # Elastic material-section appropiate for 3D beam analysis, including shear # deformations. # Attributes:
#Surfaces generation tankwall = gridGeom.genSurfMultiRegion(lstIJKRange=tankwall_rg, setName='tankwall') ''' tankwall.description='Cylindrical wall' tankwall.color=cfg.colors['purple02'] ''' # *** MATERIALS *** steelProp = tm.MaterialData(name='steelProp', E=steel.E, nu=steel.nu, rho=steel.rho) # Isotropic elastic section-material appropiate for plate and shell analysis wall_mat = tm.DeckMaterialData(name='wall_mat', thickness=thickness, material=steelProp) wall_mat.setupElasticSection(preprocessor=prep) #creates the section-material # ***FE model - MESH*** # Enforced line division st = sets.get_subset_lin_parallel_to_axis(axis='Z', fromSet=tankwall, toSetName='st') fem.assign_ndiv_to_lines_in_set(lnSet=st, ndiv=20) st.clear() #Meshing tankwall_mesh = fem.SurfSetToMesh(surfSet=tankwall, matSect=wall_mat, elemSize=None, elemType='ShellMITC4')
beams = beamXconcr + beamY beams.description = 'Beams' beams.fillDownwards() #out.displayBlocks() # *** MATERIALS *** concrProp = tm.MaterialData(name='concrProp', E=concrete.Ecm(), nu=concrete.nuc, rho=concrete.density()) S235JR = EC3_materials.S235JR S235JR.gammaM = 1.00 # Isotropic elastic section-material appropiate for plate and shell analysis deck_mat = tm.DeckMaterialData(name='deck_mat', thickness=deckTh, material=concrProp) deck_mat.setupElasticSection(preprocessor=prep) #creates the section-material wall_mat = tm.DeckMaterialData(name='wall_mat', thickness=wallTh, material=concrProp) wall_mat.setupElasticSection(preprocessor=prep) #creates the section-material foot_mat = tm.DeckMaterialData(name='foot_mat', thickness=footTh, material=concrProp) foot_mat.setupElasticSection(preprocessor=prep) #creates the section-material #Geometric sections #rectangular sections from materials.sections import section_properties as sectpr geomSectBeamX = sectpr.RectangularSection(name='geomSectBeamX',
#out.displayBlocks() floor2 = gridGeom.genSurfOneXYZRegion(xyzRange=((0, 0, 4), (10, 20, 4)), setName='floor2') #out.displayBlocks() columns_rg = gm.IJKRange((2, 5, 0), (8, 15, 4)).extractIncludedKranges(stepI=2, stepJ=3) columns = gridGeom.genLinMultiRegion(lstIJKRange=columns_rg, setName='columns') #out.displayBlocks() # *** MATERIALS (constitutive models) *** mat_slabs = tm.MaterialData(name='mat_slabs', E=2.55e15, nu=0.2, rho=2500) mat_walls = tm.MaterialData(name='mat_walls', E=2.55e15, nu=0.2, rho=2500) mat_cols = tm.MaterialData(name='mat_cols', E=2.55e15, nu=0.2, rho=2500) # Isotropic elastic section-material appropiate for plate and shell analysis 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)
nameSet='slab_step3') slab_step4 = gridGeom.genSurfMultiRegion(lstIJKRange=slab_step4_rg, nameSet='slab_step4') slab_unif.description = 'Inner slab (const. thickness)' slab_step1.description = 'Extr. slab (var. thickness, step 1)' slab_step2.description = 'Extr. slab (var. thickness, step 2)' slab_step3.description = 'Extr. slab (var. thickness, step 3)' slab_step4.description = 'Extr. slab (var. thickness, step 4)' # *** MATERIALS *** concrete = tm.MaterialData(name='concrete', E=Ec, nu=nuc, rho=densConcr) # Isotropic elastic section-material appropiate for plate and shell analysis slab_unif_mat = tm.DeckMaterialData(name='slab_unif_mat', thickness=thick_unif, material=concrete) slab_unif_mat.setupElasticSection( preprocessor=prep) #creates de section-material slab_step1_mat = tm.DeckMaterialData(name='slab_step1_mat', thickness=thick_steps[0], material=concrete) slab_step1_mat.setupElasticSection( preprocessor=prep) #creates de section-material slab_step2_mat = tm.DeckMaterialData(name='slab_step2_mat', thickness=thick_steps[1], material=concrete) slab_step2_mat.setupElasticSection( preprocessor=prep) #creates de section-material slab_step3_mat = tm.DeckMaterialData(name='slab_step3_mat', thickness=thick_steps[2],
# 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) found_mat.setupElasticSection(preprocessor=prep) #creates de section-material # ***FE model - MESH*** losCim_mesh = fem.SurfSetToMesh(surfSet=losCim, matSect=found_mat,
# *** MATERIALS *** concrDeck = tm.MaterialData(name='concrDeck', E=EcDeck, nu=cpoish, rho=densh) concrWalls = tm.MaterialData(name='concrWalls', E=EcWalls, nu=cpoish, rho=densh) concrFound = tm.MaterialData(name='concrFound', E=EcFound, nu=cpoish, rho=densh) # Isotropic elastic section-material appropiate for plate and shell analysis upDeck_mat = tm.DeckMaterialData(name='upDeck_mat', thickness=upDeckTh, material=concrDeck) upDeck_mat.setupElasticSection(preprocessor=prep) #creates de section-material downDeck_mat = tm.DeckMaterialData(name='downDeck_mat', thickness=downDeckTh, material=concrDeck) downDeck_mat.setupElasticSection(preprocessor=prep) upWall_mat = tm.DeckMaterialData(name='upWall_mat', thickness=upWallTh, material=concrWalls) upWall_mat.setupElasticSection(preprocessor=prep) midWall_mat = tm.DeckMaterialData(name='midWall_mat', thickness=midWallTh, material=concrWalls) midWall_mat.setupElasticSection(preprocessor=prep) downWall_mat = tm.DeckMaterialData(name='downWall_mat',
voladzi = gridGeom.genSurfMultiRegion(lstIJKRange=voladzi_rg, nameSet='voladzi') if Lvoladzd > 0: voladzd = gridGeom.genSurfMultiRegion(lstIJKRange=voladzd_rg, nameSet='voladzd') # *** MATERIALS *** concrete = EHE_materials.HA30 concrData = tm.MaterialData(name='concrData', E=concrete.Ecm(), nu=concrete.nuc, rho=concrete.density()) # Isotropic elastic section-material appropiate for plate and shell analysis zap_mat = tm.DeckMaterialData(name='zap_mat', thickness=cantoZap, material=concrData) zap_mat.setupElasticSection(preprocessor=prep) #creates the section-material murestr_mat = tm.DeckMaterialData(name='murestr_mat', thickness=espMurEstr, material=concrData) murestr_mat.setupElasticSection( preprocessor=prep) #creates the section-material aletiZ1_mat = tm.DeckMaterialData(name='aletiZ1_mat', thickness=espAletiZ1, material=concrData) aletiZ1_mat.setupElasticSection(preprocessor=prep) aletiZ2_mat = tm.DeckMaterialData(name='aletiZ2_mat', thickness=espAletiZ2,
gridGeom.slopePointsRange(ijkRange=r,slopeX=-deltaH/Lx,xZeroSlope=Lx) # ranges roof_rg=[gm.IJKRange((0,0,lastZpos),(lastXpos,lastYpos,lastZpos))] #Surfaces generation roof=gridGeom.genSurfMultiRegion(lstIJKRange=roof_rg,setName='roof') roof.description='Roof' roof.color=cfg.colors['purple01'] # *** MATERIALS *** concrProp=tm.MaterialData(name='concrProp',E=concrete.Ecm(),nu=concrete.nuc,rho=concrete.density()) # Isotropic elastic section-material appropiate for plate and shell analysis roof_mat=tm.DeckMaterialData(name='roof_mat',thickness= roof_th,material=concrProp) roof_mat.setupElasticSection(preprocessor=prep) #creates the section-material # ***FE model - MESH*** roof_mesh=fem.SurfSetToMesh(surfSet=roof,matSect=roof_mat,elemSize=eSize,elemType='ShellMITC4') roof_mesh.generateMesh(prep) # ***BOUNDARY CONDITIONS*** #fixed DOF (ux:'0FF_FFF', uy:'F0F_FFF', uz:'FF0_FFF', # rx:'FFF_0FF', ry:'FFF_F0F', rz:'FFF_FF0') p1=gridGeom.getPntGrid(indPnt=(0,0,lastZpos)) modelSpace.fixNode('000_FFF',p1.getNode().tag) p2=gridGeom.getPntGrid(indPnt=(lastXpos,0,lastZpos)) modelSpace.fixNode('000_FFF',p2.getNode().tag)