def defElasticShearSection2d(self, preprocessor, material, majorAxis=True): '''elastic section appropiate for 2D beam analysis, including shear deformations :param preprocessor: preprocessor object. :param material: material constitutive model (for which E is the Young's modulus and G() the shear modulus). :param majorAxis: true if bending occurs in the section major axis. ''' if (not self.xc_material): materialHandler = preprocessor.getMaterialHandler if (materialHandler.materialExists(self.sectionName)): lmsg.warning("Section: " + self.sectionName + " already defined.") self.xc_material = materialHandler.getMaterial( self.sectionName) else: I = self.Iz() if (not majorAxis): I = self.Iy() self.xc_material = typical_materials.defElasticShearSection2d( preprocessor, self.sectionName, self.A(), material.E, material.G(), I, self.alphaY(), linearRho=material.rho * self.A()) else: lmsg.warning('Material: ' + self.sectionName + ' already defined as:' + str(self.xc_material)) return self.xc_material
def defElasticShearSection2d(self,preprocessor,material): '''elastic section appropiate for 2D beam analysis, including shear deformations :param preprocessor: preprocessor object. :param material: material constitutive model (for which E is the Young's modulus and G() the shear modulus). ''' materiales= preprocessor.getMaterialLoader if(materiales.materialExists(self.sectionName)): sys.stderr.write("Section: "+self.sectionName+" is already defined.") else: retval= typical_materials.defElasticShearSection2d(preprocessor,self.sectionName,self.A(),material.E,material.G(),self.Iz(),self.alphaY()) return retval
def defElasticShearSection2d(self,preprocessor,material): '''elastic section appropiate for 2D beam analysis, including shear deformations :param preprocessor: preprocessor object. :param material: material constitutive model (for which E is the Young's modulus and G() the shear modulus). ''' materiales= preprocessor.getMaterialHandler if(materiales.materialExists(self.sectionName)): sys.stderr.write("Section: "+self.sectionName+" is already defined.") else: retval= typical_materials.defElasticShearSection2d(preprocessor,self.sectionName,self.A(),material.E,material.G(),self.Iz(),self.alphaY()) return retval
prueba = xc.ProblemaEF() preprocessor = prueba.getPreprocessor nodes = preprocessor.getNodeLoader # Problem type modelSpace = predefined_spaces.StructuralMechanics2D(nodes) nodes.defaultTag = 1 #First node number. nod = nodes.newNodeXY(0, 0.0) nod = nodes.newNodeXY(L, 0.0) # Geometric transformations trfs = preprocessor.getTransfCooLoader lin = trfs.newLinearCrdTransf2d("lin") # Materials definition seccion = typical_materials.defElasticShearSection2d(preprocessor, "seccion", A, E, G, I, 1.0) # Elements definition elementos = preprocessor.getElementLoader elementos.defaultTransformation = "lin" # Transformación de coordenadas para los nuevos elementos elementos.defaultMaterial = "seccion" beam2d = elementos.newElement("force_beam_column_2d", xc.ID([1, 2])) # Constraints coacciones = preprocessor.getConstraintLoader fix_node_3dof.fixNode000(coacciones, 1) # Loads definition cargas = preprocessor.getLoadLoader casos = cargas.getLoadPatterns #Load modulation.
feProblem= xc.FEProblem() preprocessor= feProblem.getPreprocessor nodes= preprocessor.getNodeHandler # Problem type modelSpace= predefined_spaces.StructuralMechanics2D(nodes) nodes.defaultTag= 1 #First node number. nod= nodes.newNodeXY(0,0.0) nod= nodes.newNodeXY(L,0.0) # Geometric transformations lin= modelSpace.newLinearCrdTransf("lin") # Materials definition section= typical_materials.defElasticShearSection2d(preprocessor, "section",A,E,G,I,1.0) # Elements definition elements= preprocessor.getElementHandler elements.defaultTransformation= "lin" # Coordinate transformation for the new elements elements.defaultMaterial= "section" beam2d= elements.newElement("ForceBeamColumn2d",xc.ID([1,2])) # Constraints constraints= preprocessor.getBoundaryCondHandler modelSpace.fixNode000(1) # Loads definition loadHandler= preprocessor.getLoadHandler lPatterns= loadHandler.getLoadPatterns #Load modulation.
# Materials. b = 1.0 # section width. h = 0.15 # section depth. E = 2.0e10 # Young modulus. A = b * h # Beam cross-section area. I = 1 / 12.0 * b * h**3 # Inertia of the beam section. sry = 5 / 5.0 # Shear coefficient. Ay = A / sry nu = 0.3 # Poisson's ratio. G = E / (2.0 * (1 + nu)) scc = typical_materials.defElasticShearSection2d(preprocessor, "scc", A, E, G, I, alpha=Ay / A) # Loads vLoad = 10e3 + 3.75e3 # vertical load points = preprocessor.getMultiBlockTopology.getPoints lines = preprocessor.getMultiBlockTopology.getLines x = 0 pt0 = points.newPoint(geom.Pos3d(x, 0, 0)) beamPoints = [] beamLines = [] beamPoints.append(pt0) for i, sp in enumerate(spans):