{ "cells": [ { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Warning: Cannot change to a different GUI toolkit: notebook. Using widget instead.\n" ] }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "04f17b19556641f18272405d37fae48b", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Canvas(toolbar=Toolbar(toolitems=[('Home', 'Reset original view', 'home', 'home'), ('Back', 'Back to previous …" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "%matplotlib notebook\n", "from numpy import cos, arccos, sin, arctan, tan, pi, sqrt; from numpy import array as ary; import numpy as np; tau = 2*pi\n", "import matplotlib.pyplot as plt; import matplotlib as mpl\n", "from mpl_toolkits.mplot3d import Axes3D\n", "from quat import *\n", "def RotateSigma(stressTensor,theta):\n", " R = Rot2D(theta)\n", " #(R)(sigma)(R^T)\n", " return np.matmul(R,np.matmul(stressTensor,R.T))\n", "\n", "\n", "sigmaxx = 2\n", "sigmayy = 5\n", "shear_orig=0\n", "numPoints=100\n", "\n", "sigma = np.zeros([2,2])\n", "sigma[0][0] = sigmaxx\n", "sigma[1][1] = sigmayy\n", "sigma[0][1] = shear_orig\n", "sigma[1][0] = shear_orig\n", "\n", "xStressList,yStressList,shearList = [],[],[]\n", "\n", "fig = plt.figure()\n", "ax = fig.gca(projection='3d')\n", "Color = np.transpose( #Make the color vary\n", " ary([np.linspace(1,0,numPoints), #Starts off as red\n", " np.linspace(0,0,numPoints),\n", " np.linspace(0,1,numPoints), #ends up as blue\n", " np.linspace(0.8,0.8,numPoints)])\n", " )\n", "for theta in np.linspace(0,pi,numPoints):\n", " [[xStress,shear1],[shear2,yStress]] = RotateSigma(sigma, theta)\n", " if (shear1-shear2)>1e-14: print( FloatingPointError(\"sigmaxy = \",shear1,\" is not equal to shearyx = \",shear2))\n", " #print, but do not raise error, because we don't want it to be \n", " xStressList.append(xStress)\n", " yStressList.append(yStress)\n", " shearList.append(shear1)\n", " ax.scatter(xStress,yStress,shear1, c=[Color[int(numPoints*theta/pi -1)]])\n", "#ax.plot(xStressList,yStressList,shearList)\n", "ax.set_xlim([0,10])\n", "ax.set_xlabel(\"x-stress\")\n", "ax.set_ylim([0,10])\n", "ax.set_ylabel(\"y-stress\")\n", "ax.set_zlim([-5,5])\n", "ax.set_zlabel(\"shear stress\")\n", "# ax.set_aspect(1)\n", "plt.show()" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.2" } }, "nbformat": 4, "nbformat_minor": 4 }