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)
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)
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)