def checkSetFromIntForcFile(self, intForcCombFileName, setCalc=None): '''Launch checking. :param setCalc: set of elements to check ''' intForcItems = lsd.readIntForcesFile(intForcCombFileName, setCalc) internalForcesValues = intForcItems[2] for e in setCalc.elements: sh = e.getProp('crossSection') sc = e.getProp('sectionClass') elIntForc = internalForcesValues[e.tag] if (len(elIntForc) == 0): lmsg.warning('No internal forces for element: ' + str(e.tag) + ' of type: ' + e.type()) for lf in elIntForc: CFtmp = sh.getYShearEfficiency(sc, lf.Vy) if lf.idSection == 0: if (CFtmp > e.getProp(self.limitStateLabel + 'Sect1').CF): e.setProp( self.limitStateLabel + 'Sect1', cv.ShearYControlVars('Sects1', lf.idComb, CFtmp, lf.Vy)) else: if (CFtmp > e.getProp(self.limitStateLabel + 'Sect2').CF): e.setProp( self.limitStateLabel + 'Sect2', cv.ShearYControlVars('Sects2', lf.idComb, CFtmp, lf.Vy))
def checkSetFromIntForcFile(self, intForcCombFileName, setCalc=None): '''Launch checking. :param intForcCombFileName: name of the file to read the internal force results :param setCalc: set of elements to check ''' intForcItems = lsd.readIntForcesFile(intForcCombFileName, setCalc) internalForcesValues = intForcItems[2] for e in setCalc.elements: sh = e.getProp('crossSection') sc = e.getProp('sectionClass') elIntForc = internalForcesValues[e.tag] for lf in elIntForc: CFtmp, NcRdtmp, McRdytmp, McRdztmp, MvRdztmp, MbRdztmp = sh.getBiaxialBendingEfficiency( sc, lf.N, lf.My, lf.Mz, lf.Vy, lf.chiLT) if lf.idSection == 0: if (CFtmp > e.getProp(self.limitStateLabel + 'Sect1').CF): e.setProp( self.limitStateLabel + 'Sect1', cv.SSBiaxialBendingControlVars( 'Sects1', lf.idComb, CFtmp, lf.N, lf.My, lf.Mz, NcRdtmp, McRdytmp, McRdztmp, MvRdztmp, MbRdztmp, lf.chiLT)) else: if (CFtmp > e.getProp(self.limitStateLabel + 'Sect2').CF): e.setProp( self.limitStateLabel + 'Sect2', cv.SSBiaxialBendingControlVars( 'Sects2', lf.idComb, CFtmp, lf.N, lf.My, lf.Mz, NcRdtmp, McRdytmp, McRdztmp, MvRdztmp, MbRdztmp, lf.chiLT))
def checkSetFromIntForcFile(self,intForcCombFileName,setCalc=None): '''Launch checking. :param intForcCombFileName: name of the file to read the internal force results :param setCalc: set of elements to check ''' intForcItems=lsd.readIntForcesFile(intForcCombFileName,setCalc) internalForcesValues= intForcItems[2] for e in setCalc.elements: sh= e.getProp('crossSection') sc= e.getProp('sectionClass') elIntForc= internalForcesValues[e.tag] if(len(elIntForc)==0): lmsg.warning('No internal forces for element: '+str(e.tag)+' of type: '+e.type()) for lf in elIntForc: CFtmp,NcRdtmp,McRdytmp,McRdztmp,MvRdztmp,MbRdztmp= sh.getBiaxialBendingEfficiency(sc,lf.N,lf.My,lf.Mz,lf.Vy,lf.chiN, lf.chiLT) if lf.idSection == 0: label= self.limitStateLabel+'Sect1' if(CFtmp>e.getProp(label).CF): e.setProp(label,cv.AISCBiaxialBendingControlVars('Sect1',lf.idComb,CFtmp,lf.N,lf.My,lf.Mz,NcRdtmp,McRdytmp,McRdztmp,MvRdztmp,MbRdztmp,lf.chiLT, lf.chiN)) else: label= self.limitStateLabel+'Sect2' if(CFtmp>e.getProp(label).CF): e.setProp(label,cv.AISCBiaxialBendingControlVars('Sect2',lf.idComb,CFtmp,lf.N,lf.My,lf.Mz,NcRdtmp,McRdytmp,McRdztmp,MvRdztmp,MbRdztmp,lf.chiLT, lf.chiN))
def setupForElementsAndCombinations(self,intForcCombFileName,setCalc=None): '''Extracts element and combination identifiers from the internal forces listing file. :param intForcCombFileName: name of the file containing the internal forces obtained for each element for the combinations analyzed :param setCalc: set of elements to be analyzed (defaults to None which means that all the elements in the file of internal forces results are analyzed) ''' intForcItems=lsd.readIntForcesFile(intForcCombFileName,setCalc) self.elementTags= intForcItems[0] self.idCombs=intForcItems[1] self.internalForcesValues=intForcItems[2]
def checkSetFromIntForcFile(self,intForcCombFileName,setCalc=None): '''Launch checking. :param setCalc: set of elements to check ''' intForcItems=lsd.readIntForcesFile(intForcCombFileName,setCalc) internalForcesValues=intForcItems[2] for e in setCalc.getElements: sh=e.getProp('crossSection') sc=e.getProp('sectionClass') elIntForc=internalForcesValues[e.tag] for lf in elIntForc: CFtmp=sh.getYShearEfficiency(sc,lf.Vy) if lf.idSection == 0: if (CFtmp>e.getProp(self.limitStateLabel+'Sect1').CF): e.setProp(self.limitStateLabel+'Sect1',cv.ShearYControlVars('Sects1',lf.idComb,CFtmp,lf.Vy)) else: if (CFtmp>e.getProp(self.limitStateLabel+'Sect2').CF): e.setProp(self.limitStateLabel+'Sect2',cv.ShearYControlVars('Sects2',lf.idComb,CFtmp,lf.Vy))
def predimConnection(self, intForcCombFileName, setCalc=None): '''Launch predim connection. :param intForcCombFileName: name of the file to read the internal force results :param setCalc: set of elements to check ''' intForcItems = limit_state_data.readIntForcesFile( intForcCombFileName, setCalc) internalForcesValues = intForcItems[2] worstCase = WorstCase() for e in setCalc.elements: sh = e.getProp('crossSection') elIntForc = internalForcesValues[e.tag] if (len(elIntForc) == 0): lmsg.warning('No internal forces for element: ' + str(e.tag) + ' of type: ' + e.type()) for lf in elIntForc: CFtmp = self.boltedPlate.getEfficiency(lf) worstCase.update(CFtmp, e.tag, lf) return worstCase
def checkSetFromIntForcFile(self,intForcCombFileName,setCalc=None): '''Launch checking. :param intForcCombFileName: name of the file to read the internal force results :param setCalc: set of elements to check ''' intForcItems=lsd.readIntForcesFile(intForcCombFileName,setCalc) internalForcesValues=intForcItems[2] for e in setCalc.getElements: sh=e.getProp('crossSection') sc=e.getProp('sectionClass') elIntForc=internalForcesValues[e.tag] for lf in elIntForc: CFtmp,NcRdtmp,McRdytmp,McRdztmp,MvRdztmp,MbRdztmp=sh.getBiaxialBendingEfficiency(sc,lf.N,lf.My,lf.Mz,lf.Vy,lf.chiLT) if lf.idSection == 0: if (CFtmp>e.getProp(self.limitStateLabel+'Sect1').CF): e.setProp(self.limitStateLabel+'Sect1',cv.SSBiaxialBendingControlVars('Sects1',lf.idComb,CFtmp,lf.N,lf.My,lf.Mz,NcRdtmp,McRdytmp,McRdztmp,MvRdztmp,MbRdztmp,lf.chiLT)) else: if (CFtmp>e.getProp(self.limitStateLabel+'Sect2').CF): e.setProp(self.limitStateLabel+'Sect2',cv.SSBiaxialBendingControlVars('Sects2',lf.idComb,CFtmp,lf.N,lf.My,lf.Mz,NcRdtmp,McRdytmp,McRdztmp,MvRdztmp,MbRdztmp,lf.chiLT))
def checkSetFromIntForcFile(self, intForcCombFileName, setCalc=None): '''Launch checking. :param intForcCombFileName: file containing the internal forces for each element. :param setCalc: set of elements to check ''' intForcItems = lsd.readIntForcesFile(intForcCombFileName, setCalc, self.vonMisesStressId) internalForcesValues = intForcItems[2] for e in setCalc.elements: factoredYieldStress = 0.9 * e.getProp('yieldStress') elIntForc = internalForcesValues[e.tag] if (len(elIntForc) == 0): lmsg.warning('No internal forces for element: ' + str(e.tag) + ' of type: ' + e.type()) for lf in elIntForc: CFtmp = lf.vonMisesStress / factoredYieldStress # Both sections will have the same Von Mises stress so this is redundant. if (CFtmp > e.getProp(self.limitStateLabel).CF): e.setProp( self.limitStateLabel, cv.VonMisesControlVars(lf.idComb, CFtmp, lf.vonMisesStress))