Stress Transformation 2D

383 days ago by DorkeyDear

R = lambda T : matrix([[cos(T), sin(T)], [-sin(T), cos(T)]]); S = lambda xx, yy, xy : matrix([[xx, xy], [xy, yy]]); 
       
Sxx = 20; Syy = 15; Sxy = 5; Sold = S(Sxx, Syy, Sxy); Snew = lambda T : R(T) * Sold * R(T).transpose(); Snewxx = lambda T : Snew(T)[0, 0]; Snewyy = lambda T : Snew(T)[1, 1]; Snewxy = lambda T : Snew(T)[0, 1]; Tmax = pi; Pxx = plot(Snewxx, (0, Tmax), rgbcolor=[0.8, 0, 0], ticks=pi/4, tick_formatter=pi); Pyy = plot(Snewyy, (0, Tmax), rgbcolor=[0, 0.8, 0], ticks=pi/4, tick_formatter=pi); Pxy = plot(Snewxy, (0, Tmax), rgbcolor=[0.8, 0.8, 0], ticks=pi/4, tick_formatter=pi); SNavg = mean([Sxx, Syy]); SSmax = sqrt(0.25 * (Sxx - Syy)^2 + Sxy^2); SSmin = -SSmax; SNmax = SNavg + SSmax; SNmin = SNavg - SSmax; PPSN1 = 0.5 * atan2(2 * Sxy, Sxx - Syy); PPSN2 = PPSN1 + pi / 2; PPSS1 = PPSN1 + pi / 4; PPSS2 = PPSS1 + pi / 2; LSNmax = line([[0, SNmax], [0.94 * Tmax, SNmax]], rgbcolor=[0.25, 0.25, 1], linestyle='--'); LSNmin = line([[0, SNmin], [0.94 * Tmax, SNmin]], rgbcolor=[0.25, 0.25, 1], linestyle='--'); LSSmax = line([[0, SSmax], [0.94 * Tmax, SSmax]], rgbcolor=[0, 0, 0.5], linestyle='--'); LSSmin = line([[0, SSmin], [0.94 * Tmax, SSmin]], rgbcolor=[0, 0, 0.5], linestyle='--'); TSNmax = text(round(SNmax, ndigits=2), (0.95 * Tmax, SNmax), horizontal_alignment='left', vertical_alignment='center'); TSNmin = text(round(SNmin, ndigits=2), (0.95 * Tmax, SNmin), horizontal_alignment='left', vertical_alignment='center'); TSSmax = text(round(SSmax, ndigits=2), (0.95 * Tmax, SSmax), horizontal_alignment='left', vertical_alignment='center'); TSSmin = text(round(SSmin, ndigits=2), (0.95 * Tmax, SSmin), horizontal_alignment='left', vertical_alignment='center'); LPPSN1 = line([[PPSN1, SNmin], [PPSN1, SNmax]], rgbcolor=[0.25, 0.25, 1], linestyle=':'); LPPSN2 = line([[PPSN2, SNmin], [PPSN2, SNmax]], rgbcolor=[0.25, 0.25, 1], linestyle=':'); LPPSS1 = line([[PPSS1, SSmin], [PPSS1, 0]], rgbcolor=[0, 0, 0.5], linestyle=':'); LPPSS2 = line([[PPSS2, 0], [PPSS2, SSmax]], rgbcolor=[0, 0, 0.5], linestyle=':'); # red: normal stress along the x' axis # green: normal stress along the y' axis # yellow: shear stress along the x'y' plane # dashed light-blue: maximum and minimum normal stress # dotted light-blue: angle in which maximum and minimum normal stresses occur # dashed dark-blue: maximum and minimum shear stress # dotted dark-blue: angle in which maximum and minimum shear stresses occur show(Pxx + Pyy + Pxy + LSNmax + LSNmin + LSSmax + LSSmin + TSNmax + TSNmin + TSSmax + TSSmin + LPPSN1 + LPPSN2 + LPPSS1 + LPPSS2);