'legsSection', 0.5, 0.5).defElasticShearSection3d( preprocessor, typical_materials.MaterialData('tmp', legsConcr.Ecm(), legsConcr.nuc, legsConcr.density())) corbelsConcr = beamConcr corbelsSection = section_properties.RectangularSection( 'corbelsSection', 0.5, 1.0).defElasticShearSection3d( preprocessor, typical_materials.MaterialData('tmp', corbelsConcr.Ecm(), corbelsConcr.nuc, corbelsConcr.density())) # Elastomeric bearings. neop = bridge_bearings.ElastomericBearing(G=900e3, a=0.15, b=0.2, e=0.02) neop.defineMaterials(preprocessor) # print polT5.getIx(), polT5.getCenterOfMass() # print polT6.getIx(), polT6.getCenterOfMass() # print polT4.getIx(), polT4.getCenterOfMass() # Mesh deckMesh = fem.SurfSetToMesh(surfSet=deckSurfaces, matSect=deckMat, elemSize=0.5, elemType='ShellMITC4') deckMesh.generateMesh(preprocessor) #do meshing #Precast beams.
from solution import predefined_solutions # Materials definition G= 900e3 # Elastomer shear modulus a= 0.3 # Dimension parallel to deck axis. b= 0.3 # Dimension normal to deck axis. e= 0.002 # Bearing net thickness (without steel plates). # Model definition feProblem= xc.FEProblem() preprocessor= feProblem.getPreprocessor neop= bridge_bearings.ElastomericBearing(G,a,b,e) neop.defineMaterials(preprocessor) materiales= preprocessor.getMaterialLoader KX= neop.getMaterial(0).E KY= neop.getMaterial(1).E KZ= neop.getMaterial(2).E KTHX= neop.getMaterial(3).E KTHY= neop.getMaterial(4).E KTHZ= neop.getMaterial(5).E nodes= preprocessor.getNodeLoader # Problem type modelSpace= predefined_spaces.StructuralMechanics3D(nodes) nodes.defaultTag= 1 #First node number. nod1= nodes.newNodeXYZ(1,1,1)
xc.ID([gdl])) ''' # Empotramiento base pilas for indy in range(1,len(yPil)): for indx in range(len(xPil)): j=gridPil.gridCoo[1].index(yPil[indy]) i=gridPil.gridCoo[0].index(xPil[indx]) k=gridPil.gridCoo[2].index(zPil[indy][0]) p=gridPil.getPntGrid((i,j,k)) n=p.getNode() modelSpace.fixNode('000_000',n.tag) constrNodesPilas.append(n) ''' # Elastomeric bearings. from materials import bridge_bearings as bb neopr = bb.ElastomericBearing(G=Gneopr, a=aNeopr, b=bNeopr, e=hNetoNeopr) neopr.defineMaterials(prep) #Neoprenos estribos #Estribo 1 yn = yEstr[0] zl = zLosa[0] if abutment.lower()[0] == 'y': for xn in xNeopr: n3 = nodes.getDomain.getMesh.getNearestNode(geom.Pos3d(xn, yn, zl)) x, y = n3.getCoo[0], n3.getCoo[1] n2 = nodes.newNodeXYZ(x, y, zl - cantoRiostrEstr / 2. - hNetoNeopr / 2.0) modelSpace.setRigidBeamBetweenNodes(n3.tag, n2.tag) n1 = nodes.newNodeXYZ(x, y, zl - cantoRiostrEstr / 2. - hNetoNeopr / 2.0)