Esempio n. 1
0
 def checkBiaxialBendingForElement(self, elem, nmbComb):
     '''Called in every commit to check biaxial bending criterion (bars in 3D problems).'''
     elem.getResistingForce()
     sectionClass = elem.getProp('sectionClass')
     chiLT = elem.getProp('chiLT')
     N1 = elem.getN1
     My1 = elem.getMy1
     Mz1 = elem.getMz1
     Vy1 = elem.getVy1
     FCTN1 = self.getBiaxialBendingEfficiency(sectionClass, N1, My1, Mz1,
                                              Vy1, chiLT)
     N2 = elem.getN2
     My2 = elem.getMy2
     Mz2 = elem.getMz2
     Vy2 = elem.getVy2
     FCTN2 = self.getBiaxialBendingEfficiency(sectionClass, N2, My2, Mz2,
                                              Vy2, chiLT)
     fctn = elem.getProp("FCTNCP")
     if (FCTN1 > fctn[0]):
         fctn[0] = FCTN1
         elem.setProp("HIPCPTN1", nmbComb)
     if (FCTN2 > fctn[1]):
         fctn[1] = FCTN2
         elem.setProp("HIPCPTN2", nmbComb)
     elem.setProp("FCTNCP", fctn)
     vc.updateEnvelopeInternalForcesBeamElem(elem)
Esempio n. 2
0
    def checkBiaxialBendingForElement(self, elem, nmbComb):
        '''Called in every commit to check biaxial bending criterion 
            (bars in 3D problems).

        :param elem: finite element to check.
        :param nmbComb: name of the load combination.
        '''
        elem.getResistingForce()
        sectionClass = elem.getProp('sectionClass')
        chiLT = elem.getProp('chiLT')
        N1 = 0.0
        My1 = 0.0
        Mz1 = 0.0
        Vy1 = 0.0
        N2 = 0.0
        My2 = 0.0
        Mz2 = 0.0
        Vy2 = 0.0
        axialForces = elem.getValuesAtNodes('N', False)
        if (len(axialForces) > 1):  # 'N' found.
            N1 = axialForces[0]
            N2 = axialForces[1]
        bendingY = elem.getValuesAtNodes('My', False)
        if (len(bendingY) > 1):  # 'My' found.
            My1 = bendingY[0]
            My2 = bendingY[1]
        bendingZ = elem.getValuesAtNodes('Mz', False)
        if (len(bendingZ) > 1):  # 'Mz' found.
            Mz1 = bendingZ[0]
            Mz2 = bendingZ[1]
        shearY = elem.getValuesAtNodes('Vy', False)
        if (len(shearY) > 1):  # 'Vy' found.
            Vy1 = shearY[0]
            Vy2 = shearY[1]
        FCTN1 = self.getBiaxialBendingEfficiency(sectionClass, N1, My1, Mz1,
                                                 Vy1, chiLT)[0]
        FCTN2 = self.getBiaxialBendingEfficiency(sectionClass, N2, My2, Mz2,
                                                 Vy2, chiLT)[0]
        fctn = elem.getProp("FCTNCP")
        if (FCTN1 > fctn[0]):
            fctn[0] = FCTN1
            elem.setProp("HIPCPTN1", nmbComb)
        if (FCTN2 > fctn[1]):
            fctn[1] = FCTN2
            elem.setProp("HIPCPTN2", nmbComb)
        elem.setProp("FCTNCP", fctn)
        vc.updateEnvelopeInternalForcesBeamElem(elem)
Esempio n. 3
0
 def checkBiaxialBendingForElement(self,elem,nmbComb):
     '''Called in every commit to check biaxial bending criterion (bars in 3D problems).'''
     elem.getResistingForce()
     sectionClass= elem.getProp('sectionClass')
     chiLT= elem.getProp('chiLT')
     N1= elem.getN1
     My1= elem.getMy1
     Mz1= elem.getMz1
     Vy1= elem.getVy1
     FCTN1= self.getBiaxialBendingEfficiency(sectionClass,N1,My1,Mz1,Vy1,chiLT)
     N2= elem.getN2
     My2= elem.getMy2
     Mz2= elem.getMz2
     Vy2= elem.getVy2
     FCTN2= self.getBiaxialBendingEfficiency(sectionClass,N2,My2,Mz2,Vy2,chiLT)
     fctn= elem.getProp("FCTNCP")
     if(FCTN1 > fctn[0]):
         fctn[0]= FCTN1
         elem.setProp("HIPCPTN1",nmbComb)
     if(FCTN2 > fctn[1]):
         fctn[1]= FCTN2
         elem.setProp("HIPCPTN2",nmbComb)
     elem.setProp("FCTNCP",fctn)
     vc.updateEnvelopeInternalForcesBeamElem(elem)