def getLateralBucklingReductionFactor(self,sectionClass,L,Mi,supportCoefs= EC3lsc.SupportCoefficients()): ''' Returns lateral torsional buckling reduction factor value. :param sectionClass: section classification (1 to 3, 4 not yet implemented) :param Mi: ordinate for the moment diagram :param supportCoefs: coefficients that represent support conditions. ''' return EC3lsc.getLateralBucklingReductionFactor(self,sectionClass,L,Mi,supportCoefs)
def __init__(self,name,ec3Shape,sectionClass=1,supportCoefs=EC3lsc.SupportCoefficients(ky=1.0,kw=1.0,k1=1.0,k2=1.0),typo= 'rolled',lstLines=None,lstPoints=None): self.name=name self.ec3Shape= ec3Shape self.sectionClass=sectionClass self.supportCoefs=supportCoefs self.typo=typo self.lstLines=lstLines self.lstPoints=lstPoints
def getLateralBucklingIntermediateFactor(self,sectionClass,L,Mi,supportCoefs= EC3lsc.SupportCoefficients()): ''' Returns lateral torsional buckling intermediate factor value. :param sectionClass: section classification (1,2,3 or 4) :param Mi: ordinate for the moment diagram :param supportCoefs: coefficients that represent support conditions. ''' return EC3lsc.getLateralBucklingIntermediateFactor(self,sectionClass,L,Mi,supportCoefs)
def getMcr(self,L,Mi,supportCoefs= EC3lsc.SupportCoefficients()): '''Return elastic critical moment about minor axis: y Calculation is made following the paper: A. López, D. J. Yong, M. A. Serna, Lateral-torsional buckling of steel beams: a general expression for the moment gradient factor. (Lisbon, Portugal: Stability and ductility of steel structures, 2006). :param Mi: ordinate for the moment diagram :param supportCoefs: coefficients that represent support conditions. ''' return EC3lsc.getMcr(self,L,Mi,supportCoefs)
def getLateralTorsionalBucklingResistance(self,sectionClass,L,Mi,supportCoefs= EC3lsc.SupportCoefficients()): '''Return lateral torsional buckling resistance of this cross-section. Calculation is made following the paper: A. López, D. J. Yong, M. A. Serna, Lateral-torsional buckling of steel beams: a general expression for the moment gradient factor. (Lisbon, Portugal: Stability and ductility of steel structures, 2006). :param Mi: ordinate for the moment diagram :param supportCoefs: coefficients that represent support conditions. ''' return EC3lsc.getLateralTorsionalBucklingResistance(self,sectionClass,L,Mi,supportCoefs)
def getLateralBucklingNonDimensionalBeamSlenderness( self, sectionClass, L, Mi, supportCoefs=EC3lsc.SupportCoefficients()): '''Return non dimensional beam slenderness for lateral torsional buckling see parameter definition on method getMcr. :param shape: cross section shape. :param sectionClass: section classification (1,2,3 or 4) :param Mi: ordinate for the moment diagram :param supportCoefs: coefficients that represent support conditions. ''' return EC3lsc.getLateralBucklingNonDimensionalBeamSlenderness( self, sectionClass, L, Mi, supportCoefs)
def __init__(self, name, ec3Shape,sectionClass=1,supportCoefs=EC3lsc.SupportCoefficients(ky=1.0,kw=1.0,k1=1.0,k2=1.0), typo= 'rolled', lstLines=None, lstPoints=None): '''Constructor. :param name: object name. :param ec3Shape: cross-section shape (e.g. IPNShape, IPEShape, ...) :param sectionClass: section class (1 to 3, 4 not yet implemented) (defaults to 1). :param supportCoefs: instance of EC3_limit_state_checking.SupportCoefficients that wraps the support coefficients: ky, kw, k1 and k2; where ky is the lateral bending coefficient, kw the warping coefficient, k1 and the warping AND lateral bending coefficients at first and last ends respectively (1.0 => free, 0.5 => prevented). (Defaults to ky= 1.0, kw= 1.0, k1= 1.0, k2= 1.0) :param typo: 'rolled' or 'welded' (defaults to rolled) :param lstLines: ordered list of lines that make up the beam (defaults to None). :param lstPoints: ordered list of points that make up the beam. Ignored if lstLines is given (defaults to None) ''' super(EC3Beam,self).__init__(name, ec3Shape, lstLines, lstPoints) self.sectionClass= sectionClass self.supportCoefs= supportCoefs self.typo=typo
xx = (0, L) yy = (M, FF * M) f = scipy.interpolate.interp1d(xx, yy) x = list() M = list() xi = 0.0 Mi = 0.0 for i in range(1, nDiv + 2): Mi = f(xi) x.append(xi) M.append(float(Mi)) xi += step return [x, M] supportCoefs = EC3lsc.SupportCoefficients(k1=1.0, k2=1.0) nDiv = 20 step = 2 / nDiv psi = list() c1 = list() psii = -1.0 C1i = 0.0 for i in range(1, nDiv + 2): mD = caseASampleMoments(5.0, 10.0, psii) Mi = intp.interpEquidistPoints(xi=mD[0], yi=mD[1], nDiv=4) mgf = EC3lsc.MomentGradientFactorC1(Mi) C1i = mgf.getC1(supportCoefs) psi.append(psii) c1.append(C1i) psii += step
# -*- coding: utf-8 -*- from __future__ import print_function from materials.ec3 import EC3Beam as ec3b from materials.ec3 import EC3_limit_state_checking as EC3lsc from materials.astm_aisc import ASTM_materials from materials.astm_aisc import AISC_limit_state_checking as aisc # ** Steel beams # Support coefficients (1==free, 0.5==prevented) (all default to 1) # ky: lateral bending, kw: warping, k1: warping and lateral bending at left # end, k2: warping and lateral bending at right end supCf_free = EC3lsc.SupportCoefficients(ky=1.0, kw=1.0, k1=1.0, k2=1.0) supCf = EC3lsc.SupportCoefficients(ky=1.0, kw=1.0, k1=0.5, k2=1.0) def gen_EC3beams_from_lstSets(lstSets, mat, sectClass, suppCoef, prefName): '''Return a list of EC3beams generated from each set in lstSet :param lstSets: list of sets, each set contains the lines to generate one EC3beam :param mat: material for all beams :param sectClass: section class for all beams :param suppCoef: support coefficients for all beams :param prefName: prefix for the beam names ''' lstEC3beams = list() for i in range(len(lstSets)): lstSets[i].fillDownwards() lstLin = [l for l in lstSets[i].lines] nmBeam = prefName + str(i)
from materials.ec3 import EC3Beam as ec3b from materials.ec3 import EC3_limit_state_checking as EC3lsc lstLines=gridGeom.getLstLinRange(beamY_rg) #lstPoints=gridGeom.getLstPntRange(beamY_rg) supCf_beam=EC3lsc.SupportCoefficients(ky=1.0,kw=1.0,k1=1.0,k2=1.0) beam01=ec3b.EC3Beam(name='beam01',ec3Shape=beamY_mat,sectionClass=1,supportCoefs=supCf_beam,lstLines=lstLines) #beam=ec3b.EC3Beam(ec3Shape=None,lstPoints=lstPoints) beam01.setControlPoints() beam01.installULSControlRecorder(recorderType="element_prop_recorder")