Ejemplo n.º 1
0
    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
Ejemplo n.º 2
0
  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
Ejemplo n.º 3
0
  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
Ejemplo n.º 4
0
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.
Ejemplo n.º 5
0
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.
Ejemplo n.º 6
0
# 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):