Пример #1
0
 def setup(self, preprocessor):
     ''':returns: the elastic section appropiate for 3D beam analysis
 '''
     typical_materials.defElasticShearSection3d(preprocessor, self.name,
                                                self.section.A(),
                                                self.material.E,
                                                self.material.G(),
                                                self.section.Iz(),
                                                self.section.Iy(),
                                                self.section.J(),
                                                self.section.alphaZ())
Пример #2
0
    def defElasticShearSection3d(self, preprocessor, material):
        '''elastic section appropiate for 3D beam analysis, including shear 
           deformations

        :param preprocessor: preprocessor object.
        :param material:      material (for which E is the Young's modulus and G() the shear modulus)  
        '''
        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:
                self.xc_material = typical_materials.defElasticShearSection3d(
                    preprocessor,
                    self.sectionName,
                    self.A(),
                    material.E,
                    material.G(),
                    self.Iz(),
                    self.Iy(),
                    self.J(),
                    self.alphaY(),
                    linearRho=material.rho * self.A())
        else:
            lmsg.warning('Material: ' + self.sectionName +
                         ' already defined as:' + str(self.xc_material))
        return self.xc_material
Пример #3
0
  def defElasticShearSection3d(self,preprocessor,material):
    '''elastic section appropiate for 3D beam analysis, including shear deformations

    :param  preprocessor: preprocessor object.
    :param material:      material (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.defElasticShearSection3d(preprocessor,self.sectionName,self.A(),material.E,material.G(),self.Iz(),self.Iy(),self.J(),self.alphaY())
      return retval
Пример #4
0
  def defElasticShearSection3d(self,preprocessor,material):
    '''elastic section appropiate for 3D beam analysis, including shear deformations

    :param  preprocessor: preprocessor object.
    :param material:      material (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.defElasticShearSection3d(preprocessor,self.sectionName,self.A(),material.E,material.G(),self.Iz(),self.Iy(),self.J(),self.alphaY())
      return retval
Пример #5
0
gammaF= 1.5

# Problem type
feProblem= xc.FEProblem()
preprocessor=  feProblem.getPreprocessor
nodes= preprocessor.getNodeHandler
modelSpace= predefined_spaces.StructuralMechanics3D(nodes)
nodes.defaultTag= 1 #First node number.
nod= nodes.newNodeXYZ(0.0,0.0,0.0)
nod= nodes.newNodeXYZ(L/2,0.0,0.0)
nod= nodes.newNodeXYZ(L,0.0,0.0)


lin= modelSpace.newLinearCrdTransf("lin",xc.Vector([0,1,0]))
# Materials definition
seccion= typical_materials.defElasticShearSection3d(preprocessor, "seccion",A,E,G,Iz,Iy,J,1.0)

# Elements definition
elements= preprocessor.getElementHandler
elements.defaultTransformation= "lin"
elements.defaultMaterial= "seccion"
elements.defaultTag= 1
beam1= elements.newElement("ForceBeamColumn3d",xc.ID([1,2]));
beam2= elements.newElement("ForceBeamColumn3d",xc.ID([2,3]));
    
# Constraints

modelSpace.fixNode000_000(1)
modelSpace.fixNode000_000(3)

# Loads definition
Пример #6
0
 def setup(self,preprocessor):
   '''return the elastic section appropiate for 3D beam analysis
   '''
   typical_materials.defElasticShearSection3d(preprocessor,self.name,self.section.A(),self.material.E,self.material.G(),self.section.Iz(),self.section.Iy(),self.section.J(),self.section.alphaZ())
Пример #7
0
E=1e4/Iz # Elastic modulus in N/m2
nu= 0.3 # Poisson's ratio
G= E/(2*(1+nu)) # Shear modulus
J= 0.001 # Cross section torsion constant (m4) (ES IRRELEVANTE)
P= -100 # Carga vertical sobre la columna.

NumDiv= 6

# Problem type
feProblem= xc.FEProblem()
preprocessor=  feProblem.getPreprocessor
nodes= preprocessor.getNodeHandler
modelSpace= predefined_spaces.StructuralMechanics3D(nodes)

# Materials definition
scc= typical_materials.defElasticShearSection3d(preprocessor, "scc",A,E,G,Iz,Iy,J,1)


# Geometric transformation(s)
lin= modelSpace.newPDeltaCrdTransf("lin",xc.Vector([0,1,0]))
# Seed element definition
seedElemHandler= preprocessor.getElementHandler.seedElemHandler
seedElemHandler.defaultMaterial= scc.name
seedElemHandler.defaultTransformation= lin.name
beam3d= seedElemHandler.newElement("ElasticBeam3d",xc.ID([0,0]))
beam3d.rho= 0.0


points= preprocessor.getMultiBlockTopology.getPoints
pt1= points.newPntIDPos3d(1,geom.Pos3d(0.0,0.0,0.0))
pt2= points.newPntIDPos3d(2,geom.Pos3d(0.0,0.0,L))
Пример #8
0
gammaF= 1.5

# Problem type
feProblem= xc.FEProblem()
preprocessor=  feProblem.getPreprocessor
nodes= preprocessor.getNodeHandler
modelSpace= predefined_spaces.StructuralMechanics3D(nodes)
nodes.defaultTag= 1 #First node number.
nod= nodes.newNodeXYZ(0.0,0.0,0.0)
nod= nodes.newNodeXYZ(L/2,0.0,0.0)
nod= nodes.newNodeXYZ(L,0.0,0.0)


lin= modelSpace.newLinearCrdTransf("lin",xc.Vector([0,1,0]))
# Materials definition
section= typical_materials.defElasticShearSection3d(preprocessor, "section",A,E,G,Iz,Iy,J,1.0)

# Elements definition
elements= preprocessor.getElementHandler
elements.defaultTransformation= "lin"
elements.defaultMaterial= "section"
elements.defaultTag= 1
beam1= elements.newElement("ForceBeamColumn3d",xc.ID([1,2]))
beam2= elements.newElement("ForceBeamColumn3d",xc.ID([2,3]))
    
# Constraints

modelSpace.fixNode000_000(1)
modelSpace.fixNode000_000(3)

# Loads definition
Пример #9
0
rfSteel = EC2_materials.S450C  #reinforcing steel according to EC2 fyk=450 MPa
steelDiagram = rfSteel.defDiagK(
    preprocessor)  #Definition of steel stress-strain diagram in XC.

# Section geometry (rectangular)
from materials.sections import section_properties as sectpr
geomSectBeam = sectpr.RectangularSection(name='geomSectBeamX',
                                         b=width,
                                         h=depth)

# Elastic material-section appropiate for 3D beam analysis, including shear
beam_mat = typical_materials.defElasticShearSection3d(
    preprocessor=preprocessor,
    name='beam_mat',
    A=geomSectBeam.A(),
    E=concrete.Ecm(),
    G=concrete.Gcm(),
    Iz=geomSectBeam.Iz(),
    Iy=geomSectBeam.Iy(),
    J=geomSectBeam.J(),
    alpha=geomSectBeam.alphaY())

lin = modelSpace.newLinearCrdTransf("lin", xc.Vector([0, 0, 1]))

# Elements definition
elements = preprocessor.getElementHandler
elements.defaultMaterial = 'beam_mat'
elements.defaultTransformation = "lin"
elements.dimElem = 3  # Dimension of element space
elements.defaultTag = 1
e1 = elements.newElement("ElasticBeam3d", xc.ID([1, 2]))
e2 = elements.newElement("ElasticBeam3d", xc.ID([2, 3]))