diff --git a/paper/media/phase_diagram.pdf b/paper/media/phase_diagram.pdf
new file mode 100644
index 00000000..f984c91f
Binary files /dev/null and b/paper/media/phase_diagram.pdf differ
diff --git a/paper/media/phase_diagram_R_ball.pdf b/paper/media/phase_diagram_R_ball.pdf
new file mode 100644
index 00000000..e72616e5
Binary files /dev/null and b/paper/media/phase_diagram_R_ball.pdf differ
diff --git a/paper/media/phase_diagram_R_cone.pdf b/paper/media/phase_diagram_R_cone.pdf
new file mode 100644
index 00000000..a99492d4
Binary files /dev/null and b/paper/media/phase_diagram_R_cone.pdf differ
diff --git a/paper/media/profile_comparison.pdf b/paper/media/profile_comparison.pdf
new file mode 100644
index 00000000..d6620ff5
Binary files /dev/null and b/paper/media/profile_comparison.pdf differ
diff --git a/paper/media/test_1d_stability-spa.pdf b/paper/media/test_1d_stability-spa.pdf
new file mode 100644
index 00000000..ee37b52a
Binary files /dev/null and b/paper/media/test_1d_stability-spa.pdf differ
diff --git a/playground/nb/colab_discrete_stability.ipynb b/playground/nb/colab_discrete_stability.ipynb
deleted file mode 100644
index ea5f7457..00000000
--- a/playground/nb/colab_discrete_stability.ipynb
+++ /dev/null
@@ -1,424 +0,0 @@
-{
- "cells": [
- {
- "cell_type": "markdown",
- "metadata": {
- "colab_type": "text",
- "id": "view-in-github"
- },
- "source": [
- ""
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 34,
- "metadata": {
- "id": "0fnr9Vinc8H_"
- },
- "outputs": [],
- "source": [
- "import sympy as sp\n",
- "import numpy as np\n",
- "import matplotlib.pyplot as plt\n",
- "\n",
- "import yaml\n",
- "import hashlib\n",
- "\n",
- "def load_data(rootdir):\n",
- "\n",
- "\t# with open(rootdir + '/parameters.pkl', 'r') as f:\n",
- "\t# \tparams = json.load(f)\n",
- "\n",
- "\twith open(rootdir + '/parameters.yaml') as f:\n",
- "\t\tparams = yaml.load(f, Loader=yaml.FullLoader)\n",
- "\n",
- "\twith open(rootdir + '/time_data.json', 'r') as f:\n",
- "\t\tdata = json.load(f)\n",
- "\t\tdataf = pd.DataFrame(data).sort_values('load')\n",
- "\n",
- "\tif os.path.isfile(rootdir + '/signature.md5'):\n",
- "# print('sig file found')\n",
- "\t\twith open(rootdir + '/signature.md5', 'r') as f:\n",
- "\t\t\tsignature = f.read()\n",
- "\telse:\n",
- "\t\tprint('no sig file found')\n",
- "\t\tsignature = hashlib.md5(str(params).encode('utf-8')).hexdigest()\n",
- "\n",
- "\treturn params, dataf, signature \n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "\n",
- "branch_name = 'main'\n",
- "branch_name = 'andres-conerecipe'\n",
- "\n",
- "!rm -rf mec647\n",
- "try:\n",
- " !git clone -b {branch_name} https://github.com/kumiori/mec647.git\n",
- "# sys.path.append('mec647/')\n",
- "\n",
- "except Exception as e:\n",
- " print('Something went wrong', e)\n",
- " !rm -rf mec647\n",
- " !git clone https://github.com/kumiori/mec647.git\n",
- "\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 6,
- "metadata": {},
- "outputs": [],
- "source": [
- "## Simple Analytic \n",
- "α, α1, α2, e1, e2 = sp.symbols('α α1 α2 e1 e2')\n",
- "u1, u2 = sp.symbols('u1 u2')\n",
- "K1, K2 = sp.symbols('K1 K2', positive=True)\n",
- "s1, s2 = sp.symbols('s1 s2', positive=True)\n",
- "μ, N = sp.symbols('μ N', positive=True)\n",
- "w1 = sp.symbols('w1', positive=True)\n",
- "t = sp.Symbol('t', positive=True)\n",
- "k = sp.Symbol('k', positive=True)\n",
- "\n",
- "# _N = 2\n",
- "\n",
- "K = lambda α: (1-α)/(1+(k-1)*α)\n",
- "s = lambda α: 1/K(α)\n",
- "\n",
- "U = 1/2*μ*(K1*u1**2 + K2*(t-u1)**2) * N\n",
- "\n",
- "S = w1*(α1 + α2) / N\n",
- "\n",
- "sol_u = sp.solve(U.diff(u1), u1)\n",
- "\n"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "### Example: material parameters"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 21,
- "metadata": {},
- "outputs": [],
- "source": [
- "_params = {\n",
- " 'N': 2,\n",
- " 'k': 3,\n",
- " 'k_res': 0.0001,\n",
- " 'model_dimension': 1,\n",
- " 'model_type': '1D-discrete',\n",
- " 'mu': 1,\n",
- " 'w1': 1}\n",
- "\n",
- "_mu, _w1, _k, _N = _params.get(\"mu\"), _params.get(\"w1\"), _params.get(\"k\"), _params[\"N\"]\n",
- "\n",
- "matpar = {k: _k, w1: _w1, N: _N, μ: _mu}\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 7,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/latex": [
- "$\\displaystyle \\frac{0.5 K_{1} K_{2} N t^{2} μ}{K_{1} + K_{2}}$"
- ],
- "text/plain": [
- "0.5*K1*K2*N*t**2*μ/(K1 + K2)"
- ]
- },
- "execution_count": 7,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "E=U.subs(u1, sol_u[0]).simplify()\n",
- "E"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Homogeneous response\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 8,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/latex": [
- "$\\displaystyle \\frac{0.25 N t^{2} μ \\left(1 - α\\right)}{α \\left(k - 1\\right) + 1}$"
- ],
- "text/plain": [
- "0.25*N*t**2*μ*(1 - α)/(α*(k - 1) + 1)"
- ]
- },
- "execution_count": 8,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "\n",
- "_E = E.subs({K1: 1/s(α), K2: 1/s(α)})\n",
- "_E"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 9,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/latex": [
- "$\\displaystyle \\frac{0.25 N t^{2} μ \\left(1 - α\\right)}{α \\left(k - 1\\right) + 1} + \\frac{2 w_{1} α}{N}$"
- ],
- "text/plain": [
- "0.25*N*t**2*μ*(1 - α)/(α*(k - 1) + 1) + 2*w1*α/N"
- ]
- },
- "execution_count": 9,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "F = (E+S)\n",
- "F = (E+S).subs({K1: 1/s(α), K2: 1/s(α), α1: α, α2: α})\n",
- "\n",
- "F"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "### Critical damage load"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 10,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/latex": [
- "$\\displaystyle - \\frac{0.25 N k t^{2} μ}{\\left(k α - α + 1\\right)^{2}} + \\frac{2 w_{1}}{N}$"
- ],
- "text/plain": [
- "-0.25*N*k*t**2*μ/(k*α - α + 1)**2 + 2*w1/N"
- ]
- },
- "execution_count": 10,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "Fa = F.diff(α).simplify()\n",
- "Fa"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 11,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/latex": [
- "$\\displaystyle - 0.25 N k t^{2} μ + \\frac{2 w_{1}}{N}$"
- ],
- "text/plain": [
- "-0.25*N*k*t**2*μ + 2*w1/N"
- ]
- },
- "execution_count": 11,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "Fa.subs({α: 0})"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 12,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/latex": [
- "$\\displaystyle \\frac{2.82842712474619 \\sqrt{w_{1}}}{N \\sqrt{k} \\sqrt{μ}}$"
- ],
- "text/plain": [
- "2.82842712474619*sqrt(w1)/(N*sqrt(k)*sqrt(μ))"
- ]
- },
- "execution_count": 12,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "sp.solve(Fa, t)[1].subs({α: 0})"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 22,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "4.5"
- ]
- },
- "execution_count": 22,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "_F = sp.lambdify((α, t), F.subs(matpar), 'numpy')\n",
- "_F(0, 3)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 31,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/latex": [
- "$\\displaystyle \\frac{2.82842712474619 \\sqrt{w_{1}}}{N \\sqrt{k} \\sqrt{μ}}$"
- ],
- "text/plain": [
- "2.82842712474619*sqrt(w1)/(N*sqrt(k)*sqrt(μ))"
- ]
- },
- "execution_count": 31,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "\n",
- "tc = sp.solve(Fa, t)[1].subs({α: 0})\n",
- "tc"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 33,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/latex": [
- "$\\displaystyle 0.816496580927726$"
- ],
- "text/plain": [
- "0.816496580927726"
- ]
- },
- "execution_count": 33,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "_tc = sp.N(tc.subs(matpar))\n",
- "_tc"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 30,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- ""
- ]
- },
- "execution_count": 30,
- "metadata": {},
- "output_type": "execute_result"
- },
- {
- "data": {
- "image/png": "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",
- "text/plain": [
- "