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))
Example #2
0
    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))
Example #3
0
    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))
Example #4
0
    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]    
Example #5
0
    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
Example #7
0
    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))