{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "Ce notebook reproduit une partie du polycopié de travaux numériques de mécanique." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Recherche de la solution approchée " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "On va chercher une solution analytique approchée au problème du barrage à l'aide d'un calcul symbolique." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import sympy\n", "sympy.init_printing()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "D'abord, définissons quelques symboles." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "x, y, U, V, l, h = sympy.symbols('x, y, U, V, l, h')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Ceci nous permet de définir le champ de déplacement $\\xi$ :" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$$\\left[\\begin{matrix}\\frac{U y}{h}\\\\\\frac{V y}{h}\\end{matrix}\\right]$$" ], "text/plain": [ "⎡U⋅y⎤\n", "⎢───⎥\n", "⎢ h ⎥\n", "⎢ ⎥\n", "⎢V⋅y⎥\n", "⎢───⎥\n", "⎣ h ⎦" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "xi = sympy.Matrix((U * y/h, V * y / h))\n", "\n", "xi" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "On peut calculer l'énergie potentielle associée à ce champ de déplacement, constituée de deux termes. Le premier est l'énergie des forces extérieures." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "gamma_e, gamma = sympy.symbols('gamma_e, gamma')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "La première composante vient des forces de gravité :" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAFEAAAAXCAYAAABzjqNHAAAABHNCSVQICAgIfAhkiAAAA8VJREFU\nWIXtl1mIjWEYx38GY8aSLdwoITtpZqxZIrmwFhllkpRyIRFZUm6UbNkaZCmNNNwgyb4kxmTfL8a+\nZW9oMHbDuHiet/nO633nnOMsLpx/nd7zPc//Wd7ne97lgxT+a8wGKoG8BPEjRlocfU1AktwQAXeT\nclfEEC9bx6tx4LcAfgL5Dt0AYA/wEvim4zFgeMSZRoHOSGGKwvCykISfAfVjiFcCfCTyRigByj38\nqUjugy35QpWXAgXAEmALcInYGsCLmsAXoCwMr1gTGx9DrHrIiyiOkn/Goz8MvEHmYJCL5HkcaOCw\nqR1h7KhxWQO39Ognqv5EQDYW+AFcAFp57Bap3VR97qfP+cgKKAReIZ15Fuht2Rv+WofvhsgyLQjI\n0oCHwCegmSenhGErkuwwh64+8Bz4DnQMyPsBh/Dvp22QDr9I1VKcofx9wGdgP7K8Dqr8NaHdY/iT\nHP7zVDcqIOuvsl1ALWAEMB+YCfR1+IgrTLLzHLrlqlvm0NVBuuiCQ3cAWYo9ArJtVBUr2+LvUd0A\nB7+rw/8ujZ0RkM1S/nrgpv4P/k6TwA4dpEG2W/L2yJJ5iuxPLlwEPliy0epvoyU3E3N1/GLVDbX4\nnwnd80AKV44UMoil6qMCuAcMQVZSF+CI6k555sFj/qx6db9Cy76xyq9ZcrNcx/kCI4UP7qeZyL5U\nqn4NMpA99IHHz07108bin3NwzUuy744rVP4T6G7pMpFmqESXdi2L8AD46knOhRfWc5kG6KS+K5C9\nZhhyyu2uxtdtHTsj158FQGtgCqEnfnf1fczjJxt4Dzyy+Fcc3DHIHn3QMQ+Ql3jD0n0BjmpevYBz\ndhGHeBKLBjeAkUA7TWKNJjo9jF2wiPeBucB5Qk9NgBwdXUVpoHGLkE4J8u1Ldk3kBZ9Eih7EHR3f\neXI1Rc6E+H6xGJg31w2YA7QFVgF3w9gFi5iP3MOmUVUMA3OQuIqYhcwpqPN9qQwEmgJ7HX6KkFXU\nDkh36M0B9dihiwvMJbUAOfWeAHUjsEtHEi9T+3Ue3lXkkHJdds2pmmfxvzr465A9r4UnTqH6WmzJ\nhwK/kC5t5LGNGe0JPXzGRmF7j6qriyvBdGRruOSxNxPvEAH/Kf4vGIDmgXyKgJXIKV6BHFS51djG\njDTkpl+JXAeiwX61m+zR56h+s0d/i9DvYx+/p8pnh8mnCbAaOaS+A2+RC36fMHb/FMXIEvPdJeOF\nJUgRWyc4TtJRA+mikiTEugVcT0KcpMPspTv+dSLRIhFXnL9Flo72104KKaSQQrLwG3MRFKgNnE4H\nAAAAAElFTkSuQmCC\n", "text/latex": [ "$$- \\frac{V \\gamma}{6} h l$$" ], "text/plain": [ "-V⋅γ⋅h⋅l \n", "─────────\n", " 6 " ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "phi1 = sympy.integrate(-gamma * xi[1], (y, 0, h - x/l*h), (x, 0, l))\n", "phi1" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "La deuxième vient des forces hydrostatiques de l'eau :" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "m = sympy.symbols('m')" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "image/png": "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\nepIuCHRKAAAAAElFTkSuQmCC\n", "text/latex": [ "$$\\frac{U \\gamma_{e}}{6} h^{2} m^{3}$$" ], "text/plain": [ " 2 3\n", "U⋅γₑ⋅h ⋅m \n", "──────────\n", " 6 " ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "phi2 = sympy.integrate(gamma_e * (m * h - y) * xi[0], (y, 0, m*h))\n", "phi2" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Il faut maintenant calcul le travail élastique. Construisons le tenseur epsilon :" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$$\\left[\\begin{matrix}0 & \\frac{U}{h}\\\\0 & \\frac{V}{h}\\end{matrix}\\right]$$" ], "text/plain": [ "⎡ U⎤\n", "⎢0 ─⎥\n", "⎢ h⎥\n", "⎢ ⎥\n", "⎢ V⎥\n", "⎢0 ─⎥\n", "⎣ h⎦" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "grad_xi = sympy.Matrix([[sympy.diff(xi[0], x), sympy.diff(xi[0], y)],\n", " [sympy.diff(xi[1], x), sympy.diff(xi[1], y)]])\n", "grad_xi" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$$\\left[\\begin{matrix}0 & \\frac{U}{2 h}\\\\\\frac{U}{2 h} & \\frac{V}{h}\\end{matrix}\\right]$$" ], "text/plain": [ "⎡ U ⎤\n", "⎢ 0 ───⎥\n", "⎢ 2⋅h⎥\n", "⎢ ⎥\n", "⎢ U V ⎥\n", "⎢─── ─ ⎥\n", "⎣2⋅h h ⎦" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "epsilon = 1 / sympy.S(2) * (grad_xi + grad_xi.transpose())\n", "epsilon" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "lambda_, mu = sympy.symbols('lambda, mu')" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n+D/VYmyLLvjy9QAAAABJRU5ErkJggg==\n", "text/latex": [ "$$\\frac{l}{4 h} \\left(- U^{2} \\mu - V^{2} \\lambda - 2 V^{2} \\mu\\right) + \\frac{l}{2 h} \\left(U^{2} \\mu + V^{2} \\lambda + 2 V^{2} \\mu\\right)$$" ], "text/plain": [ " ⎛ 2 2 2 ⎞ ⎛ 2 2 2 ⎞\n", "l⋅⎝- U ⋅μ - V ⋅λ - 2⋅V ⋅μ⎠ l⋅⎝U ⋅μ + V ⋅λ + 2⋅V ⋅μ⎠\n", "────────────────────────── + ────────────────────────\n", " 4⋅h 2⋅h " ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "W = sympy.integrate(lambda_ / sympy.S(2) * epsilon.trace()**2 + mu * (epsilon * epsilon).trace(), (y, 0, h-x/l*h), (x, 0, l))\n", "W" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "image/png": "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\nUEb8C8NfooNdAQGiAAAAAElFTkSuQmCC\n", "text/latex": [ "$$\\frac{l}{4 h} \\left(U^{2} \\mu + V^{2} \\lambda + 2 V^{2} \\mu\\right)$$" ], "text/plain": [ " ⎛ 2 2 2 ⎞\n", "l⋅⎝U ⋅μ + V ⋅λ + 2⋅V ⋅μ⎠\n", "────────────────────────\n", " 4⋅h " ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sympy.factor(W)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "On peut maintenant minimiser en U et V la fonctionnelle suivante :" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$$- \\frac{U \\gamma_{e}}{6} h^{2} m^{3} + \\frac{V \\gamma}{6} h l + \\frac{l}{4 h} \\left(- U^{2} \\mu - V^{2} \\lambda - 2 V^{2} \\mu\\right) + \\frac{l}{2 h} \\left(U^{2} \\mu + V^{2} \\lambda + 2 V^{2} \\mu\\right)$$" ], "text/plain": [ " 2 3 ⎛ 2 2 2 ⎞ ⎛ 2 2 2 ⎞\n", " U⋅γₑ⋅h ⋅m V⋅γ⋅h⋅l l⋅⎝- U ⋅μ - V ⋅λ - 2⋅V ⋅μ⎠ l⋅⎝U ⋅μ + V ⋅λ + 2⋅V ⋅μ⎠\n", "- ────────── + ─────── + ────────────────────────── + ────────────────────────\n", " 6 6 4⋅h 2⋅h " ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "func = W - phi1 - phi2\n", "func" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "On écrit qu'au point minimum, la dérivée s'annule, ce qui donne un système de deux équations à deux inconnues :" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "image/png": "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\ngQIFChRYK/AvlxNHfs+t3LkAAAAASUVORK5CYII=\n", "text/latex": [ "$$\\frac{U l \\mu}{2 h} - \\frac{\\gamma_{e} h^{2}}{6} m^{3}$$" ], "text/plain": [ " 2 3\n", "U⋅l⋅μ γₑ⋅h ⋅m \n", "───── - ────────\n", " 2⋅h 6 " ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sympy.diff(func, U)" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "image/png": "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\ngg==\n", "text/latex": [ "$$\\frac{\\gamma h}{6} l + \\frac{l}{4 h} \\left(- 2 V \\lambda - 4 V \\mu\\right) + \\frac{l}{2 h} \\left(2 V \\lambda + 4 V \\mu\\right)$$" ], "text/plain": [ "γ⋅h⋅l l⋅(-2⋅V⋅λ - 4⋅V⋅μ) l⋅(2⋅V⋅λ + 4⋅V⋅μ)\n", "───── + ────────────────── + ─────────────────\n", " 6 4⋅h 2⋅h " ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sympy.diff(func, V)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Que l'on peut résoudre :" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$$\\left \\{ U : \\frac{\\gamma_{e} h^{3} m^{3}}{3 l \\mu}, \\quad V : - \\frac{\\gamma h^{2}}{3 \\lambda + 6 \\mu}\\right \\}$$" ], "text/plain": [ "⎧ 3 3 2 ⎫\n", "⎪ γₑ⋅h ⋅m -γ⋅h ⎪\n", "⎨U: ────────, V: ─────────⎬\n", "⎪ 3⋅l⋅μ 3⋅λ + 6⋅μ⎪\n", "⎩ ⎭" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sols = sympy.solve([sympy.diff(func, U),\n", " sympy.diff(func, V)], (U, V))\n", "sols" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "On peut maintenant dessiner dans un cas simple la déformée :" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", "import numpy as np\n", "%matplotlib inline" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAEcAAAAnCAYAAABdRFVFAAAABHNCSVQICAgIfAhkiAAAA9NJREFU\naIHt2VuIlVUUwPGfk4442UUFL29Gk9FlmgkqmCQqKkOm0pegHqYLBF0Ug4ykgpAgJyEosgtS0RRF\nhAQ1QaDZQ9GU0kNWpE1pdKOrDTUmzahlD2sP8803Z+wcPefMjJ4/bM73rX1bZ39rr7332tSY8KzF\n29XutK7aHR4mLfik2p1OlMFpdgwOzg58hOk5+SasT89zMQf78Bb2YhcuTfk/4K5c/Sb048zyq1w9\nzsHfuCojuxp/YHZ6X4yDeA9XoBFv4OOUvwGv5Np9B09URuXq8j7uTs/1+BIrM/n3isGam5G1C4sh\nrGZnJm8pejHrSBUb62kFPTg9Pa9Iv+sy+S14Ez9nZI2GBmQLTsVMTMUjeBC/V0jfqnKPmDKz8aeY\nVll6cEdO1oXH0vNUDGARVuELTKmUstVmCX7BM0buZRrwD1pz8u9xU+Z9i7C2PsP914TnDOFwB3BW\nLq9VDM7xGdmsVL4lI3sU/2Jj5dQcG6bggMKry21immS5XCzr9RnZjamN/OBOeKaLr37BEbSxCU+W\nR53xxUIxdRpKrFcnNoer8BNmlFmvccFysVMulUuExe3AheVUqMZh8I1YCYpNL42JllVicu59lziw\nFcuPZdRl3DGpTO0cLFM7NWqMzmqxiXtd+Sx33LMMn4rzTR8+RFuBcifiFiOPAOVmHl7Ab8KPbsfF\nFezvkCwRgalGLMBD2C8CWnkmC4XbS2i/U1hdMZyMr/Gi2HmfgsvEOW7c0ItbC8inYbe4VSiWTsUP\nzhp0/0+ZVrGJzIZoZwiLbqZywa7jcF3q+IMC+Q+I03VThfpfiq14Fb9im9iJZ31cC77CXxnZucIf\nbq+EUk2pswMitFnI55wtplQXviuh7U7FW05/Sh3iD9+c9FqeKbPeyNjzSkOx6bJTL3zOeUmx3WIw\nBpkkLGkdrhEmfNIobd0n/tBg2i++alZ20Sh19xlpsWsMP8NtFVHILC/j+VHaLDub8Vzm/XYRxTsB\n88XgLByl7kwx0IPpNTyek00bpe63eDYnaxfXOoQ72StiQ1l6cOfgS/74UG7qRIyXWFo7cAP2pNQn\npmIh59mb0iB70vvOAmXzdBsK2g+yQAyalNdg+PGnKZXZVkT7JfOwMPP5qaMOsRosTvkbUsrSrfj7\npU7F+5zzxTS8X1jYtSJ4vyzlXy+s9imcJu7DPk+yRUX2URKd4ssMiBViM65MeW3CQc/L1Xka75bQ\n/uoS9GkTV8j94i5shaHVaq2IHnYlfT8T+7RecQ10TLNRWPYhGQ+XemNBszjq1MgxR/iWo+6mokaN\nGjWOWv4DFnTdKfJhcUoAAAAASUVORK5CYII=\n", "text/latex": [ "$$- \\frac{\\gamma h y}{3 \\lambda + 6 \\mu}$$" ], "text/plain": [ " -γ⋅h⋅y \n", "─────────\n", "3⋅λ + 6⋅μ" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "xi[1].subs(sols)" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [], "source": [ "def plot_dam_solution():\n", " \"\"\"Plots the dam problem solution.\"\"\"\n", " l_, h_ = 0.5, 0.3\n", " gamma_e_ = 0.5\n", " gamma_ = 0.1\n", " mu_ = 0.2\n", " m_ = 1.\n", " lambda__ = 0.1\n", " A = (0, 0)\n", " B = (l_, 0)\n", " C = (0, h_)\n", " points = np.c_[A, B, C, A].T\n", " plt.plot(points[:, 0], points[:, 1], '-o', label='dam (original)')\n", " Cd = np.array(C)\n", " Cd[0] += xi[0].subs(sols).subs({gamma_e:gamma_e_, h:h_, l:l_, mu:mu_, m: m_, y:h_})\n", " Cd[1] += xi[1].subs(sols).subs({gamma_e:gamma_e_, h:h_, l:l_, mu:mu_, m: m_, y:h_, gamma: gamma_, lambda_: lambda__})\n", " points2 = np.c_[A, B, Cd, A].T\n", " plt.plot(points2[:, 0], points2[:, 1], '-o', label='dam (displaced)')\n", " plt.legend()" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAX0AAAD8CAYAAACb4nSYAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4wLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvpW3flQAAIABJREFUeJzt3Xd8Tff/wPHX52YHMWPvvWKGICT2\nrMSsVUprU8q3Q38dVDctqrWrpa1SW9RWI/belBIrRqVCrCDj8/vjXBqRcRNJbpL7fj4e95F7z3yf\n3vTt5Jz3eX+U1hohhBC2wWTtAIQQQqQdSfpCCGFDJOkLIYQNkaQvhBA2RJK+EELYEEn6QghhQyTp\nCyGEDZGkL4QQNkSSvhBC2BB7awcQW548eXTx4sWtHYYQQmQoBw4c+Fdr7Z7Ycuku6RcvXpz9+/db\nOwwhhMhQlFIXLVlOLu8IIYQNkaQvhBA2RJK+EELYkHR3TV8IkfIiIiIIDg7m4cOH1g5FvCBnZ2cK\nFy6Mg4NDstaXpC+EDQgODiZbtmwUL14cpZS1wxHJpLXm5s2bBAcHU6JEiWRtw6LLO0qplkqp00qp\ns0qpUXHMH6iUOqaUOqyU2q6Uqhhj3nvm9U4rpVokK0oLLD90Be8vN1Fi1Cq8v9zE8kNXUmtXQmQ4\nDx8+JHfu3JLwMzilFLlz536hv9gSPdNXStkBU4BmQDCwTykVoLU+GWOx37TW083L+wETgJbm5N8V\nqAQUBDYqpcpqraOSHXEclh+6wntLjxEeYWz2yu1w3lt6DIB21Qul5K6EyLAk4WcOL/o9WnKmXxs4\nq7UO0lo/BhYA/jEX0FrfifExC/BkDEZ/YIHW+pHW+jxw1ry9FDV+3emnCf+J8Igoxq87ndK7EkKI\nDM2SpF8IuBzjc7B52jOUUkOUUueAccCwJK7bXym1Xym1PyQkxNLYn7p6OzxJ04UQ1jVmzBi+/vrr\nVNl2p06dCAoKStI6ffv25eTJkwkuM336dH7++edkxXThwgUqV64MwLFjx+jdu3eytpMSLLmRG9ff\nEs+Npq61ngJMUUp1Bz4AXk3CujOBmQCenp5JHqm9YA4XrsSR4N2zOSV1U5Y5uhD+HAthwZC9MDT5\nCKq8nDr7EsIKlh+6wvh1p7l6O5yCOVx4u0W5DHGp9MSJE0RFRVGyZEmL14mKiuKHH35IdLmBAwe+\nSGhPeXh4EBwczKVLlyhatGiKbDMpLDnTDwaKxPhcGLiawPILgHbJXDdZ3m5RDmeH5w8l5O4jvl53\nmocRKXgL4ehCWDkMwi4D2vi5cpgxXYhM4Mk9siu3w9H8d4/sRYsjPvvsM8qVK0fTpk05ffq/S6+z\nZs2iVq1aVK1alY4dO/LgwQMAevfuzaBBg2jUqBElS5Zk69atvPbaa1SoUCHeM+V58+bh7//f1ef5\n8+fj4eFB5cqVeffdd59Oz5o1Kx999BFeXl7s2rWLhg0bPm3/Mnv2bMqWLUvDhg3p168fQ4cOBZ79\n66Rhw4a8++671K5dm7Jly7Jt2zbAOKNv0KABNWrUoEaNGuzcuTPOONu2bcuCBQuS+V/yxVhypr8P\nKKOUKgFcwbgx2z3mAkqpMlrrv80f2wBP3gcAvymlJmDcyC0D7E2JwGNqV70Q9x5F8MHyEwAUyuHC\n4IalOHjpNt9vPsua49cY16kKNYvlevGd/TkWImL9VRERbkyXs32RAXy88gQnr96Jd/6hS7d5HBX9\nzLTwiCjeWXyU+XsvxblOxYJujG5bKd5tHjhwgAULFnDo0CEiIyOpUaMGNWvWBKBDhw7069cPgA8+\n+IDZs2fzxhtvAHDr1i02bdpEQEAAbdu2ZceOHfzwww/UqlWLw4cPU61atWf2s2PHDrp16wbA1atX\neffddzlw4AA5c+akefPmLF++nHbt2nH//n0qV67M2LFjn1n/6tWrfPLJJxw8eJBs2bLRuHFjqlat\nGucxRUZGsnfvXlavXs3HH3/Mxo0byZs3Lxs2bMDZ2Zm///6bbt26xdlLzNPTky+//JJ33nkn3v9m\nqSXRM32tdSQwFFgHnAIWaq1PKKXGmit1AIYqpU4opQ4DIzEu7aC1PgEsBE4Ca4EhKV2580SrygUA\nGOtfiR2jGtOjTjG+ebkqc1+rzcOIaDpN38WYgBPcfxT5YjsKC07adCEymNgJP7Hplti2bRvt27fH\n1dUVNzc3/Pz8ns47fvw4DRo0wMPDg3nz5nHixImn89q2bYtSCg8PD/Lly4eHhwcmk4lKlSpx4cKF\n5/Zz7do13N2NRpP79u2jYcOGuLu7Y29vT48ePQgMDATAzs6Ojh07Prf+3r178fX1JVeuXDg4ONC5\nc+d4j6lDhw4A1KxZ82ksERER9OvXDw8PDzp37hzvfYK8efNy9WqKX/SwiEUPZ2mtVwOrY037KMb7\n4Qms+xnwWXIDfFG+Zd1ZN8KH8Wv/Ys7OC2w4+Q9fdPDAp2yiHUjjlr2w+dJOLK4p8FeEEGkgoTNy\nAO8vN8V5j6xQDhd+H1A32fuNr9Swd+/eLF++nKpVqzJnzhy2bNnydJ6Tk3FfzmQyPX3/5HNk5PMn\ncC4uLk9r2LWO//ags7MzdnZ2z01PaJ3YnsRjZ2f3NJaJEyeSL18+jhw5QnR0NM7OznGu+/DhQ1xc\nXCzeV0qyid47WZ3s+di/MosG1sXJwUSvH/fy1qIjhD2ISPrGmnwE9rG/LAUPbsLyIfDoborELIS1\nvN2iHC4OzyZEFwc73m5RLtnb9PHxYdmyZYSHh3P37l1Wrlz5dN7du3cpUKAAERERzJs3L9n7AKhQ\noQJnz54FwMvLi61bt/Lvv/8SFRXF/Pnz8fX1TXD92rVrs3XrVm7dukVkZCRLlixJ0v7DwsIoUKAA\nJpOJX375haiouC9snDlz5mk1T1qziaT/RK3iuVg9rAGDG5Zi2aErNJ24lbXHryVtI1Vehob/3RAi\nexFoNxUa/A+O/AbTvOHS7pQNXIg01K56Ib7o4EGhHC4ojDP8Lzp4vFD1To0aNejSpQvVqlWjY8eO\nNGjQ4Om8Tz75BC8vL5o1a0b58uVfKPY2bdo8/UuhQIECfPHFFzRq1IiqVatSo0aNZ27yxqVQoUL8\n3//9H15eXjRt2pSKFSuSPXt2i/c/ePBg5s6dS506dThz5gxZsmSJc7nNmzfTpk0bi7eborTW6epV\ns2ZNnRz/3n2oi737h56787xFyx8Lvq1bTQrUxd79Qw/8Zb/+50645Ts79YfWo920Dt7/7PSLu7Se\n6KH1mBxab/xY64hHlm9TiFR08uRJa4eQJh48eKC9vLx0ZGRksrdx9+5drbXWERER+qWXXtJLly5N\nqfC01lo/fPhQe3l56YiIiGRvI67vE9ivLcixNnWmH1PlQtlZMdSbt1uU48+/btBsQiCLDwRbdk0v\n1PzgR65YtcBF68DA7VC1O2z7BmY3hRB5KliItOLi4sLHH3/MlSvJLy8dM2YM1apVo3LlypQoUYJ2\n7dolvlISXLp0iS+//BJ7e+v0u7TpLpsOdiaGNCpNi0r5GbXkKG8tOsKKw1f4vL0HRXK5xr9iaBC4\n5DResTm7QbspULYFrBwOM3yg2SdQux9I7xMhUl2LFi/W1zG1nhR+okyZMpQpUyZV95EQmz3Tj6l0\n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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot_dam_solution()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "On peut également manipuler la solution de manière interactive :" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [], "source": [ "from ipywidgets import interact" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "ba3a29a121f741d2886c953d587a7da1", "version_major": 2, "version_minor": 0 }, "text/html": [ "

Failed to display Jupyter Widget of type interactive.

\n", "

\n", " If you're reading this message in Jupyter Notebook or JupyterLab, it may mean\n", " that the widgets JavaScript is still loading. If this message persists, it\n", " likely means that the widgets JavaScript library is either not installed or\n", " not enabled. See the Jupyter\n", " Widgets Documentation for setup instructions.\n", "

\n", "

\n", " If you're reading this message in another notebook frontend (for example, a static\n", " rendering on GitHub or NBViewer),\n", " it may mean that your frontend doesn't currently support widgets.\n", "

\n" ], "text/plain": [ "interactive(children=(FloatSlider(value=0.5, description='l_', max=1.5, min=-0.5), FloatSlider(value=0.3, description='h_', max=0.8999999999999999, min=-0.3), FloatSlider(value=0.5, description='gamma_e_', max=1.5, min=-0.5), FloatSlider(value=0.1, description='gamma_', max=0.30000000000000004, min=-0.1), FloatSlider(value=0.2, description='mu_', max=0.6000000000000001, min=-0.2), FloatSlider(value=1.0, description='m_', max=3.0, min=-1.0), FloatSlider(value=0.1, description='lambda__', max=0.30000000000000004, min=-0.1), Output()), _dom_classes=('widget-interact',))" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "@interact\n", "def plot_dam_solution(l_=0.5, \n", " h_=0.3,\n", " gamma_e_ = 0.5,\n", " gamma_ = 0.1,\n", " mu_ = 0.2,\n", " m_ = 1.,\n", " lambda__ = 0.1):\n", " \"\"\"Plots the dam problem solution.\"\"\"\n", " \n", " A = (0, 0)\n", " B = (l_, 0)\n", " C = (0, h_)\n", " points = np.c_[A, B, C, A].T\n", " plt.plot(points[:, 0], points[:, 1], '-o', label='dam (original)')\n", " Cd = np.array(C)\n", " Cd[0] += xi[0].subs(sols).subs({gamma_e:gamma_e_, h:h_, l:l_, mu:mu_, m: m_, y:h_})\n", " Cd[1] += xi[1].subs(sols).subs({gamma_e:gamma_e_, h:h_, l:l_, mu:mu_, m: m_, y:h_, gamma: gamma_, lambda_: lambda__})\n", " points2 = np.c_[A, B, Cd, A].T\n", " plt.plot(points2[:, 0], points2[:, 1], '-o', label='dam (displaced)')\n", " plt.legend()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Comme noté dans le guide, on peut remarquer que la solution trouvée n'est pas compatible avec les conditions cinématiques et statiques..." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Recherche de la solution approchée par éléments finis " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Todo : continuer la description pour l'élément de type 1 du maillage, puis l'élément 2 dans lequel on traite : l'énergie élastique, les efforts imposés et enfin le lagrangien pour imposer des déplacements dans la résolution du système." ] } ], "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.5.2" } }, "nbformat": 4, "nbformat_minor": 2 }