Skip to content

Instantly share code, notes, and snippets.

@shenlebantongying
Created November 2, 2020 13:46
Show Gist options
  • Save shenlebantongying/50b95a2a3d2e21a4064548c958677c3e to your computer and use it in GitHub Desktop.
Save shenlebantongying/50b95a2a3d2e21a4064548c958677c3e to your computer and use it in GitHub Desktop.
ProjectExcalibur.ipynb
Display the source blob
Display the rendered blob
Raw
{
"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"colab": {
"name": "ProjectExcalibur.ipynb",
"provenance": [],
"collapsed_sections": [],
"include_colab_link": true
},
"kernelspec": {
"name": "python3",
"display_name": "Python 3"
}
},
"cells": [
{
"cell_type": "markdown",
"metadata": {
"id": "view-in-github",
"colab_type": "text"
},
"source": [
"<a href=\"https://colab.research.google.com/gist/shenlebantongying/50b95a2a3d2e21a4064548c958677c3e/projectexcalibur.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "c3Y06oTxPMdC"
},
"source": [
"**How to use**\n",
"+ **First time use -> top -> Runtime -> Restart and run all**\n",
"+ then click the red triangle of each code block to run certain parts"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "167lR_PaoJY1"
},
"source": [
"**Notes**\n",
"\n",
"+ To easily embed the \"algorithm\" into UI without much extra work, I put everything into a \"class\" core, and single output function -> plot().(i smiplily copy and paste the code below to assembly the final program and bingo its done :) \n",
"\n",
"+ There are a lot of self.x within the code. The \"self\" is a special keyword in python which means the paramater belong to the class rather than the global variable scope. (I think they can be elimated...)\n",
"\n",
"+ In this program, self.x means it is just a paramater or an intermediate constant which will not change during plotting or calculation after initlization.\n",
"\n",
"+ python's ^ \"power\" operator is double star. ($x^2$ shuold be x**2)\n",
"\n",
"+ scipy & numpy & matplotlib is the *de facto* scientific libries combination of python ecoosystem.\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "xzTRDRvlVmCW"
},
"source": [
"**TODO**\n",
"+ Validate input paramaters (some paramaters seems only possible in certain range?)\n",
"+ units of final solution??\n",
"+ what is \"outter radius\" b? \n",
"+ let user directly set $q$ rather than force use $\\theta$\n",
"+ check again if soil's cohension is always near zero( near the book's MC ceriterion part)\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "C-UNsdBqMD51"
},
"source": [
"**Symbols Table**\n",
"\n",
"|symbol | in-program | meaning | other note|\n",
"|---|---|---|---|\n",
"|$r$|r| radius(the only variable)| |\n",
"|$c_o$ | co | part of the Coulomb filure criterion | I dont quite understand it, around chapter 4.5(but directly calculated from $S_o$ or cohension )|\n",
"|$\\rho$ | rho | yield point | |\n",
"|$P_o$ | po | Hydrostatic stress ||\n",
"|$P_i$ | pi | stress at $r=a$, or the deformation of the hollow cylinder finished | first paragraph of the book|\n",
"|$\\theta'$ | theta_prime | angle of internal friction before yield | TODO: some where around chapter 3 or 4 of the book |\n",
"|$\\theta$ | theta | angle of internal friction after yield| yield: from elastic to plastic |\n",
"|$q'$|q_prime|Part of coulomb filure criterion **before** yield| can be directly calculated from $\\theta'$|\n",
"|$q$|q|Part of coulomb filure criterion **after** yield|\n"
]
},
{
"cell_type": "code",
"metadata": {
"id": "ndyQmOWRJdkW"
},
"source": [
"%matplotlib inline \n",
"import numpy as np\n",
"import scipy \n",
"import matplotlib.pyplot as plt "
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "3JATJ6tMNqi2",
"outputId": "fe580165-1603-474e-996f-6b0f61ce927b",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 543
}
},
"source": [
"class core():\n",
" def __init__(self,a,b,pi,so,theta,material,so_p=0,theta_p=0): \n",
" self.a = a # inner radius\n",
" self.b = b # outter radius \n",
" self.pi = pi # ->NOTICE<- this might also need to distinguish between different materials\n",
" self.material=material\n",
"\n",
" # ---> NOTE <----\n",
" # if material type is *soil*, the cohension will not change after the yield point\n",
" # only theta, q, and co are used\n",
"\n",
" # if material type is *rock*, the cohension will change\n",
" # when (a < r < rho) -> plastic (after yield) -> paramaters: q, co ,theta\n",
" # when (rho< r < b ) -> elastic (before yield) -> paramaters: q',co',theta' < notice the prime\n",
"\n",
"\n",
" # >>>> paramaters initilization <<<<\n",
" if self.material is \"soil\":\n",
" self.co = 2*so\n",
" self.theta = np.radians(theta)\n",
" self.po = self.co\n",
" self.q = (1+np.sin(self.theta))/(1-np.sin(self.theta))\n",
"\n",
"\n",
" elif self.material is \"rock\":\n",
" self.co = 2*so\n",
" self.theta = np.radians(theta)\n",
" self.q = (1+np.sin(self.theta))/(1-np.sin(self.theta))\n",
"\n",
" self.co_p = 2*so_p\n",
" self.theta_p = np.radians(theta_p)\n",
" self.q_p = (1+np.sin(self.theta_p))/(1-np.sin(self.theta_p))\n",
"\n",
" self.po = self.co_p\n",
"\n",
" # >>>> calculation of yield point & B <<<<\n",
" \n",
" if self.material is \"soil\":\n",
" # equation (9.28) & (9.29)\n",
" self.rho = self.a* ( 2*( self.po*(self.q-1)+self.co )/( ( self.pi*(self.q-1) + self.co)*(self.q+1) ) )**(1/(self.q-1))\n",
" self.B = (self.rho**2)*(self.co+self.po*(self.q-1))/(self.q+1)\n",
"\n",
" elif self.material is \"rock\":\n",
" # equation (9.35) & (9.36) 0> care for difference between \"primes\"\n",
" self.rho = self.a*(((2*self.po-self.co_p)*(1-self.q) - self.co*(1+self.q_p) )/( (self.pi*(1-self.q)-self.co)*(1+self.q_p) ) )**(1/(self.q-1))\n",
" self.B = (self.rho**2)*(self.co_p+self.po*(self.q_p-1) )/(self.q_p+1 )\n",
"\n",
" #=============================================================================\n",
"\n",
" def radical_stress(self,r):\n",
" if self.a<=r and r<self.rho:\n",
" return self.co/(1-self.q)+(self.pi-self.co/(1-self.q))*(r/self.a)**(self.q-1)\n",
" elif r > self.rho:\n",
" return self.po - self.B/(r**2)\n",
" else:\n",
" return np.nan\n",
"\n",
" def tangential_stress(self,r):\n",
" if self.a<=r and r<self.rho:\n",
" return self.co/(1-self.q)+self.q*(self.pi-self.co/(1-self.q))*(r/self.a)**(self.q-1)\n",
" elif r > self.rho:\n",
" return self.po + self.B/(r**2)\n",
" else:\n",
" return np.nan\n",
"\n",
"\n",
" #=============================================================================\n",
" def plot(self):\n",
" # plotting-related\n",
" # ps:code below suck, cuz matplotlib use similar api of MATLAB which have bad plotting functions.....\n",
" x_a_rho = np.linspace(self.a,self.rho,500)\n",
" x_rho_b = np.linspace(self.rho,self.b,500)\n",
"\n",
" rsline=plt.plot(x_a_rho,[self.radical_stress(r)/self.pi for r in x_a_rho],\"B\",\n",
" x_rho_b,[self.radical_stress(r)/self.pi for r in x_rho_b],\"B\",\n",
" )\n",
" rsline[0].set_label(\"Radical stress\")\n",
"\n",
" tsline=plt.plot(x_a_rho, [self.tangential_stress(r)/self.pi for r in x_a_rho],\"g\",\n",
" x_rho_b, [self.tangential_stress(r)/self.pi for r in x_rho_b],\"g\",\n",
" )\n",
" tsline[0].set_label(\"Tangential stress\")\n",
"\n",
" \n",
" plt.xlabel(r'radius r (m)')\n",
" plt.ylabel(r'Stress')\n",
"\n",
"\n",
" # Styling the plot\n",
" plt.grid()\n",
" plt.legend()\n",
" plt.show()\n",
"\n",
"#===============================================================================\n",
"# >>> testing code <<<\n",
"# Reproduce fig. 9.3 a\n",
"testCase_a = core(a=1,\n",
" b=10,\n",
" so=10,\n",
" pi=1,\n",
" theta=60,\n",
" material=\"soil\")\n",
"testCase_a.plot()\n",
"\n",
"# Reproduce fig. 9.3 b\n",
"\n",
"testCase_b = core(a=1,\n",
" b=10,\n",
" pi=1,\n",
" so=0,\n",
" so_p=10,\n",
" theta_p=30,\n",
" theta=30,\n",
" material=\"rock\")\n",
"testCase_b.plot()\n"
],
"execution_count": null,
"outputs": [
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": []
}
},
{
"output_type": "display_data",
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAX4AAAEGCAYAAABiq/5QAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjEsIGh0\ndHA6Ly9tYXRwbG90bGliLm9yZy+j8jraAAAgAElEQVR4nO3dd3gU1frA8e+b3uhgEooQegBTCEVE\ngYAo7SJiwQYo/uCiXkFsgAKi4hW9KDaugg0LUgQ0CCgoEAGVq4CAQIIUkWJAOkkgpJ3fH7MJCQSS\nQHYnyb6f55lndmdn5rw5hHdPzpw5I8YYlFJKuQ8PuwNQSinlWpr4lVLKzWjiV0opN6OJXyml3Iwm\nfqWUcjNedgdQFNWrVzf16tWzO4zLkpqaSmBgoN1hlBpaH2dpXeSn9ZHf5dTHunXrDhtjapy7vUwk\n/nr16rF27Vq7w7gs8fHxdOrUye4wSg2tj7O0LvLT+sjvcupDRP4saLt29SillJvRxK+UUm5GE79S\nSrmZMtHHr5S6fBkZGezbt4+0tDS7Q7moSpUqkZCQYHcYpUZR6sPPz4/atWvj7e1dpHM6LfGLiB+w\nEvB1lDPXGPOMiEwHOgInHLvea4zZ4Kw4lFKWffv2UaFCBerVq4eI2B3OBSUnJ1OhQgW7wyg1CqsP\nYwxHjhxh3759hIWFFemczmzxnwE6G2NSRMQbWC0iXzs+e8IYM9eJZSulzpGWllbqk74qPhGhWrVq\nHDp0qMjHOC3xG2vazxTHW2/HolOBKmUjTfrlU3H/XcWZ0zKLiCewDmgITDHGjHR09bTD+otgGTDK\nGHOmgGOHAEMAgoODY2bNmuW0OF0hJSWFoKCgAj87mHaQz/d9zqB6gwjwCnBxZPa4WH24G1fVRaVK\nlWjYsKHTy7lcWVlZeHp62h1GqVHU+tixYwcnTpzIty02NnadMabVeTsbY5y+AJWBFUALIBQQrL7/\nj4BxhR0fExNjyroVK1Zc8LM1e9cYxmNe/fFV1wVks4vVh7txVV1s3brVJeVciIeHh4mMjDTNmzc3\nvXr1MseOHStwv5MnTxa4vWPHjuaXX34xxhjTvXv3Cx5/MR9++KF56KGHirTvH3/8YWbMmFHsMkra\nherjXAX9+wJrTQE51SXDOY0xxx2Jv5sxJskR0xngQ6CNK2IozdrWbkuHuh14dc2rpGel2x2OUk7h\n7+/Phg0b2Lx5M1WrVmXKlCmXfK7FixdTuXLlEozufLt37+azzz4r8LPMzEynlu1sTkv8IlJDRCo7\nXvsDXYFEEQl1bBOgD7DZWTGUJSPbj2TfyX3M2ly2u7SUKop27dqxf/9+AH7++WfatWtHdHQ011xz\nDdu3bwfg9OnT3HHHHYSHh3PzzTdz+vTp3OPr1avH4cOHAfj444+JiIggMjKS/v37A/DVV1/Rtm1b\noqOjuf766zl48OBF4/n++++JiooiKiqK6OhokpOTGTVqFKtWrSIqKorJkyczffp0evfuTefOnenS\npQupqakMGjSINm3aEB0dTVxcHABbtmyhTZs2REVFERERwfbt20lNTaVnz55ERkbSokULZs+eXeJ1\nWhzOHNUTCnzk6Of3AOYYYxaKyHIRqYHV3bMBGOrEGMqM7g270+KKFrz8w8v0j+ivF+GUUz3yCGwo\n4UHUUVHw2muF75eVlcWyZcu4//77AWjatCmrVq3Cy8uL7777jmeffZa4uDjefvttAgICSEhIYNOm\nTbRs2fK8c23ZsoUJEybw448/Ur16dY4ePQrAtddey5o1axAR3nvvPV5++WVeeeWVC8Y0adIkpkyZ\nQvv27UlJScHPz4+JEycyadIkFi5cCMD06dNZv349mzZtomrVqjz11FN07tyZDz74gOPHj9OmTRuu\nv/563nnnHYYPH87dd99Neno6WVlZLF68mJo1a7Jo0SKA8/riXc2Zo3o2AdEFbO/srDLLMhHhyWue\nZMCXA1i8fTE9G/e0OySlStTp06eJiopi//79hIeH07VrV8BKggMHDmT79u2ICGfOWGM9Vq5cybBh\nwwCIiIggIiLivHMuX76c2267jerVqwNQtWpVwLpnoV+/fiQlJZGenl7o+Pb27dvz6KOPcvfdd9O3\nb19q165d4H5du3bNLWPp0qUsWLCASZMmAdZw2T179tCuXTteeOEF9u3bR9++fWnUqBFXXXUVjz32\nGCNHjqRXr15cd911xa2+EqV37pYid7S4g6eXP83EHybSo1EPbfUrpylKy7yk5fTxnzp1ihtvvJEp\nU6YwbNgwxo4dS2xsLF988QW7d++mY8eOl13Www8/zKOPPkrv3r2Jj49n/PjxF91/1KhR9OzZk8WL\nF9O+fXuWLFlS4H55p0c2xjBv3jyaNGmSb5/w8HDatm3LokWL6NGjB1OnTqVz586sX7+exYsXM2bM\n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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": []
}
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "p737BtzzJSgl"
},
"source": [
"> code below just some code sketch & backup"
]
},
{
"cell_type": "code",
"metadata": {
"id": "zXB5CgUu1oDV",
"outputId": "01e385a5-2e33-41ca-e66f-dfaab8c1a71e",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 34
}
},
"source": [
"#===== code below just for practice python ======\n",
"class cat():\n",
" def __init__(self,name):\n",
" self.name = name\n",
" self.truename = self.name\n",
" def p(self):\n",
" print(self.truename)\n",
"\n",
"mike=cat(\"so\")\n",
"mike.p()"
],
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"text": [
"so\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "cBAk_xNz7fu7",
"outputId": "489a918d-d6d7-485b-f630-6bebfe8b533b",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 280
}
},
"source": [
"#====== code below was draft version of the algorithm which can only calculate fig. 9.3 a\n",
"# just put here as backup\n",
"# Reproduce fig. 9.3 a\n",
"# r -> radius (variable)\n",
"# co -> part of the Coulomb filure criterion\n",
"# phi (Φ) -> angle of internal friction !!!!!! what?\n",
"\n",
"class core():\n",
" def __init__(self,a,b,so,pi):\n",
" self.a = a # a -> inner radius\n",
" self.b = b # b -> outter radius\n",
" self.so = so # so -> cohension\n",
" self.pi = pi # pi -> TODO!\n",
"\n",
" # calculate intermediate constants\n",
" self.co=2*self.so #\n",
" self.po = self.co #\n",
" \n",
" # calculate yield point from cohension & hydrostatic stress po\n",
" self.rho=self.a* np.sqrt((self.co+2*self.po)/(2*self.co+4*self.pi)) \n",
"\n",
" def radical_stress(self,r):\n",
" if self.a<=r and r<self.rho:\n",
" return (self.pi+(self.co/2))*(r/self.a)**2 - (self.co/2)\n",
" elif r >= self.rho:\n",
" return (self.po-0.5*(self.po+(self.co/2))*(self.rho /r)**2)\n",
" else:\n",
" return None\n",
"\n",
" def tangential_stress(self,r):\n",
" if self.a<=r and r<self.rho:\n",
" return 3*(self.pi+(self.co/2))*(r/self.a)**2-(self.co/2)\n",
" elif r >= self.rho:\n",
" return self.po+0.5*(self.po+(self.co/2))*(self.rho/r)**2\n",
" else:\n",
" return None\n",
"\n",
"\n",
" def plot(self):\n",
" # plotting-related\n",
" \n",
" # ps:code below suck, cuz matplotlib use similar api of MATLAB which have bad plotting functions.....\n",
" x_r = np.linspace(self.a,self.b,100)\n",
"\n",
" y_radical_stress = [self.radical_stress(r) for r in x_r]\n",
" plt.plot(x_r,y_radical_stress,label=\"Radial stress\")\n",
"\n",
"\n",
" y_trangential_stress = [self.tangential_stress(r) for r in x_r]\n",
" plt.plot(x_r,y_trangential_stress,label=\"Tangential stress\")\n",
"\n",
" plt.xlabel(r'radius r (m)')\n",
" plt.ylabel(r'Stress')\n",
"\n",
"\n",
" # Styling the plot\n",
" plt.grid()\n",
" plt.legend()\n",
"\n",
" plt.show()\n",
"\n",
"#===============================\n",
"# test\n",
"testCase = core (a=1,\n",
" b=10,\n",
" so=10,\n",
" pi=0)\n",
"testCase.plot()"
],
"execution_count": null,
"outputs": [
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": []
}
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "j8Zd57IvzTpL",
"outputId": "86ec50b6-63bf-4f26-cfbd-8de7cf5739d3",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 300
}
},
"source": [
"plt.plot([1,2,3],[4,5,6],[4,5,6],[7,8,9])"
],
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x7ff34c98f208>,\n",
" <matplotlib.lines.Line2D at 0x7ff34c98f588>]"
]
},
"metadata": {
"tags": []
},
"execution_count": 5
},
{
"output_type": "display_data",
"data": {
"image/png": "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\nCJcAAAAASUVORK5CYII=\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": []
}
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "BSa0CVAAzdeD",
"outputId": "a3d63062-749e-4555-f446-0c12f6a0bc35",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 167
}
},
"source": [
"raise ValueError('A very specific bad thing happened.')"
],
"execution_count": null,
"outputs": [
{
"output_type": "error",
"ename": "ValueError",
"evalue": "ignored",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m<ipython-input-6-bf62aa681e65>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mValueError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'A very specific bad thing happened.'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
"\u001b[0;31mValueError\u001b[0m: A very specific bad thing happened."
]
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "5c39GUFwTw-R"
},
"source": [
"```\n",
"# segiment backup\n",
" def radical_stress_soil (self,r):\n",
" if self.a<=r and r<self.rho:\n",
" return self.co/(1-self.q)+(self.pi-self.co/(1-self.q))*(r/self.a)**(self.q-1)\n",
" elif r > self.rho:\n",
" return self.po - self.B/(r**2)\n",
" else:\n",
" return np.nan\n",
"\n",
" def radical_stress_rock (self,r):\n",
" if self.a<=r and r<self.rho:\n",
" return self.co/(1-self.q)+(self.pi-self.co/(1-self.q))*(r/self.a)**(self.q-1)\n",
" elif r > self.rho:\n",
" return self.po - self.B/(r**2)\n",
" else:\n",
" return np.nan\n",
"```"
]
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment