Skip to content
Snippets Groups Projects
Commit 84effe35 authored by Rostislav Chudoba's avatar Rostislav Chudoba
Browse files

introduction

parent 776dcfc6
No related branches found
No related tags found
No related merge requests found
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
# **Brittle-Matrix Composite Structures** # **Brittle-Matrix Composite Structures**
Institute of Structural Concrete; @author: Rostislav Chudoba, Abedulgader Baktheer Institute of Structural Concrete; @author: Rostislav Chudoba, Abedulgader Baktheer
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
## Expedition investigating the BMCS landscape ## BMCS landscape
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
| | | | | | | | | |
|-|-|-------|------| |-|-|-------|------|
| ![image-15.png](attachment:image-15.png) | ![image-4.png](fig/reinforcement.png) | ![image-2.png](fig/bond.png) | ![image.png](fig/matrix.png) | | ![image-15.png](attachment:image-15.png) | ![image-4.png](fig/reinforcement.png) | ![image-2.png](fig/bond.png) | ![image.png](fig/matrix.png) |
| ![image-14.png](attachment:image-14.png) | [![image-6.png](fig/pullout.png)](pull_out/pull_out.ipynb) | ![image-7.png](fig/crack_bridge.png)| [![image-8.png](fig/mkappa.png)](mkappa/mkappa.ipynb) | | ![image-14.png](attachment:image-14.png) | [![image-6.png](fig/pullout.png)](pull_out/pull_out.ipynb) | ![image-7.png](fig/crack_bridge.png)| [![image-8.png](fig/mkappa.png)](mkappa/mkappa.ipynb) |
| ![image-13.png](attachment:image-13.png) | [![image-9.png](fig/tension.png)](pull_out/fragmentation.ipynb) | [![image-10.png](fig/bending.png)](bending/bending_3pt.ipynb) | ![image-11.png](fig/compression.png) | | ![image-13.png](attachment:image-13.png) | [![image-9.png](fig/tension.png)](pull_out/fragmentation.ipynb) | [![image-10.png](fig/bending.png)](bending/bending_3pt.ipynb) | ![image-11.png](fig/compression.png) |
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
## Guided tours provided through BMCS landscape ## Guided tours provided through BMCS landscape
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
| No. | Title | | No. | Title |
|- | - | |- | - |
| **[Tour 1:](#tour1)** | Mixture rule (effective composite stiffness) | | **[Tour 1:](#tour1)** | Mixture rule (effective composite stiffness) |
| **[Tour 2:](#tour2)** | Constant bond (friction, pull-out, crack-bridge, multiple cracking) | | **[Tour 2:](#tour2)** | Constant bond (friction, pull-out, crack-bridge, multiple cracking) |
| **[Tour 3:](#tour3)** | Nonlinear bond (hardening, softening -> failure modes: anchorage, cracing) | | **[Tour 3:](#tour3)** | Nonlinear bond (hardening, softening -> failure modes: anchorage, cracing) |
| **[Tour 4:](#tour4)** | Plastic bond behavior (irreversibility -> energy dissipation) | | **[Tour 4:](#tour4)** | Plastic bond behavior (irreversibility -> energy dissipation) |
| **[Tour 5:](#tour5)** | Damage bond behavior (2D sheet debonding) | | **[Tour 5:](#tour5)** | Damage bond behavior (2D sheet debonding) |
| **[Tour 6:](#tour6)** | Energy supply, storage and dissipation | | **[Tour 6:](#tour6)** | Energy supply, storage and dissipation |
| **[Tour 7:](#tour7)** | Crack propagation in concrete | | **[Tour 7:](#tour7)** | Crack propagation in concrete |
| **[Tour 8:](#tour8)** | Reinforced beam deflection - comparison wth EC2 and Model Code | | **[Tour 8:](#tour8)** | Reinforced beam deflection - comparison wth EC2 and Model Code |
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
## Tools used in the BMCS
%% Cell type:markdown id: tags:
| Engine and wheels | Further information |
|-- |---|
| Jupyter notebooks | |
| OpenWebApps | |
| Elementary syntax of Python language | |
| Plotting tools | `matplotlib` |
| Computer Algebra System | `sympy` |
%% Cell type:markdown id: tags:
## Knowledge and skills developed during the BMCS expedition ## Knowledge and skills developed during the BMCS expedition
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
* Understand nonlinear material behavior, stress-redistribution, objectivity of material laws * Understand nonlinear material behavior, stress-redistribution, objectivity of material laws
* Develop a basic understanding of damage, plasticity, fracture * Develop a basic understanding of damage, plasticity, fracture
* Formulate simplified analytical models capturing material and structural behavior * Formulate simplified analytical models capturing material and structural behavior
* Compare self-developed analytical models with general finite-element models * Compare self-developed analytical models with general finite-element models
* Distinguish model verification, calibration, validation and parametric studies * Distinguish model verification, calibration, validation and parametric studies
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
<div style="background-color:lightgreen;text-align:left"> <img src="icons/rest.png" alt="Step by step" width="40" height="40">
&nbsp; &nbsp; <b>Our current location</b> </div>
%% Cell type:markdown id: tags:
<a id="tour1"></a> <a id="tour1"></a>
## **Tour 1**: Introduction ## **Tour 1**: Introduction
### 1.1 A roadmap through the BMCS landscape ### 1.1 A roadmap through the BMCS landscape
### 1.2 Introduction to Jupyter Web Apps and notebooks Topics, structure and organization of the course with a teaser about the thin concrete shells made of textile-reinforced concrete and oricrete.
[**Structure, method, teaser**](tour1_intro/1_1_roadmap.ipynb#top)
### 1.2 Introduction to Jupyter Lab and Notebooks
Not only static slides and videos but also the possibility to interactively put your fingers on the theory in terms of prepared interactive applications is used throughout the course. Not only static slides and videos but also the possibility to interactively put your fingers on the theory in terms of prepared interactive applications is used throughout the course.
<!-- Basic information how to <!-- Basic information how to
use the `jupyter` notebooks are summarized here:</br> use the `jupyter` notebooks are summarized here:</br>
[**Web Apps:** first steps](link) [**Web Apps:** first steps](link)
--> -->
[**Jupyter notebooks and Python**: short introduction](tour1_intro/1_2_jupyter_python.ipynb#top)
### 1.3 Interactive computational environment ### 1.3 Interactive computational environment
To demonstrate the theory on examples that can be interactively modified, let us consider an elementary case of mixture rule to determine the effective stiffness of an elastic composite </br> To demonstrate the theory on examples that can be interactively modified, let us consider an elementary case of mixture rule to determine the effective stiffness of an elastic composite </br>
[**Mixture rule**: example elastic mixture rule](tour1_intro/1_1_elastic_stiffness_of_the_composite.ipynb#top) [**Mixture rule**: example elastic mixture rule](tour1_intro/1_3_elastic_stiffness_of_the_composite.ipynb#top)
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
<a id="tour2"></a> <a id="tour2"></a>
## **Tour 2:** Constant bond - pull-out, crack bridge, fragmentation ## **Tour 2:** Constant bond - pull-out, crack bridge, fragmentation
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
### 2.1 - Pull-out from rigid matrix - test setup and theory ### 2.1 - Pull-out from rigid matrix - test setup and theory
Using the analytical solution of the pullout problem assuming constant bond-slip law, elastic fiber and rigid matrix, we first explore the fundamental relations between the measured pull-out curve of a steel-rebar from the concrete matrix:</br> Using the analytical solution of the pullout problem assuming constant bond-slip law, elastic fiber and rigid matrix, we first explore the fundamental relations between the measured pull-out curve of a steel-rebar from the concrete matrix:</br>
[**Pull-out:** analytical constant-bond model](tour2_constant_bond/2_1_1_PO_observation.ipynb#top) [**Pull-out:** analytical constant-bond model](tour2_constant_bond/2_1_1_PO_observation.ipynb#top)
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
### 2.2 - Classification of pullout configurations with constant bond stress ### 2.2 - Classification of pullout configurations with constant bond stress
Include further configurations of a pull-out to show the differences in their behavior, learning the correspondence between the shape of the pull-out curve and the distribution of slip, shear, fiber and matrix strain and stresses depending on a particular configuration, i.e. elastic matrix, short fiber, short matrix and clamped fiber:</br> Include further configurations of a pull-out to show the differences in their behavior, learning the correspondence between the shape of the pull-out curve and the distribution of slip, shear, fiber and matrix strain and stresses depending on a particular configuration, i.e. elastic matrix, short fiber, short matrix and clamped fiber:</br>
[**Pull-out:** extended analytical constant-bond models - short / long / elastic / clamped](tour2_constant_bond/2_2_1_PO_configuration_explorer.ipynb#top) [**Pull-out:** extended analytical constant-bond models - short / long / elastic / clamped](tour2_constant_bond/2_2_1_PO_configuration_explorer.ipynb#top)
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
### 2.3 - Multiple cracking - fragmentation ### 2.3 - Multiple cracking - fragmentation
The crack-bridging action of a fiber within a composite loaded in tension is a key to understanding the behavior of brittle-matrix composites. By putting crack bridges in a series, we can directly simulate a tensile test and predict the test response in terms of the stress-strain and crack spacing curves. This helps us to study and understand the relation between reinforcement ratio, bond strength, matrix strenth and the tensile response of the composite: The crack-bridging action of a fiber within a composite loaded in tension is a key to understanding the behavior of brittle-matrix composites. By putting crack bridges in a series, we can directly simulate a tensile test and predict the test response in terms of the stress-strain and crack spacing curves. This helps us to study and understand the relation between reinforcement ratio, bond strength, matrix strenth and the tensile response of the composite:
</br> </br>
[**Multiple cracking:** tensile response of a composite](tour2_constant_bond/fragmentation.ipynb#top) [**Multiple cracking:** tensile response of a composite](tour2_constant_bond/fragmentation.ipynb#top)
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
<a id="tour3"></a> <a id="tour3"></a>
## **Tour 3:** Non-linear bond-slip law ## **Tour 3:** Non-linear bond-slip law
### 3.1 - Pull-out with softening and hardening bond behavior ### 3.1 - Pull-out with softening and hardening bond behavior
The shape of the bond-slip law is distinguished into hardening and softening leading to a completely different pull-out behavior. A numerical model of the pull-out test is used to monitor and explain the debonding process in two studies for steel and CFRP bond to concrete showing a qualitatively different behavior.</br> The shape of the bond-slip law is distinguished into hardening and softening leading to a completely different pull-out behavior. A numerical model of the pull-out test is used to monitor and explain the debonding process in two studies for steel and CFRP bond to concrete showing a qualitatively different behavior.</br>
[**Pull-out**: with softening and hardening](tour3_nonlinear_bond/3_1_nonlinear_bond.ipynb#top) [**Pull-out**: with softening and hardening](tour3_nonlinear_bond/3_1_nonlinear_bond.ipynb#top)
### 3.2 - Effect of bond length: anchorage versus pull-out failure ### 3.2 - Effect of bond length: anchorage versus pull-out failure
With the developed understanding, we address questions related to design rules: What is the necessary bond length to avoid or to deliberately induce a fiber pull-out or fiber rupture. At which distance from the loaded end can we expect a matrix crack to appear?</br> With the developed understanding, we address questions related to design rules: What is the necessary bond length to avoid or to deliberately induce a fiber pull-out or fiber rupture. At which distance from the loaded end can we expect a matrix crack to appear?</br>
[**Anchorage**: pull-out, fiber rupture, matrix crack](tour3_nonlinear_bond/3_2_anchorage_length.ipynb#top) [**Anchorage**: pull-out, fiber rupture, matrix crack](tour3_nonlinear_bond/3_2_anchorage_length.ipynb#top)
### Related optional support material ### Related optional support material
The numerical vehicles used in the above two trips are provided here in a more detail as a bonus material.</br> The numerical vehicles used in the above two trips are provided here in a more detail as a bonus material.</br>
[**Appendix**: Newton iterative scheme](extras/newton_method.ipynb#top)</br> [**Appendix**: Newton iterative scheme](extras/newton_method.ipynb#top)</br>
[**Appendix**: Nonlinear finite-element solver for 1d pullout](extras/pullout1d.ipynb#top) [**Appendix**: Nonlinear finite-element solver for 1d pullout](extras/pullout1d.ipynb#top)
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
<a id="tour4"></a> <a id="tour4"></a>
## **Tour 4:** Irreversibility due to yielding ## **Tour 4:** Irreversibility due to yielding
### 4.1 - Unloading and reloading ### 4.1 - Unloading and reloading
Non-linear behavior can be described by nonlinear functions as we did so far. However, Non-linear behavior can be described by nonlinear functions as we did so far. However,
this description cannot capture the irreversible changes within the material structure. this description cannot capture the irreversible changes within the material structure.
To demonstrate this, let us revisit the pull-out tests and consider a loading scenario with unloading and reloading.</br> To demonstrate this, let us revisit the pull-out tests and consider a loading scenario with unloading and reloading.</br>
[Unloading with multi-linear bond-slip law](tour4_plastic_bond/4_1_PO_multilinear_unloading.ipynb#top) [Unloading with multi-linear bond-slip law](tour4_plastic_bond/4_1_PO_multilinear_unloading.ipynb#top)
### 4.2 - The basic concept of plasticity ### 4.2 - The basic concept of plasticity
The first option in describing irreversible changes in a material point is the The first option in describing irreversible changes in a material point is the
plasticity. The stick-slip interface represents the simplest possible plasticity. The stick-slip interface represents the simplest possible
type of plastic behavior that can be conveniently used to explain the key concept type of plastic behavior that can be conveniently used to explain the key concept
behind all material models introducing plastic behavior.</br> behind all material models introducing plastic behavior.</br>
[Ideal, isotropic and kinematic hardening of an interface](tour4_plastic_bond/4_2_BS_EP_SH_I_A.ipynb#top) [Ideal, isotropic and kinematic hardening of an interface](tour4_plastic_bond/4_2_BS_EP_SH_I_A.ipynb#top)
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
### 4.3 - Cyclic pullout test and plastic material behavior ### 4.3 - Cyclic pullout test and plastic material behavior
With the knowledge of the plasticity at a material point level, let us study the effect of unloading and reloading at the level of a structure. In particular, we learn to interpret the meaning of the unloading stiffness at the level of a structure.</br> With the knowledge of the plasticity at a material point level, let us study the effect of unloading and reloading at the level of a structure. In particular, we learn to interpret the meaning of the unloading stiffness at the level of a structure.</br>
[Cyclic pullout of textile fabrics and CFRP sheets](tour4_plastic_bond/4_3_PO_trc_cfrp_cyclic.ipynb#top) [Cyclic pullout of textile fabrics and CFRP sheets](tour4_plastic_bond/4_3_PO_trc_cfrp_cyclic.ipynb#top)
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
<a id="tour5"></a> <a id="tour5"></a>
## **Tour 5:** Irreversibility due to damage ## **Tour 5:** Irreversibility due to damage
### 5.1 Damage initiation, damage evolution, 2D bond behavior ### 5.1 Damage initiation, damage evolution, 2D bond behavior
We are going to define several damage functions which are used in damage models available in finite element codes. Their definition is based on an assumed profile of breakage propagation. The derived damage functions are then used to model a two-dimensional interface with slip and shear stress defined as a vector.</br> We are going to define several damage functions which are used in damage models available in finite element codes. Their definition is based on an assumed profile of breakage propagation. The derived damage functions are then used to model a two-dimensional interface with slip and shear stress defined as a vector.</br>
[Damage initiation, damage evolution, 2D bond behavior](tour5_damage_bond/5_1_Introspect_Damage_Evolution_Damage_initiation.ipynb) [Damage initiation, damage evolution, 2D bond behavior](tour5_damage_bond/5_1_Introspect_Damage_Evolution_Damage_initiation.ipynb)
### 5.2 Pullout behavior governed by damage [in production] ### 5.2 Pullout behavior governed by damage [in production]
Application of the damage model to pullout test is used to discuss general aspects of damage models applied in finite element calculations.</br> Application of the damage model to pullout test is used to discuss general aspects of damage models applied in finite element calculations.</br>
[Pull out simulation using damage model](tour5_damage_bond/5_2_PO_cfrp_damage.ipynb) [Pull out simulation using damage model](tour5_damage_bond/5_2_PO_cfrp_damage.ipynb)
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
<a id="tour6"></a> <a id="tour6"></a>
## **Tour 6:** Energy and fracture ## **Tour 6:** Energy and fracture
### 6.1 Energy flow - supply, storage, dissipation ### 6.1 Energy flow - supply, storage, dissipation
Inelastic deformation induces energy dissipation. By distinguishing stored and lost energy within a system we can provide another physical perspective to the changes in the material structure.</br> Inelastic deformation induces energy dissipation. By distinguishing stored and lost energy within a system we can provide another physical perspective to the changes in the material structure.</br>
[Energy games](tour6_energy/6_1_energy_dissipation.ipynb#top) [Energy games](tour6_energy/6_1_energy_dissipation.ipynb#top)
### 6.2 Frictional pullout and energy dissipation ### 6.2 Frictional pullout and energy dissipation
The analytical solution of the pullout test provides a suitable model to demonstrate the evaluation of the energy dissipation within an initial boundary value problem with including an inelastic deformation.</br> The analytical solution of the pullout test provides a suitable model to demonstrate the evaluation of the energy dissipation within an initial boundary value problem with including an inelastic deformation.</br>
[Frictional pullout and energy dissipation](tour6_energy/6_2_Energy_released_in_pullout_constant_bond_and_rigid_matrix.ipynb#top) [Frictional pullout and energy dissipation](tour6_energy/6_2_Energy_released_in_pullout_constant_bond_and_rigid_matrix.ipynb#top)
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
### 6.3 Localization and fracture energy ### 6.3 Localization and fracture energy
Application of the local energy evaluation scheme to the pullout simulation with softening behavior provides us a clear interpretation of fracture energy</br> Application of the local energy evaluation scheme to the pullout simulation with softening behavior provides us a clear interpretation of fracture energy</br>
[Localization and fracture energy](tour6_energy/6_3_localized_energy_dissipation.ipynb#top) [Localization and fracture energy](tour6_energy/6_3_localized_energy_dissipation.ipynb#top)
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
<a id="tour7"></a> <a id="tour7"></a>
## **Tour 7:** Bending and crack propagation ## **Tour 7:** Bending and crack propagation
### 7.1 Notched beam with straight crack propagation ### 7.1 Notched beam with straight crack propagation
With the possibility to evaluate energy dissipation, we study the crack propagation With the possibility to evaluate energy dissipation, we study the crack propagation
in a notched bending test using a finite-element model. This study presents the reasoning behind in a notched bending test using a finite-element model. This study presents the reasoning behind
the identification of fracture energy using the notched bending test. the identification of fracture energy using the notched bending test.
At the same time, it illuminates how to correctly reflect the crack localization At the same time, it illuminates how to correctly reflect the crack localization
in the standard finite-element method.</br> in the standard finite-element method.</br>
[Propagation of a straight crack](tour7_cracking/7_1_bending3pt_2d.ipynb#top) [Propagation of a straight crack](tour7_cracking/7_1_bending3pt_2d.ipynb#top)
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
### 7.2 Experimental identification of fracture energy and size effect ### 7.2 Experimental identification of fracture energy and size effect
The explained correspondence between work supplied to the test and the energy dissipation is exploited to design a simple test setup delivering an estimate of the fracture energy as a fundamental characteristic of concrete behavior. The important consequence of localization behavior inducing a so called size effect is presented using a simple parametric study.</br> The explained correspondence between work supplied to the test and the energy dissipation is exploited to design a simple test setup delivering an estimate of the fracture energy as a fundamental characteristic of concrete behavior. The important consequence of localization behavior inducing a so called size effect is presented using a simple parametric study.</br>
[Fracture energy and size effect](tour7_cracking/7_2_fracture_energy_ident.ipynb#top) [Fracture energy and size effect](tour7_cracking/7_2_fracture_energy_ident.ipynb#top)
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
<a id="tour8"></a> <a id="tour8"></a>
## **Tour 8:** Reinforced bended cross section ## **Tour 8:** Reinforced bended cross section
### 8.1 Moment-curvature derived for arbitrary cross-sectional layout ### 8.1 Moment-curvature derived for arbitrary cross-sectional layout
The behavior of a reinforced cross section can be characterized using The behavior of a reinforced cross section can be characterized using
a nonlinear moment-curvature relation. This relation describes the effect a nonlinear moment-curvature relation. This relation describes the effect
of multiple cracking and debonding in the tensile, crack bridging action of multiple cracking and debonding in the tensile, crack bridging action
including debonding, and nonlinear response of concrete in the compression zone.</br> including debonding, and nonlinear response of concrete in the compression zone.</br>
[Nonlinear moment-curvature relation](tour8_rcbeam/8_1_rc_beam_mkapa.ipynb#top) [Nonlinear moment-curvature relation](tour8_rcbeam/8_1_rc_beam_mkapa.ipynb#top)
### 8.2 Load deflection curve of reinforced concrete beam ### 8.2 Load deflection curve of reinforced concrete beam
The description of the stress redistribution due to cracking, debonding and The description of the stress redistribution due to cracking, debonding and
concrete yielding under compression within the moment-curvature relation concrete yielding under compression within the moment-curvature relation
can be used for a very efficient assessment of maximum beam deflection can be used for a very efficient assessment of maximum beam deflection
or column stability. An efficient evaluation procedure can be used to cover or column stability. An efficient evaluation procedure can be used to cover
a broad application spectrum and to generate general design formulas for a broad application spectrum and to generate general design formulas for
serviceability limit state design.</br> serviceability limit state design.</br>
[From a model to a design rule](tour8_rcbeam/8_2_rc_beam_uls_sls.ipynb#top) [From a model to a design rule](tour8_rcbeam/8_2_rc_beam_uls_sls.ipynb#top)
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
<div style="background-color:lightgreen;text-align:left"> <img src="icons/rest.png" alt="Step by step" width="40" height="40">
&nbsp; &nbsp; <b>Our current location</b> </div>
%% Cell type:markdown id: tags:
<a id="tour9"></a> <a id="tour9"></a>
## **Tour 9:** Retrospective, summary of questions ## **Tour 9:** Retrospective, summary of questions
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
``` ```
......
This diff is collapsed.
%% Cell type:markdown id: tags:
<a id="top"></a>
# **1.2 Introduction to Jupyter and Python**
## Is BMCS a programming course? **NO!**
Smooth introduction to scripting, an activity that allows us to automate tedious manual calculations.
We will use the **scripts of prepared code** in the `Python` language to assemble
and quickly configure analytical or numerical model components that will demonstrate the
explained theory. At the same time, we will use the short scripts to extract the results af the models and to plot them. We will use established python packages for scientific computing and visualization. It is not
necessary to know these tools in detail. It is sufficient to know how to adapt and change
parameters within an existing code. The hope is, that students can seamlesly start simple coding
and develop confidence into their ability to use a huge amount of functionality available in the open-source ecosystem of scientific computing packages provided in `Python`.
There is a reason why popularity of `Python` is steadily growing since 25 years. Here is a historical perspective of [Most Popular Programming Languages 1965 - 2019](https://www.youtube.com/watch?v=Og847HVwRSI). Wait till the end of it ;-)
%% Cell type:markdown id: tags:
## What are Jupyter notebooks?
%% Cell type:markdown id: tags:
The **Jupyter Notebook** is an open-source web application that allows you to create and share documents that contain live code, equations, visualizations and narrative text. Uses include: data cleaning and transformation, numerical simulation, statistical modeling, data visualization, machine learning, and much more. See the [Documentation of notebooks within Jupyter Lab](https://jupyterlab.readthedocs.io/en/stable/user/notebook.html) for introduction.
%% Cell type:markdown id: tags:
Historically, **Jupyter Notebooks** evolved from an interactive `Python` environment called `IPython`. This tool constitutes the
engine behind the jupyter notebook. A notebook consists of cells which can contain an executable code or markup language, latex formatted formulas, and images. It represents a media which is widely used in education.
%% Cell type:markdown id: tags:
**Jupyter Lab** has been set on top of the notebook infrastructure to provide an integrated development environment (IDE). It can accomodate several projects in a single workspace, it can be linked with a git repository e.g. [github.com](https//github.com) or [git.rwth-aachen.de](https://git.rwth-aachen.de). The documentation of the user interface is provided here: [Jupyter Lab interface](https://jupyterlab.readthedocs.io/en/stable/user/interface.html)
%% Cell type:markdown id: tags:
**Jupyter Hub** is a server platform providing the Lab and Notebook functionality to many users. It can be coupled with a central user management of a company or a university. At RWTH University a central Jupyter Hub has been provided since 2020 at [jupyter.rwth-aachen.de](https://jupyter.rwth-aachen.de)
An example of a publically available Jupyter Hub is [Google Colab](https://colab.research.google.com/github/coolernato/Introduction-to-Python/blob/master/Using%20Jupyter%20Notebooks.ipynb)
%% Cell type:markdown id: tags:
**IDE:** Except of Jupyter Lab, integrated development environments supporting the development of `Python` code to provide packages such as the **BMCS** packages that are used in this course. Two leading IDEs are [Visual Studio Code](https://code.visualstudio.com) or [PyCharm](https://www.jetbrains.com/pycharm).
%% Cell type:markdown id: tags:
## Scientific Computing Packages
%% Cell type:markdown id: tags:
The combination of highly accessible and publically available platform of **Jupyter Notebooks** via **Jupyter Lab** and **Jupyter Hub** in combination with modern and popular languages, namely `Python`, `Julia`, `R` offers an ideal development platform that can make use of established libraries and tools for scientific computing.
%% Cell type:markdown id: tags:
The basic syntax and usage of the `Python` language is provided e.g. here
%% Cell type:markdown id: tags:
In the BMCS course, we will make use of the following `Python` libraries
- `matplotlib` - how to plot fancy diagrams - [matplotlib.org/](https://matplotlib.org/)
- `sympy` - how to perform algebraic manipulations - [www.sympy.org](https://www.sympy.org)
- `numpy` - how to manipulate data - beyond `Excel` [https://numpy.org](https://numpy.org/)
- `scipy` - how to solve, optimize, interpolate, ... numerically` [https://scipy.org](https://scipy.org/)
%% Cell type:markdown id: tags:
<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">
&nbsp; <a href="1_1_roadmap.ipynb#top">1.1 Topics</a>
</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;">
<a href="../tour1_intro/1_3_elastic_stiffness_of_the_composite.ipynb#top">1.3 Example - Mixture Rule</a>&nbsp; <img src="../icons/next.png" alt="Previous trip" width="50" height="50"> </div>
%% Cell type:code id: tags:
``` python
```
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
<a id="top"></a> <a id="top"></a>
# **1.3 Calculate elastic stiffness of a given composite** # **1.3 Calculate elastic stiffness of a given composite**
[![title](../fig/bmcs_video.png)](https://moodle.rwth-aachen.de/mod/page/view.php?id=551801) [![title](../fig/bmcs_video.png)](https://moodle.rwth-aachen.de/mod/page/view.php?id=551801)
## Task ## Task
Predict the tensile stiffness of a reinforced concrete cross section shown in the Figure with the thickness of 10~mm and width of 100 mm. Predict the tensile stiffness of a reinforced concrete cross section shown in the Figure with the thickness of 10~mm and width of 100 mm.
The cross-section is reinforced with 6 layers of textile fabrics made of CAR-EP3300 specified in the table below The cross-section is reinforced with 6 layers of textile fabrics made of CAR-EP3300 specified in the table below
![image.png](../fig/mixture_rule_elastic.png) ![image.png](../fig/mixture_rule_elastic.png)
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
## Theory ## Theory
The derived mixture rule will be used to solve the task The derived mixture rule will be used to solve the task
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
![image.png](attachment:image.png) ![image.png](attachment:image.png)
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
## Data ## Data
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
\begin{array}{|c|c|c|c|c|c|} \begin{array}{|c|c|c|c|c|c|}
\mathrm{Label} \mathrm{Label}
& \mathrm{Material} & \mathrm{Material}
& \mathrm{Area } & \mathrm{Area }
& \mathrm{Grid\; spacing} & \mathrm{Grid\; spacing}
& \mathrm{Stiffness} & \mathrm{Stiffness}
& \mathrm{Strength\; (characteristic)} & \mathrm{Strength\; (characteristic)}
\\ \\
\hline \hline
& &
& [\mathrm{mm}^2] & [\mathrm{mm}^2]
& [\mathrm{mm}] & [\mathrm{mm}]
& [\mathrm{MPa}] & [\mathrm{MPa}]
& [\mathrm{Mpa}] & [\mathrm{Mpa}]
\\ \\
\hline \hline
\mathrm{CAR-EP3300} \mathrm{CAR-EP3300}
& \mathrm{carbon/proxy} & \mathrm{carbon/proxy}
& 1.84 & 1.84
& 25.77 & 25.77
& 240000 & 240000
& 3500 & 3500
\\ \\
\hline \hline
\mathrm{solidian\; GRID \; Q95} \mathrm{solidian\; GRID \; Q95}
& \mathrm{carbon/proxy} & \mathrm{carbon/proxy}
& 3.62 & 3.62
& 36.0 & 36.0
& 240000 & 240000
& 3200 & 3200
\\ \\
\end{array} \end{array}
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
# How to evaluate an expression? # How to evaluate an expression?
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
**Calculator:** Let us use Python language as a calculator and evalute the mixture rule for the exemplified cross-section.m **Calculator:** Let us use Python language as a calculator and evalute the mixture rule for the exemplified cross-section.m
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
A_roving = 1.84 # [mm**2] A_roving = 1.84 # [mm**2]
n_layers = 6 # - n_layers = 6 # -
spacing = 25.77 # [mm] spacing = 25.77 # [mm]
thickness = 10 # [mm] thickness = 10 # [mm]
width = 100 # [mm] width = 100 # [mm]
E_carbon = 240000 # [MPa] E_carbon = 240000 # [MPa]
E_concrete = 28000 # [MPa] E_concrete = 28000 # [MPa]
``` ```
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
A_composite = width * thickness A_composite = width * thickness
n_rovings = width / spacing n_rovings = width / spacing
A_layer = n_rovings * A_roving A_layer = n_rovings * A_roving
A_carbon = n_layers * A_layer A_carbon = n_layers * A_layer
A_concrete = A_composite - A_carbon A_concrete = A_composite - A_carbon
E_composite = (E_carbon * A_carbon + E_concrete * A_concrete) / A_composite E_composite = (E_carbon * A_carbon + E_concrete * A_concrete) / A_composite
E_composite E_composite
``` ```
%% Output %% Output
37082.18859138533 37082.18859138533
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
Thus, the composite has an effective stiffness of 37 GPa. Thus, the composite has an effective stiffness of 37 GPa.
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
# How to construct a model? # How to construct a model?
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
Once we have derived the formula capturing the design question, i.e. "what is the stiffness of the new composite?" we want to learn from the model and develop a new intuition. To explore the possible composite designs let us rewrite the above equations as symbolic expressions. Then, we can construct a model which can be interactively used to study the available design options. Once we have derived the formula capturing the design question, i.e. "what is the stiffness of the new composite?" we want to learn from the model and develop a new intuition. To explore the possible composite designs let us rewrite the above equations as symbolic expressions. Then, we can construct a model which can be interactively used to study the available design options.
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
In contrast to the previously performed numerical evaluation, we now express the derived equations as mathematical symbols instead of numbers. To do this, let us use a Python package `sympy` to do symbolic algebra. In contrast to the previously performed numerical evaluation, we now express the derived equations as mathematical symbols instead of numbers. To do this, let us use a Python package `sympy` to do symbolic algebra.
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
import sympy as sp import sympy as sp
``` ```
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
The parameters of the model are now introduced as `sympy.symbols`. To distinguish the symbols from numbers introduced above, let us name the Python variables referring to the mathematical symbols with a trailing underscore `_` The parameters of the model are now introduced as `sympy.symbols`. To distinguish the symbols from numbers introduced above, let us name the Python variables referring to the mathematical symbols with a trailing underscore `_`
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
A_roving_ = sp.Symbol('A_r') A_roving_ = sp.Symbol('A_r')
n_layers_ = sp.Symbol('n_l') n_layers_ = sp.Symbol('n_l')
spacing_ = sp.Symbol('d') spacing_ = sp.Symbol('d')
thickness_ = sp.Symbol('h') thickness_ = sp.Symbol('h')
width_ = sp.Symbol('b') width_ = sp.Symbol('b')
E_carbon_ = sp.Symbol('E_car') E_carbon_ = sp.Symbol('E_car')
E_concrete_ = sp.Symbol('E_c') E_concrete_ = sp.Symbol('E_c')
``` ```
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
To see the difference between a variable referring to a number and to a symbol, let us display the variables `A_roving` and `A_roving_` To see the difference between a variable referring to a number and to a symbol, let us display the variables `A_roving` and `A_roving_`
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
display(A_roving, A_roving_) display(A_roving, A_roving_)
``` ```
%% Output %% Output
$\displaystyle A_{r}$ $\displaystyle A_{r}$
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
Let us now rephrase the the above derived equations in the symbolic form, i.e. using the symbols with the trailing underscore `_` Let us now rephrase the the above derived equations in the symbolic form, i.e. using the symbols with the trailing underscore `_`
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
A_composite_ = width_ * thickness_ A_composite_ = width_ * thickness_
n_rovings_ = width_ / spacing_ n_rovings_ = width_ / spacing_
A_layer_ = n_rovings_ * A_roving_ A_layer_ = n_rovings_ * A_roving_
A_carbon_ = n_layers_ * A_layer_ A_carbon_ = n_layers_ * A_layer_
A_concrete_ = A_composite_ - A_carbon_ A_concrete_ = A_composite_ - A_carbon_
E_composite_ = (E_carbon_ * A_carbon_ + E_concrete_ * A_concrete_) / A_composite_ E_composite_ = (E_carbon_ * A_carbon_ + E_concrete_ * A_concrete_) / A_composite_
sp.simplify(E_composite_) sp.simplify(E_composite_)
``` ```
%% Output %% Output
$\displaystyle \frac{A_{r} E_{car} n_{l} - E_{c} \left(A_{r} n_{l} - d h\right)}{d h}$ $\displaystyle \frac{A_{r} E_{car} n_{l} - E_{c} \left(A_{r} n_{l} - d h\right)}{d h}$
(A_r*E_car*n_l - E_c*(A_r*n_l - d*h))/(d*h) (A_r*E_car*n_l - E_c*(A_r*n_l - d*h))/(d*h)
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
**The power of modeling** **The power of modeling**
- Instead of a number, we have now a symbolic expression showing the influence of the individual parameters on a design property, i.e. on the material stiffness $\bar{E}$. - Instead of a number, we have now a symbolic expression showing the influence of the individual parameters on a design property, i.e. on the material stiffness $\bar{E}$.
- This expression represents the first model that we constructuted in the course using the conditions of compatibility, equilibrium and constitutive laws. - This expression represents the first model that we constructuted in the course using the conditions of compatibility, equilibrium and constitutive laws.
- Using a model, we can explore the behavior of the composite, develop a design intuition, optimize the design. - Using a model, we can explore the behavior of the composite, develop a design intuition, optimize the design.
We learn how to construct simple models describing the mechanisms governing the behavior of a composite. We learn how to construct simple models describing the mechanisms governing the behavior of a composite.
- We will construct simplified analytical models for pull-out, that will help us to understand elementary types of - We will construct simplified analytical models for pull-out, that will help us to understand elementary types of
material behavior. material behavior.
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
# Next steps # Next steps
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
- Login to jupyter.rwth-aachen.de - Login to jupyter.rwth-aachen.de
- Navigate to this mixture rule example - Navigate to this mixture rule example
- Evaluate the cells by issueing the [Shift+Return] key combination - Evaluate the cells by issueing the [Shift+Return] key combination
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
# Why Jupyter Lab? Why Python?
- [Jupyterlab introduction](https://youtu.be/A5YyoCKxEOU) [7 mins] video explaining the basic features of jupyter notebook within jupyter lab
- [Most Popular Programming Languages 1965 - 2019](https://www.youtube.com/watch?v=Og847HVwRSI) Check this race of programming languages over the last 50 years and wait till the end of it ;-)
- Useful packages
- `matplotlib` - how to plot fancy diagrams
- `sympy` - how to perform algebraic manipulations
- `numpy` - how to manipulate data - beyond `Excel`
will be shortly explained.
%% Cell type:markdown id: tags:
<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"> <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">
&nbsp; <a href="1_1_scope.ipynb#top">1.2 Jupyter basics</a> &nbsp; <a href="1_2_jupyter_python.ipynb#top">1.2 Jupyter basics</a>
</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;"> </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;">
<a href="../tour2_constant_bond/2_1_1_PO_observation.ipynb#top">2.1 Pullout of elastic fiber from rigid matrix</a>&nbsp; <img src="../icons/next.png" alt="Previous trip" width="50" height="50"> </div> <a href="../tour2_constant_bond/2_1_1_PO_observation.ipynb#top">2.1 Pullout of elastic fiber from rigid matrix</a>&nbsp; <img src="../icons/next.png" alt="Previous trip" width="50" height="50"> </div>
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
``` ```
......
File added
File added
File added
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment