def open_hole_strength(lam, nxy_ff, hole_dia, d0, theory, dtemp=0.0): """Analyse open hole strength using strength analysis B method. evaluate stresses at hole edge plus distance d0 """ # create open hole instance radius = hole_dia / 2 try: hole = CircularHoleInfiniteAnisotropicPlate(lam, radius) except IsotropicMaterialError: hole = CircularHoleInfiniteIsotropicPlate(radius) angles = np.arange(0, 360, 5) # 5° step all_res = [] for theta in angles: theta_rad = np.radians(theta) x = (radius + d0) * math.cos(theta_rad) y = (radius + d0) * math.sin(theta_rad) ntheta = hole.cart_stress(x, y, nxy_ff) # dtemp = 0 strength = failure_analysis_b(lam, ntheta, dtemp, theory) all_res.append((theta, strength)) return all_res
def test_memb_airbus(self): r = plainstrength.failure_analysis_b(self.mlam, self.load3, self.dtemp, 'Airbus') print(r)
def test_memb_maxstrain(self): r = plainstrength.failure_analysis_b(self.mlam, self.load3, self.dtemp, 'MaxStrain') print(r)
def test_memb_modpuck(self): r = plainstrength.failure_analysis_b(self.mlam, self.load3, self.dtemp, 'ModPuck') print(r)
def test_memb_hashinb(self): r = plainstrength.failure_analysis_b(self.mlam, self.load3, self.dtemp, 'Hashin B') print(r)
def test_flex_airbus(self): r = plainstrength.failure_analysis_b(self.lam, self.load6, self.dtemp, 'Airbus') print(r)
def test_flex_maxstrain(self): r = plainstrength.failure_analysis_b(self.lam, self.load6, self.dtemp, 'MaxStrain') print(r)
def test_flex_modpuck(self): r = plainstrength.failure_analysis_b(self.lam, self.load6, self.dtemp, 'ModPuck') print(r)
def test_flex_hashinb(self): r = plainstrength.failure_analysis_b(self.lam, self.load6, self.dtemp, 'Hashin B') print(r)