From 4f8cf30521aa1cd716e6b4ba6909234f177f6c50 Mon Sep 17 00:00:00 2001 From: srosenbu Date: Fri, 19 Sep 2025 13:32:09 +0200 Subject: [PATCH 1/5] Jupyterlab links in docs --- .../comparison_kratos_fenics.ipynb | 129 --------- docs/benchmarks/linear elasticity/index.md | 69 ----- .../linear elasticity/mms_elasticity.ipynb | 264 ------------------ .../linear elasticity/plate-with-hole.md | 10 + .../plate_with_hole_Kratos.ipynb | 2 +- ...ole.ipynb => plate_with_hole_fenics.ipynb} | 2 +- docs/benchmarks/plasticity/index.md | 63 ----- .../plasticity/mms_plasticity.ipynb | 211 -------------- docs/conventions.md | 248 ---------------- docs/data.md | 14 - docs/interface.md | 146 ---------- mkdocs.yml | 4 - 12 files changed, 12 insertions(+), 1150 deletions(-) delete mode 100644 docs/benchmarks/linear elasticity/comparison_kratos_fenics.ipynb delete mode 100644 docs/benchmarks/linear elasticity/index.md delete mode 100644 docs/benchmarks/linear elasticity/mms_elasticity.ipynb rename docs/benchmarks/linear elasticity/{plate_with_hole.ipynb => plate_with_hole_fenics.ipynb} (99%) delete mode 100644 docs/benchmarks/plasticity/index.md delete mode 100644 docs/benchmarks/plasticity/mms_plasticity.ipynb delete mode 100644 docs/conventions.md delete mode 100644 docs/data.md delete mode 100644 docs/interface.md diff --git a/docs/benchmarks/linear elasticity/comparison_kratos_fenics.ipynb b/docs/benchmarks/linear elasticity/comparison_kratos_fenics.ipynb deleted file mode 100644 index af7d988..0000000 --- a/docs/benchmarks/linear elasticity/comparison_kratos_fenics.ipynb +++ /dev/null @@ -1,129 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "h = [0.1, 0.05, 0.025, 0.0125, 0.00625, 0.003125]\n", - "\n", - "error_rel_mises_fenics = [np.float64(0.12243754856840014),\n", - " np.float64(0.08774192127818202),\n", - " np.float64(0.05274138653340965),\n", - " np.float64(0.028623716234292548),\n", - " np.float64(0.014227727979427424),\n", - " np.float64(0.007373515929280457)]\n", - "\n", - "error_rel_mises_kratos = [np.float64(0.3350924008863586),\n", - " np.float64(0.14140615709581467),\n", - " np.float64(0.07383317311939307),\n", - " np.float64(0.03943653092949291),\n", - " np.float64(0.01947728028136322),\n", - " np.float64(0.009664936616847301)]\n", - "\n", - "error_u_fenics = [np.float64(1.0915460000898551e-05),\n", - " np.float64(3.2599578573209976e-06),\n", - " np.float64(1.0331411999420941e-06),\n", - " np.float64(2.6148246454161476e-07),\n", - " np.float64(7.530603150557227e-08),\n", - " np.float64(1.8795413137440327e-08)]\n", - "\n", - "error_u_kratos = [np.float64(1.0915460315367976e-05),\n", - " np.float64(3.259959370863273e-06),\n", - " np.float64(1.033151975964638e-06),\n", - " np.float64(2.6148835866024976e-07),\n", - " np.float64(7.529549161751814e-08),\n", - " np.float64(1.879820596802301e-08),]" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "\n", - "plt.rcParams.update({'font.size': 16})\n", - "plt.plot(h, error_rel_mises_fenics, label='FEniCS', marker='o')\n", - "plt.plot(h, error_rel_mises_kratos, label='Kratos', marker='x')\n", - "plt.xscale('log')\n", - "plt.yscale('log')\n", - "plt.xlabel('h [m]')#, fontsize=14)\n", - "plt.ylabel('Relative error')#, fontsize=14)\n", - "plt.title('Convergence Mises stress')#, fontsize=16)\n", - "plt.legend()\n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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P37cjImJMSMiIpw1AuasWbNyfA41atQwXV1dzc6dO5s//fSTeebMGfOvv/4y//Of/zjX7d+/v3Nf/fv3NyMiIszz58+bO3fuNJ999lnTMAwzICAg15Ptiy++6Fx+//33mytXrjTPnDljRkdHmz/99JPZuXNnEzC9vLzMnTt3Ztk+44SXcZzBgweb69evN8+fP28eOnTIHDNmjPP1GDhwYLY1fPvtt84aatWqZU6bNs3ct2+fGRMTY0ZGRprffvut+dBDD5mPPfZYlm379evnPFE99thj5p9//mmePXvWPHXqlLl48WKzZcuWJmBWq1Yt1yCYk+joaOdJ1tvb23z77bfNI0eOmNHR0eaPP/5otm/f3nR3dzfr1KmTryD24IMPOusfO3asuXXrVjM6Oto8duyYuXbtWnPq1KlmYGCguWnTpkzbXR6iGjVqZFavXt2cNWuWeeLECfP06dPmwoULzUaNGjnX+fnnn7Mc+2pB7K677jIfe+wxc8mSJeaWLVvMM2fOmMePHzfXrFljDh061HRxcTEB86OPPsp2+/Xr15vu7u7OMDNhwgRz586d5vnz580TJ06YP/74o/nEE0+YPXv2zLJtYb0vM16DESNGmNu2bTPPnz9vbtu2zezRo4dz/998841Zv359MyAgwFywYIEZFRVlnj592pwzZ47p6+trAub111+f7XPcunWr8w++Zs2amXPmzDGPHDlixsTEmDt27DBHjRrlfJ1eeumlLNtnvDcqVqxoVqlSxWzVqpX59ddfmydPnjSjo6PNRYsWmbVr1zYBs0KFCub58+ed26anp5vx8fHmmDFjTMCsX7++GR8fn+krMTEx27ol7xTEpES7vLXlq6++KtC+zpw5Y3p4eJiAGRwcbCYlJWVZZ/369aabm5sJmL17986y/PKQc9ttt2UJSaZ5qbUqY51ly5ZlWnbu3Dnn/idOnJhtnSkpKc7WhxEjRmRadvHiRedf1T179jTT0tKy3ce//vUvZzi48nle/hy6du1qpqSkZLuPDRs2ONcbPHhwtutMnDgx01/HV9qyZYszJL311lvZ7iM1NdW84YYbTMC8++67syzPOOEB5vjx47Pdx5NPPmkCpru7uxkXF5dpWUJCglmlShXnSfPkyZPZ7sM0zSyv55IlS5zHXrhwYbbbxMbGms2aNcv255UXTz/9dI7vF9M0zbi4OGfY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GjZsyLFjx4iMjKRhw4aW1SEiudOlSRERERGLKIiJiIiIWERBTETkv3766SduvPFGKlSogL+/P3fddRdbt24t9OOsXr0awzAICwvDbrfz1ltv0aJFC7y8vGjYsCHjx48nPT0dgIsXL/Lyyy/TpEkTPD09CQgI4O2337b0sqeIFB4FMRER4KOPPuLuu+/m0KFDNGvWDLvdzrJly7jxxhvZt29fkR23X79+/Otf/8IwDBo0aMDx48d57bXXGD58OMnJydx8881MnDgRHx8fatWqxZEjR3jxxRcZP358kdUkIsVHQUxEBBg9ejSffvopUVFRbN68mVOnTnHrrbeSkJBQZKHnzz//ZMOGDWzdupU9e/awb98+Vq1ahbu7O3PnzqVfv34kJSVx4MABtm/fTmRkJF988QUAb731FhcuXCiSukSk+CiIiYgAQ4cOzTTeV4UKFZgyZQoAy5YtK5JjpqWlMWPGDNq3b+987KabbqJ3796YpskPP/zAvHnzaNy4sXP5gAEDCA0NJSUlhdWrVxdJXSJSfBTERESARx99NMtjbdq0wdPTk9jYWM6fP1/ox6xcuTL33HNPlsczglmHDh3o0KFDluUZjx05cqTQaxKR4qUgJiICBAQEZPt4tWrVAEhISCj2Y1pRk4gULwUxERHAx8cn28ddXC59TBbFXYre3t7ZPp4xIOzVluvOSZHST0FMRERExCIKYiIiIiIWURATERERsYiCmIiIiIhFFMRERERELKIgJiIiImIRw9T9zyIihaokDC/RsGFDjh07RmRkJA0bNrSsDhHJnVrERESKSNeuXenatSv/93//VyzHW7RokfOYp0+fLpZjikjBuFpdgIhIWbV27VoAmjRpUizHO3nypPOYIlI66NKkiIiIiEV0aVJERETEIgpiIiIiIhZREBMRERGxiIKYiIiIiEUUxEREREQsoiAmIiIiYhEFMRERERGLKIiJiIiIWERBTERERMQiCmIiIiIiFlEQExEREbHI/wPUM9x6ZUePBAAAAABJRU5ErkJggg==", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "plt.plot(h, error_u_fenics, label='FEniCS', marker='o')\n", - "plt.plot(h, error_u_kratos, label='Kratos', marker='x')\n", - "plt.xscale('log')\n", - "plt.yscale('log')\n", - "plt.xlabel('h [m]')\n", - "plt.ylabel('Error')\n", - "plt.title('Convergence displacement')\n", - "plt.legend()\n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "model-validation-platform-docs", - "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.13.1" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/docs/benchmarks/linear elasticity/index.md b/docs/benchmarks/linear elasticity/index.md deleted file mode 100644 index 3f80957..0000000 --- a/docs/benchmarks/linear elasticity/index.md +++ /dev/null @@ -1,69 +0,0 @@ -# Linear elasticity - -## Tensor form -A general non-isotropic linear elastic material model consists of the follwoing equations: - -$$ -\begin{aligned} -\boldsymbol{\varepsilon} &= \frac{1}{2}\left(\nabla \mathbf u +\nabla \mathbf u^\top\right)\\ -\boldsymbol{\sigma} &= \mathbf C : \boldsymbol{\varepsilon} -\end{aligned} -$$ - - -We first consider the special case of isotropic linear elasticity, where the tensor $\mathbf C$ is defined by the Lamé parameters $(\lambda,\mu)$ as - - -$$ -\mathbf C = \lambda \mathbf 1 \otimes \mathbf 1 + 2\mu \mathbf I -$$ - -with the second-order identity tensor $\mathbf 1=\delta_{ij}\boldsymbol{e}_i\otimes\boldsymbol{e}_j$, the fourth-order identity tensor $\mathbf I = \frac{1}{2}(\delta_{ik}\delta_{jl}+\delta_{il}\delta{jk})\boldsymbol{e}_i\otimes\boldsymbol{e}_j\otimes\boldsymbol{e}_k\otimes\boldsymbol{e}_l$ and the Kronecker Delta -$$ -\delta_{ij}=\begin{cases}1&,i=j\\0&,i\ne j\end{cases}. -$$ - -## Reduced Voigt/Mandel basis - -As shown in the conventions section, the Mandel form is a reduced notation of symmetrical tensors that preserves inner products and some properties of the outer product. The elasticity tensor in Mandel form is therefor trivially determined by the Lamé parameters $(\lambda,\mu)$ as - - -$$ -\mathbf C = 2\mu\mathbf I_6 + \lambda \mathbf 1 \otimes \mathbf 1 -$$ -with $\mathbf 1=[1,1,1,0,0,0]$ being the representation of the second-order identity in Mandel form and the identity matrix $\mathbf I_6$ which maps the strain in mandel form to itself, as does the fourth-order identity to the tensor representation of the strain. -$$ -\mathbf C = \begin{bmatrix} -2\mu+\lambda & \lambda & \lambda & 0 & 0 & 0 \\ -\lambda & 2\mu+\lambda & \lambda & 0 & 0 & 0 \\ -\lambda & \lambda & 2\mu+\lambda & 0 & 0 & 0 \\ -0 & 0 & 0 & 2\mu & 0 & 0 \\ -0 & 0 & 0 & 0 & 2\mu & 0 \\ -0 & 0 & 0 & 0 & 0 & 2\mu \end{bmatrix} -$$ - -**Remark:** In Voigt-Notation, the $(4,4)$-th, the $(5,5)$-th and the $(6,6)$-th component are $\mu$ instead of $2\mu$. - -## Algorithm - -!!! note "Algorithm: Linear elasticity -- incremental formulation" - **Parameters:** $\lambda,\mu$ - - **Input:** $\boldsymbol{\sigma}^n,\Delta\boldsymbol{\varepsilon}^n$ in Mandel notation - - **Output:** $\boldsymbol{\sigma}^{n+1}$ in Mandel Notation - - $$ - \mathbf C = \begin{bmatrix} - 2\mu+\lambda & \lambda & \lambda & 0 & 0 & 0 \\ - \lambda & 2\mu+\lambda & \lambda & 0 & 0 & 0 \\ - \lambda & \lambda & 2\mu+\lambda & 0 & 0 & 0 \\ - 0 & 0 & 0 & 2\mu & 0 & 0 \\ - 0 & 0 & 0 & 0 & 2\mu & 0 \\ - 0 & 0 & 0 & 0 & 0 & 2\mu \end{bmatrix} - $$ - $$ - \boldsymbol{\sigma}^{n+1}=\boldsymbol{\sigma}^n+\mathbf C \cdot \Delta\boldsymbol{\varepsilon}^n - $$ - - diff --git a/docs/benchmarks/linear elasticity/mms_elasticity.ipynb b/docs/benchmarks/linear elasticity/mms_elasticity.ipynb deleted file mode 100644 index 2b1068b..0000000 --- a/docs/benchmarks/linear elasticity/mms_elasticity.ipynb +++ /dev/null @@ -1,264 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Method of manufactured solutions for linear elasticity\n", - "\n", - "In order to test the implementation of linear elasticity on a structural level, we use the method of manufactured solutions to obtain an analytical solution for the structural problem. This is achieved by assuming an analytical expression for the displacements which is then used to calculate the strains, stresses. \n", - "\n", - "The stresses are then used to calculate the forces acting on the structure which are used to determine boundary conditions for an FEM problem. The FEM problem is then solved and the results are compared to the analytical solution.\n", - "\n", - "The analytical expression for the displacement should be chosen such that it cannot be easily expressed by the FEM solution because otherwise the error might become zero and a convergence analysis becomes meaningless. " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Given a displacement field $u(x,y,z)$, the strain tensor is given by \n", - "$$\n", - "\\varepsilon = \\frac{1}{2} \\left( \\nabla u + (\\nabla u)^\\top \\right)\n", - "$$\n", - "and the stress tensor is given by\n", - "$$\n", - "\\sigma = \\lambda \\mathrm{tr}(\\varepsilon) I + 2 \\mu \\varepsilon\n", - "$$\n", - "where $\\lambda$ and $\\mu$ are the Lamé parameters and $I$ is the identity tensor.\n", - "\n", - "Given an arbitrary displacement field $u(x,y,z)$, we can write these equations as `sympy` expressions:" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [ - { - "data": { - "text/latex": [ - "$\\displaystyle \\left[\\begin{matrix}\\lambda \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} + \\lambda \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)} + \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)}\\\\\\lambda \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} + \\lambda \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)} + \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)}\\\\\\lambda \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} + \\lambda \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} + \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}\\\\2 \\sqrt{2} \\mu \\left(\\frac{\\frac{\\partial}{\\partial y} u_{x}{\\left(x,y,z \\right)}}{2} + \\frac{\\frac{\\partial}{\\partial x} u_{y}{\\left(x,y,z \\right)}}{2}\\right)\\\\2 \\sqrt{2} \\mu \\left(\\frac{\\frac{\\partial}{\\partial z} u_{x}{\\left(x,y,z \\right)}}{2} + \\frac{\\frac{\\partial}{\\partial x} u_{z}{\\left(x,y,z \\right)}}{2}\\right)\\\\2 \\sqrt{2} \\mu \\left(\\frac{\\frac{\\partial}{\\partial z} u_{y}{\\left(x,y,z \\right)}}{2} + \\frac{\\frac{\\partial}{\\partial y} u_{z}{\\left(x,y,z \\right)}}{2}\\right)\\end{matrix}\\right]$" - ], - "text/plain": [ - "Matrix([\n", - "[\\lambda*Derivative(u_y(x, y, z), y) + \\lambda*Derivative(u_z(x, y, z), z) + (\\lambda + 2*\\mu)*Derivative(u_x(x, y, z), x)],\n", - "[\\lambda*Derivative(u_x(x, y, z), x) + \\lambda*Derivative(u_z(x, y, z), z) + (\\lambda + 2*\\mu)*Derivative(u_y(x, y, z), y)],\n", - "[\\lambda*Derivative(u_x(x, y, z), x) + \\lambda*Derivative(u_y(x, y, z), y) + (\\lambda + 2*\\mu)*Derivative(u_z(x, y, z), z)],\n", - "[ 2*sqrt(2)*\\mu*(Derivative(u_x(x, y, z), y)/2 + Derivative(u_y(x, y, z), x)/2)],\n", - "[ 2*sqrt(2)*\\mu*(Derivative(u_x(x, y, z), z)/2 + Derivative(u_z(x, y, z), x)/2)],\n", - "[ 2*sqrt(2)*\\mu*(Derivative(u_y(x, y, z), z)/2 + Derivative(u_z(x, y, z), y)/2)]])" - ] - }, - "execution_count": 4, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "from sympy import Function, Matrix, Max, symbols, sqrt, eye, Rational\n", - "\n", - "\n", - "def strain(u, x, y, z):\n", - " jacobian = u.jacobian([x, y, z])\n", - " return (jacobian + jacobian.T) / 2\n", - "\n", - "\n", - "def to_mandel_notation(strain):\n", - " factor = sqrt(2)\n", - " return Matrix(\n", - " [\n", - " strain[0, 0],\n", - " strain[1, 1],\n", - " strain[2, 2],\n", - " factor * strain[0, 1],\n", - " factor * strain[0, 2],\n", - " factor * strain[1, 2],\n", - " ]\n", - " )\n", - "\n", - "\n", - "u, x, y, z = symbols(\"u x y z\")\n", - "mu, lam = symbols(r\"\\mu \\lambda\")\n", - "\n", - "\n", - "def elasticity_matrix(mu, lam):\n", - " return Matrix(\n", - " [\n", - " [lam + 2 * mu, lam, lam, 0, 0, 0],\n", - " [lam, lam + 2 * mu, lam, 0, 0, 0],\n", - " [lam, lam, lam + 2 * mu, 0, 0, 0],\n", - " [0, 0, 0, 2 * mu, 0, 0],\n", - " [0, 0, 0, 0, 2 * mu, 0],\n", - " [0, 0, 0, 0, 0, 2 * mu],\n", - " ]\n", - " )\n", - "\n", - "\n", - "u_x = Function(\"u_x\")(x, y, z)\n", - "u_y = Function(\"u_y\")(x, y, z)\n", - "u_z = Function(\"u_z\")(x, y, z)\n", - "\n", - "u = Matrix([u_x, u_y, u_z])\n", - "\n", - "eps = strain(u, x, y, z)\n", - "sigma = elasticity_matrix(mu, lam) * to_mandel_notation(eps)\n", - "\n", - "sigma" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now we can chose a highly nonlinear displacement field like \n", - "$$\n", - "u(x,y,z) = [\\sin(x), \\sin(x)\\sin(y), \\sin(x) \\sin(y) \\sin(z)]\n", - "$$\n", - "and calculate the corresponding strains and stresses." - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "data": { - "text/latex": [ - "$\\displaystyle \\left[\\begin{matrix}\\lambda \\sin{\\left(x \\right)} \\sin{\\left(y \\right)} \\cos{\\left(z \\right)} + \\lambda \\sin{\\left(x \\right)} \\cos{\\left(y \\right)} + \\left(\\lambda + 2 \\mu\\right) \\cos{\\left(x \\right)}\\\\\\lambda \\sin{\\left(x \\right)} \\sin{\\left(y \\right)} \\cos{\\left(z \\right)} + \\lambda \\cos{\\left(x \\right)} + \\left(\\lambda + 2 \\mu\\right) \\sin{\\left(x \\right)} \\cos{\\left(y \\right)}\\\\\\lambda \\sin{\\left(x \\right)} \\cos{\\left(y \\right)} + \\lambda \\cos{\\left(x \\right)} + \\left(\\lambda + 2 \\mu\\right) \\sin{\\left(x \\right)} \\sin{\\left(y \\right)} \\cos{\\left(z \\right)}\\\\\\sqrt{2} \\mu \\sin{\\left(y \\right)} \\cos{\\left(x \\right)}\\\\\\sqrt{2} \\mu \\sin{\\left(y \\right)} \\sin{\\left(z \\right)} \\cos{\\left(x \\right)}\\\\\\sqrt{2} \\mu \\sin{\\left(x \\right)} \\sin{\\left(z \\right)} \\cos{\\left(y \\right)}\\end{matrix}\\right]$" - ], - "text/plain": [ - "Matrix([\n", - "[\\lambda*sin(x)*sin(y)*cos(z) + \\lambda*sin(x)*cos(y) + (\\lambda + 2*\\mu)*cos(x)],\n", - "[\\lambda*sin(x)*sin(y)*cos(z) + \\lambda*cos(x) + (\\lambda + 2*\\mu)*sin(x)*cos(y)],\n", - "[\\lambda*sin(x)*cos(y) + \\lambda*cos(x) + (\\lambda + 2*\\mu)*sin(x)*sin(y)*cos(z)],\n", - "[ sqrt(2)*\\mu*sin(y)*cos(x)],\n", - "[ sqrt(2)*\\mu*sin(y)*sin(z)*cos(x)],\n", - "[ sqrt(2)*\\mu*sin(x)*sin(z)*cos(y)]])" - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "from sympy import sin\n", - "u_nonlinear = Matrix([sin(x), sin(x)*sin(y), sin(x)*sin(y)*sin(z)])\n", - "\n", - "eps_nonlinear = strain(u_nonlinear, x, y, z)\n", - "sigma_nonlinear = elasticity_matrix(mu, lam) * to_mandel_notation(eps_nonlinear)\n", - "sigma_nonlinear" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The underlying PDE is the momentum of linear balance equation\n", - "$$\n", - "\\nabla \\cdot \\sigma = f\n", - "$$\n", - "where $f$ is the body force.\n", - "Since we have an anylytical and differentiable solution, we can calculate the body force $f$ by inserting the analytical solution into the momentum balance equation." - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [ - { - "data": { - "text/latex": [ - "$\\displaystyle \\left[\\begin{matrix}\\lambda \\sin{\\left(y \\right)} \\cos{\\left(x \\right)} \\cos{\\left(z \\right)} + \\lambda \\cos{\\left(x \\right)} \\cos{\\left(y \\right)} + \\sqrt{2} \\mu \\sin{\\left(y \\right)} \\cos{\\left(x \\right)} \\cos{\\left(z \\right)} + \\sqrt{2} \\mu \\cos{\\left(x \\right)} \\cos{\\left(y \\right)} - \\left(\\lambda + 2 \\mu\\right) \\sin{\\left(x \\right)}\\\\\\lambda \\sin{\\left(x \\right)} \\cos{\\left(y \\right)} \\cos{\\left(z \\right)} - \\sqrt{2} \\mu \\sin{\\left(x \\right)} \\sin{\\left(y \\right)} + \\sqrt{2} \\mu \\sin{\\left(x \\right)} \\cos{\\left(y \\right)} \\cos{\\left(z \\right)} - \\left(\\lambda + 2 \\mu\\right) \\sin{\\left(x \\right)} \\sin{\\left(y \\right)}\\\\- 2 \\sqrt{2} \\mu \\sin{\\left(x \\right)} \\sin{\\left(y \\right)} \\sin{\\left(z \\right)} - \\left(\\lambda + 2 \\mu\\right) \\sin{\\left(x \\right)} \\sin{\\left(y \\right)} \\sin{\\left(z \\right)}\\end{matrix}\\right]$" - ], - "text/plain": [ - "Matrix([\n", - "[\\lambda*sin(y)*cos(x)*cos(z) + \\lambda*cos(x)*cos(y) + sqrt(2)*\\mu*sin(y)*cos(x)*cos(z) + sqrt(2)*\\mu*cos(x)*cos(y) - (\\lambda + 2*\\mu)*sin(x)],\n", - "[ \\lambda*sin(x)*cos(y)*cos(z) - sqrt(2)*\\mu*sin(x)*sin(y) + sqrt(2)*\\mu*sin(x)*cos(y)*cos(z) - (\\lambda + 2*\\mu)*sin(x)*sin(y)],\n", - "[ -2*sqrt(2)*\\mu*sin(x)*sin(y)*sin(z) - (\\lambda + 2*\\mu)*sin(x)*sin(y)*sin(z)]])" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "from sympy import diff\n", - "\n", - "def div(sigma):\n", - " return Matrix(\n", - " [\n", - " diff(sigma[0], x) + diff(sigma[3], y) + diff(sigma[4], z),\n", - " diff(sigma[3], x) + diff(sigma[1], y) + diff(sigma[5], z),\n", - " diff(sigma[4], x) + diff(sigma[5], y) + diff(sigma[2], z),\n", - " ]\n", - " )\n", - "div(sigma_nonlinear)" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [ - { - "data": { - "text/latex": [ - "$\\displaystyle \\left[\\begin{matrix}\\lambda \\sin{\\left(y \\right)} \\cos{\\left(x \\right)} \\cos{\\left(z \\right)} + \\lambda \\cos{\\left(x \\right)} \\cos{\\left(y \\right)} + \\sqrt{2} \\mu \\sin{\\left(y \\right)} \\cos{\\left(x \\right)} \\cos{\\left(z \\right)} + \\sqrt{2} \\mu \\cos{\\left(x \\right)} \\cos{\\left(y \\right)} - \\left(\\lambda + 2 \\mu\\right) \\sin{\\left(x \\right)}\\\\\\lambda \\sin{\\left(x \\right)} \\cos{\\left(y \\right)} \\cos{\\left(z \\right)} - \\sqrt{2} \\mu \\sin{\\left(x \\right)} \\sin{\\left(y \\right)} + \\sqrt{2} \\mu \\sin{\\left(x \\right)} \\cos{\\left(y \\right)} \\cos{\\left(z \\right)} - \\left(\\lambda + 2 \\mu\\right) \\sin{\\left(x \\right)} \\sin{\\left(y \\right)}\\\\- 2 \\sqrt{2} \\mu \\sin{\\left(x \\right)} \\sin{\\left(y \\right)} \\sin{\\left(z \\right)} - \\left(\\lambda + 2 \\mu\\right) \\sin{\\left(x \\right)} \\sin{\\left(y \\right)} \\sin{\\left(z \\right)}\\end{matrix}\\right]$" - ], - "text/plain": [ - "Matrix([\n", - "[\\lambda*sin(y)*cos(x)*cos(z) + \\lambda*cos(x)*cos(y) + sqrt(2)*\\mu*sin(y)*cos(x)*cos(z) + sqrt(2)*\\mu*cos(x)*cos(y) - (\\lambda + 2*\\mu)*sin(x)],\n", - "[ \\lambda*sin(x)*cos(y)*cos(z) - sqrt(2)*\\mu*sin(x)*sin(y) + sqrt(2)*\\mu*sin(x)*cos(y)*cos(z) - (\\lambda + 2*\\mu)*sin(x)*sin(y)],\n", - "[ -2*sqrt(2)*\\mu*sin(x)*sin(y)*sin(z) - (\\lambda + 2*\\mu)*sin(x)*sin(y)*sin(z)]])" - ] - }, - "execution_count": 14, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "\n", - "str(div(sigma_nonlinear))\n", - "\n", - "from sympy import parse_expr, srepr\n", - "\n", - "parse_expr(srepr(div(sigma_nonlinear)), evaluate=False)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "model-validation-platform-docs", - "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.13.1" - }, - "orig_nbformat": 4 - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/docs/benchmarks/linear elasticity/plate-with-hole.md b/docs/benchmarks/linear elasticity/plate-with-hole.md index 98110c1..8f1cbc6 100644 --- a/docs/benchmarks/linear elasticity/plate-with-hole.md +++ b/docs/benchmarks/linear elasticity/plate-with-hole.md @@ -135,3 +135,13 @@ With these metrices, we can perform a convergence analysis for different approxi | $\nu$[-] | Poisson ratio. | | $p$[Pa] | Load at infinity. | + +## Numerical Results + +### FEniCS + +[![Jupyter4NFDI](https://nfdi-jupyter.de/images/jupyter4nfdi_badge.svg)](https://hub.nfdi-jupyter.de/v2/gh/BAMresearch/NFDI4IngModelValidationPlatform/HEAD?labpath=docs%2Fbenchmarks%2Flinear%20elasticity%2Fplate_with_hole_fenics.ipynb) + +### Kratos + +[![Jupyter4NFDI](https://nfdi-jupyter.de/images/jupyter4nfdi_badge.svg)](https://hub.nfdi-jupyter.de/v2/gh/BAMresearch/NFDI4IngModelValidationPlatform/HEAD?labpath=docs%2Fbenchmarks%2Flinear%20elasticity%2Fplate_with_hole_Kratos.ipynb) \ No newline at end of file diff --git a/docs/benchmarks/linear elasticity/plate_with_hole_Kratos.ipynb b/docs/benchmarks/linear elasticity/plate_with_hole_Kratos.ipynb index 9cc1982..0c62437 100644 --- a/docs/benchmarks/linear elasticity/plate_with_hole_Kratos.ipynb +++ b/docs/benchmarks/linear elasticity/plate_with_hole_Kratos.ipynb @@ -362,7 +362,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.13.1" + "version": "3.13.5" } }, "nbformat": 4, diff --git a/docs/benchmarks/linear elasticity/plate_with_hole.ipynb b/docs/benchmarks/linear elasticity/plate_with_hole_fenics.ipynb similarity index 99% rename from docs/benchmarks/linear elasticity/plate_with_hole.ipynb rename to docs/benchmarks/linear elasticity/plate_with_hole_fenics.ipynb index 16e5a59..a9374f5 100644 --- a/docs/benchmarks/linear elasticity/plate_with_hole.ipynb +++ b/docs/benchmarks/linear elasticity/plate_with_hole_fenics.ipynb @@ -6,7 +6,7 @@ "source": [ "# Postprocessing for FEniCSx example\n", "\n", - "[![Jupyter4NFDI](https://nfdi-jupyter.de/images/jupyter4nfdi_badge.svg)](https://hub.nfdi-jupyter.de/v2/gh/BAMresearch/NFDI4IngModelValidationPlatform/HEAD?labpath=docs%2Fbenchmarks%2Flinear%20elasticity%2Fplate_with_hole.ipynb)" + "[![Jupyter4NFDI](https://nfdi-jupyter.de/images/jupyter4nfdi_badge.svg)](https://hub.nfdi-jupyter.de/v2/gh/BAMresearch/NFDI4IngModelValidationPlatform/HEAD?labpath=docs%2Fbenchmarks%2Flinear%20elasticity%2Fplate_with_hole_fenics.ipynb)" ] }, { diff --git a/docs/benchmarks/plasticity/index.md b/docs/benchmarks/plasticity/index.md deleted file mode 100644 index 1961995..0000000 --- a/docs/benchmarks/plasticity/index.md +++ /dev/null @@ -1,63 +0,0 @@ -# Mises plasticity with isotropic and kinematic hardening hardening - -A general plasticity model can be described by the following set of equations which are here taken from the Simo and Hughes book on computational inelasticity [@Simo1998](p. 83, BOX 2.1): - -!!! note "General plasticity model[@Simo1998](p. 83, BOX 2.1)" - - 1. Elastic stress-strain relationship: - $$ - \boldsymbol{\sigma} = \mathbf C : (\boldsymbol{\varepsilon}-\boldsymbol{\varepsilon}_\mathrm{pl}) - $$ - 2. Elastic domain in stress space - $$ - \mathbb E_\sigma = \{(\boldsymbol{\sigma},\mathbf q)\in\mathbb S \times\mathbb R^m|f(\boldsymbol{\sigma},\mathbf q)\le 0\}. - $$ - 3. Flow rule and hardening law - 1. Non-associative case: - $$ - \begin{aligned} - \dot{\boldsymbol{\varepsilon}}_\mathrm{pl} &=\gamma\mathbf r(\boldsymbol{\sigma},\mathbf q)\\ - \dot{\mathbf q} &=-\gamma \mathbf h(\boldsymbol{\sigma},\mathbf q)\\ - \end{aligned} - $$ - 2. Associative case - $$ - \begin{aligned} - \dot{\boldsymbol{\varepsilon}}_\mathrm{pl} &=\gamma\frac{\partial f}{\partial \boldsymbol{\sigma}}\\ - \dot{\mathbf q} &=-\gamma \mathbf D\frac{\partial f}{\partial \mathbf q}\\ - \mathbf D &= \text{matrix of generalized plastic moduli}\\ - \end{aligned} - $$ - 4. Kuhn-Tucker loading/unloading conditions - $$ - \gamma\ge 0,\;f(\boldsymbol{\sigma},\mathbf q)\le 0,\; \gamma f(\boldsymbol{\sigma},\mathbf q)=0 - $$ - 5. Consistency condition - $$ - \gamma \dot{f}(\boldsymbol{\sigma},\mathbf q)=0 - $$ - - For plasticity with isotropic and kinematic hardening, the history variables are defined as $\mathbf q=\{\alpha,\bar{\boldsymbol{\beta}\}}$, with the equivalent plastic strain $\alpha$ and the back stress $\bar{\boldsymbol{\beta}}$. The yield condition, flow rule and hardening law are given by: - -!!! note "Von Mises yield condition with isotropic and kinematic hardening" - $$ - \begin{aligned} - \boldsymbol{\eta} &= \mathrm{dev}(\boldsymbol{\sigma})-\bar{\boldsymbol{\beta}}, \quad \mathrm{tr}(\bar{\boldsymbol{\beta}})=0\\ - f(\boldsymbol{\sigma},\alpha,\bar\beta) &= \Vert\boldsymbol{\eta}\Vert_2-\sqrt{\frac{2}{3}}K(\alpha)\\ - \dot{\boldsymbol{\varepsilon}}_\mathrm{pl} &= \gamma\frac{\boldsymbol{\eta}}{\Vert\boldsymbol{\eta}\Vert_2} \\ - \dot{\bar{\boldsymbol{\beta}}} &= \gamma \frac{2}{3}H'(\alpha)\frac{\boldsymbol{\eta}}{\Vert\boldsymbol{\eta}\Vert_2} \\ - \dot{\alpha} &= \gamma\sqrt{\frac{2}{3}}\\ - \end{aligned} - $$ - -With $\mathbf n = \frac{\boldsymbol{\eta}}{\Vert \boldsymbol{\eta}\Vert_2}$, elastoplastic tangent is given by: - $$ - \mathbf C = \kappa \mathbf 1\otimes\mathbf 1 + 2\mu\left(\mathbf I -\frac{1}{3}\mathbf 1\otimes \mathbf 1 - \frac{\mathbf n \otimes \mathbf n}{1+\frac{H'+K'}{3\mu}}\right) - $$ - -## Mises plasticity with linear isotropic hardening - -The isotropic hardening function is defined as $K(\alpha) = \sigma_0 + H\alpha$, where $\sigma_0$ is the initial yield stress, $H$ is the hardening modulus and $\alpha$ is the equivalent plastic strain. The elastoplastic tangent is given by: - $$ - \mathbf C = \kappa \mathbf 1\otimes\mathbf 1 + 2\mu\left(\mathbf I -\frac{1}{3}\mathbf 1\otimes \mathbf 1 - \frac{\mathbf n \otimes \mathbf n}{1+\frac{H}{3\mu}}\right) - $$ \ No newline at end of file diff --git a/docs/benchmarks/plasticity/mms_plasticity.ipynb b/docs/benchmarks/plasticity/mms_plasticity.ipynb deleted file mode 100644 index fc19bce..0000000 --- a/docs/benchmarks/plasticity/mms_plasticity.ipynb +++ /dev/null @@ -1,211 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Method of manufactured solutions for mises plasticity\n", - "\n", - "In order to test the implementation of Mises plasticity on a structural level, we use the method of manufactured solutions to obtain an analytical solution for the structural problem. This is achieved by assuming an analytical expression for the displacements which is then used to calculate the strains, stresses and updates of history variables. For the case of linear isotropic hardening, there exists an analytical expression for the stresses which does not require the solution of a nonlinear system of equations. \n", - "\n", - "The stresses are then used to calculate the forces acting on the structure which are used to determine boundary conditions for an FEM problem. The FEM problem is then solved and the results are compared to the analytical solution.\n", - "\n", - "The analytical expression for the displacement should be chosen such that it cannot be easily expressed by the FEM solution because otherwise the error might become zero and a convergence analysis becomes meaningless. " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Mises plasticity with linear isotropic hardening is given by the following equations:\n", - "\n", - "$$\n", - "\\begin{aligned}\n", - "\\sigma^\\mathrm{tr} &= \\mathbf C : (\\varepsilon^{n+1} - \\varepsilon^{n}_\\mathrm{pl} )\\\\\n", - "s^\\mathrm{tr} &= \\sigma^\\mathrm{tr} - \\frac{1}{3}\\mathrm{tr}(\\sigma^\\mathrm{tr})I_3 \\\\\n", - "\\sigma^\\mathrm{eq} &= \\sqrt{\\frac{1}{2}s^\\mathrm{tr}:s^\\mathrm{tr}}\\\\\n", - "f(\\sigma) &= \\sigma^\\mathrm{eq} - \\sigma_\\mathrm{eq} - h \\alpha^n \\\\\n", - "\\end{aligned}\n", - "$$\n", - "\n", - "Algorithm\n", - "\n", - "1. Determine the trial stress.\n", - "2. Determine the equivalent plastic strain increment. $$\\Delta\\alpha = \\frac{\\max\\{\\sigma_\\mathrm{eq}-\\sigma_0-h\\alpha^n,0\\}}{3\\mu+h}$$ The maximum function serves as the test if the loading is elastic or plastic and therefore $\\Delta\\alpha$ becomes zero if the loading is elastic.\n", - "3. Update the equivalent plastic strain. $$\\alpha^{n+1} = \\alpha^n + \\Delta\\alpha$$\n", - "4. Update the factor $\\gamma$ with the following equation. $$\\gamma = 1-\\frac{3\\mu\\Delta\\alpha}{\\sigma_\\mathrm{eq}}$$\n" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [ - { - "data": { - "text/latex": [ - "$\\displaystyle \\left[\\begin{matrix}\\frac{2 \\lambda \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)}}{3} + \\frac{2 \\lambda \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)}}{3} + \\frac{2 \\lambda \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}}{3} + \\frac{\\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)}}{3} + \\frac{\\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)}}{3} + \\frac{\\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}}{3} + \\left(- \\frac{3 \\mu \\max\\left(0, \\frac{- \\sigma_{0} + \\sqrt{12 \\mu^{2} \\left(\\frac{\\frac{\\partial}{\\partial y} u_{x}{\\left(x,y,z \\right)}}{2} + \\frac{\\frac{\\partial}{\\partial x} u_{y}{\\left(x,y,z \\right)}}{2}\\right)^{2} + 12 \\mu^{2} \\left(\\frac{\\frac{\\partial}{\\partial z} u_{x}{\\left(x,y,z \\right)}}{2} + \\frac{\\frac{\\partial}{\\partial x} u_{z}{\\left(x,y,z \\right)}}{2}\\right)^{2} + 12 \\mu^{2} \\left(\\frac{\\frac{\\partial}{\\partial z} u_{y}{\\left(x,y,z \\right)}}{2} + \\frac{\\frac{\\partial}{\\partial y} u_{z}{\\left(x,y,z \\right)}}{2}\\right)^{2} + \\frac{3 \\left(- \\frac{2 \\lambda \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)}}{3} + \\frac{\\lambda \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)}}{3} + \\frac{\\lambda \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}}{3} + \\frac{2 \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)}}{3} - \\frac{\\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)}}{3} - \\frac{\\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}}{3}\\right)^{2}}{2} + \\frac{3 \\left(\\frac{\\lambda \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)}}{3} - \\frac{2 \\lambda \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)}}{3} + \\frac{\\lambda \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}}{3} - \\frac{\\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)}}{3} + \\frac{2 \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)}}{3} - \\frac{\\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}}{3}\\right)^{2}}{2} + \\frac{3 \\left(\\frac{\\lambda \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)}}{3} + \\frac{\\lambda \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)}}{3} - \\frac{2 \\lambda \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}}{3} - \\frac{\\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)}}{3} - \\frac{\\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)}}{3} + \\frac{2 \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}}{3}\\right)^{2}}{2}}}{3 \\mu}\\right)}{\\sqrt{12 \\mu^{2} \\left(\\frac{\\frac{\\partial}{\\partial y} u_{x}{\\left(x,y,z \\right)}}{2} + \\frac{\\frac{\\partial}{\\partial x} u_{y}{\\left(x,y,z \\right)}}{2}\\right)^{2} + 12 \\mu^{2} \\left(\\frac{\\frac{\\partial}{\\partial z} u_{x}{\\left(x,y,z \\right)}}{2} + \\frac{\\frac{\\partial}{\\partial x} u_{z}{\\left(x,y,z \\right)}}{2}\\right)^{2} + 12 \\mu^{2} \\left(\\frac{\\frac{\\partial}{\\partial z} u_{y}{\\left(x,y,z \\right)}}{2} + \\frac{\\frac{\\partial}{\\partial y} u_{z}{\\left(x,y,z \\right)}}{2}\\right)^{2} + \\frac{3 \\left(- \\frac{2 \\lambda \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)}}{3} + \\frac{\\lambda \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)}}{3} + \\frac{\\lambda \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}}{3} + \\frac{2 \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)}}{3} - \\frac{\\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)}}{3} - \\frac{\\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}}{3}\\right)^{2}}{2} + \\frac{3 \\left(\\frac{\\lambda \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)}}{3} - \\frac{2 \\lambda \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)}}{3} + \\frac{\\lambda \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}}{3} - \\frac{\\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)}}{3} + \\frac{2 \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)}}{3} - \\frac{\\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}}{3}\\right)^{2}}{2} + \\frac{3 \\left(\\frac{\\lambda \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)}}{3} + \\frac{\\lambda \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)}}{3} - \\frac{2 \\lambda \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}}{3} - \\frac{\\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)}}{3} - \\frac{\\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)}}{3} + \\frac{2 \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}}{3}\\right)^{2}}{2}}} + 1\\right) \\left(- \\frac{2 \\lambda \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)}}{3} + \\frac{\\lambda \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)}}{3} + \\frac{\\lambda \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}}{3} + \\frac{2 \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)}}{3} - \\frac{\\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)}}{3} - \\frac{\\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}}{3}\\right)\\\\\\frac{2 \\lambda \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)}}{3} + \\frac{2 \\lambda \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)}}{3} + \\frac{2 \\lambda \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}}{3} + \\frac{\\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)}}{3} + \\frac{\\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)}}{3} + \\frac{\\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}}{3} + \\left(- \\frac{3 \\mu \\max\\left(0, \\frac{- \\sigma_{0} + \\sqrt{12 \\mu^{2} \\left(\\frac{\\frac{\\partial}{\\partial y} u_{x}{\\left(x,y,z \\right)}}{2} + \\frac{\\frac{\\partial}{\\partial x} u_{y}{\\left(x,y,z \\right)}}{2}\\right)^{2} + 12 \\mu^{2} \\left(\\frac{\\frac{\\partial}{\\partial z} u_{x}{\\left(x,y,z \\right)}}{2} + \\frac{\\frac{\\partial}{\\partial x} u_{z}{\\left(x,y,z \\right)}}{2}\\right)^{2} + 12 \\mu^{2} \\left(\\frac{\\frac{\\partial}{\\partial z} u_{y}{\\left(x,y,z \\right)}}{2} + \\frac{\\frac{\\partial}{\\partial y} u_{z}{\\left(x,y,z \\right)}}{2}\\right)^{2} + \\frac{3 \\left(- \\frac{2 \\lambda \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)}}{3} + \\frac{\\lambda \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)}}{3} + \\frac{\\lambda \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}}{3} + \\frac{2 \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)}}{3} - \\frac{\\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)}}{3} - \\frac{\\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}}{3}\\right)^{2}}{2} + \\frac{3 \\left(\\frac{\\lambda \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)}}{3} - \\frac{2 \\lambda \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)}}{3} + \\frac{\\lambda \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}}{3} - \\frac{\\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)}}{3} + \\frac{2 \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)}}{3} - \\frac{\\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}}{3}\\right)^{2}}{2} + \\frac{3 \\left(\\frac{\\lambda \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)}}{3} + \\frac{\\lambda \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)}}{3} - \\frac{2 \\lambda \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}}{3} - \\frac{\\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)}}{3} - \\frac{\\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)}}{3} + \\frac{2 \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}}{3}\\right)^{2}}{2}}}{3 \\mu}\\right)}{\\sqrt{12 \\mu^{2} \\left(\\frac{\\frac{\\partial}{\\partial y} u_{x}{\\left(x,y,z \\right)}}{2} + \\frac{\\frac{\\partial}{\\partial x} u_{y}{\\left(x,y,z \\right)}}{2}\\right)^{2} + 12 \\mu^{2} \\left(\\frac{\\frac{\\partial}{\\partial z} u_{x}{\\left(x,y,z \\right)}}{2} + \\frac{\\frac{\\partial}{\\partial x} u_{z}{\\left(x,y,z \\right)}}{2}\\right)^{2} + 12 \\mu^{2} \\left(\\frac{\\frac{\\partial}{\\partial z} u_{y}{\\left(x,y,z \\right)}}{2} + \\frac{\\frac{\\partial}{\\partial y} u_{z}{\\left(x,y,z \\right)}}{2}\\right)^{2} + \\frac{3 \\left(- \\frac{2 \\lambda \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)}}{3} + \\frac{\\lambda \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)}}{3} + \\frac{\\lambda \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}}{3} + \\frac{2 \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)}}{3} - \\frac{\\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)}}{3} - \\frac{\\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}}{3}\\right)^{2}}{2} + \\frac{3 \\left(\\frac{\\lambda \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)}}{3} - \\frac{2 \\lambda \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)}}{3} + \\frac{\\lambda \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}}{3} - \\frac{\\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)}}{3} + \\frac{2 \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)}}{3} - \\frac{\\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}}{3}\\right)^{2}}{2} + \\frac{3 \\left(\\frac{\\lambda \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)}}{3} + \\frac{\\lambda \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)}}{3} - \\frac{2 \\lambda \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}}{3} - \\frac{\\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)}}{3} - \\frac{\\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)}}{3} + \\frac{2 \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}}{3}\\right)^{2}}{2}}} + 1\\right) \\left(\\frac{\\lambda \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)}}{3} - \\frac{2 \\lambda \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)}}{3} + \\frac{\\lambda \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}}{3} - \\frac{\\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)}}{3} + \\frac{2 \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)}}{3} - \\frac{\\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}}{3}\\right)\\\\\\frac{2 \\lambda \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)}}{3} + \\frac{2 \\lambda \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)}}{3} + \\frac{2 \\lambda \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}}{3} + \\frac{\\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)}}{3} + \\frac{\\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)}}{3} + \\frac{\\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}}{3} + \\left(- \\frac{3 \\mu \\max\\left(0, \\frac{- \\sigma_{0} + \\sqrt{12 \\mu^{2} \\left(\\frac{\\frac{\\partial}{\\partial y} u_{x}{\\left(x,y,z \\right)}}{2} + \\frac{\\frac{\\partial}{\\partial x} u_{y}{\\left(x,y,z \\right)}}{2}\\right)^{2} + 12 \\mu^{2} \\left(\\frac{\\frac{\\partial}{\\partial z} u_{x}{\\left(x,y,z \\right)}}{2} + \\frac{\\frac{\\partial}{\\partial x} u_{z}{\\left(x,y,z \\right)}}{2}\\right)^{2} + 12 \\mu^{2} \\left(\\frac{\\frac{\\partial}{\\partial z} u_{y}{\\left(x,y,z \\right)}}{2} + \\frac{\\frac{\\partial}{\\partial y} u_{z}{\\left(x,y,z \\right)}}{2}\\right)^{2} + \\frac{3 \\left(- \\frac{2 \\lambda \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)}}{3} + \\frac{\\lambda \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)}}{3} + \\frac{\\lambda \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}}{3} + \\frac{2 \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)}}{3} - \\frac{\\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)}}{3} - \\frac{\\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}}{3}\\right)^{2}}{2} + \\frac{3 \\left(\\frac{\\lambda \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)}}{3} - \\frac{2 \\lambda \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)}}{3} + \\frac{\\lambda \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}}{3} - \\frac{\\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)}}{3} + \\frac{2 \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)}}{3} - \\frac{\\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}}{3}\\right)^{2}}{2} + \\frac{3 \\left(\\frac{\\lambda \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)}}{3} + \\frac{\\lambda \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)}}{3} - \\frac{2 \\lambda \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}}{3} - \\frac{\\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)}}{3} - \\frac{\\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)}}{3} + \\frac{2 \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}}{3}\\right)^{2}}{2}}}{3 \\mu}\\right)}{\\sqrt{12 \\mu^{2} \\left(\\frac{\\frac{\\partial}{\\partial y} u_{x}{\\left(x,y,z \\right)}}{2} + \\frac{\\frac{\\partial}{\\partial x} u_{y}{\\left(x,y,z \\right)}}{2}\\right)^{2} + 12 \\mu^{2} \\left(\\frac{\\frac{\\partial}{\\partial z} u_{x}{\\left(x,y,z \\right)}}{2} + \\frac{\\frac{\\partial}{\\partial x} u_{z}{\\left(x,y,z \\right)}}{2}\\right)^{2} + 12 \\mu^{2} \\left(\\frac{\\frac{\\partial}{\\partial z} u_{y}{\\left(x,y,z \\right)}}{2} + \\frac{\\frac{\\partial}{\\partial y} u_{z}{\\left(x,y,z \\right)}}{2}\\right)^{2} + \\frac{3 \\left(- \\frac{2 \\lambda \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)}}{3} + \\frac{\\lambda \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)}}{3} + \\frac{\\lambda \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}}{3} + \\frac{2 \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)}}{3} - \\frac{\\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)}}{3} - \\frac{\\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}}{3}\\right)^{2}}{2} + \\frac{3 \\left(\\frac{\\lambda \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)}}{3} - \\frac{2 \\lambda \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)}}{3} + \\frac{\\lambda \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}}{3} - \\frac{\\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)}}{3} + \\frac{2 \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)}}{3} - \\frac{\\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}}{3}\\right)^{2}}{2} + \\frac{3 \\left(\\frac{\\lambda \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)}}{3} + \\frac{\\lambda \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)}}{3} - \\frac{2 \\lambda \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}}{3} - \\frac{\\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)}}{3} - \\frac{\\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)}}{3} + \\frac{2 \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}}{3}\\right)^{2}}{2}}} + 1\\right) \\left(\\frac{\\lambda \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)}}{3} + \\frac{\\lambda \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)}}{3} - \\frac{2 \\lambda \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}}{3} - \\frac{\\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)}}{3} - \\frac{\\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)}}{3} + \\frac{2 \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}}{3}\\right)\\\\2 \\sqrt{2} \\mu \\left(- \\frac{3 \\mu \\max\\left(0, \\frac{- \\sigma_{0} + \\sqrt{12 \\mu^{2} \\left(\\frac{\\frac{\\partial}{\\partial y} u_{x}{\\left(x,y,z \\right)}}{2} + \\frac{\\frac{\\partial}{\\partial x} u_{y}{\\left(x,y,z \\right)}}{2}\\right)^{2} + 12 \\mu^{2} \\left(\\frac{\\frac{\\partial}{\\partial z} u_{x}{\\left(x,y,z \\right)}}{2} + \\frac{\\frac{\\partial}{\\partial x} u_{z}{\\left(x,y,z \\right)}}{2}\\right)^{2} + 12 \\mu^{2} \\left(\\frac{\\frac{\\partial}{\\partial z} u_{y}{\\left(x,y,z \\right)}}{2} + \\frac{\\frac{\\partial}{\\partial y} u_{z}{\\left(x,y,z \\right)}}{2}\\right)^{2} + \\frac{3 \\left(- \\frac{2 \\lambda \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)}}{3} + \\frac{\\lambda \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)}}{3} + \\frac{\\lambda \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}}{3} + \\frac{2 \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)}}{3} - \\frac{\\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)}}{3} - \\frac{\\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}}{3}\\right)^{2}}{2} + \\frac{3 \\left(\\frac{\\lambda \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)}}{3} - \\frac{2 \\lambda \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)}}{3} + \\frac{\\lambda \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}}{3} - \\frac{\\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)}}{3} + \\frac{2 \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)}}{3} - \\frac{\\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}}{3}\\right)^{2}}{2} + \\frac{3 \\left(\\frac{\\lambda \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)}}{3} + \\frac{\\lambda \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)}}{3} - \\frac{2 \\lambda \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}}{3} - \\frac{\\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)}}{3} - \\frac{\\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)}}{3} + \\frac{2 \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}}{3}\\right)^{2}}{2}}}{3 \\mu}\\right)}{\\sqrt{12 \\mu^{2} \\left(\\frac{\\frac{\\partial}{\\partial y} u_{x}{\\left(x,y,z \\right)}}{2} + \\frac{\\frac{\\partial}{\\partial x} u_{y}{\\left(x,y,z \\right)}}{2}\\right)^{2} + 12 \\mu^{2} \\left(\\frac{\\frac{\\partial}{\\partial z} u_{x}{\\left(x,y,z \\right)}}{2} + \\frac{\\frac{\\partial}{\\partial x} u_{z}{\\left(x,y,z \\right)}}{2}\\right)^{2} + 12 \\mu^{2} \\left(\\frac{\\frac{\\partial}{\\partial z} u_{y}{\\left(x,y,z \\right)}}{2} + \\frac{\\frac{\\partial}{\\partial y} u_{z}{\\left(x,y,z \\right)}}{2}\\right)^{2} + \\frac{3 \\left(- \\frac{2 \\lambda \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)}}{3} + \\frac{\\lambda \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)}}{3} + \\frac{\\lambda \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}}{3} + \\frac{2 \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)}}{3} - \\frac{\\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)}}{3} - \\frac{\\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}}{3}\\right)^{2}}{2} + \\frac{3 \\left(\\frac{\\lambda \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)}}{3} - \\frac{2 \\lambda \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)}}{3} + \\frac{\\lambda \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}}{3} - \\frac{\\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)}}{3} + \\frac{2 \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)}}{3} - \\frac{\\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}}{3}\\right)^{2}}{2} + \\frac{3 \\left(\\frac{\\lambda \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)}}{3} + \\frac{\\lambda \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)}}{3} - \\frac{2 \\lambda \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}}{3} - \\frac{\\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)}}{3} - \\frac{\\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)}}{3} + \\frac{2 \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}}{3}\\right)^{2}}{2}}} + 1\\right) \\left(\\frac{\\frac{\\partial}{\\partial y} u_{x}{\\left(x,y,z \\right)}}{2} + \\frac{\\frac{\\partial}{\\partial x} u_{y}{\\left(x,y,z \\right)}}{2}\\right)\\\\2 \\sqrt{2} \\mu \\left(- \\frac{3 \\mu \\max\\left(0, \\frac{- \\sigma_{0} + \\sqrt{12 \\mu^{2} \\left(\\frac{\\frac{\\partial}{\\partial y} u_{x}{\\left(x,y,z \\right)}}{2} + \\frac{\\frac{\\partial}{\\partial x} u_{y}{\\left(x,y,z \\right)}}{2}\\right)^{2} + 12 \\mu^{2} \\left(\\frac{\\frac{\\partial}{\\partial z} u_{x}{\\left(x,y,z \\right)}}{2} + \\frac{\\frac{\\partial}{\\partial x} u_{z}{\\left(x,y,z \\right)}}{2}\\right)^{2} + 12 \\mu^{2} \\left(\\frac{\\frac{\\partial}{\\partial z} u_{y}{\\left(x,y,z \\right)}}{2} + \\frac{\\frac{\\partial}{\\partial y} u_{z}{\\left(x,y,z \\right)}}{2}\\right)^{2} + \\frac{3 \\left(- \\frac{2 \\lambda \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)}}{3} + \\frac{\\lambda \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)}}{3} + \\frac{\\lambda \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}}{3} + \\frac{2 \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)}}{3} - \\frac{\\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)}}{3} - \\frac{\\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}}{3}\\right)^{2}}{2} + \\frac{3 \\left(\\frac{\\lambda \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)}}{3} - \\frac{2 \\lambda \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)}}{3} + \\frac{\\lambda \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}}{3} - \\frac{\\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)}}{3} + \\frac{2 \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)}}{3} - \\frac{\\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}}{3}\\right)^{2}}{2} + \\frac{3 \\left(\\frac{\\lambda \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)}}{3} + \\frac{\\lambda \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)}}{3} - \\frac{2 \\lambda \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}}{3} - \\frac{\\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)}}{3} - \\frac{\\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)}}{3} + \\frac{2 \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}}{3}\\right)^{2}}{2}}}{3 \\mu}\\right)}{\\sqrt{12 \\mu^{2} \\left(\\frac{\\frac{\\partial}{\\partial y} u_{x}{\\left(x,y,z \\right)}}{2} + \\frac{\\frac{\\partial}{\\partial x} u_{y}{\\left(x,y,z \\right)}}{2}\\right)^{2} + 12 \\mu^{2} \\left(\\frac{\\frac{\\partial}{\\partial z} u_{x}{\\left(x,y,z \\right)}}{2} + \\frac{\\frac{\\partial}{\\partial x} u_{z}{\\left(x,y,z \\right)}}{2}\\right)^{2} + 12 \\mu^{2} \\left(\\frac{\\frac{\\partial}{\\partial z} u_{y}{\\left(x,y,z \\right)}}{2} + \\frac{\\frac{\\partial}{\\partial y} u_{z}{\\left(x,y,z \\right)}}{2}\\right)^{2} + \\frac{3 \\left(- \\frac{2 \\lambda \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)}}{3} + \\frac{\\lambda \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)}}{3} + \\frac{\\lambda \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}}{3} + \\frac{2 \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)}}{3} - \\frac{\\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)}}{3} - \\frac{\\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}}{3}\\right)^{2}}{2} + \\frac{3 \\left(\\frac{\\lambda \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)}}{3} - \\frac{2 \\lambda \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)}}{3} + \\frac{\\lambda \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}}{3} - \\frac{\\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)}}{3} + \\frac{2 \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)}}{3} - \\frac{\\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}}{3}\\right)^{2}}{2} + \\frac{3 \\left(\\frac{\\lambda \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)}}{3} + \\frac{\\lambda \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)}}{3} - \\frac{2 \\lambda \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}}{3} - \\frac{\\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)}}{3} - \\frac{\\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)}}{3} + \\frac{2 \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}}{3}\\right)^{2}}{2}}} + 1\\right) \\left(\\frac{\\frac{\\partial}{\\partial z} u_{x}{\\left(x,y,z \\right)}}{2} + \\frac{\\frac{\\partial}{\\partial x} u_{z}{\\left(x,y,z \\right)}}{2}\\right)\\\\2 \\sqrt{2} \\mu \\left(- \\frac{3 \\mu \\max\\left(0, \\frac{- \\sigma_{0} + \\sqrt{12 \\mu^{2} \\left(\\frac{\\frac{\\partial}{\\partial y} u_{x}{\\left(x,y,z \\right)}}{2} + \\frac{\\frac{\\partial}{\\partial x} u_{y}{\\left(x,y,z \\right)}}{2}\\right)^{2} + 12 \\mu^{2} \\left(\\frac{\\frac{\\partial}{\\partial z} u_{x}{\\left(x,y,z \\right)}}{2} + \\frac{\\frac{\\partial}{\\partial x} u_{z}{\\left(x,y,z \\right)}}{2}\\right)^{2} + 12 \\mu^{2} \\left(\\frac{\\frac{\\partial}{\\partial z} u_{y}{\\left(x,y,z \\right)}}{2} + \\frac{\\frac{\\partial}{\\partial y} u_{z}{\\left(x,y,z \\right)}}{2}\\right)^{2} + \\frac{3 \\left(- \\frac{2 \\lambda \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)}}{3} + \\frac{\\lambda \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)}}{3} + \\frac{\\lambda \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}}{3} + \\frac{2 \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)}}{3} - \\frac{\\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)}}{3} - \\frac{\\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}}{3}\\right)^{2}}{2} + \\frac{3 \\left(\\frac{\\lambda \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)}}{3} - \\frac{2 \\lambda \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)}}{3} + \\frac{\\lambda \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}}{3} - \\frac{\\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)}}{3} + \\frac{2 \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)}}{3} - \\frac{\\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}}{3}\\right)^{2}}{2} + \\frac{3 \\left(\\frac{\\lambda \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)}}{3} + \\frac{\\lambda \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)}}{3} - \\frac{2 \\lambda \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}}{3} - \\frac{\\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)}}{3} - \\frac{\\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)}}{3} + \\frac{2 \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}}{3}\\right)^{2}}{2}}}{3 \\mu}\\right)}{\\sqrt{12 \\mu^{2} \\left(\\frac{\\frac{\\partial}{\\partial y} u_{x}{\\left(x,y,z \\right)}}{2} + \\frac{\\frac{\\partial}{\\partial x} u_{y}{\\left(x,y,z \\right)}}{2}\\right)^{2} + 12 \\mu^{2} \\left(\\frac{\\frac{\\partial}{\\partial z} u_{x}{\\left(x,y,z \\right)}}{2} + \\frac{\\frac{\\partial}{\\partial x} u_{z}{\\left(x,y,z \\right)}}{2}\\right)^{2} + 12 \\mu^{2} \\left(\\frac{\\frac{\\partial}{\\partial z} u_{y}{\\left(x,y,z \\right)}}{2} + \\frac{\\frac{\\partial}{\\partial y} u_{z}{\\left(x,y,z \\right)}}{2}\\right)^{2} + \\frac{3 \\left(- \\frac{2 \\lambda \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)}}{3} + \\frac{\\lambda \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)}}{3} + \\frac{\\lambda \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}}{3} + \\frac{2 \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)}}{3} - \\frac{\\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)}}{3} - \\frac{\\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}}{3}\\right)^{2}}{2} + \\frac{3 \\left(\\frac{\\lambda \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)}}{3} - \\frac{2 \\lambda \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)}}{3} + \\frac{\\lambda \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}}{3} - \\frac{\\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)}}{3} + \\frac{2 \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)}}{3} - \\frac{\\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}}{3}\\right)^{2}}{2} + \\frac{3 \\left(\\frac{\\lambda \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)}}{3} + \\frac{\\lambda \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)}}{3} - \\frac{2 \\lambda \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}}{3} - \\frac{\\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)}}{3} - \\frac{\\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)}}{3} + \\frac{2 \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}}{3}\\right)^{2}}{2}}} + 1\\right) \\left(\\frac{\\frac{\\partial}{\\partial z} u_{y}{\\left(x,y,z \\right)}}{2} + \\frac{\\frac{\\partial}{\\partial y} u_{z}{\\left(x,y,z \\right)}}{2}\\right)\\end{matrix}\\right]$" - ], - "text/plain": [ - "Matrix([\n", - "[2*\\lambda*Derivative(u_x(x, y, z), x)/3 + 2*\\lambda*Derivative(u_y(x, y, z), y)/3 + 2*\\lambda*Derivative(u_z(x, y, z), z)/3 + (\\lambda + 2*\\mu)*Derivative(u_x(x, y, z), x)/3 + (\\lambda + 2*\\mu)*Derivative(u_y(x, y, z), y)/3 + (\\lambda + 2*\\mu)*Derivative(u_z(x, y, z), z)/3 + (-3*\\mu*Max(0, (-\\sigma_0 + sqrt(12*\\mu**2*(Derivative(u_x(x, y, z), y)/2 + Derivative(u_y(x, y, z), x)/2)**2 + 12*\\mu**2*(Derivative(u_x(x, y, z), z)/2 + Derivative(u_z(x, y, z), x)/2)**2 + 12*\\mu**2*(Derivative(u_y(x, y, z), z)/2 + Derivative(u_z(x, y, z), y)/2)**2 + 3*(-2*\\lambda*Derivative(u_x(x, y, z), x)/3 + \\lambda*Derivative(u_y(x, y, z), y)/3 + \\lambda*Derivative(u_z(x, y, z), z)/3 + 2*(\\lambda + 2*\\mu)*Derivative(u_x(x, y, z), x)/3 - (\\lambda + 2*\\mu)*Derivative(u_y(x, y, z), y)/3 - (\\lambda + 2*\\mu)*Derivative(u_z(x, y, z), z)/3)**2/2 + 3*(\\lambda*Derivative(u_x(x, y, z), x)/3 - 2*\\lambda*Derivative(u_y(x, y, z), y)/3 + \\lambda*Derivative(u_z(x, y, z), z)/3 - (\\lambda + 2*\\mu)*Derivative(u_x(x, y, z), x)/3 + 2*(\\lambda + 2*\\mu)*Derivative(u_y(x, y, z), y)/3 - (\\lambda + 2*\\mu)*Derivative(u_z(x, y, z), z)/3)**2/2 + 3*(\\lambda*Derivative(u_x(x, y, z), x)/3 + \\lambda*Derivative(u_y(x, y, z), y)/3 - 2*\\lambda*Derivative(u_z(x, y, z), z)/3 - (\\lambda + 2*\\mu)*Derivative(u_x(x, y, z), x)/3 - (\\lambda + 2*\\mu)*Derivative(u_y(x, y, z), y)/3 + 2*(\\lambda + 2*\\mu)*Derivative(u_z(x, y, z), z)/3)**2/2))/(3*\\mu))/sqrt(12*\\mu**2*(Derivative(u_x(x, y, z), y)/2 + Derivative(u_y(x, y, z), x)/2)**2 + 12*\\mu**2*(Derivative(u_x(x, y, z), z)/2 + Derivative(u_z(x, y, z), x)/2)**2 + 12*\\mu**2*(Derivative(u_y(x, y, z), z)/2 + Derivative(u_z(x, y, z), y)/2)**2 + 3*(-2*\\lambda*Derivative(u_x(x, y, z), x)/3 + \\lambda*Derivative(u_y(x, y, z), y)/3 + \\lambda*Derivative(u_z(x, y, z), z)/3 + 2*(\\lambda + 2*\\mu)*Derivative(u_x(x, y, z), x)/3 - (\\lambda + 2*\\mu)*Derivative(u_y(x, y, z), y)/3 - (\\lambda + 2*\\mu)*Derivative(u_z(x, y, z), z)/3)**2/2 + 3*(\\lambda*Derivative(u_x(x, y, z), x)/3 - 2*\\lambda*Derivative(u_y(x, y, z), y)/3 + \\lambda*Derivative(u_z(x, y, z), z)/3 - (\\lambda + 2*\\mu)*Derivative(u_x(x, y, z), x)/3 + 2*(\\lambda + 2*\\mu)*Derivative(u_y(x, y, z), y)/3 - (\\lambda + 2*\\mu)*Derivative(u_z(x, y, z), z)/3)**2/2 + 3*(\\lambda*Derivative(u_x(x, y, z), x)/3 + \\lambda*Derivative(u_y(x, y, z), y)/3 - 2*\\lambda*Derivative(u_z(x, y, z), z)/3 - (\\lambda + 2*\\mu)*Derivative(u_x(x, y, z), x)/3 - (\\lambda + 2*\\mu)*Derivative(u_y(x, y, z), y)/3 + 2*(\\lambda + 2*\\mu)*Derivative(u_z(x, y, z), z)/3)**2/2) + 1)*(-2*\\lambda*Derivative(u_x(x, y, z), x)/3 + \\lambda*Derivative(u_y(x, y, z), y)/3 + \\lambda*Derivative(u_z(x, y, z), z)/3 + 2*(\\lambda + 2*\\mu)*Derivative(u_x(x, y, z), x)/3 - (\\lambda + 2*\\mu)*Derivative(u_y(x, y, z), y)/3 - (\\lambda + 2*\\mu)*Derivative(u_z(x, y, z), z)/3)],\n", - "[ 2*\\lambda*Derivative(u_x(x, y, z), x)/3 + 2*\\lambda*Derivative(u_y(x, y, z), y)/3 + 2*\\lambda*Derivative(u_z(x, y, z), z)/3 + (\\lambda + 2*\\mu)*Derivative(u_x(x, y, z), x)/3 + (\\lambda + 2*\\mu)*Derivative(u_y(x, y, z), y)/3 + (\\lambda + 2*\\mu)*Derivative(u_z(x, y, z), z)/3 + (-3*\\mu*Max(0, (-\\sigma_0 + sqrt(12*\\mu**2*(Derivative(u_x(x, y, z), y)/2 + Derivative(u_y(x, y, z), x)/2)**2 + 12*\\mu**2*(Derivative(u_x(x, y, z), z)/2 + Derivative(u_z(x, y, z), x)/2)**2 + 12*\\mu**2*(Derivative(u_y(x, y, z), z)/2 + Derivative(u_z(x, y, z), y)/2)**2 + 3*(-2*\\lambda*Derivative(u_x(x, y, z), x)/3 + \\lambda*Derivative(u_y(x, y, z), y)/3 + \\lambda*Derivative(u_z(x, y, z), z)/3 + 2*(\\lambda + 2*\\mu)*Derivative(u_x(x, y, z), x)/3 - (\\lambda + 2*\\mu)*Derivative(u_y(x, y, z), y)/3 - (\\lambda + 2*\\mu)*Derivative(u_z(x, y, z), z)/3)**2/2 + 3*(\\lambda*Derivative(u_x(x, y, z), x)/3 - 2*\\lambda*Derivative(u_y(x, y, z), y)/3 + \\lambda*Derivative(u_z(x, y, z), z)/3 - (\\lambda + 2*\\mu)*Derivative(u_x(x, y, z), x)/3 + 2*(\\lambda + 2*\\mu)*Derivative(u_y(x, y, z), y)/3 - (\\lambda + 2*\\mu)*Derivative(u_z(x, y, z), z)/3)**2/2 + 3*(\\lambda*Derivative(u_x(x, y, z), x)/3 + \\lambda*Derivative(u_y(x, y, z), y)/3 - 2*\\lambda*Derivative(u_z(x, y, z), z)/3 - (\\lambda + 2*\\mu)*Derivative(u_x(x, y, z), x)/3 - (\\lambda + 2*\\mu)*Derivative(u_y(x, y, z), y)/3 + 2*(\\lambda + 2*\\mu)*Derivative(u_z(x, y, z), z)/3)**2/2))/(3*\\mu))/sqrt(12*\\mu**2*(Derivative(u_x(x, y, z), y)/2 + Derivative(u_y(x, y, z), x)/2)**2 + 12*\\mu**2*(Derivative(u_x(x, y, z), z)/2 + Derivative(u_z(x, y, z), x)/2)**2 + 12*\\mu**2*(Derivative(u_y(x, y, z), z)/2 + Derivative(u_z(x, y, z), y)/2)**2 + 3*(-2*\\lambda*Derivative(u_x(x, y, z), x)/3 + \\lambda*Derivative(u_y(x, y, z), y)/3 + \\lambda*Derivative(u_z(x, y, z), z)/3 + 2*(\\lambda + 2*\\mu)*Derivative(u_x(x, y, z), x)/3 - (\\lambda + 2*\\mu)*Derivative(u_y(x, y, z), y)/3 - (\\lambda + 2*\\mu)*Derivative(u_z(x, y, z), z)/3)**2/2 + 3*(\\lambda*Derivative(u_x(x, y, z), x)/3 - 2*\\lambda*Derivative(u_y(x, y, z), y)/3 + \\lambda*Derivative(u_z(x, y, z), z)/3 - (\\lambda + 2*\\mu)*Derivative(u_x(x, y, z), x)/3 + 2*(\\lambda + 2*\\mu)*Derivative(u_y(x, y, z), y)/3 - (\\lambda + 2*\\mu)*Derivative(u_z(x, y, z), z)/3)**2/2 + 3*(\\lambda*Derivative(u_x(x, y, z), x)/3 + \\lambda*Derivative(u_y(x, y, z), y)/3 - 2*\\lambda*Derivative(u_z(x, y, z), z)/3 - (\\lambda + 2*\\mu)*Derivative(u_x(x, y, z), x)/3 - (\\lambda + 2*\\mu)*Derivative(u_y(x, y, z), y)/3 + 2*(\\lambda + 2*\\mu)*Derivative(u_z(x, y, z), z)/3)**2/2) + 1)*(\\lambda*Derivative(u_x(x, y, z), x)/3 - 2*\\lambda*Derivative(u_y(x, y, z), y)/3 + \\lambda*Derivative(u_z(x, y, z), z)/3 - (\\lambda + 2*\\mu)*Derivative(u_x(x, y, z), x)/3 + 2*(\\lambda + 2*\\mu)*Derivative(u_y(x, y, z), y)/3 - (\\lambda + 2*\\mu)*Derivative(u_z(x, y, z), z)/3)],\n", - "[ 2*\\lambda*Derivative(u_x(x, y, z), x)/3 + 2*\\lambda*Derivative(u_y(x, y, z), y)/3 + 2*\\lambda*Derivative(u_z(x, y, z), z)/3 + (\\lambda + 2*\\mu)*Derivative(u_x(x, y, z), x)/3 + (\\lambda + 2*\\mu)*Derivative(u_y(x, y, z), y)/3 + (\\lambda + 2*\\mu)*Derivative(u_z(x, y, z), z)/3 + (-3*\\mu*Max(0, (-\\sigma_0 + sqrt(12*\\mu**2*(Derivative(u_x(x, y, z), y)/2 + Derivative(u_y(x, y, z), x)/2)**2 + 12*\\mu**2*(Derivative(u_x(x, y, z), z)/2 + Derivative(u_z(x, y, z), x)/2)**2 + 12*\\mu**2*(Derivative(u_y(x, y, z), z)/2 + Derivative(u_z(x, y, z), y)/2)**2 + 3*(-2*\\lambda*Derivative(u_x(x, y, z), x)/3 + \\lambda*Derivative(u_y(x, y, z), y)/3 + \\lambda*Derivative(u_z(x, y, z), z)/3 + 2*(\\lambda + 2*\\mu)*Derivative(u_x(x, y, z), x)/3 - (\\lambda + 2*\\mu)*Derivative(u_y(x, y, z), y)/3 - (\\lambda + 2*\\mu)*Derivative(u_z(x, y, z), z)/3)**2/2 + 3*(\\lambda*Derivative(u_x(x, y, z), x)/3 - 2*\\lambda*Derivative(u_y(x, y, z), y)/3 + \\lambda*Derivative(u_z(x, y, z), z)/3 - (\\lambda + 2*\\mu)*Derivative(u_x(x, y, z), x)/3 + 2*(\\lambda + 2*\\mu)*Derivative(u_y(x, y, z), y)/3 - (\\lambda + 2*\\mu)*Derivative(u_z(x, y, z), z)/3)**2/2 + 3*(\\lambda*Derivative(u_x(x, y, z), x)/3 + \\lambda*Derivative(u_y(x, y, z), y)/3 - 2*\\lambda*Derivative(u_z(x, y, z), z)/3 - (\\lambda + 2*\\mu)*Derivative(u_x(x, y, z), x)/3 - (\\lambda + 2*\\mu)*Derivative(u_y(x, y, z), y)/3 + 2*(\\lambda + 2*\\mu)*Derivative(u_z(x, y, z), z)/3)**2/2))/(3*\\mu))/sqrt(12*\\mu**2*(Derivative(u_x(x, y, z), y)/2 + Derivative(u_y(x, y, z), x)/2)**2 + 12*\\mu**2*(Derivative(u_x(x, y, z), z)/2 + Derivative(u_z(x, y, z), x)/2)**2 + 12*\\mu**2*(Derivative(u_y(x, y, z), z)/2 + Derivative(u_z(x, y, z), y)/2)**2 + 3*(-2*\\lambda*Derivative(u_x(x, y, z), x)/3 + \\lambda*Derivative(u_y(x, y, z), y)/3 + \\lambda*Derivative(u_z(x, y, z), z)/3 + 2*(\\lambda + 2*\\mu)*Derivative(u_x(x, y, z), x)/3 - (\\lambda + 2*\\mu)*Derivative(u_y(x, y, z), y)/3 - (\\lambda + 2*\\mu)*Derivative(u_z(x, y, z), z)/3)**2/2 + 3*(\\lambda*Derivative(u_x(x, y, z), x)/3 - 2*\\lambda*Derivative(u_y(x, y, z), y)/3 + \\lambda*Derivative(u_z(x, y, z), z)/3 - (\\lambda + 2*\\mu)*Derivative(u_x(x, y, z), x)/3 + 2*(\\lambda + 2*\\mu)*Derivative(u_y(x, y, z), y)/3 - (\\lambda + 2*\\mu)*Derivative(u_z(x, y, z), z)/3)**2/2 + 3*(\\lambda*Derivative(u_x(x, y, z), x)/3 + \\lambda*Derivative(u_y(x, y, z), y)/3 - 2*\\lambda*Derivative(u_z(x, y, z), z)/3 - (\\lambda + 2*\\mu)*Derivative(u_x(x, y, z), x)/3 - (\\lambda + 2*\\mu)*Derivative(u_y(x, y, z), y)/3 + 2*(\\lambda + 2*\\mu)*Derivative(u_z(x, y, z), z)/3)**2/2) + 1)*(\\lambda*Derivative(u_x(x, y, z), x)/3 + \\lambda*Derivative(u_y(x, y, z), y)/3 - 2*\\lambda*Derivative(u_z(x, y, z), z)/3 - (\\lambda + 2*\\mu)*Derivative(u_x(x, y, z), x)/3 - (\\lambda + 2*\\mu)*Derivative(u_y(x, y, z), y)/3 + 2*(\\lambda + 2*\\mu)*Derivative(u_z(x, y, z), z)/3)],\n", - "[ 2*sqrt(2)*\\mu*(-3*\\mu*Max(0, (-\\sigma_0 + sqrt(12*\\mu**2*(Derivative(u_x(x, y, z), y)/2 + Derivative(u_y(x, y, z), x)/2)**2 + 12*\\mu**2*(Derivative(u_x(x, y, z), z)/2 + Derivative(u_z(x, y, z), x)/2)**2 + 12*\\mu**2*(Derivative(u_y(x, y, z), z)/2 + Derivative(u_z(x, y, z), y)/2)**2 + 3*(-2*\\lambda*Derivative(u_x(x, y, z), x)/3 + \\lambda*Derivative(u_y(x, y, z), y)/3 + \\lambda*Derivative(u_z(x, y, z), z)/3 + 2*(\\lambda + 2*\\mu)*Derivative(u_x(x, y, z), x)/3 - (\\lambda + 2*\\mu)*Derivative(u_y(x, y, z), y)/3 - (\\lambda + 2*\\mu)*Derivative(u_z(x, y, z), z)/3)**2/2 + 3*(\\lambda*Derivative(u_x(x, y, z), x)/3 - 2*\\lambda*Derivative(u_y(x, y, z), y)/3 + \\lambda*Derivative(u_z(x, y, z), z)/3 - (\\lambda + 2*\\mu)*Derivative(u_x(x, y, z), x)/3 + 2*(\\lambda + 2*\\mu)*Derivative(u_y(x, y, z), y)/3 - (\\lambda + 2*\\mu)*Derivative(u_z(x, y, z), z)/3)**2/2 + 3*(\\lambda*Derivative(u_x(x, y, z), x)/3 + \\lambda*Derivative(u_y(x, y, z), y)/3 - 2*\\lambda*Derivative(u_z(x, y, z), z)/3 - (\\lambda + 2*\\mu)*Derivative(u_x(x, y, z), x)/3 - (\\lambda + 2*\\mu)*Derivative(u_y(x, y, z), y)/3 + 2*(\\lambda + 2*\\mu)*Derivative(u_z(x, y, z), z)/3)**2/2))/(3*\\mu))/sqrt(12*\\mu**2*(Derivative(u_x(x, y, z), y)/2 + Derivative(u_y(x, y, z), x)/2)**2 + 12*\\mu**2*(Derivative(u_x(x, y, z), z)/2 + Derivative(u_z(x, y, z), x)/2)**2 + 12*\\mu**2*(Derivative(u_y(x, y, z), z)/2 + Derivative(u_z(x, y, z), y)/2)**2 + 3*(-2*\\lambda*Derivative(u_x(x, y, z), x)/3 + \\lambda*Derivative(u_y(x, y, z), y)/3 + \\lambda*Derivative(u_z(x, y, z), z)/3 + 2*(\\lambda + 2*\\mu)*Derivative(u_x(x, y, z), x)/3 - (\\lambda + 2*\\mu)*Derivative(u_y(x, y, z), y)/3 - (\\lambda + 2*\\mu)*Derivative(u_z(x, y, z), z)/3)**2/2 + 3*(\\lambda*Derivative(u_x(x, y, z), x)/3 - 2*\\lambda*Derivative(u_y(x, y, z), y)/3 + \\lambda*Derivative(u_z(x, y, z), z)/3 - (\\lambda + 2*\\mu)*Derivative(u_x(x, y, z), x)/3 + 2*(\\lambda + 2*\\mu)*Derivative(u_y(x, y, z), y)/3 - (\\lambda + 2*\\mu)*Derivative(u_z(x, y, z), z)/3)**2/2 + 3*(\\lambda*Derivative(u_x(x, y, z), x)/3 + \\lambda*Derivative(u_y(x, y, z), y)/3 - 2*\\lambda*Derivative(u_z(x, y, z), z)/3 - (\\lambda + 2*\\mu)*Derivative(u_x(x, y, z), x)/3 - (\\lambda + 2*\\mu)*Derivative(u_y(x, y, z), y)/3 + 2*(\\lambda + 2*\\mu)*Derivative(u_z(x, y, z), z)/3)**2/2) + 1)*(Derivative(u_x(x, y, z), y)/2 + Derivative(u_y(x, y, z), x)/2)],\n", - "[ 2*sqrt(2)*\\mu*(-3*\\mu*Max(0, (-\\sigma_0 + sqrt(12*\\mu**2*(Derivative(u_x(x, y, z), y)/2 + Derivative(u_y(x, y, z), x)/2)**2 + 12*\\mu**2*(Derivative(u_x(x, y, z), z)/2 + Derivative(u_z(x, y, z), x)/2)**2 + 12*\\mu**2*(Derivative(u_y(x, y, z), z)/2 + Derivative(u_z(x, y, z), y)/2)**2 + 3*(-2*\\lambda*Derivative(u_x(x, y, z), x)/3 + \\lambda*Derivative(u_y(x, y, z), y)/3 + \\lambda*Derivative(u_z(x, y, z), z)/3 + 2*(\\lambda + 2*\\mu)*Derivative(u_x(x, y, z), x)/3 - (\\lambda + 2*\\mu)*Derivative(u_y(x, y, z), y)/3 - (\\lambda + 2*\\mu)*Derivative(u_z(x, y, z), z)/3)**2/2 + 3*(\\lambda*Derivative(u_x(x, y, z), x)/3 - 2*\\lambda*Derivative(u_y(x, y, z), y)/3 + \\lambda*Derivative(u_z(x, y, z), z)/3 - (\\lambda + 2*\\mu)*Derivative(u_x(x, y, z), x)/3 + 2*(\\lambda + 2*\\mu)*Derivative(u_y(x, y, z), y)/3 - (\\lambda + 2*\\mu)*Derivative(u_z(x, y, z), z)/3)**2/2 + 3*(\\lambda*Derivative(u_x(x, y, z), x)/3 + \\lambda*Derivative(u_y(x, y, z), y)/3 - 2*\\lambda*Derivative(u_z(x, y, z), z)/3 - (\\lambda + 2*\\mu)*Derivative(u_x(x, y, z), x)/3 - (\\lambda + 2*\\mu)*Derivative(u_y(x, y, z), y)/3 + 2*(\\lambda + 2*\\mu)*Derivative(u_z(x, y, z), z)/3)**2/2))/(3*\\mu))/sqrt(12*\\mu**2*(Derivative(u_x(x, y, z), y)/2 + Derivative(u_y(x, y, z), x)/2)**2 + 12*\\mu**2*(Derivative(u_x(x, y, z), z)/2 + Derivative(u_z(x, y, z), x)/2)**2 + 12*\\mu**2*(Derivative(u_y(x, y, z), z)/2 + Derivative(u_z(x, y, z), y)/2)**2 + 3*(-2*\\lambda*Derivative(u_x(x, y, z), x)/3 + \\lambda*Derivative(u_y(x, y, z), y)/3 + \\lambda*Derivative(u_z(x, y, z), z)/3 + 2*(\\lambda + 2*\\mu)*Derivative(u_x(x, y, z), x)/3 - (\\lambda + 2*\\mu)*Derivative(u_y(x, y, z), y)/3 - (\\lambda + 2*\\mu)*Derivative(u_z(x, y, z), z)/3)**2/2 + 3*(\\lambda*Derivative(u_x(x, y, z), x)/3 - 2*\\lambda*Derivative(u_y(x, y, z), y)/3 + \\lambda*Derivative(u_z(x, y, z), z)/3 - (\\lambda + 2*\\mu)*Derivative(u_x(x, y, z), x)/3 + 2*(\\lambda + 2*\\mu)*Derivative(u_y(x, y, z), y)/3 - (\\lambda + 2*\\mu)*Derivative(u_z(x, y, z), z)/3)**2/2 + 3*(\\lambda*Derivative(u_x(x, y, z), x)/3 + \\lambda*Derivative(u_y(x, y, z), y)/3 - 2*\\lambda*Derivative(u_z(x, y, z), z)/3 - (\\lambda + 2*\\mu)*Derivative(u_x(x, y, z), x)/3 - (\\lambda + 2*\\mu)*Derivative(u_y(x, y, z), y)/3 + 2*(\\lambda + 2*\\mu)*Derivative(u_z(x, y, z), z)/3)**2/2) + 1)*(Derivative(u_x(x, y, z), z)/2 + Derivative(u_z(x, y, z), x)/2)],\n", - "[ 2*sqrt(2)*\\mu*(-3*\\mu*Max(0, (-\\sigma_0 + sqrt(12*\\mu**2*(Derivative(u_x(x, y, z), y)/2 + Derivative(u_y(x, y, z), x)/2)**2 + 12*\\mu**2*(Derivative(u_x(x, y, z), z)/2 + Derivative(u_z(x, y, z), x)/2)**2 + 12*\\mu**2*(Derivative(u_y(x, y, z), z)/2 + Derivative(u_z(x, y, z), y)/2)**2 + 3*(-2*\\lambda*Derivative(u_x(x, y, z), x)/3 + \\lambda*Derivative(u_y(x, y, z), y)/3 + \\lambda*Derivative(u_z(x, y, z), z)/3 + 2*(\\lambda + 2*\\mu)*Derivative(u_x(x, y, z), x)/3 - (\\lambda + 2*\\mu)*Derivative(u_y(x, y, z), y)/3 - (\\lambda + 2*\\mu)*Derivative(u_z(x, y, z), z)/3)**2/2 + 3*(\\lambda*Derivative(u_x(x, y, z), x)/3 - 2*\\lambda*Derivative(u_y(x, y, z), y)/3 + \\lambda*Derivative(u_z(x, y, z), z)/3 - (\\lambda + 2*\\mu)*Derivative(u_x(x, y, z), x)/3 + 2*(\\lambda + 2*\\mu)*Derivative(u_y(x, y, z), y)/3 - (\\lambda + 2*\\mu)*Derivative(u_z(x, y, z), z)/3)**2/2 + 3*(\\lambda*Derivative(u_x(x, y, z), x)/3 + \\lambda*Derivative(u_y(x, y, z), y)/3 - 2*\\lambda*Derivative(u_z(x, y, z), z)/3 - (\\lambda + 2*\\mu)*Derivative(u_x(x, y, z), x)/3 - (\\lambda + 2*\\mu)*Derivative(u_y(x, y, z), y)/3 + 2*(\\lambda + 2*\\mu)*Derivative(u_z(x, y, z), z)/3)**2/2))/(3*\\mu))/sqrt(12*\\mu**2*(Derivative(u_x(x, y, z), y)/2 + Derivative(u_y(x, y, z), x)/2)**2 + 12*\\mu**2*(Derivative(u_x(x, y, z), z)/2 + Derivative(u_z(x, y, z), x)/2)**2 + 12*\\mu**2*(Derivative(u_y(x, y, z), z)/2 + Derivative(u_z(x, y, z), y)/2)**2 + 3*(-2*\\lambda*Derivative(u_x(x, y, z), x)/3 + \\lambda*Derivative(u_y(x, y, z), y)/3 + \\lambda*Derivative(u_z(x, y, z), z)/3 + 2*(\\lambda + 2*\\mu)*Derivative(u_x(x, y, z), x)/3 - (\\lambda + 2*\\mu)*Derivative(u_y(x, y, z), y)/3 - (\\lambda + 2*\\mu)*Derivative(u_z(x, y, z), z)/3)**2/2 + 3*(\\lambda*Derivative(u_x(x, y, z), x)/3 - 2*\\lambda*Derivative(u_y(x, y, z), y)/3 + \\lambda*Derivative(u_z(x, y, z), z)/3 - (\\lambda + 2*\\mu)*Derivative(u_x(x, y, z), x)/3 + 2*(\\lambda + 2*\\mu)*Derivative(u_y(x, y, z), y)/3 - (\\lambda + 2*\\mu)*Derivative(u_z(x, y, z), z)/3)**2/2 + 3*(\\lambda*Derivative(u_x(x, y, z), x)/3 + \\lambda*Derivative(u_y(x, y, z), y)/3 - 2*\\lambda*Derivative(u_z(x, y, z), z)/3 - (\\lambda + 2*\\mu)*Derivative(u_x(x, y, z), x)/3 - (\\lambda + 2*\\mu)*Derivative(u_y(x, y, z), y)/3 + 2*(\\lambda + 2*\\mu)*Derivative(u_z(x, y, z), z)/3)**2/2) + 1)*(Derivative(u_y(x, y, z), z)/2 + Derivative(u_z(x, y, z), y)/2)]])" - ] - }, - "execution_count": 1, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "from sympy import Function, Matrix, Max, symbols, sqrt, eye, Rational\n", - "\n", - "\n", - "def strain(u, x, y, z):\n", - " jacobian = u.jacobian([x, y, z])\n", - " return (jacobian + jacobian.T) / 2\n", - "\n", - "\n", - "def to_mandel_notation(strain):\n", - " factor = sqrt(2)\n", - " return Matrix(\n", - " [\n", - " strain[0, 0],\n", - " strain[1, 1],\n", - " strain[2, 2],\n", - " factor * strain[0, 1],\n", - " factor * strain[0, 2],\n", - " factor * strain[1, 2],\n", - " ]\n", - " )\n", - "\n", - "\n", - "u, x, y, z = symbols(\"u x y z\")\n", - "mu, lam, sig_0, h = symbols(r\"\\mu \\lambda \\sigma_0 h\")\n", - "\n", - "\n", - "def elasticity_matrix(mu, lam):\n", - " return Matrix(\n", - " [\n", - " [lam + 2 * mu, lam, lam, 0, 0, 0],\n", - " [lam, lam + 2 * mu, lam, 0, 0, 0],\n", - " [lam, lam, lam + 2 * mu, 0, 0, 0],\n", - " [0, 0, 0, 2 * mu, 0, 0],\n", - " [0, 0, 0, 0, 2 * mu, 0],\n", - " [0, 0, 0, 0, 0, 2 * mu],\n", - " ]\n", - " )\n", - "\n", - "\n", - "def dev(mandel):\n", - " I_sym = Matrix([1, 1, 1, 0, 0, 0])\n", - " return mandel - (I_sym.dot(mandel) / 3) * I_sym\n", - "\n", - "\n", - "def J2(mandel):\n", - " return dev(mandel).dot(dev(mandel)) / 2\n", - "\n", - "\n", - "def equivalent_stress(mandel):\n", - " return sqrt(3 * J2(mandel))\n", - "\n", - "\n", - "u_x = Function(\"u_x\")(x, y, z)\n", - "u_y = Function(\"u_y\")(x, y, z)\n", - "u_z = Function(\"u_z\")(x, y, z)\n", - "alpha_0 = 0\n", - "eps_pl_0 = Matrix([0, 0, 0, 0, 0, 0])\n", - "u = Matrix([u_x, u_y, u_z])\n", - "\n", - "J2(elasticity_matrix(mu, lam) * to_mandel_notation(strain(u, x, y, z)))\n", - "\n", - "\n", - "def delta_alpha(sigma_eq, sig_0, mu, h, alpha_0):\n", - " return Max((sigma_eq - sig_0 - h * alpha_0) / (3 * mu), 0)\n", - "\n", - "\n", - "def gamma(sigma_eq, mu, delta_alpha):\n", - " return 1 - (3 * mu * delta_alpha) / sigma_eq\n", - "\n", - "\n", - "def sigma_new(sigma_tr, gamma):\n", - " sigma_dev = dev(sigma_tr)\n", - " return sigma_dev * gamma + sigma_tr.dot(Matrix([1, 1, 1, 0, 0, 0])) / 3 * Matrix(\n", - " [1, 1, 1, 0, 0, 0]\n", - " )\n", - "\n", - "\n", - "sigma_tr = elasticity_matrix(mu, lam) * to_mandel_notation(strain(u, x, y, z))\n", - "sigma_eq = equivalent_stress(sigma_tr)\n", - "del_alpha = delta_alpha(sigma_eq, sig_0, mu, h, alpha_0)\n", - "gam = gamma(sigma_eq, mu, del_alpha)\n", - "sigma_1 = sigma_new(sigma_tr, gam)\n", - "alpha_1 = alpha_0 + del_alpha\n", - "sigma_1" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [ - { - "data": { - "text/latex": [ - "$\\displaystyle \\left[\\begin{matrix}\\frac{\\left(3 \\sqrt{6} \\mu \\max\\left(0, \\frac{- \\sigma_{0} + \\sqrt{\\mu^{2} \\left(4 \\left(\\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)}\\right)^{2} - 4 \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} - 4 \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)} + 3 \\left(\\frac{\\partial}{\\partial y} u_{x}{\\left(x,y,z \\right)}\\right)^{2} + 6 \\frac{\\partial}{\\partial y} u_{x}{\\left(x,y,z \\right)} \\frac{\\partial}{\\partial x} u_{y}{\\left(x,y,z \\right)} + 3 \\left(\\frac{\\partial}{\\partial z} u_{x}{\\left(x,y,z \\right)}\\right)^{2} + 6 \\frac{\\partial}{\\partial z} u_{x}{\\left(x,y,z \\right)} \\frac{\\partial}{\\partial x} u_{z}{\\left(x,y,z \\right)} + 3 \\left(\\frac{\\partial}{\\partial x} u_{y}{\\left(x,y,z \\right)}\\right)^{2} + 4 \\left(\\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)}\\right)^{2} - 4 \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)} + 3 \\left(\\frac{\\partial}{\\partial z} u_{y}{\\left(x,y,z \\right)}\\right)^{2} + 6 \\frac{\\partial}{\\partial z} u_{y}{\\left(x,y,z \\right)} \\frac{\\partial}{\\partial y} u_{z}{\\left(x,y,z \\right)} + 3 \\left(\\frac{\\partial}{\\partial x} u_{z}{\\left(x,y,z \\right)}\\right)^{2} + 3 \\left(\\frac{\\partial}{\\partial y} u_{z}{\\left(x,y,z \\right)}\\right)^{2} + 4 \\left(\\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}\\right)^{2}\\right)}}{3 \\mu}\\right) - \\sqrt{18 \\mu^{2} \\left(\\frac{\\partial}{\\partial y} u_{x}{\\left(x,y,z \\right)} + \\frac{\\partial}{\\partial x} u_{y}{\\left(x,y,z \\right)}\\right)^{2} + 18 \\mu^{2} \\left(\\frac{\\partial}{\\partial z} u_{x}{\\left(x,y,z \\right)} + \\frac{\\partial}{\\partial x} u_{z}{\\left(x,y,z \\right)}\\right)^{2} + 18 \\mu^{2} \\left(\\frac{\\partial}{\\partial z} u_{y}{\\left(x,y,z \\right)} + \\frac{\\partial}{\\partial y} u_{z}{\\left(x,y,z \\right)}\\right)^{2} + \\left(\\lambda \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} - 2 \\lambda \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} + \\lambda \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)} - \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} + 2 \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} - \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}\\right)^{2} + \\left(\\lambda \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} + \\lambda \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} - 2 \\lambda \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)} - \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} - \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} + 2 \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}\\right)^{2} + \\left(2 \\lambda \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} - \\lambda \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} - \\lambda \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)} - 2 \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} + \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} + \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}\\right)^{2}}\\right) \\left(2 \\lambda \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} - \\lambda \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} - \\lambda \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)} - 2 \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} + \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} + \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}\\right) + \\left(2 \\lambda \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} + 2 \\lambda \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} + 2 \\lambda \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)} + \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} + \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} + \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}\\right) \\sqrt{18 \\mu^{2} \\left(\\frac{\\partial}{\\partial y} u_{x}{\\left(x,y,z \\right)} + \\frac{\\partial}{\\partial x} u_{y}{\\left(x,y,z \\right)}\\right)^{2} + 18 \\mu^{2} \\left(\\frac{\\partial}{\\partial z} u_{x}{\\left(x,y,z \\right)} + \\frac{\\partial}{\\partial x} u_{z}{\\left(x,y,z \\right)}\\right)^{2} + 18 \\mu^{2} \\left(\\frac{\\partial}{\\partial z} u_{y}{\\left(x,y,z \\right)} + \\frac{\\partial}{\\partial y} u_{z}{\\left(x,y,z \\right)}\\right)^{2} + \\left(\\lambda \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} - 2 \\lambda \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} + \\lambda \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)} - \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} + 2 \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} - \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}\\right)^{2} + \\left(\\lambda \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} + \\lambda \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} - 2 \\lambda \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)} - \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} - \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} + 2 \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}\\right)^{2} + \\left(2 \\lambda \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} - \\lambda \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} - \\lambda \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)} - 2 \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} + \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} + \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}\\right)^{2}}}{3 \\sqrt{18 \\mu^{2} \\left(\\frac{\\partial}{\\partial y} u_{x}{\\left(x,y,z \\right)} + \\frac{\\partial}{\\partial x} u_{y}{\\left(x,y,z \\right)}\\right)^{2} + 18 \\mu^{2} \\left(\\frac{\\partial}{\\partial z} u_{x}{\\left(x,y,z \\right)} + \\frac{\\partial}{\\partial x} u_{z}{\\left(x,y,z \\right)}\\right)^{2} + 18 \\mu^{2} \\left(\\frac{\\partial}{\\partial z} u_{y}{\\left(x,y,z \\right)} + \\frac{\\partial}{\\partial y} u_{z}{\\left(x,y,z \\right)}\\right)^{2} + \\left(\\lambda \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} - 2 \\lambda \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} + \\lambda \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)} - \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} + 2 \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} - \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}\\right)^{2} + \\left(\\lambda \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} + \\lambda \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} - 2 \\lambda \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)} - \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} - \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} + 2 \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}\\right)^{2} + \\left(2 \\lambda \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} - \\lambda \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} - \\lambda \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)} - 2 \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} + \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} + \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}\\right)^{2}}}\\\\\\frac{- \\left(3 \\sqrt{6} \\mu \\max\\left(0, \\frac{- \\sigma_{0} + \\sqrt{\\mu^{2} \\left(4 \\left(\\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)}\\right)^{2} - 4 \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} - 4 \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)} + 3 \\left(\\frac{\\partial}{\\partial y} u_{x}{\\left(x,y,z \\right)}\\right)^{2} + 6 \\frac{\\partial}{\\partial y} u_{x}{\\left(x,y,z \\right)} \\frac{\\partial}{\\partial x} u_{y}{\\left(x,y,z \\right)} + 3 \\left(\\frac{\\partial}{\\partial z} u_{x}{\\left(x,y,z \\right)}\\right)^{2} + 6 \\frac{\\partial}{\\partial z} u_{x}{\\left(x,y,z \\right)} \\frac{\\partial}{\\partial x} u_{z}{\\left(x,y,z \\right)} + 3 \\left(\\frac{\\partial}{\\partial x} u_{y}{\\left(x,y,z \\right)}\\right)^{2} + 4 \\left(\\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)}\\right)^{2} - 4 \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)} + 3 \\left(\\frac{\\partial}{\\partial z} u_{y}{\\left(x,y,z \\right)}\\right)^{2} + 6 \\frac{\\partial}{\\partial z} u_{y}{\\left(x,y,z \\right)} \\frac{\\partial}{\\partial y} u_{z}{\\left(x,y,z \\right)} + 3 \\left(\\frac{\\partial}{\\partial x} u_{z}{\\left(x,y,z \\right)}\\right)^{2} + 3 \\left(\\frac{\\partial}{\\partial y} u_{z}{\\left(x,y,z \\right)}\\right)^{2} + 4 \\left(\\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}\\right)^{2}\\right)}}{3 \\mu}\\right) - \\sqrt{18 \\mu^{2} \\left(\\frac{\\partial}{\\partial y} u_{x}{\\left(x,y,z \\right)} + \\frac{\\partial}{\\partial x} u_{y}{\\left(x,y,z \\right)}\\right)^{2} + 18 \\mu^{2} \\left(\\frac{\\partial}{\\partial z} u_{x}{\\left(x,y,z \\right)} + \\frac{\\partial}{\\partial x} u_{z}{\\left(x,y,z \\right)}\\right)^{2} + 18 \\mu^{2} \\left(\\frac{\\partial}{\\partial z} u_{y}{\\left(x,y,z \\right)} + \\frac{\\partial}{\\partial y} u_{z}{\\left(x,y,z \\right)}\\right)^{2} + \\left(\\lambda \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} - 2 \\lambda \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} + \\lambda \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)} - \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} + 2 \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} - \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}\\right)^{2} + \\left(\\lambda \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} + \\lambda \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} - 2 \\lambda \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)} - \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} - \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} + 2 \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}\\right)^{2} + \\left(2 \\lambda \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} - \\lambda \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} - \\lambda \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)} - 2 \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} + \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} + \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}\\right)^{2}}\\right) \\left(\\lambda \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} - 2 \\lambda \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} + \\lambda \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)} - \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} + 2 \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} - \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}\\right) + \\left(2 \\lambda \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} + 2 \\lambda \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} + 2 \\lambda \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)} + \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} + \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} + \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}\\right) \\sqrt{18 \\mu^{2} \\left(\\frac{\\partial}{\\partial y} u_{x}{\\left(x,y,z \\right)} + \\frac{\\partial}{\\partial x} u_{y}{\\left(x,y,z \\right)}\\right)^{2} + 18 \\mu^{2} \\left(\\frac{\\partial}{\\partial z} u_{x}{\\left(x,y,z \\right)} + \\frac{\\partial}{\\partial x} u_{z}{\\left(x,y,z \\right)}\\right)^{2} + 18 \\mu^{2} \\left(\\frac{\\partial}{\\partial z} u_{y}{\\left(x,y,z \\right)} + \\frac{\\partial}{\\partial y} u_{z}{\\left(x,y,z \\right)}\\right)^{2} + \\left(\\lambda \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} - 2 \\lambda \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} + \\lambda \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)} - \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} + 2 \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} - \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}\\right)^{2} + \\left(\\lambda \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} + \\lambda \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} - 2 \\lambda \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)} - \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} - \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} + 2 \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}\\right)^{2} + \\left(2 \\lambda \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} - \\lambda \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} - \\lambda \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)} - 2 \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} + \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} + \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}\\right)^{2}}}{3 \\sqrt{18 \\mu^{2} \\left(\\frac{\\partial}{\\partial y} u_{x}{\\left(x,y,z \\right)} + \\frac{\\partial}{\\partial x} u_{y}{\\left(x,y,z \\right)}\\right)^{2} + 18 \\mu^{2} \\left(\\frac{\\partial}{\\partial z} u_{x}{\\left(x,y,z \\right)} + \\frac{\\partial}{\\partial x} u_{z}{\\left(x,y,z \\right)}\\right)^{2} + 18 \\mu^{2} \\left(\\frac{\\partial}{\\partial z} u_{y}{\\left(x,y,z \\right)} + \\frac{\\partial}{\\partial y} u_{z}{\\left(x,y,z \\right)}\\right)^{2} + \\left(\\lambda \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} - 2 \\lambda \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} + \\lambda \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)} - \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} + 2 \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} - \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}\\right)^{2} + \\left(\\lambda \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} + \\lambda \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} - 2 \\lambda \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)} - \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} - \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} + 2 \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}\\right)^{2} + \\left(2 \\lambda \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} - \\lambda \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} - \\lambda \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)} - 2 \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} + \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} + \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}\\right)^{2}}}\\\\\\frac{- \\left(3 \\sqrt{6} \\mu \\max\\left(0, \\frac{- \\sigma_{0} + \\sqrt{\\mu^{2} \\left(4 \\left(\\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)}\\right)^{2} - 4 \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} - 4 \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)} + 3 \\left(\\frac{\\partial}{\\partial y} u_{x}{\\left(x,y,z \\right)}\\right)^{2} + 6 \\frac{\\partial}{\\partial y} u_{x}{\\left(x,y,z \\right)} \\frac{\\partial}{\\partial x} u_{y}{\\left(x,y,z \\right)} + 3 \\left(\\frac{\\partial}{\\partial z} u_{x}{\\left(x,y,z \\right)}\\right)^{2} + 6 \\frac{\\partial}{\\partial z} u_{x}{\\left(x,y,z \\right)} \\frac{\\partial}{\\partial x} u_{z}{\\left(x,y,z \\right)} + 3 \\left(\\frac{\\partial}{\\partial x} u_{y}{\\left(x,y,z \\right)}\\right)^{2} + 4 \\left(\\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)}\\right)^{2} - 4 \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)} + 3 \\left(\\frac{\\partial}{\\partial z} u_{y}{\\left(x,y,z \\right)}\\right)^{2} + 6 \\frac{\\partial}{\\partial z} u_{y}{\\left(x,y,z \\right)} \\frac{\\partial}{\\partial y} u_{z}{\\left(x,y,z \\right)} + 3 \\left(\\frac{\\partial}{\\partial x} u_{z}{\\left(x,y,z \\right)}\\right)^{2} + 3 \\left(\\frac{\\partial}{\\partial y} u_{z}{\\left(x,y,z \\right)}\\right)^{2} + 4 \\left(\\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}\\right)^{2}\\right)}}{3 \\mu}\\right) - \\sqrt{18 \\mu^{2} \\left(\\frac{\\partial}{\\partial y} u_{x}{\\left(x,y,z \\right)} + \\frac{\\partial}{\\partial x} u_{y}{\\left(x,y,z \\right)}\\right)^{2} + 18 \\mu^{2} \\left(\\frac{\\partial}{\\partial z} u_{x}{\\left(x,y,z \\right)} + \\frac{\\partial}{\\partial x} u_{z}{\\left(x,y,z \\right)}\\right)^{2} + 18 \\mu^{2} \\left(\\frac{\\partial}{\\partial z} u_{y}{\\left(x,y,z \\right)} + \\frac{\\partial}{\\partial y} u_{z}{\\left(x,y,z \\right)}\\right)^{2} + \\left(\\lambda \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} - 2 \\lambda \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} + \\lambda \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)} - \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} + 2 \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} - \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}\\right)^{2} + \\left(\\lambda \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} + \\lambda \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} - 2 \\lambda \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)} - \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} - \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} + 2 \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}\\right)^{2} + \\left(2 \\lambda \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} - \\lambda \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} - \\lambda \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)} - 2 \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} + \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} + \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}\\right)^{2}}\\right) \\left(\\lambda \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} + \\lambda \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} - 2 \\lambda \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)} - \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} - \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} + 2 \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}\\right) + \\left(2 \\lambda \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} + 2 \\lambda \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} + 2 \\lambda \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)} + \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} + \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} + \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}\\right) \\sqrt{18 \\mu^{2} \\left(\\frac{\\partial}{\\partial y} u_{x}{\\left(x,y,z \\right)} + \\frac{\\partial}{\\partial x} u_{y}{\\left(x,y,z \\right)}\\right)^{2} + 18 \\mu^{2} \\left(\\frac{\\partial}{\\partial z} u_{x}{\\left(x,y,z \\right)} + \\frac{\\partial}{\\partial x} u_{z}{\\left(x,y,z \\right)}\\right)^{2} + 18 \\mu^{2} \\left(\\frac{\\partial}{\\partial z} u_{y}{\\left(x,y,z \\right)} + \\frac{\\partial}{\\partial y} u_{z}{\\left(x,y,z \\right)}\\right)^{2} + \\left(\\lambda \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} - 2 \\lambda \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} + \\lambda \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)} - \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} + 2 \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} - \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}\\right)^{2} + \\left(\\lambda \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} + \\lambda \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} - 2 \\lambda \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)} - \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} - \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} + 2 \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}\\right)^{2} + \\left(2 \\lambda \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} - \\lambda \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} - \\lambda \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)} - 2 \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} + \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} + \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}\\right)^{2}}}{3 \\sqrt{18 \\mu^{2} \\left(\\frac{\\partial}{\\partial y} u_{x}{\\left(x,y,z \\right)} + \\frac{\\partial}{\\partial x} u_{y}{\\left(x,y,z \\right)}\\right)^{2} + 18 \\mu^{2} \\left(\\frac{\\partial}{\\partial z} u_{x}{\\left(x,y,z \\right)} + \\frac{\\partial}{\\partial x} u_{z}{\\left(x,y,z \\right)}\\right)^{2} + 18 \\mu^{2} \\left(\\frac{\\partial}{\\partial z} u_{y}{\\left(x,y,z \\right)} + \\frac{\\partial}{\\partial y} u_{z}{\\left(x,y,z \\right)}\\right)^{2} + \\left(\\lambda \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} - 2 \\lambda \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} + \\lambda \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)} - \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} + 2 \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} - \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}\\right)^{2} + \\left(\\lambda \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} + \\lambda \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} - 2 \\lambda \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)} - \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} - \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} + 2 \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}\\right)^{2} + \\left(2 \\lambda \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} - \\lambda \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} - \\lambda \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)} - 2 \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} + \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} + \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}\\right)^{2}}}\\\\- \\frac{\\sqrt{2} \\mu \\left(3 \\sqrt{6} \\mu \\max\\left(0, - \\frac{\\sigma_{0} - \\sqrt{\\mu^{2} \\left(4 \\left(\\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)}\\right)^{2} - 4 \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} - 4 \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)} + 3 \\left(\\frac{\\partial}{\\partial y} u_{x}{\\left(x,y,z \\right)}\\right)^{2} + 6 \\frac{\\partial}{\\partial y} u_{x}{\\left(x,y,z \\right)} \\frac{\\partial}{\\partial x} u_{y}{\\left(x,y,z \\right)} + 3 \\left(\\frac{\\partial}{\\partial z} u_{x}{\\left(x,y,z \\right)}\\right)^{2} + 6 \\frac{\\partial}{\\partial z} u_{x}{\\left(x,y,z \\right)} \\frac{\\partial}{\\partial x} u_{z}{\\left(x,y,z \\right)} + 3 \\left(\\frac{\\partial}{\\partial x} u_{y}{\\left(x,y,z \\right)}\\right)^{2} + 4 \\left(\\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)}\\right)^{2} - 4 \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)} + 3 \\left(\\frac{\\partial}{\\partial z} u_{y}{\\left(x,y,z \\right)}\\right)^{2} + 6 \\frac{\\partial}{\\partial z} u_{y}{\\left(x,y,z \\right)} \\frac{\\partial}{\\partial y} u_{z}{\\left(x,y,z \\right)} + 3 \\left(\\frac{\\partial}{\\partial x} u_{z}{\\left(x,y,z \\right)}\\right)^{2} + 3 \\left(\\frac{\\partial}{\\partial y} u_{z}{\\left(x,y,z \\right)}\\right)^{2} + 4 \\left(\\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}\\right)^{2}\\right)}}{3 \\mu}\\right) - \\sqrt{18 \\mu^{2} \\left(\\frac{\\partial}{\\partial y} u_{x}{\\left(x,y,z \\right)} + \\frac{\\partial}{\\partial x} u_{y}{\\left(x,y,z \\right)}\\right)^{2} + 18 \\mu^{2} \\left(\\frac{\\partial}{\\partial z} u_{x}{\\left(x,y,z \\right)} + \\frac{\\partial}{\\partial x} u_{z}{\\left(x,y,z \\right)}\\right)^{2} + 18 \\mu^{2} \\left(\\frac{\\partial}{\\partial z} u_{y}{\\left(x,y,z \\right)} + \\frac{\\partial}{\\partial y} u_{z}{\\left(x,y,z \\right)}\\right)^{2} + \\left(\\lambda \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} - 2 \\lambda \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} + \\lambda \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)} - \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} + 2 \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} - \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}\\right)^{2} + \\left(\\lambda \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} + \\lambda \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} - 2 \\lambda \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)} - \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} - \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} + 2 \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}\\right)^{2} + \\left(2 \\lambda \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} - \\lambda \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} - \\lambda \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)} - 2 \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} + \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} + \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}\\right)^{2}}\\right) \\left(\\frac{\\partial}{\\partial y} u_{x}{\\left(x,y,z \\right)} + \\frac{\\partial}{\\partial x} u_{y}{\\left(x,y,z \\right)}\\right)}{\\sqrt{18 \\mu^{2} \\left(\\frac{\\partial}{\\partial y} u_{x}{\\left(x,y,z \\right)} + \\frac{\\partial}{\\partial x} u_{y}{\\left(x,y,z \\right)}\\right)^{2} + 18 \\mu^{2} \\left(\\frac{\\partial}{\\partial z} u_{x}{\\left(x,y,z \\right)} + \\frac{\\partial}{\\partial x} u_{z}{\\left(x,y,z \\right)}\\right)^{2} + 18 \\mu^{2} \\left(\\frac{\\partial}{\\partial z} u_{y}{\\left(x,y,z \\right)} + \\frac{\\partial}{\\partial y} u_{z}{\\left(x,y,z \\right)}\\right)^{2} + \\left(\\lambda \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} - 2 \\lambda \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} + \\lambda \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)} - \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} + 2 \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} - \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}\\right)^{2} + \\left(\\lambda \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} + \\lambda \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} - 2 \\lambda \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)} - \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} - \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} + 2 \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}\\right)^{2} + \\left(2 \\lambda \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} - \\lambda \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} - \\lambda \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)} - 2 \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} + \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} + \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}\\right)^{2}}}\\\\- \\frac{\\sqrt{2} \\mu \\left(3 \\sqrt{6} \\mu \\max\\left(0, - \\frac{\\sigma_{0} - \\sqrt{\\mu^{2} \\left(4 \\left(\\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)}\\right)^{2} - 4 \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} - 4 \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)} + 3 \\left(\\frac{\\partial}{\\partial y} u_{x}{\\left(x,y,z \\right)}\\right)^{2} + 6 \\frac{\\partial}{\\partial y} u_{x}{\\left(x,y,z \\right)} \\frac{\\partial}{\\partial x} u_{y}{\\left(x,y,z \\right)} + 3 \\left(\\frac{\\partial}{\\partial z} u_{x}{\\left(x,y,z \\right)}\\right)^{2} + 6 \\frac{\\partial}{\\partial z} u_{x}{\\left(x,y,z \\right)} \\frac{\\partial}{\\partial x} u_{z}{\\left(x,y,z \\right)} + 3 \\left(\\frac{\\partial}{\\partial x} u_{y}{\\left(x,y,z \\right)}\\right)^{2} + 4 \\left(\\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)}\\right)^{2} - 4 \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)} + 3 \\left(\\frac{\\partial}{\\partial z} u_{y}{\\left(x,y,z \\right)}\\right)^{2} + 6 \\frac{\\partial}{\\partial z} u_{y}{\\left(x,y,z \\right)} \\frac{\\partial}{\\partial y} u_{z}{\\left(x,y,z \\right)} + 3 \\left(\\frac{\\partial}{\\partial x} u_{z}{\\left(x,y,z \\right)}\\right)^{2} + 3 \\left(\\frac{\\partial}{\\partial y} u_{z}{\\left(x,y,z \\right)}\\right)^{2} + 4 \\left(\\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}\\right)^{2}\\right)}}{3 \\mu}\\right) - \\sqrt{18 \\mu^{2} \\left(\\frac{\\partial}{\\partial y} u_{x}{\\left(x,y,z \\right)} + \\frac{\\partial}{\\partial x} u_{y}{\\left(x,y,z \\right)}\\right)^{2} + 18 \\mu^{2} \\left(\\frac{\\partial}{\\partial z} u_{x}{\\left(x,y,z \\right)} + \\frac{\\partial}{\\partial x} u_{z}{\\left(x,y,z \\right)}\\right)^{2} + 18 \\mu^{2} \\left(\\frac{\\partial}{\\partial z} u_{y}{\\left(x,y,z \\right)} + \\frac{\\partial}{\\partial y} u_{z}{\\left(x,y,z \\right)}\\right)^{2} + \\left(\\lambda \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} - 2 \\lambda \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} + \\lambda \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)} - \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} + 2 \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} - \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}\\right)^{2} + \\left(\\lambda \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} + \\lambda \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} - 2 \\lambda \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)} - \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} - \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} + 2 \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}\\right)^{2} + \\left(2 \\lambda \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} - \\lambda \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} - \\lambda \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)} - 2 \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} + \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} + \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}\\right)^{2}}\\right) \\left(\\frac{\\partial}{\\partial z} u_{x}{\\left(x,y,z \\right)} + \\frac{\\partial}{\\partial x} u_{z}{\\left(x,y,z \\right)}\\right)}{\\sqrt{18 \\mu^{2} \\left(\\frac{\\partial}{\\partial y} u_{x}{\\left(x,y,z \\right)} + \\frac{\\partial}{\\partial x} u_{y}{\\left(x,y,z \\right)}\\right)^{2} + 18 \\mu^{2} \\left(\\frac{\\partial}{\\partial z} u_{x}{\\left(x,y,z \\right)} + \\frac{\\partial}{\\partial x} u_{z}{\\left(x,y,z \\right)}\\right)^{2} + 18 \\mu^{2} \\left(\\frac{\\partial}{\\partial z} u_{y}{\\left(x,y,z \\right)} + \\frac{\\partial}{\\partial y} u_{z}{\\left(x,y,z \\right)}\\right)^{2} + \\left(\\lambda \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} - 2 \\lambda \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} + \\lambda \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)} - \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} + 2 \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} - \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}\\right)^{2} + \\left(\\lambda \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} + \\lambda \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} - 2 \\lambda \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)} - \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} - \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} + 2 \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}\\right)^{2} + \\left(2 \\lambda \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} - \\lambda \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} - \\lambda \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)} - 2 \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} + \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} + \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}\\right)^{2}}}\\\\- \\frac{\\sqrt{2} \\mu \\left(3 \\sqrt{6} \\mu \\max\\left(0, - \\frac{\\sigma_{0} - \\sqrt{\\mu^{2} \\left(4 \\left(\\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)}\\right)^{2} - 4 \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} - 4 \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)} + 3 \\left(\\frac{\\partial}{\\partial y} u_{x}{\\left(x,y,z \\right)}\\right)^{2} + 6 \\frac{\\partial}{\\partial y} u_{x}{\\left(x,y,z \\right)} \\frac{\\partial}{\\partial x} u_{y}{\\left(x,y,z \\right)} + 3 \\left(\\frac{\\partial}{\\partial z} u_{x}{\\left(x,y,z \\right)}\\right)^{2} + 6 \\frac{\\partial}{\\partial z} u_{x}{\\left(x,y,z \\right)} \\frac{\\partial}{\\partial x} u_{z}{\\left(x,y,z \\right)} + 3 \\left(\\frac{\\partial}{\\partial x} u_{y}{\\left(x,y,z \\right)}\\right)^{2} + 4 \\left(\\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)}\\right)^{2} - 4 \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)} + 3 \\left(\\frac{\\partial}{\\partial z} u_{y}{\\left(x,y,z \\right)}\\right)^{2} + 6 \\frac{\\partial}{\\partial z} u_{y}{\\left(x,y,z \\right)} \\frac{\\partial}{\\partial y} u_{z}{\\left(x,y,z \\right)} + 3 \\left(\\frac{\\partial}{\\partial x} u_{z}{\\left(x,y,z \\right)}\\right)^{2} + 3 \\left(\\frac{\\partial}{\\partial y} u_{z}{\\left(x,y,z \\right)}\\right)^{2} + 4 \\left(\\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}\\right)^{2}\\right)}}{3 \\mu}\\right) - \\sqrt{18 \\mu^{2} \\left(\\frac{\\partial}{\\partial y} u_{x}{\\left(x,y,z \\right)} + \\frac{\\partial}{\\partial x} u_{y}{\\left(x,y,z \\right)}\\right)^{2} + 18 \\mu^{2} \\left(\\frac{\\partial}{\\partial z} u_{x}{\\left(x,y,z \\right)} + \\frac{\\partial}{\\partial x} u_{z}{\\left(x,y,z \\right)}\\right)^{2} + 18 \\mu^{2} \\left(\\frac{\\partial}{\\partial z} u_{y}{\\left(x,y,z \\right)} + \\frac{\\partial}{\\partial y} u_{z}{\\left(x,y,z \\right)}\\right)^{2} + \\left(\\lambda \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} - 2 \\lambda \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} + \\lambda \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)} - \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} + 2 \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} - \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}\\right)^{2} + \\left(\\lambda \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} + \\lambda \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} - 2 \\lambda \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)} - \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} - \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} + 2 \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}\\right)^{2} + \\left(2 \\lambda \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} - \\lambda \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} - \\lambda \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)} - 2 \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} + \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} + \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}\\right)^{2}}\\right) \\left(\\frac{\\partial}{\\partial z} u_{y}{\\left(x,y,z \\right)} + \\frac{\\partial}{\\partial y} u_{z}{\\left(x,y,z \\right)}\\right)}{\\sqrt{18 \\mu^{2} \\left(\\frac{\\partial}{\\partial y} u_{x}{\\left(x,y,z \\right)} + \\frac{\\partial}{\\partial x} u_{y}{\\left(x,y,z \\right)}\\right)^{2} + 18 \\mu^{2} \\left(\\frac{\\partial}{\\partial z} u_{x}{\\left(x,y,z \\right)} + \\frac{\\partial}{\\partial x} u_{z}{\\left(x,y,z \\right)}\\right)^{2} + 18 \\mu^{2} \\left(\\frac{\\partial}{\\partial z} u_{y}{\\left(x,y,z \\right)} + \\frac{\\partial}{\\partial y} u_{z}{\\left(x,y,z \\right)}\\right)^{2} + \\left(\\lambda \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} - 2 \\lambda \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} + \\lambda \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)} - \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} + 2 \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} - \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}\\right)^{2} + \\left(\\lambda \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} + \\lambda \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} - 2 \\lambda \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)} - \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} - \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} + 2 \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}\\right)^{2} + \\left(2 \\lambda \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} - \\lambda \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} - \\lambda \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)} - 2 \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial x} u_{x}{\\left(x,y,z \\right)} + \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial y} u_{y}{\\left(x,y,z \\right)} + \\left(\\lambda + 2 \\mu\\right) \\frac{\\partial}{\\partial z} u_{z}{\\left(x,y,z \\right)}\\right)^{2}}}\\end{matrix}\\right]$" - ], - "text/plain": [ - "Matrix([\n", - "[ ((3*sqrt(6)*\\mu*Max(0, (-\\sigma_0 + sqrt(\\mu**2*(4*Derivative(u_x(x, y, z), x)**2 - 4*Derivative(u_x(x, y, z), x)*Derivative(u_y(x, y, z), y) - 4*Derivative(u_x(x, y, z), x)*Derivative(u_z(x, y, z), z) + 3*Derivative(u_x(x, y, z), y)**2 + 6*Derivative(u_x(x, y, z), y)*Derivative(u_y(x, y, z), x) + 3*Derivative(u_x(x, y, z), z)**2 + 6*Derivative(u_x(x, y, z), z)*Derivative(u_z(x, y, z), x) + 3*Derivative(u_y(x, y, z), x)**2 + 4*Derivative(u_y(x, y, z), y)**2 - 4*Derivative(u_y(x, y, z), y)*Derivative(u_z(x, y, z), z) + 3*Derivative(u_y(x, y, z), z)**2 + 6*Derivative(u_y(x, y, z), z)*Derivative(u_z(x, y, z), y) + 3*Derivative(u_z(x, y, z), x)**2 + 3*Derivative(u_z(x, y, z), y)**2 + 4*Derivative(u_z(x, y, z), z)**2)))/(3*\\mu)) - sqrt(18*\\mu**2*(Derivative(u_x(x, y, z), y) + Derivative(u_y(x, y, z), x))**2 + 18*\\mu**2*(Derivative(u_x(x, y, z), z) + Derivative(u_z(x, y, z), x))**2 + 18*\\mu**2*(Derivative(u_y(x, y, z), z) + Derivative(u_z(x, y, z), y))**2 + (\\lambda*Derivative(u_x(x, y, z), x) - 2*\\lambda*Derivative(u_y(x, y, z), y) + \\lambda*Derivative(u_z(x, y, z), z) - (\\lambda + 2*\\mu)*Derivative(u_x(x, y, z), x) + 2*(\\lambda + 2*\\mu)*Derivative(u_y(x, y, z), y) - (\\lambda + 2*\\mu)*Derivative(u_z(x, y, z), z))**2 + (\\lambda*Derivative(u_x(x, y, z), x) + \\lambda*Derivative(u_y(x, y, z), y) - 2*\\lambda*Derivative(u_z(x, y, z), z) - (\\lambda + 2*\\mu)*Derivative(u_x(x, y, z), x) - (\\lambda + 2*\\mu)*Derivative(u_y(x, y, z), y) + 2*(\\lambda + 2*\\mu)*Derivative(u_z(x, y, z), z))**2 + (2*\\lambda*Derivative(u_x(x, y, z), x) - \\lambda*Derivative(u_y(x, y, z), y) - \\lambda*Derivative(u_z(x, y, z), z) - 2*(\\lambda + 2*\\mu)*Derivative(u_x(x, y, z), x) + (\\lambda + 2*\\mu)*Derivative(u_y(x, y, z), y) + (\\lambda + 2*\\mu)*Derivative(u_z(x, y, z), z))**2))*(2*\\lambda*Derivative(u_x(x, y, z), x) - \\lambda*Derivative(u_y(x, y, z), y) - \\lambda*Derivative(u_z(x, y, z), z) - 2*(\\lambda + 2*\\mu)*Derivative(u_x(x, y, z), x) + (\\lambda + 2*\\mu)*Derivative(u_y(x, y, z), y) + (\\lambda + 2*\\mu)*Derivative(u_z(x, y, z), z)) + (2*\\lambda*Derivative(u_x(x, y, z), x) + 2*\\lambda*Derivative(u_y(x, y, z), y) + 2*\\lambda*Derivative(u_z(x, y, z), z) + (\\lambda + 2*\\mu)*Derivative(u_x(x, y, z), x) + (\\lambda + 2*\\mu)*Derivative(u_y(x, y, z), y) + (\\lambda + 2*\\mu)*Derivative(u_z(x, y, z), z))*sqrt(18*\\mu**2*(Derivative(u_x(x, y, z), y) + Derivative(u_y(x, y, z), x))**2 + 18*\\mu**2*(Derivative(u_x(x, y, z), z) + Derivative(u_z(x, y, z), x))**2 + 18*\\mu**2*(Derivative(u_y(x, y, z), z) + Derivative(u_z(x, y, z), y))**2 + (\\lambda*Derivative(u_x(x, y, z), x) - 2*\\lambda*Derivative(u_y(x, y, z), y) + \\lambda*Derivative(u_z(x, y, z), z) - (\\lambda + 2*\\mu)*Derivative(u_x(x, y, z), x) + 2*(\\lambda + 2*\\mu)*Derivative(u_y(x, y, z), y) - (\\lambda + 2*\\mu)*Derivative(u_z(x, y, z), z))**2 + (\\lambda*Derivative(u_x(x, y, z), x) + \\lambda*Derivative(u_y(x, y, z), y) - 2*\\lambda*Derivative(u_z(x, y, z), z) - (\\lambda + 2*\\mu)*Derivative(u_x(x, y, z), x) - (\\lambda + 2*\\mu)*Derivative(u_y(x, y, z), y) + 2*(\\lambda + 2*\\mu)*Derivative(u_z(x, y, z), z))**2 + (2*\\lambda*Derivative(u_x(x, y, z), x) - \\lambda*Derivative(u_y(x, y, z), y) - \\lambda*Derivative(u_z(x, y, z), z) - 2*(\\lambda + 2*\\mu)*Derivative(u_x(x, y, z), x) + (\\lambda + 2*\\mu)*Derivative(u_y(x, y, z), y) + (\\lambda + 2*\\mu)*Derivative(u_z(x, y, z), z))**2))/(3*sqrt(18*\\mu**2*(Derivative(u_x(x, y, z), y) + Derivative(u_y(x, y, z), x))**2 + 18*\\mu**2*(Derivative(u_x(x, y, z), z) + Derivative(u_z(x, y, z), x))**2 + 18*\\mu**2*(Derivative(u_y(x, y, z), z) + Derivative(u_z(x, y, z), y))**2 + (\\lambda*Derivative(u_x(x, y, z), x) - 2*\\lambda*Derivative(u_y(x, y, z), y) + \\lambda*Derivative(u_z(x, y, z), z) - (\\lambda + 2*\\mu)*Derivative(u_x(x, y, z), x) + 2*(\\lambda + 2*\\mu)*Derivative(u_y(x, y, z), y) - (\\lambda + 2*\\mu)*Derivative(u_z(x, y, z), z))**2 + (\\lambda*Derivative(u_x(x, y, z), x) + \\lambda*Derivative(u_y(x, y, z), y) - 2*\\lambda*Derivative(u_z(x, y, z), z) - (\\lambda + 2*\\mu)*Derivative(u_x(x, y, z), x) - (\\lambda + 2*\\mu)*Derivative(u_y(x, y, z), y) + 2*(\\lambda + 2*\\mu)*Derivative(u_z(x, y, z), z))**2 + (2*\\lambda*Derivative(u_x(x, y, z), x) - \\lambda*Derivative(u_y(x, y, z), y) - \\lambda*Derivative(u_z(x, y, z), z) - 2*(\\lambda + 2*\\mu)*Derivative(u_x(x, y, z), x) + (\\lambda + 2*\\mu)*Derivative(u_y(x, y, z), y) + (\\lambda + 2*\\mu)*Derivative(u_z(x, y, z), z))**2))],\n", - "[(-(3*sqrt(6)*\\mu*Max(0, (-\\sigma_0 + sqrt(\\mu**2*(4*Derivative(u_x(x, y, z), x)**2 - 4*Derivative(u_x(x, y, z), x)*Derivative(u_y(x, y, z), y) - 4*Derivative(u_x(x, y, z), x)*Derivative(u_z(x, y, z), z) + 3*Derivative(u_x(x, y, z), y)**2 + 6*Derivative(u_x(x, y, z), y)*Derivative(u_y(x, y, z), x) + 3*Derivative(u_x(x, y, z), z)**2 + 6*Derivative(u_x(x, y, z), z)*Derivative(u_z(x, y, z), x) + 3*Derivative(u_y(x, y, z), x)**2 + 4*Derivative(u_y(x, y, z), y)**2 - 4*Derivative(u_y(x, y, z), y)*Derivative(u_z(x, y, z), z) + 3*Derivative(u_y(x, y, z), z)**2 + 6*Derivative(u_y(x, y, z), z)*Derivative(u_z(x, y, z), y) + 3*Derivative(u_z(x, y, z), x)**2 + 3*Derivative(u_z(x, y, z), y)**2 + 4*Derivative(u_z(x, y, z), z)**2)))/(3*\\mu)) - sqrt(18*\\mu**2*(Derivative(u_x(x, y, z), y) + Derivative(u_y(x, y, z), x))**2 + 18*\\mu**2*(Derivative(u_x(x, y, z), z) + Derivative(u_z(x, y, z), x))**2 + 18*\\mu**2*(Derivative(u_y(x, y, z), z) + Derivative(u_z(x, y, z), y))**2 + (\\lambda*Derivative(u_x(x, y, z), x) - 2*\\lambda*Derivative(u_y(x, y, z), y) + \\lambda*Derivative(u_z(x, y, z), z) - (\\lambda + 2*\\mu)*Derivative(u_x(x, y, z), x) + 2*(\\lambda + 2*\\mu)*Derivative(u_y(x, y, z), y) - (\\lambda + 2*\\mu)*Derivative(u_z(x, y, z), z))**2 + (\\lambda*Derivative(u_x(x, y, z), x) + \\lambda*Derivative(u_y(x, y, z), y) - 2*\\lambda*Derivative(u_z(x, y, z), z) - (\\lambda + 2*\\mu)*Derivative(u_x(x, y, z), x) - (\\lambda + 2*\\mu)*Derivative(u_y(x, y, z), y) + 2*(\\lambda + 2*\\mu)*Derivative(u_z(x, y, z), z))**2 + (2*\\lambda*Derivative(u_x(x, y, z), x) - \\lambda*Derivative(u_y(x, y, z), y) - \\lambda*Derivative(u_z(x, y, z), z) - 2*(\\lambda + 2*\\mu)*Derivative(u_x(x, y, z), x) + (\\lambda + 2*\\mu)*Derivative(u_y(x, y, z), y) + (\\lambda + 2*\\mu)*Derivative(u_z(x, y, z), z))**2))*(\\lambda*Derivative(u_x(x, y, z), x) - 2*\\lambda*Derivative(u_y(x, y, z), y) + \\lambda*Derivative(u_z(x, y, z), z) - (\\lambda + 2*\\mu)*Derivative(u_x(x, y, z), x) + 2*(\\lambda + 2*\\mu)*Derivative(u_y(x, y, z), y) - (\\lambda + 2*\\mu)*Derivative(u_z(x, y, z), z)) + (2*\\lambda*Derivative(u_x(x, y, z), x) + 2*\\lambda*Derivative(u_y(x, y, z), y) + 2*\\lambda*Derivative(u_z(x, y, z), z) + (\\lambda + 2*\\mu)*Derivative(u_x(x, y, z), x) + (\\lambda + 2*\\mu)*Derivative(u_y(x, y, z), y) + (\\lambda + 2*\\mu)*Derivative(u_z(x, y, z), z))*sqrt(18*\\mu**2*(Derivative(u_x(x, y, z), y) + Derivative(u_y(x, y, z), x))**2 + 18*\\mu**2*(Derivative(u_x(x, y, z), z) + Derivative(u_z(x, y, z), x))**2 + 18*\\mu**2*(Derivative(u_y(x, y, z), z) + Derivative(u_z(x, y, z), y))**2 + (\\lambda*Derivative(u_x(x, y, z), x) - 2*\\lambda*Derivative(u_y(x, y, z), y) + \\lambda*Derivative(u_z(x, y, z), z) - (\\lambda + 2*\\mu)*Derivative(u_x(x, y, z), x) + 2*(\\lambda + 2*\\mu)*Derivative(u_y(x, y, z), y) - (\\lambda + 2*\\mu)*Derivative(u_z(x, y, z), z))**2 + (\\lambda*Derivative(u_x(x, y, z), x) + \\lambda*Derivative(u_y(x, y, z), y) - 2*\\lambda*Derivative(u_z(x, y, z), z) - (\\lambda + 2*\\mu)*Derivative(u_x(x, y, z), x) - (\\lambda + 2*\\mu)*Derivative(u_y(x, y, z), y) + 2*(\\lambda + 2*\\mu)*Derivative(u_z(x, y, z), z))**2 + (2*\\lambda*Derivative(u_x(x, y, z), x) - \\lambda*Derivative(u_y(x, y, z), y) - \\lambda*Derivative(u_z(x, y, z), z) - 2*(\\lambda + 2*\\mu)*Derivative(u_x(x, y, z), x) + (\\lambda + 2*\\mu)*Derivative(u_y(x, y, z), y) + (\\lambda + 2*\\mu)*Derivative(u_z(x, y, z), z))**2))/(3*sqrt(18*\\mu**2*(Derivative(u_x(x, y, z), y) + Derivative(u_y(x, y, z), x))**2 + 18*\\mu**2*(Derivative(u_x(x, y, z), z) + Derivative(u_z(x, y, z), x))**2 + 18*\\mu**2*(Derivative(u_y(x, y, z), z) + Derivative(u_z(x, y, z), y))**2 + (\\lambda*Derivative(u_x(x, y, z), x) - 2*\\lambda*Derivative(u_y(x, y, z), y) + \\lambda*Derivative(u_z(x, y, z), z) - (\\lambda + 2*\\mu)*Derivative(u_x(x, y, z), x) + 2*(\\lambda + 2*\\mu)*Derivative(u_y(x, y, z), y) - (\\lambda + 2*\\mu)*Derivative(u_z(x, y, z), z))**2 + (\\lambda*Derivative(u_x(x, y, z), x) + \\lambda*Derivative(u_y(x, y, z), y) - 2*\\lambda*Derivative(u_z(x, y, z), z) - (\\lambda + 2*\\mu)*Derivative(u_x(x, y, z), x) - (\\lambda + 2*\\mu)*Derivative(u_y(x, y, z), y) + 2*(\\lambda + 2*\\mu)*Derivative(u_z(x, y, z), z))**2 + (2*\\lambda*Derivative(u_x(x, y, z), x) - \\lambda*Derivative(u_y(x, y, z), y) - \\lambda*Derivative(u_z(x, y, z), z) - 2*(\\lambda + 2*\\mu)*Derivative(u_x(x, y, z), x) + (\\lambda + 2*\\mu)*Derivative(u_y(x, y, z), y) + (\\lambda + 2*\\mu)*Derivative(u_z(x, y, z), z))**2))],\n", - "[(-(3*sqrt(6)*\\mu*Max(0, (-\\sigma_0 + sqrt(\\mu**2*(4*Derivative(u_x(x, y, z), x)**2 - 4*Derivative(u_x(x, y, z), x)*Derivative(u_y(x, y, z), y) - 4*Derivative(u_x(x, y, z), x)*Derivative(u_z(x, y, z), z) + 3*Derivative(u_x(x, y, z), y)**2 + 6*Derivative(u_x(x, y, z), y)*Derivative(u_y(x, y, z), x) + 3*Derivative(u_x(x, y, z), z)**2 + 6*Derivative(u_x(x, y, z), z)*Derivative(u_z(x, y, z), x) + 3*Derivative(u_y(x, y, z), x)**2 + 4*Derivative(u_y(x, y, z), y)**2 - 4*Derivative(u_y(x, y, z), y)*Derivative(u_z(x, y, z), z) + 3*Derivative(u_y(x, y, z), z)**2 + 6*Derivative(u_y(x, y, z), z)*Derivative(u_z(x, y, z), y) + 3*Derivative(u_z(x, y, z), x)**2 + 3*Derivative(u_z(x, y, z), y)**2 + 4*Derivative(u_z(x, y, z), z)**2)))/(3*\\mu)) - sqrt(18*\\mu**2*(Derivative(u_x(x, y, z), y) + Derivative(u_y(x, y, z), x))**2 + 18*\\mu**2*(Derivative(u_x(x, y, z), z) + Derivative(u_z(x, y, z), x))**2 + 18*\\mu**2*(Derivative(u_y(x, y, z), z) + Derivative(u_z(x, y, z), y))**2 + (\\lambda*Derivative(u_x(x, y, z), x) - 2*\\lambda*Derivative(u_y(x, y, z), y) + \\lambda*Derivative(u_z(x, y, z), z) - (\\lambda + 2*\\mu)*Derivative(u_x(x, y, z), x) + 2*(\\lambda + 2*\\mu)*Derivative(u_y(x, y, z), y) - (\\lambda + 2*\\mu)*Derivative(u_z(x, y, z), z))**2 + (\\lambda*Derivative(u_x(x, y, z), x) + \\lambda*Derivative(u_y(x, y, z), y) - 2*\\lambda*Derivative(u_z(x, y, z), z) - (\\lambda + 2*\\mu)*Derivative(u_x(x, y, z), x) - (\\lambda + 2*\\mu)*Derivative(u_y(x, y, z), y) + 2*(\\lambda + 2*\\mu)*Derivative(u_z(x, y, z), z))**2 + (2*\\lambda*Derivative(u_x(x, y, z), x) - \\lambda*Derivative(u_y(x, y, z), y) - \\lambda*Derivative(u_z(x, y, z), z) - 2*(\\lambda + 2*\\mu)*Derivative(u_x(x, y, z), x) + (\\lambda + 2*\\mu)*Derivative(u_y(x, y, z), y) + (\\lambda + 2*\\mu)*Derivative(u_z(x, y, z), z))**2))*(\\lambda*Derivative(u_x(x, y, z), x) + \\lambda*Derivative(u_y(x, y, z), y) - 2*\\lambda*Derivative(u_z(x, y, z), z) - (\\lambda + 2*\\mu)*Derivative(u_x(x, y, z), x) - (\\lambda + 2*\\mu)*Derivative(u_y(x, y, z), y) + 2*(\\lambda + 2*\\mu)*Derivative(u_z(x, y, z), z)) + (2*\\lambda*Derivative(u_x(x, y, z), x) + 2*\\lambda*Derivative(u_y(x, y, z), y) + 2*\\lambda*Derivative(u_z(x, y, z), z) + (\\lambda + 2*\\mu)*Derivative(u_x(x, y, z), x) + (\\lambda + 2*\\mu)*Derivative(u_y(x, y, z), y) + (\\lambda + 2*\\mu)*Derivative(u_z(x, y, z), z))*sqrt(18*\\mu**2*(Derivative(u_x(x, y, z), y) + Derivative(u_y(x, y, z), x))**2 + 18*\\mu**2*(Derivative(u_x(x, y, z), z) + Derivative(u_z(x, y, z), x))**2 + 18*\\mu**2*(Derivative(u_y(x, y, z), z) + Derivative(u_z(x, y, z), y))**2 + (\\lambda*Derivative(u_x(x, y, z), x) - 2*\\lambda*Derivative(u_y(x, y, z), y) + \\lambda*Derivative(u_z(x, y, z), z) - (\\lambda + 2*\\mu)*Derivative(u_x(x, y, z), x) + 2*(\\lambda + 2*\\mu)*Derivative(u_y(x, y, z), y) - (\\lambda + 2*\\mu)*Derivative(u_z(x, y, z), z))**2 + (\\lambda*Derivative(u_x(x, y, z), x) + \\lambda*Derivative(u_y(x, y, z), y) - 2*\\lambda*Derivative(u_z(x, y, z), z) - (\\lambda + 2*\\mu)*Derivative(u_x(x, y, z), x) - (\\lambda + 2*\\mu)*Derivative(u_y(x, y, z), y) + 2*(\\lambda + 2*\\mu)*Derivative(u_z(x, y, z), z))**2 + (2*\\lambda*Derivative(u_x(x, y, z), x) - \\lambda*Derivative(u_y(x, y, z), y) - \\lambda*Derivative(u_z(x, y, z), z) - 2*(\\lambda + 2*\\mu)*Derivative(u_x(x, y, z), x) + (\\lambda + 2*\\mu)*Derivative(u_y(x, y, z), y) + (\\lambda + 2*\\mu)*Derivative(u_z(x, y, z), z))**2))/(3*sqrt(18*\\mu**2*(Derivative(u_x(x, y, z), y) + Derivative(u_y(x, y, z), x))**2 + 18*\\mu**2*(Derivative(u_x(x, y, z), z) + Derivative(u_z(x, y, z), x))**2 + 18*\\mu**2*(Derivative(u_y(x, y, z), z) + Derivative(u_z(x, y, z), y))**2 + (\\lambda*Derivative(u_x(x, y, z), x) - 2*\\lambda*Derivative(u_y(x, y, z), y) + \\lambda*Derivative(u_z(x, y, z), z) - (\\lambda + 2*\\mu)*Derivative(u_x(x, y, z), x) + 2*(\\lambda + 2*\\mu)*Derivative(u_y(x, y, z), y) - (\\lambda + 2*\\mu)*Derivative(u_z(x, y, z), z))**2 + (\\lambda*Derivative(u_x(x, y, z), x) + \\lambda*Derivative(u_y(x, y, z), y) - 2*\\lambda*Derivative(u_z(x, y, z), z) - (\\lambda + 2*\\mu)*Derivative(u_x(x, y, z), x) - (\\lambda + 2*\\mu)*Derivative(u_y(x, y, z), y) + 2*(\\lambda + 2*\\mu)*Derivative(u_z(x, y, z), z))**2 + (2*\\lambda*Derivative(u_x(x, y, z), x) - \\lambda*Derivative(u_y(x, y, z), y) - \\lambda*Derivative(u_z(x, y, z), z) - 2*(\\lambda + 2*\\mu)*Derivative(u_x(x, y, z), x) + (\\lambda + 2*\\mu)*Derivative(u_y(x, y, z), y) + (\\lambda + 2*\\mu)*Derivative(u_z(x, y, z), z))**2))],\n", - "[ -sqrt(2)*\\mu*(3*sqrt(6)*\\mu*Max(0, -(\\sigma_0 - sqrt(\\mu**2*(4*Derivative(u_x(x, y, z), x)**2 - 4*Derivative(u_x(x, y, z), x)*Derivative(u_y(x, y, z), y) - 4*Derivative(u_x(x, y, z), x)*Derivative(u_z(x, y, z), z) + 3*Derivative(u_x(x, y, z), y)**2 + 6*Derivative(u_x(x, y, z), y)*Derivative(u_y(x, y, z), x) + 3*Derivative(u_x(x, y, z), z)**2 + 6*Derivative(u_x(x, y, z), z)*Derivative(u_z(x, y, z), x) + 3*Derivative(u_y(x, y, z), x)**2 + 4*Derivative(u_y(x, y, z), y)**2 - 4*Derivative(u_y(x, y, z), y)*Derivative(u_z(x, y, z), z) + 3*Derivative(u_y(x, y, z), z)**2 + 6*Derivative(u_y(x, y, z), z)*Derivative(u_z(x, y, z), y) + 3*Derivative(u_z(x, y, z), x)**2 + 3*Derivative(u_z(x, y, z), y)**2 + 4*Derivative(u_z(x, y, z), z)**2)))/(3*\\mu)) - sqrt(18*\\mu**2*(Derivative(u_x(x, y, z), y) + Derivative(u_y(x, y, z), x))**2 + 18*\\mu**2*(Derivative(u_x(x, y, z), z) + Derivative(u_z(x, y, z), x))**2 + 18*\\mu**2*(Derivative(u_y(x, y, z), z) + Derivative(u_z(x, y, z), y))**2 + (\\lambda*Derivative(u_x(x, y, z), x) - 2*\\lambda*Derivative(u_y(x, y, z), y) + \\lambda*Derivative(u_z(x, y, z), z) - (\\lambda + 2*\\mu)*Derivative(u_x(x, y, z), x) + 2*(\\lambda + 2*\\mu)*Derivative(u_y(x, y, z), y) - (\\lambda + 2*\\mu)*Derivative(u_z(x, y, z), z))**2 + (\\lambda*Derivative(u_x(x, y, z), x) + \\lambda*Derivative(u_y(x, y, z), y) - 2*\\lambda*Derivative(u_z(x, y, z), z) - (\\lambda + 2*\\mu)*Derivative(u_x(x, y, z), x) - (\\lambda + 2*\\mu)*Derivative(u_y(x, y, z), y) + 2*(\\lambda + 2*\\mu)*Derivative(u_z(x, y, z), z))**2 + (2*\\lambda*Derivative(u_x(x, y, z), x) - \\lambda*Derivative(u_y(x, y, z), y) - \\lambda*Derivative(u_z(x, y, z), z) - 2*(\\lambda + 2*\\mu)*Derivative(u_x(x, y, z), x) + (\\lambda + 2*\\mu)*Derivative(u_y(x, y, z), y) + (\\lambda + 2*\\mu)*Derivative(u_z(x, y, z), z))**2))*(Derivative(u_x(x, y, z), y) + Derivative(u_y(x, y, z), x))/sqrt(18*\\mu**2*(Derivative(u_x(x, y, z), y) + Derivative(u_y(x, y, z), x))**2 + 18*\\mu**2*(Derivative(u_x(x, y, z), z) + Derivative(u_z(x, y, z), x))**2 + 18*\\mu**2*(Derivative(u_y(x, y, z), z) + Derivative(u_z(x, y, z), y))**2 + (\\lambda*Derivative(u_x(x, y, z), x) - 2*\\lambda*Derivative(u_y(x, y, z), y) + \\lambda*Derivative(u_z(x, y, z), z) - (\\lambda + 2*\\mu)*Derivative(u_x(x, y, z), x) + 2*(\\lambda + 2*\\mu)*Derivative(u_y(x, y, z), y) - (\\lambda + 2*\\mu)*Derivative(u_z(x, y, z), z))**2 + (\\lambda*Derivative(u_x(x, y, z), x) + \\lambda*Derivative(u_y(x, y, z), y) - 2*\\lambda*Derivative(u_z(x, y, z), z) - (\\lambda + 2*\\mu)*Derivative(u_x(x, y, z), x) - (\\lambda + 2*\\mu)*Derivative(u_y(x, y, z), y) + 2*(\\lambda + 2*\\mu)*Derivative(u_z(x, y, z), z))**2 + (2*\\lambda*Derivative(u_x(x, y, z), x) - \\lambda*Derivative(u_y(x, y, z), y) - \\lambda*Derivative(u_z(x, y, z), z) - 2*(\\lambda + 2*\\mu)*Derivative(u_x(x, y, z), x) + (\\lambda + 2*\\mu)*Derivative(u_y(x, y, z), y) + (\\lambda + 2*\\mu)*Derivative(u_z(x, y, z), z))**2)],\n", - "[ -sqrt(2)*\\mu*(3*sqrt(6)*\\mu*Max(0, -(\\sigma_0 - sqrt(\\mu**2*(4*Derivative(u_x(x, y, z), x)**2 - 4*Derivative(u_x(x, y, z), x)*Derivative(u_y(x, y, z), y) - 4*Derivative(u_x(x, y, z), x)*Derivative(u_z(x, y, z), z) + 3*Derivative(u_x(x, y, z), y)**2 + 6*Derivative(u_x(x, y, z), y)*Derivative(u_y(x, y, z), x) + 3*Derivative(u_x(x, y, z), z)**2 + 6*Derivative(u_x(x, y, z), z)*Derivative(u_z(x, y, z), x) + 3*Derivative(u_y(x, y, z), x)**2 + 4*Derivative(u_y(x, y, z), y)**2 - 4*Derivative(u_y(x, y, z), y)*Derivative(u_z(x, y, z), z) + 3*Derivative(u_y(x, y, z), z)**2 + 6*Derivative(u_y(x, y, z), z)*Derivative(u_z(x, y, z), y) + 3*Derivative(u_z(x, y, z), x)**2 + 3*Derivative(u_z(x, y, z), y)**2 + 4*Derivative(u_z(x, y, z), z)**2)))/(3*\\mu)) - sqrt(18*\\mu**2*(Derivative(u_x(x, y, z), y) + Derivative(u_y(x, y, z), x))**2 + 18*\\mu**2*(Derivative(u_x(x, y, z), z) + Derivative(u_z(x, y, z), x))**2 + 18*\\mu**2*(Derivative(u_y(x, y, z), z) + Derivative(u_z(x, y, z), y))**2 + (\\lambda*Derivative(u_x(x, y, z), x) - 2*\\lambda*Derivative(u_y(x, y, z), y) + \\lambda*Derivative(u_z(x, y, z), z) - (\\lambda + 2*\\mu)*Derivative(u_x(x, y, z), x) + 2*(\\lambda + 2*\\mu)*Derivative(u_y(x, y, z), y) - (\\lambda + 2*\\mu)*Derivative(u_z(x, y, z), z))**2 + (\\lambda*Derivative(u_x(x, y, z), x) + \\lambda*Derivative(u_y(x, y, z), y) - 2*\\lambda*Derivative(u_z(x, y, z), z) - (\\lambda + 2*\\mu)*Derivative(u_x(x, y, z), x) - (\\lambda + 2*\\mu)*Derivative(u_y(x, y, z), y) + 2*(\\lambda + 2*\\mu)*Derivative(u_z(x, y, z), z))**2 + (2*\\lambda*Derivative(u_x(x, y, z), x) - \\lambda*Derivative(u_y(x, y, z), y) - \\lambda*Derivative(u_z(x, y, z), z) - 2*(\\lambda + 2*\\mu)*Derivative(u_x(x, y, z), x) + (\\lambda + 2*\\mu)*Derivative(u_y(x, y, z), y) + (\\lambda + 2*\\mu)*Derivative(u_z(x, y, z), z))**2))*(Derivative(u_x(x, y, z), z) + Derivative(u_z(x, y, z), x))/sqrt(18*\\mu**2*(Derivative(u_x(x, y, z), y) + Derivative(u_y(x, y, z), x))**2 + 18*\\mu**2*(Derivative(u_x(x, y, z), z) + Derivative(u_z(x, y, z), x))**2 + 18*\\mu**2*(Derivative(u_y(x, y, z), z) + Derivative(u_z(x, y, z), y))**2 + (\\lambda*Derivative(u_x(x, y, z), x) - 2*\\lambda*Derivative(u_y(x, y, z), y) + \\lambda*Derivative(u_z(x, y, z), z) - (\\lambda + 2*\\mu)*Derivative(u_x(x, y, z), x) + 2*(\\lambda + 2*\\mu)*Derivative(u_y(x, y, z), y) - (\\lambda + 2*\\mu)*Derivative(u_z(x, y, z), z))**2 + (\\lambda*Derivative(u_x(x, y, z), x) + \\lambda*Derivative(u_y(x, y, z), y) - 2*\\lambda*Derivative(u_z(x, y, z), z) - (\\lambda + 2*\\mu)*Derivative(u_x(x, y, z), x) - (\\lambda + 2*\\mu)*Derivative(u_y(x, y, z), y) + 2*(\\lambda + 2*\\mu)*Derivative(u_z(x, y, z), z))**2 + (2*\\lambda*Derivative(u_x(x, y, z), x) - \\lambda*Derivative(u_y(x, y, z), y) - \\lambda*Derivative(u_z(x, y, z), z) - 2*(\\lambda + 2*\\mu)*Derivative(u_x(x, y, z), x) + (\\lambda + 2*\\mu)*Derivative(u_y(x, y, z), y) + (\\lambda + 2*\\mu)*Derivative(u_z(x, y, z), z))**2)],\n", - "[ -sqrt(2)*\\mu*(3*sqrt(6)*\\mu*Max(0, -(\\sigma_0 - sqrt(\\mu**2*(4*Derivative(u_x(x, y, z), x)**2 - 4*Derivative(u_x(x, y, z), x)*Derivative(u_y(x, y, z), y) - 4*Derivative(u_x(x, y, z), x)*Derivative(u_z(x, y, z), z) + 3*Derivative(u_x(x, y, z), y)**2 + 6*Derivative(u_x(x, y, z), y)*Derivative(u_y(x, y, z), x) + 3*Derivative(u_x(x, y, z), z)**2 + 6*Derivative(u_x(x, y, z), z)*Derivative(u_z(x, y, z), x) + 3*Derivative(u_y(x, y, z), x)**2 + 4*Derivative(u_y(x, y, z), y)**2 - 4*Derivative(u_y(x, y, z), y)*Derivative(u_z(x, y, z), z) + 3*Derivative(u_y(x, y, z), z)**2 + 6*Derivative(u_y(x, y, z), z)*Derivative(u_z(x, y, z), y) + 3*Derivative(u_z(x, y, z), x)**2 + 3*Derivative(u_z(x, y, z), y)**2 + 4*Derivative(u_z(x, y, z), z)**2)))/(3*\\mu)) - sqrt(18*\\mu**2*(Derivative(u_x(x, y, z), y) + Derivative(u_y(x, y, z), x))**2 + 18*\\mu**2*(Derivative(u_x(x, y, z), z) + Derivative(u_z(x, y, z), x))**2 + 18*\\mu**2*(Derivative(u_y(x, y, z), z) + Derivative(u_z(x, y, z), y))**2 + (\\lambda*Derivative(u_x(x, y, z), x) - 2*\\lambda*Derivative(u_y(x, y, z), y) + \\lambda*Derivative(u_z(x, y, z), z) - (\\lambda + 2*\\mu)*Derivative(u_x(x, y, z), x) + 2*(\\lambda + 2*\\mu)*Derivative(u_y(x, y, z), y) - (\\lambda + 2*\\mu)*Derivative(u_z(x, y, z), z))**2 + (\\lambda*Derivative(u_x(x, y, z), x) + \\lambda*Derivative(u_y(x, y, z), y) - 2*\\lambda*Derivative(u_z(x, y, z), z) - (\\lambda + 2*\\mu)*Derivative(u_x(x, y, z), x) - (\\lambda + 2*\\mu)*Derivative(u_y(x, y, z), y) + 2*(\\lambda + 2*\\mu)*Derivative(u_z(x, y, z), z))**2 + (2*\\lambda*Derivative(u_x(x, y, z), x) - \\lambda*Derivative(u_y(x, y, z), y) - \\lambda*Derivative(u_z(x, y, z), z) - 2*(\\lambda + 2*\\mu)*Derivative(u_x(x, y, z), x) + (\\lambda + 2*\\mu)*Derivative(u_y(x, y, z), y) + (\\lambda + 2*\\mu)*Derivative(u_z(x, y, z), z))**2))*(Derivative(u_y(x, y, z), z) + Derivative(u_z(x, y, z), y))/sqrt(18*\\mu**2*(Derivative(u_x(x, y, z), y) + Derivative(u_y(x, y, z), x))**2 + 18*\\mu**2*(Derivative(u_x(x, y, z), z) + Derivative(u_z(x, y, z), x))**2 + 18*\\mu**2*(Derivative(u_y(x, y, z), z) + Derivative(u_z(x, y, z), y))**2 + (\\lambda*Derivative(u_x(x, y, z), x) - 2*\\lambda*Derivative(u_y(x, y, z), y) + \\lambda*Derivative(u_z(x, y, z), z) - (\\lambda + 2*\\mu)*Derivative(u_x(x, y, z), x) + 2*(\\lambda + 2*\\mu)*Derivative(u_y(x, y, z), y) - (\\lambda + 2*\\mu)*Derivative(u_z(x, y, z), z))**2 + (\\lambda*Derivative(u_x(x, y, z), x) + \\lambda*Derivative(u_y(x, y, z), y) - 2*\\lambda*Derivative(u_z(x, y, z), z) - (\\lambda + 2*\\mu)*Derivative(u_x(x, y, z), x) - (\\lambda + 2*\\mu)*Derivative(u_y(x, y, z), y) + 2*(\\lambda + 2*\\mu)*Derivative(u_z(x, y, z), z))**2 + (2*\\lambda*Derivative(u_x(x, y, z), x) - \\lambda*Derivative(u_y(x, y, z), y) - \\lambda*Derivative(u_z(x, y, z), z) - 2*(\\lambda + 2*\\mu)*Derivative(u_x(x, y, z), x) + (\\lambda + 2*\\mu)*Derivative(u_y(x, y, z), y) + (\\lambda + 2*\\mu)*Derivative(u_z(x, y, z), z))**2)]])" - ] - }, - "execution_count": 2, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "from sympy import simplify\n", - "\n", - "\n", - "simplify(sigma_1)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "model-validation-platform-docs", - "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.13.1" - }, - "orig_nbformat": 4 - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/docs/conventions.md b/docs/conventions.md deleted file mode 100644 index b33a64d..0000000 --- a/docs/conventions.md +++ /dev/null @@ -1,248 +0,0 @@ -# Conventions and notation - -## Gradients of vector fields - -The gradient of a vector field $\phi$ with - -$$ -\begin{aligned} -\phi:\mathbb R^n &\to \mathbb R^n\\ -x&\mapsto \phi(x) -\end{aligned} -$$ - -is defined as - -$$ -\nabla \phi = \frac{\partial\phi_i}{\partial x_j}\mathbf e_i\otimes\mathbf e_j. -$$ - -!!! note - Some sources define the gradient of a vector field with $\partial\phi_j/\partial x_i$ for the $ij$-th component of the matrix. - -## Mandel notation - -The basis of symmetric $3\times3$ tensors is not - -$$ -\left\{ \begin{bmatrix}1 & 0 & 0\\ -0 & 0 & 0\\ -0 & 0 & 0 -\end{bmatrix},\begin{bmatrix}0 & 0 & 0\\ -0 & 1 & 0\\ -0 & 0 & 0 -\end{bmatrix},\begin{bmatrix}0 & 0 & 0\\ -0 & 0 & 0\\ -0 & 0 & 1 -\end{bmatrix},\begin{bmatrix}0 & 1 & 0\\ -1 & 0 & 0\\ -0 & 0 & 0 -\end{bmatrix},\begin{bmatrix}0 & 0 & 1\\ -0 & 0 & 0\\ -1 & 0 & 0 -\end{bmatrix},\begin{bmatrix}0 & 0 & 0\\ -0 & 0 & 1\\ -0 & 1 & 0 -\end{bmatrix}\right\} -$$ - -because the elements are not normed, therefore - -$$ -\begin{aligned} -B^{t} =&\left\{ \begin{bmatrix}1 & 0 & 0\\ -0 & 0 & 0\\ -0 & 0 & 0 -\end{bmatrix},\begin{bmatrix}0 & 0 & 0\\ -0 & 1 & 0\\ -0 & 0 & 0 -\end{bmatrix},\begin{bmatrix}0 & 0 & 0\\ -0 & 0 & 0\\ -0 & 0 & 1 -\end{bmatrix},\right.\\ -&\left.\begin{bmatrix}0 & \frac{1}{\sqrt{2}} & 0\\ -\frac{1}{\sqrt{2}} & 0 & 0\\ -0 & 0 & 0 -\end{bmatrix},\begin{bmatrix}0 & 0 & \frac{1}{\sqrt{2}}\\ -0 & 0 & 0\\ -\frac{1}{\sqrt{2}} & 0 & 0 -\end{bmatrix},\begin{bmatrix}0 & 0 & 0\\ -0 & 0 & \frac{1}{\sqrt{2}}\\ -0 & \frac{1}{\sqrt{2}} & 0 -\end{bmatrix}\right\} \\ - & =\left\{ B_{1},\ldots,B_{6}\right\} -\end{aligned} -$$ - -is an orthonormal basis of symmetric tensors with $B_{i}:B_{j}=\delta_{ij}$. -An orthonormal basis of a reduced vector notation similar to Voigt -notation is - -$$ -\begin{aligned} -B^{v} & =\left\{ \begin{bmatrix}1\\ -0\\ -\vdots\\ -0 -\end{bmatrix},\ldots,\begin{bmatrix}0\\ -\vdots\\ -0\\ -1 -\end{bmatrix}\right\} \\ - & =\left\{ e_{1},\ldots,e{}_{6}\right\} . -\end{aligned} -$$ - -A symmetric tensor can be written as the sum - -$$ -w^{t}=\sum_{i=1}^{6}\alpha_{i}B_{i}. -$$ - -A straightforward way to transform $w^{t}$ to a reduced vector representation -$w^{v}$ would be to write $w^{v}$ as - -$$ -w^{v}=\sum_{i=1}^{6}\alpha_{i}e_{i}, -$$ - -thereby keeping the scalars $\alpha_{i}$ in the representation. Let -us consider a strain tensor $\boldsymbol{\varepsilon}$ which is decomposed -as - -$$ -\begin{aligned} -\begin{bmatrix}\varepsilon_{11} & \varepsilon_{12} & \varepsilon_{13}\\ -\varepsilon_{12} & \varepsilon_{22} & \varepsilon_{23}\\ -\varepsilon_{13} & \varepsilon_{23} & \varepsilon_{33} -\end{bmatrix}= & \varepsilon_{11}\begin{bmatrix}1 & 0 & 0\\ -0 & 0 & 0\\ -0 & 0 & 0 -\end{bmatrix}+\varepsilon_{22}\begin{bmatrix}0 & 0 & 0\\ -0 & 1 & 0\\ -0 & 0 & 0 -\end{bmatrix}+\varepsilon_{33}\begin{bmatrix}0 & 0 & 0\\ -0 & 0 & 0\\ -0 & 0 & 1 -\end{bmatrix}\\ - & +\sqrt{2}\varepsilon_{12}\begin{bmatrix}0 & \frac{1}{\sqrt{2}} & 0\\ -\frac{1}{\sqrt{2}} & 0 & 0\\ -0 & 0 & 0 -\end{bmatrix}+\sqrt{2}\varepsilon_{13}\begin{bmatrix}0 & 0 & \frac{1}{\sqrt{2}}\\ -0 & 0 & 0\\ -\frac{1}{\sqrt{2}} & 0 & 0 -\end{bmatrix}+\sqrt{2}\varepsilon_{23}\begin{bmatrix}0 & 0 & 0\\ -0 & 0 & \frac{1}{\sqrt{2}}\\ -0 & \frac{1}{\sqrt{2}} & 0 -\end{bmatrix}. -\end{aligned} -$$ - -Due to the components of value $\frac{1}{\sqrt{2}}$ in the basis, -the shear components of the strain get the factor $\sqrt{2}$. In -the vector representation, this leads to - -$$ -\boldsymbol{\varepsilon}=\varepsilon_{11}\begin{bmatrix}1\\ -0\\ -0\\ -0\\ -0\\ -0 -\end{bmatrix}+\varepsilon_{22}\begin{bmatrix}0\\ -1\\ -0\\ -0\\ -0\\ -0 -\end{bmatrix}+\varepsilon_{33}\begin{bmatrix}0\\ -0\\ -1\\ -0\\ -0\\ -0 -\end{bmatrix}+\sqrt{2}\varepsilon_{12}\begin{bmatrix}0\\ -0\\ -0\\ -1\\ -0\\ -0 -\end{bmatrix}+\sqrt{2}\varepsilon_{13}\begin{bmatrix}0\\ -0\\ -0\\ -0\\ -1\\ -0 -\end{bmatrix}+\sqrt{2}\varepsilon_{23}\begin{bmatrix}0\\ -0\\ -0\\ -0\\ -0\\ -1 -\end{bmatrix}=\begin{bmatrix}\varepsilon_{11}\\ -\varepsilon_{22}\\ -\varepsilon_{33}\\ -\sqrt{2}\varepsilon_{12}\\ -\sqrt{2}\varepsilon_{13}\\ -\sqrt{2}\varepsilon_{23} -\end{bmatrix}, -$$ - -which is known as the Mandel form. Since the Mandel form maps an orthonormal -basis to an orthonormal basis -- something, the Voigt form does not -do -- some important properties as preserved. - -### Inner product is preserved - -The inner product of two symmetric tensors $f^{t},g^{t}$ is - -$$ -\begin{aligned} -f^{t}:g^{t} & =\left(\sum_{i=1}^{6}\alpha_{i}B_{i}\right):\left(\sum_{j=1}^{6}\beta_{j}B_{j}\right)\\ - & =\sum_{i,j=1}^{6}\alpha_{i}\beta_{j}\underbrace{B_{i}:B_{j}}_{=\delta_{ij}}\\ - & =\sum_{i=1}^{6}\alpha_{i}\beta_{i}, -\end{aligned} -$$ - -and similarly - -$$ -\begin{aligned} -f^{v}\cdot g^{v} & =\left(\sum_{i=1}^{6}\alpha_{i}e_{i}\right)\cdot\left(\sum_{j=1}^{6}\beta_{j}e_{j}\right)\\ - & =\sum_{i,j=1}^{6}\alpha_{i}\beta_{j}\underbrace{e_{i}\cdot e_{j}}_{=\delta_{ij}}\\ - & =\sum_{i=1}^{6}\alpha_{i}\beta_{i}. -\end{aligned} -$$ - -This means that inner products of a strain with a stress, a stress -with a stress or a strain with a strain yield the same result in tensor- -and in Mandel notation. No scaling matrices as in the Voigt notation -are required. - -### Properties of outer product are preserved - -The outer product of two symmetric tensors is a linear map which maps -second order tensors to second order tensors. Let $f^{t},g^{t},h^{t}$ -be symmetrical tensors, then - -$$ -\begin{aligned} -\left(f^{t}\otimes g^{t}\right):h^{t} & =\left(\sum_{i,j=1}^{6}\alpha_{i}\beta_{j}B_{i}\otimes B_{j}\right):\sum_{k=1}^{6}\gamma_{k}B_{k}\\ - & =\sum_{i,j,k=1}^{6}\alpha_{i}\beta_{j}\gamma_{k}B_{i}\otimes\underbrace{B_{j}:B_{k}}_{=\delta_{jk}}\\ - & =\sum_{i,j=1}^{6}\alpha_{i}\beta_{j}\gamma_{j}B_{i}, -\end{aligned} -$$ - -and for the Mandel notation - -$$ -\begin{aligned} -\left(f^{v}\left(g^{v}\right)^{\top}\right)\cdot h^{t} & =\left(\sum_{i,j=1}^{6}\alpha_{i}\beta_{j}e_{i}e_{j}^{\top}\right)\cdot\sum_{k=1}^{6}\gamma_{k}e_{k}\\ - & =\sum_{i,j,k=1}^{6}\alpha_{i}\beta_{j}\gamma_{k}e_{i}\underbrace{e_{j}^{\top}e_{k}}_{=\delta_{jk}}\\ - & =\sum_{i,j=1}^{6}\alpha_{i}\beta_{j}\gamma_{j}e_{i}. -\end{aligned} -$$ - -Therefore, all outer products of symmetrical tensors have the same -meaning as they do in Mandel form when they are used as a map on symmetrical -tensors. \ No newline at end of file diff --git a/docs/data.md b/docs/data.md deleted file mode 100644 index a716aab..0000000 --- a/docs/data.md +++ /dev/null @@ -1,14 +0,0 @@ -# Data and metadata - -## Data needed for the description of the experiment - -* Geometry -* Constitutive model -* Material parameters -* Boundary conditions - -## Data needed for the description of the results - -* Solution fields (displacements) -* Quadrature point data (stresses, plastic strain) -* Information about compute environment (conda environment or docker file + version of the commercial solver) \ No newline at end of file diff --git a/docs/interface.md b/docs/interface.md deleted file mode 100644 index 4ab4e3d..0000000 --- a/docs/interface.md +++ /dev/null @@ -1,146 +0,0 @@ -# Generalized interface for constitutive models - -Abaqus UMAT header: - -```Fortran -SUBROUTINE UMAT(STRESS,STATEV,DDSDDE,SSE,SPD,SCD, - 1 RPL,DDSDDT,DRPLDE,DRPLDT, - 2 STRAN,DSTRAN,TIME,DTIME,TEMP,DTEMP,PREDEF,DPRED,CMNAME, - 3 NDI,NSHR,NTENS,NSTATV,PROPS,NPROPS,COORDS,DROT,PNEWDT, - 4 CELENT,DFGRD0,DFGRD1,NOEL,NPT,LAYER,KSPT,KSTEP,KINC) -``` - -Ansys usermat header - -```Fortran -subroutine usermat( - & matId, elemId,kDomIntPt, kLayer, kSectPt, - & ldstep,isubst,keycut, - & nDirect,nShear,ncomp,nStatev,nProp, - & Time,dTime,Temp,dTemp, - & stress,ustatev,dsdePl,sedEl,sedPl,epseq, - & Strain,dStrain, epsPl, prop, coords, - & var0, defGrad_t, defGrad, - & tsstif, epsZZ, - & var1, var2, var3, var4, var5, - & var6, var7, var8) -``` - - -The following table shows the correspondence between the variables in the two interfaces: -**Warning: Table generated by github copilot. Check later!!** - -| Abaqus | Ansys | Description | -|--------|-------|-------------| -| STRESS | stress | Stress tensor | -| STATEV | ustatev | State variables | -| DDSDDE | dsdePl | Material tangent stiffness | -| SSE | sedEl | Elastic strain energy density | -| SPD | sedPl | Plastic strain energy density | -| SCD | epseq | Equivalent plastic strain | -| RPL | epsPl | Equivalent plastic strain rate | -| DDSDDT | tsstif | Tangent stiffness for thermal strain | -| DRPLDE | | Derivative of equivalent plastic strain rate with respect to strain | -| DRPLDT | | Derivative of equivalent plastic strain rate with respect to temperature | -| STRAN | Strain | Total strain tensor | -| DSTRAN | dStrain | Incremental strain tensor | -| TIME | Time | Current time | -| DTIME | dTime | Time increment | -| TEMP | Temp | Current temperature | -| DTEMP | dTemp | Temperature increment | -| PREDEF | | Predefined field variable | -| DPRED | | Predefined field variable increment | -| CMNAME | | Material name | -| NDI | nDirect | Number of direct stress components | -| NSHR | nShear | Number of shear stress components | -| NTENS | ncomp | Number of stress components | -| NSTATV | nStatev | Number of state variables | -| PROPS | prop | Material properties | -| NPROPS | nProp | Number of material properties | -| COORDS | coords | Element coordinates | -| DROT | | Rotation matrix | -| PNEWDT | | Suggested time increment | -| CELENT | | Element characteristic length | -| DFGRD0 | defGrad_t | Deformation gradient at the beginning of the time step | -| DFGRD1 | defGrad | Deformation gradient at the end of the time step | -| NOEL | elemId | Element number | -| NPT | kDomIntPt | Integration point number | -| LAYER | kLayer | Layer number | -| KSPT | kSectPt | Section point number | -| KSTEP | ldstep | Load step number | -| KINC | | Increment number | -| | var0 | User-defined variable | -| | var1 | User-defined variable | -| | var2 | User-defined variable | -| | var3 | User-defined variable | -| | var4 | User-defined variable | -| | var5 | User-defined variable | -| | var6 | User-defined variable | -| | var7 | User-defined variable | -| | var8 | User-defined variable | - -## Possible problems - -### Rotations - -The Abaqus interface contains a rotation matrix `DROT` which is not present in the Ansys interface. It should however be possible to calculate the rotation matrix from the deformation gradient tensors `DFGRD0` and `DFGRD1` which are present in both interfaces. However, only the Green-Naghdi stress rate can determined that way. The Jaumann rate requires the spin tensor $\mathbf W$. - -### Multiple constitutive models - -In Abaqus, it is recommended to achieve multiple constitutive laws through the `CMNAME` variable which is used to call a different subroutine depending on the value of `CMNAME`. Since Ansys does not have this parameter, it is necessary to use a different approach to achieve the same functionality. - -### Order of Voigt notation - -Abaqus implicit uses the order $[\sigma_{11}, \sigma_{22}, \sigma_{33}, \sigma_{12},\sigma_{13},\sigma_{23}]$, whereas Ansys and Abaqus explicit use the order $[\sigma_{11}, \sigma_{22}, \sigma_{33}, \sigma_{13},\sigma_{23},\sigma_{12}]$. This means that the stress, strain and tangent must be reordered when passing them between the two interfaces. - -## Interface in Rust (WIP) - -The following is a preliminary suggestion for an interface that covers the most important use cases of the Abaqus and Ansys interfaces. The interface is written in Rust with C types such that interoperability between different languages is possible. - -```rust -fn umat( - strain: &[f64], - del_strain: &[f64], - def_grad_0: &[f64], - def_grad_1: &[f64], - properties: &[f64], - stress: &mut [f64], - state_vars: &mut [f64], - tangent: &mut [f64], - time: f64, - del_time: f64, - n_properties: usize, - n_state_vars: usize, - n_stress_strain: usize, -) { - // implementation -} -``` - -This interface needs to be converted to a C-compatible interface for use in Abaqus and Ansys. The following code shows how this can be done using c types in Rust. - -```rust - -use core::ffi::{c_double, c_int, c_char}; - -#[no_mangle] -pub extern "C" fn umat( - strain: *const c_double, - del_strain: *const c_double, - def_grad_0: *const c_double, - def_grad_1: *const c_double, - properties: *const c_double, - stress: *mut c_double, - state_vars: *mut c_double, - tangent: *mut c_double, - time: c_double, - del_time: c_double, - n_properties: c_int, - n_state_vars: c_int, - n_stress_strain: c_int, -) { - // implementation -} -``` - -In order to convert between interfaces, one could write $2^n$ conversion wrappers ($n$ the number of coverred Interfaces) or alternatively, all conversions go through the generalized interface. This would be easiest to implement, but could potentially be slower due to several conversions in the stresses, tangents, etc. However, using macros and const functionalities to generate conversion tables, factors, and so on, could potentially make this more efficient. \ No newline at end of file diff --git a/mkdocs.yml b/mkdocs.yml index d45da9f..c0c6846 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -34,12 +34,8 @@ markdown_extensions: nav: - index.md - #- conventions.md - #- data.md - #- interface.md - Benchmarks: - Introduction: "benchmarks/index.md" - Linear Elasticity: "benchmarks/linear elasticity" - #- Plasticity: benchmarks/plasticity - "zz_bibliography.md" From 3ab3cb9c4475aeea2ea285ca54da2110de21f965 Mon Sep 17 00:00:00 2001 From: srosenbu Date: Fri, 19 Sep 2025 13:36:30 +0200 Subject: [PATCH 2/5] move notebooks out of docs dir --- docs/benchmarks/linear elasticity/plate-with-hole.md | 4 ++-- .../plate_with_hole_Kratos.ipynb | 4 +--- .../plate_with_hole_fenics.ipynb | 4 +--- 3 files changed, 4 insertions(+), 8 deletions(-) rename {docs/benchmarks/linear elasticity => notebooks}/plate_with_hole_Kratos.ipynb (99%) rename {docs/benchmarks/linear elasticity => notebooks}/plate_with_hole_fenics.ipynb (99%) diff --git a/docs/benchmarks/linear elasticity/plate-with-hole.md b/docs/benchmarks/linear elasticity/plate-with-hole.md index 8f1cbc6..6153b82 100644 --- a/docs/benchmarks/linear elasticity/plate-with-hole.md +++ b/docs/benchmarks/linear elasticity/plate-with-hole.md @@ -140,8 +140,8 @@ With these metrices, we can perform a convergence analysis for different approxi ### FEniCS -[![Jupyter4NFDI](https://nfdi-jupyter.de/images/jupyter4nfdi_badge.svg)](https://hub.nfdi-jupyter.de/v2/gh/BAMresearch/NFDI4IngModelValidationPlatform/HEAD?labpath=docs%2Fbenchmarks%2Flinear%20elasticity%2Fplate_with_hole_fenics.ipynb) +[![Jupyter4NFDI](https://nfdi-jupyter.de/images/jupyter4nfdi_badge.svg)](https://hub.nfdi-jupyter.de/v2/gh/BAMresearch/NFDI4IngModelValidationPlatform/HEAD?labpath=notebooks%2Fplate_with_hole_fenics.ipynb) ### Kratos -[![Jupyter4NFDI](https://nfdi-jupyter.de/images/jupyter4nfdi_badge.svg)](https://hub.nfdi-jupyter.de/v2/gh/BAMresearch/NFDI4IngModelValidationPlatform/HEAD?labpath=docs%2Fbenchmarks%2Flinear%20elasticity%2Fplate_with_hole_Kratos.ipynb) \ No newline at end of file +[![Jupyter4NFDI](https://nfdi-jupyter.de/images/jupyter4nfdi_badge.svg)](https://hub.nfdi-jupyter.de/v2/gh/BAMresearch/NFDI4IngModelValidationPlatform/HEAD?labpath=notebooks%2Fplate_with_hole_Kratos.ipynb) \ No newline at end of file diff --git a/docs/benchmarks/linear elasticity/plate_with_hole_Kratos.ipynb b/notebooks/plate_with_hole_Kratos.ipynb similarity index 99% rename from docs/benchmarks/linear elasticity/plate_with_hole_Kratos.ipynb rename to notebooks/plate_with_hole_Kratos.ipynb index 0c62437..6739aba 100644 --- a/docs/benchmarks/linear elasticity/plate_with_hole_Kratos.ipynb +++ b/notebooks/plate_with_hole_Kratos.ipynb @@ -5,9 +5,7 @@ "metadata": {}, "source": [ "\n", - "# Postprocessing for Kratos example\n", - "\n", - "[![Jupyter4NFDI](https://nfdi-jupyter.de/images/jupyter4nfdi_badge.svg)](https://hub.nfdi-jupyter.de/v2/gh/BAMresearch/NFDI4IngModelValidationPlatform/HEAD?labpath=docs%2Fbenchmarks%2Flinear%20elasticity%2Fplate_with_hole_Kratos.ipynb)" + "# Postprocessing for Kratos example" ] }, { diff --git a/docs/benchmarks/linear elasticity/plate_with_hole_fenics.ipynb b/notebooks/plate_with_hole_fenics.ipynb similarity index 99% rename from docs/benchmarks/linear elasticity/plate_with_hole_fenics.ipynb rename to notebooks/plate_with_hole_fenics.ipynb index a9374f5..b5078fc 100644 --- a/docs/benchmarks/linear elasticity/plate_with_hole_fenics.ipynb +++ b/notebooks/plate_with_hole_fenics.ipynb @@ -4,9 +4,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Postprocessing for FEniCSx example\n", - "\n", - "[![Jupyter4NFDI](https://nfdi-jupyter.de/images/jupyter4nfdi_badge.svg)](https://hub.nfdi-jupyter.de/v2/gh/BAMresearch/NFDI4IngModelValidationPlatform/HEAD?labpath=docs%2Fbenchmarks%2Flinear%20elasticity%2Fplate_with_hole_fenics.ipynb)" + "# Postprocessing for FEniCSx example" ] }, { From 8b3044b6e516b033fae4774e47ff294103e882ed Mon Sep 17 00:00:00 2001 From: srosenbu Date: Mon, 17 Nov 2025 12:50:39 +0100 Subject: [PATCH 3/5] restructure docs --- docs/benchmarks/index.md | 3 --- mkdocs.yml | 3 +-- 2 files changed, 1 insertion(+), 5 deletions(-) delete mode 100644 docs/benchmarks/index.md diff --git a/docs/benchmarks/index.md b/docs/benchmarks/index.md deleted file mode 100644 index 5d08628..0000000 --- a/docs/benchmarks/index.md +++ /dev/null @@ -1,3 +0,0 @@ -# Introduction to the benchmarks - -**todo** \ No newline at end of file diff --git a/mkdocs.yml b/mkdocs.yml index 9ecd585..33ec11b 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -39,9 +39,8 @@ nav: - getting_started/provenance.md - getting_started/benchmark_addition_guide.md - getting_started/run_benchmark.md + - rohub.md - Benchmarks: - - Introduction: "benchmarks/index.md" - Linear Elasticity: "benchmarks/linear elasticity" - "zz_bibliography.md" - - rohub.md From e4801fca47366b304811cf80d6f1d1364c8b87a5 Mon Sep 17 00:00:00 2001 From: srosenbu Date: Mon, 17 Nov 2025 15:47:32 +0100 Subject: [PATCH 4/5] Numerical parameters --- docs/benchmarks/linear elasticity/plate-with-hole.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/docs/benchmarks/linear elasticity/plate-with-hole.md b/docs/benchmarks/linear elasticity/plate-with-hole.md index 6153b82..056cf34 100644 --- a/docs/benchmarks/linear elasticity/plate-with-hole.md +++ b/docs/benchmarks/linear elasticity/plate-with-hole.md @@ -127,6 +127,7 @@ With these metrices, we can perform a convergence analysis for different approxi ## Table of parameters +### Model parameters | Parameter | Description | | ------------ | ------------------------------ | | $a$[m] | Radius of the hole. | @@ -135,6 +136,16 @@ With these metrices, we can perform a convergence analysis for different approxi | $\nu$[-] | Poisson ratio. | | $p$[Pa] | Load at infinity. | +### Numerical parameters + +| Parameter | Description | +| ------------ | ------------------------------ | +| $h$[m] | Element size | +| $q$[-] | Element order, i.e. the geometry interpolation order (curved edges or linear edges) | +| $p$[-] | Degree of the ansatz functions | +| $r$[-] | Degree of the quadrature rule, meaning the polynomial degree which is still integrated exactly | +| $\mathcal Q$[-] | Quadrature rule | + ## Numerical Results From 341eb3a054b9c46eb81821d4ac6159db984ce671 Mon Sep 17 00:00:00 2001 From: srosenbu Date: Mon, 17 Nov 2025 15:53:13 +0100 Subject: [PATCH 5/5] Small changes --- docs/benchmarks/linear elasticity/plate-with-hole.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/benchmarks/linear elasticity/plate-with-hole.md b/docs/benchmarks/linear elasticity/plate-with-hole.md index 056cf34..fcc8861 100644 --- a/docs/benchmarks/linear elasticity/plate-with-hole.md +++ b/docs/benchmarks/linear elasticity/plate-with-hole.md @@ -140,11 +140,11 @@ With these metrices, we can perform a convergence analysis for different approxi | Parameter | Description | | ------------ | ------------------------------ | -| $h$[m] | Element size | -| $q$[-] | Element order, i.e. the geometry interpolation order (curved edges or linear edges) | -| $p$[-] | Degree of the ansatz functions | -| $r$[-] | Degree of the quadrature rule, meaning the polynomial degree which is still integrated exactly | -| $\mathcal Q$[-] | Quadrature rule | +| $h$[m] | Element size. | +| $q$[-] | Element order, i.e. the geometry interpolation order (curved edges or linear edges). | +| $p$[-] | Degree of the ansatz functions. | +| $r$[-] | Degree of the quadrature rule, meaning the polynomial degree which is still integrated exactly. | +| $\mathcal Q$[-] | Quadrature rule (e.g. Gauss or Gauss-Lobatto). | ## Numerical Results