From de5d06df3fa5966e08af348e95c23c7b3f8d4b9a Mon Sep 17 00:00:00 2001
From: rch <rostislav.chudoba@rwth-aachen.de>
Date: Wed, 16 Jun 2021 15:43:03 +0200
Subject: [PATCH] updated index

---
 index.ipynb                                   |   5 +-
 tour6_energy/6_1_energy_dissipation.ipynb     |   2 +-
 ...llout_constant_bond_and_rigid_matrix.ipynb |   4 +-
 .../6_3_localized_energy_dissipation.ipynb    | 107 +++---------------
 tour7_cracking/7_1_bending3pt_2d.ipynb        |  61 +++++-----
 tour7_cracking/bmcs_bending/bending3pt_2d.py  |  14 ++-
 6 files changed, 67 insertions(+), 126 deletions(-)

diff --git a/index.ipynb b/index.ipynb
index 6608f20..87a4a4c 100644
--- a/index.ipynb
+++ b/index.ipynb
@@ -83,8 +83,9 @@
     "| **[Tour 3:](#tour3)** | Nonlinear bond (hardening, softening -> failure modes: anchorage, cracing) |\n",
     "| **[Tour 4:](#tour4)** | Plastic bond behavior (irreversibility ->  energy dissipation) |\n",
     "| **[Tour 5:](#tour5)** | Damage bond behavior (2D sheet debonding) |\n",
-    "| **[Tour 6:](#tour6)** | Concrete cracking and yielding (bended cross section) |\n",
-    "| **[Tour 7:](#tour7)** | Beam deflection - comparison wth EC2 and Model Code |"
+    "| **[Tour 6:](#tour6)** | Energy supply, storage and dissipation |\n",
+    "| **[Tour 7:](#tour7)** | Crack propagation in concrete |\n",
+    "| **[Tour 6:](#tour6)** | Reinforced beam deflection - comparison wth EC2 and Model Code |"
    ]
   },
   {
diff --git a/tour6_energy/6_1_energy_dissipation.ipynb b/tour6_energy/6_1_energy_dissipation.ipynb
index f30e787..01943b4 100644
--- a/tour6_energy/6_1_energy_dissipation.ipynb
+++ b/tour6_energy/6_1_energy_dissipation.ipynb
@@ -265,7 +265,7 @@
     "\\mathcal{U}\n",
     "=\n",
     "\\frac{1}{2}\n",
-    "P u\n",
+    "P w\n",
     "\\end{align}"
    ]
   },
diff --git a/tour6_energy/6_2_Energy_released_in_pullout_constant_bond_and_rigid_matrix.ipynb b/tour6_energy/6_2_Energy_released_in_pullout_constant_bond_and_rigid_matrix.ipynb
index e380c4f..7a86feb 100644
--- a/tour6_energy/6_2_Energy_released_in_pullout_constant_bond_and_rigid_matrix.ipynb
+++ b/tour6_energy/6_2_Energy_released_in_pullout_constant_bond_and_rigid_matrix.ipynb
@@ -852,7 +852,7 @@
     {
      "data": {
       "application/vnd.jupyter.widget-view+json": {
-       "model_id": "9120b1cccc76430aae5a7efdb98f39cd",
+       "model_id": "bf81b2ddcd0446699882d4ac01fe17e2",
        "version_major": 2,
        "version_minor": 0
       },
@@ -973,7 +973,7 @@
    "cell_type": "markdown",
    "metadata": {},
    "source": [
-    "In this tests only a small zone contributes to energy dissipation. We shall illuminate this using the last example of a pullout test with softening behavior, now including the global evaluation of the energy dissipation. "
+    "In these tests only a small zone contributes to energy dissipation. We shall illuminate this using the last example of a pullout test with softening behavior, now including the global evaluation of the energy dissipation. "
    ]
   },
   {
diff --git a/tour6_energy/6_3_localized_energy_dissipation.ipynb b/tour6_energy/6_3_localized_energy_dissipation.ipynb
index b6cdfc7..52a7f2a 100644
--- a/tour6_energy/6_3_localized_energy_dissipation.ipynb
+++ b/tour6_energy/6_3_localized_energy_dissipation.ipynb
@@ -44,6 +44,15 @@
     "Based on energetic characterization of the material behavior we can address the key feature of brittle materials, namely the local nature of energy dissipation within a small volume of the structure. We will use the global evaluation of the energy dissipation implemented in the finite-element model to follow its evolution during the loading. This will allow us to relate the dissipated energy to the macroscopically observed change of the specimen, namely to the interface failure. In simple terms, we want to know how much energy is needed to completely damage the whole interface. Knowing this, we can say how much energy is needed to completely damage a unit area of the interface, which represents an important material characteristic of brittle materials, the **fracture energy**."
    ]
   },
+  {
+   "cell_type": "markdown",
+   "id": "c5c6a01a-8b65-4a3b-9df2-7f555f0a2baa",
+   "metadata": {},
+   "source": [
+    "**Correspondence between fracture and damage**:\n",
+    "Our goal is to prepare the platform for the general explanation of the correspondence between the theoretical concepts of fracture mechanics, i.e. the energetic characterization of the material disintegration, and between the strain-softening types of models used in the finite element simulation of brittle materials exhibiting cracking."
+   ]
+  },
   {
    "cell_type": "markdown",
    "id": "5a5a5bdb-1069-42ed-aa56-eb4ee5504076",
@@ -202,17 +211,8 @@
    "id": "69c34c2a-7455-4933-aeef-d785e55e821d",
    "metadata": {},
    "source": [
-    "The evaluation of the energy dissipation available in the `PullOutModel1D` for any kind of material model can be readily used to evaluate the energy dissipation during the loading history. To show the profile of the energy dissipation during the debonding process with a bond slip law exhibiting softening behavior, let us again run the preconfigured finite element analysis of the CFRP pullout test. The length of the sheet is 300 mm length the perimeter is 10 mm.\n",
-    "\n",
-    "**TODO Add the link to the sheet or add a figure**"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "id": "91c7b928-356f-4da2-9c65-acf9ad413221",
-   "metadata": {},
-   "source": [
-    "[CFRP model](../tour3_nonlinear_bond/3_1_nonlinear_bond.ipynb#cfrp_bond_slip)"
+    "The evaluation of the energy dissipation available in the `PullOutModel1D` for any kind of material model can be readily used to evaluate the energy dissipation during the loading history. To show the profile of the energy dissipation during the debonding process with a bond slip law exhibiting softening behavior, let us again run the preconfigured finite element analysis of the CFRP pullout test. The specification of the \n",
+    "test setup parameters and the bond-slip law has been provided in notebook [3.1](../tour3_nonlinear_bond/3_1_nonlinear_bond.ipynb#cfrp_bond_slip). To demonstrate the energy dissipation using a large interface area, we will use a longer length of bond zone, 500 mm. The perimeter will remain the same, i.e. 100 mm."
    ]
   },
   {
@@ -493,10 +493,10 @@
   },
   {
    "cell_type": "markdown",
-   "id": "750ac43c-0b74-4b54-a7da-d4b1a14caef3",
+   "id": "7b870b47-6a78-41ea-8739-0f19d984e273",
    "metadata": {},
    "source": [
-    "Exercises, change the parameter $G_\\mathrm{f}$ in the provided example and verify if it still corresponds well to the globally evaluated dissipated energy. Would the equivalence between $G_\\mathrm{F}$ and $G_\\mathrm{f}$ improve if the value of $G_\\mathrm{f}$ is increased or decreased?"
+    "# **Studies and exercises**"
    ]
   },
   {
@@ -504,76 +504,9 @@
    "id": "69377d4e-60e9-4ff8-9844-26ad4037931b",
    "metadata": {},
    "source": [
+    " - Change the parameter $G_\\mathrm{f}$ in the provided example and verify if it still corresponds well to the globally evaluated dissipated energy. Would the equivalence between $G_\\mathrm{F}$ and $G_\\mathrm{f}$ improve if the value of $G_\\mathrm{f}$ is increased or decreased?\n",
     " - Show the relation between the process zone and fracture energy. \n",
-    " - Show that the difference between the globally evaluated dissipated energy and the local fracture energy increases the more ductile the response, i.e. the larger the process zone.\n",
-    " - How to evaluate the energy in the cyclic loading scenario? Integration along $w \\mathrm{d}w$ must be replaced with $\\dfrac{\\mathrm{d}w}{\\mathrm{d}t} \\mathrm{d}t$.\n",
-    " - What is the profile of energy dissipation upon cyclic loading? With damage, with plasticity? "
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "id": "128f00a3-33a0-401e-a7ce-33e3ec17f69f",
-   "metadata": {},
-   "outputs": [],
-   "source": []
-  },
-  {
-   "cell_type": "markdown",
-   "id": "7516716c-224b-4d92-ba04-c83c4997a2ce",
-   "metadata": {},
-   "source": [
-    "**Material model as a material point with memory:**\n",
-    "Up to now, we have described the inelastic material behavior from the perspective of a material point\n",
-    "representing a small volume of a continuum.\n",
-    "In fact, we considered only one-dimensional continuum represented by the interface between the two material components. We focused on a point on this interface and followed the stress and strain evolution at this point. \n",
-    "The strain at the point was represented by the slip $s$ and the stress by the bond stress flow $\\tau$.\n",
-    "Our goal was to describe the relation between \n",
-    "$$\n",
-    "\\tau(s; \\boldsymbol{\\theta}),\n",
-    "$$\n",
-    "i.e. between shear stress $\\tau$, slip $s$  and state variables $\\boldsymbol{\\tau}$.\n",
-    "With state variables $\\boldsymbol{\\theta}$, exemplified by damage, plastic slip, kinematic or isotropic hardening, \n",
-    "we introduced a kind of material point _memory_.\n",
-    "Recall that in case of an explicitly prescribed _memoryless_ bond-slip law \n",
-    "$$\n",
-    "\\tau(s)\n",
-    "$$\n",
-    "as it was introduced in [Tour 3](../index.ipynb#tour3),\n",
-    "there was no material memory and no path dependency. \n",
-    "For more complex types of material behavior, exemplified by plasticity or damage, \n",
-    "the memory in form of state variables has been introduced to reflect irreversible changes in the material structure which affect the unloading and reloading response."
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "id": "c5c6a01a-8b65-4a3b-9df2-7f555f0a2baa",
-   "metadata": {},
-   "source": [
-    "**Correspondence between fracture and damage**:\n",
-    "Our goal is to prepare the platform for the general explanation of the correspondence between the theoretical concepts of fracture mechanics, i.e. the energetic characterization of the material disintegration, and between the strain-softening types of models used in the finite element simulation of brittle materials exhibiting cracking."
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "id": "bb2dbb61-cf47-4fe4-88fb-6f45945dbde5",
-   "metadata": {},
-   "source": []
-  },
-  {
-   "cell_type": "markdown",
-   "id": "ae3e9097-2d2a-4eae-ac0b-2acdf8d89d8a",
-   "metadata": {},
-   "source": [
-    "**Material softening leads to strain localization which induces small dissipative process zone**"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "id": "1f14a859-b21c-42fd-a861-27cd1c2db910",
-   "metadata": {},
-   "source": [
-    "**Dissipated energy can be evaluated directly by considering only the volume of the process zone** "
+    " - Show that the difference between the globally evaluated dissipated energy and the local fracture energy increases the more ductile the response, i.e. the larger the process zone."
    ]
   },
   {
@@ -584,16 +517,8 @@
     "<div style=\"background-color:lightgray;text-align:left;width:45%;display:inline-table;\"> <img src=\"../icons/previous.png\" alt=\"Previous trip\" width=\"50\" height=\"50\">\n",
     "    &nbsp; <a href=\"../tour6_energy/6_2_Energy_released_in_pullout_constant_bond_and_rigid_matrix.ipynb#top\">6.2 Frictional pullout and energy dissipation</a> \n",
     "</div><div style=\"background-color:lightgray;text-align:center;width:10%;display:inline-table;\"> <a href=\"#top\"><img src=\"../icons/compass.png\" alt=\"Compass\" width=\"50\" height=\"50\"></a></div><div style=\"background-color:lightgray;text-align:right;width:45%;display:inline-table;\"> \n",
-    "    <a href=\"../tour6_bending/7_1_cracking.ipynb#top\">7.1 Crack propagation</a>&nbsp; <img src=\"../icons/next.png\" alt=\"Previous trip\" width=\"50\" height=\"50\"> </div> "
+    "    <a href=\"../tour7_cracking/7_1_bending3pt_2d.ipynb#top\">7.1 Crack propagation</a>&nbsp; <img src=\"../icons/next.png\" alt=\"Previous trip\" width=\"50\" height=\"50\"> </div> "
    ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "id": "28c8c687-1266-4df3-901d-af8a04e4bfcd",
-   "metadata": {},
-   "outputs": [],
-   "source": []
   }
  ],
  "metadata": {
diff --git a/tour7_cracking/7_1_bending3pt_2d.ipynb b/tour7_cracking/7_1_bending3pt_2d.ipynb
index 504b2c4..bd866e8 100644
--- a/tour7_cracking/7_1_bending3pt_2d.ipynb
+++ b/tour7_cracking/7_1_bending3pt_2d.ipynb
@@ -172,7 +172,7 @@
     {
      "data": {
       "application/vnd.jupyter.widget-view+json": {
-       "model_id": "e669d03631514d1fb9ab422741bcf0cc",
+       "model_id": "d447f54b896a4597924ccb82c5eb082d",
        "version_major": 2,
        "version_minor": 0
       },
@@ -213,7 +213,7 @@
     {
      "data": {
       "application/vnd.jupyter.widget-view+json": {
-       "model_id": "8d5e86e3c1fc4401a6842fbbe9006618",
+       "model_id": "a0df588d7e6648cb86ac384d03b07b2b",
        "version_major": 2,
        "version_minor": 0
       },
@@ -305,23 +305,13 @@
   {
    "cell_type": "code",
    "execution_count": 5,
-   "id": "2a956afb-0425-4318-9335-628675151680",
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "#bt.run()"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 6,
    "id": "bf30823c-3ed8-4e8b-a84c-23cc25c8e094",
    "metadata": {},
    "outputs": [
     {
      "data": {
       "application/vnd.jupyter.widget-view+json": {
-       "model_id": "5a4f3a0f856d4f7cb1834e91b8bc84ce",
+       "model_id": "0c8e0d810fef4d439294ca2fb7e0ed4f",
        "version_major": 2,
        "version_minor": 0
       },
@@ -334,6 +324,7 @@
     }
    ],
    "source": [
+    "bt.run()\n",
     "bt.interact()"
    ]
   },
@@ -358,7 +349,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 7,
+   "execution_count": 6,
    "id": "752906fd-2a8a-44ec-b77c-9e3a496f9c0f",
    "metadata": {
     "tags": []
@@ -370,7 +361,7 @@
        "5000.0"
       ]
      },
-     "execution_count": 7,
+     "execution_count": 6,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -390,7 +381,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 8,
+   "execution_count": 7,
    "id": "ec96f0ce-0f91-4d3a-8d59-d3cedb3a9f9c",
    "metadata": {},
    "outputs": [
@@ -400,7 +391,7 @@
        "0.1092317778327407"
       ]
      },
-     "execution_count": 8,
+     "execution_count": 7,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -419,7 +410,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 9,
+   "execution_count": 8,
    "id": "8265609d-ed22-4240-a1ac-22bd025137a8",
    "metadata": {},
    "outputs": [
@@ -429,7 +420,7 @@
        "546.1588891637035"
       ]
      },
-     "execution_count": 9,
+     "execution_count": 8,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -449,12 +440,24 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 11,
+   "execution_count": 9,
    "id": "e5e6854c-6ec7-43a7-b4bc-d6a725af6b79",
    "metadata": {},
-   "outputs": [],
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "323.0090836044084"
+      ]
+     },
+     "execution_count": 9,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
    "source": [
-    "#bt.hist['energy'].G_t[-1]"
+    "import numpy as np\n",
+    "bt.hist.W_t[-1]-np.max( bt.hist.U_bar_t )"
    ]
   },
   {
@@ -476,7 +479,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 12,
+   "execution_count": 10,
    "id": "fd5696fa-725e-4c7b-bac8-f263bdf532d3",
    "metadata": {},
    "outputs": [],
@@ -487,7 +490,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 13,
+   "execution_count": 11,
    "id": "c83a2693-4fbe-4ce8-a3eb-0a281430f1b7",
    "metadata": {},
    "outputs": [
@@ -528,14 +531,14 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 14,
+   "execution_count": 12,
    "id": "cf30a1f8-7eae-4aa4-8101-fe8337c6cba8",
    "metadata": {},
    "outputs": [
     {
      "data": {
       "application/vnd.jupyter.widget-view+json": {
-       "model_id": "ce75fbdb25374f38a4a3256cf8a6cf79",
+       "model_id": "8bbc54db68c24e8183d3e7310d480661",
        "version_major": 2,
        "version_minor": 0
       },
@@ -588,7 +591,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 20,
+   "execution_count": 13,
    "id": "0e49628e-0d75-4a92-a1e9-74386de668fc",
    "metadata": {},
    "outputs": [
@@ -628,14 +631,14 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 21,
+   "execution_count": 14,
    "id": "bc7eb155-af93-45db-b1c8-7237afbffb1f",
    "metadata": {},
    "outputs": [
     {
      "data": {
       "application/vnd.jupyter.widget-view+json": {
-       "model_id": "f773de20d27e4bc08073683588a5913e",
+       "model_id": "58058a37fc0e4926b4130214c7ab3f63",
        "version_major": 2,
        "version_minor": 0
       },
diff --git a/tour7_cracking/bmcs_bending/bending3pt_2d.py b/tour7_cracking/bmcs_bending/bending3pt_2d.py
index 4c31dd8..5a15d6a 100755
--- a/tour7_cracking/bmcs_bending/bending3pt_2d.py
+++ b/tour7_cracking/bmcs_bending/bending3pt_2d.py
@@ -261,9 +261,19 @@ class BendingHistory(Hist, Model):
         ax.set_xlabel(r'$w$ [mm]')
         # ax.legend()
 
+    U_bar_t = tr.Property
+    def _get_U_bar_t(self):
+        vis_energy = self['energy']
+        return vis_energy.U_bar_t
+
+    W_t = tr.Property
+    def _get_W_t(self):
+        vis_energy = self['energy']
+        return vis_energy.get_W_t()
+
     def plot_G_t(self, ax,
              label_U='U(t)', label_W='W(t)',
-             color_U='blue', color_W='red'):
+             color_U='green', color_W='black'):
         vis_energy = self['energy']
         t = vis_energy.get_t()
         U_bar_t = vis_energy.U_bar_t
@@ -272,6 +282,8 @@ class BendingHistory(Hist, Model):
         ax.plot(t, U_bar_t, color=color_U, label=label_U)
         ax.fill_between(t, W_t, U_bar_t, facecolor='gray', alpha=0.5,
                         label='G(t)')
+        ax.fill_between(t, U_bar_t, 0, facecolor=color_U, alpha=0.5,
+                        label='G(t)')
         ax.set_ylabel('energy [Nmm]')
         ax.set_xlabel('control displacement [mm]')
         ax.legend()
-- 
GitLab