Skip to content
Snippets Groups Projects
Commit 739ab449 authored by nbgitpuller's avatar nbgitpuller
Browse files

WIP

parent b7bb3172
Branches
No related tags found
No related merge requests found
......@@ -252,7 +252,7 @@
},
{
"cell_type": "code",
"execution_count": 5,
"execution_count": 1,
"metadata": {
"tags": []
},
......@@ -260,7 +260,7 @@
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "1c33241657fa4a149b98ccc4267403b7",
"model_id": "1275d6c4ae764c24a770749fa52a8f1e",
"version_major": 2,
"version_minor": 0
},
......@@ -301,7 +301,7 @@
},
{
"cell_type": "code",
"execution_count": 6,
"execution_count": 2,
"metadata": {
"tags": []
},
......@@ -309,7 +309,7 @@
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "c592ba2ecab14533907f8be40a9a4dfc",
"model_id": "2aecfd3d79d24f82864bfe5093b1534f",
"version_major": 2,
"version_minor": 0
},
......
%% Cell type:markdown id:suitable-comfort tags:
 
# **2.3 Tensile behavior of brittle-matrix composite**
 
%% Cell type:markdown id:romantic-maine tags:
 
<!-- [![title](../fig/bmcs_video.png)](https://moodle.rwth-aachen.de/mod/page/view.php?id=602450) -->
 
%% Cell type:code id:5287f7df-3d9d-4aba-b454-8a199c9f2238 tags:
 
``` python
from IPython.display import YouTubeVideo
YouTubeVideo('6Lzj6CH376w')
```
 
%% Output
 
<IPython.lib.display.YouTubeVideo at 0x7f333407bca0>
<IPython.lib.display.YouTubeVideo at 0x7f3f4256b730>
 
%% Cell type:markdown id:drawn-collective tags:
 
With a basic understanding of the debonding process in the vicinity of a crack bridge studied for various configurations of a pull-out problem ([2.2 Classification of pull-out configurations](2_2_1_PO_configuration_explorer.ipynb)) we describe and visualize the process of fragmentation (multiple cracking) in a reinforced composite.
 
%% Cell type:markdown id:polar-partner tags:
 
Consider an example the textile reinforced concrete cross section loaded in tension. The cross-sectional parameters are as follows
 
%% Cell type:markdown id:wicked-coordinator tags:
 
![image.png](attachment:cbf04e3f-0f4a-465c-a5d9-eca0fed2c315.png)
 
%% Cell type:markdown id:sapphire-folks tags:
 
# Crack bridge as a key to understanding the behavior of a composite
 
%% Cell type:markdown id:defensive-mortgage tags:
 
Matrix cracks develop along a tensile zone of a composite, e.g. in a tensile specimen.
The stress, strain and displacement fields exhibit a periodic structure with symmetry points
at
- crack positions, and at
- midpoints between cracks.
 
![image.png](attachment:ead9214a-a8c5-4f41-9aff-afe673ecd6d8.png)
Therefore, it the crack bridge model derived for the assumption of a constant bond-slip law can be
conveniently used to describe the tensile response during the multiple cracking process.
 
%% Cell type:markdown id:unique-equation tags:
 
![image.png](attachment:a3564c30-b942-40f5-8b44-25277e739aa2.png)
 
%% Cell type:markdown id:associate-david tags:
 
## What do we need from a crack bridge model?
 
%% Cell type:code id:labeled-regression tags:
 
``` python
%matplotlib widget
from pull_out import CB_ELF_ELM
po = CB_ELF_ELM(E_f=1, E_m=1, A_f=1, A_m=1, p=1, tau=3, L_b=1, w_max=3,t=0.4)
po.interact()
```
 
%% Output
 
 
%% Cell type:markdown id:consecutive-investigator tags:
 
Knowing the matrix stress profile ahead of an existing crack, we know the distance at which no crack will appear. This length is referred to as shielded length.
 
%% Cell type:markdown id:hollywood-piece tags:
 
### **Question:** How long is the shielded length?
 
%% Cell type:markdown id:national-millennium tags:
 
Use the crack bridge model to find out the distance $l_\mathrm{shielded}$ at which the matrix normal force attains the level
\begin{align}
N_\mathrm{mu} & = \sigma_\mathrm{mu} A_\mathrm{m}
\end{align}
Realizing that the slope at which the matrix stress grows is
\begin{align}
T &= p \bar{\tau}
\end{align}
As a result, the distance can be evaluated as
\begin{align}
l_\mathrm{shielded} = \dfrac{N_\mathrm{mu}}{T}
\end{align}
 
%% Cell type:markdown id:similar-questionnaire tags:
 
### **Question:** What is the elongation and average strain of a crack segment?
 
%% Cell type:markdown id:important-brook tags:
 
A simple way how to find out the total elongation of the fiber with a nonlinear strain profile is to integrate the strains, i.e.
\begin{align}
\Delta u_\mathrm{f} = \int_{-L_\mathrm{b}}^0 \varepsilon_\mathrm{f} \, \mathrm{d}x
\end{align}
 
%% Cell type:markdown id:verbal-german tags:
 
so that the average, or **composite** strain is obtained as
 
%% Cell type:markdown id:narrative-closing tags:
 
\begin{align}
\varepsilon_\mathrm{c} = \dfrac{1}{L_\mathrm{b}} \int_{-L_\mathrm{b}}^0 \varepsilon_\mathrm{f} \, \mathrm{d}x
\end{align}
 
%% Cell type:markdown id:super-demand tags:
 
**Remark:** This expression is important in view of homogenization of non-uniform strain profiles in a heterogenous material structure. It is one of the fundamental concepts of micromechanics. We will use it later on to derive the effective stress-strain curve of a multiply cracked composite.
 
%% Cell type:markdown id:swedish-intermediate tags:
 
# **Model 1:** Deterministic matrix strength (ACK model)
 
%% Cell type:markdown id:accepted-thought tags:
 
The typical shape of the stress-strain curve of the composite involves three stages:
- elastic stage which is governed by the mixture rule
- stage of matrix fragmentation
- saturated crack pattern with a linear branch
 
%% Cell type:markdown id:foster-character tags:
 
How to interpret and characterize these three distinguished phases of composite material behavior?
 
%% Cell type:markdown id:infinite-dutch tags:
 
The ACK model developed by Aveston, Cooper and Kelly is an analytical model that represents the composite tensile response by a trilinear law as shown in the following figure. This model is based on the following assumptions:
- The bond behavior is governed by a constant frictional bond in the debonded interface
- The constitutive law for both reinforcement and matrix is assumed to be linear-elastic with brittle failure upon reaching their strengths
- Multiple cracking occurs at a constant level of applied stress, inducing a horizontal branch in the stress-strain behavior
 
%% Cell type:markdown id:special-overhead tags:
 
![image.png](attachment:e49027f3-9a05-42fd-bb36-8b4c8c4af4d2.png)
 
%% Cell type:markdown id:english-board tags:
 
## Stress-strain curve
 
The trilinear curve of ACK model represents the composite tensile response by identifying the following characteristic points:
- [$\sigma_{1}, \varepsilon_{1}$]: The inital values of stress and strain are set to zero.
- [$\sigma_{2}, \varepsilon_{2}$]: In the first stage, the matrix is uncracked and perfect bond between matrix and fabric is assumed up to the first cracking stress $\sigma_{2}$ , which is defined as
\begin{align}
\sigma_{2} = E_\mathrm{c} \varepsilon_{2}
\end{align}
where $\varepsilon_{2}$ is the composite strain value at which the matrix cracks and $E_\mathrm{c}$ is the composite stiffness.
The strain $\varepsilon_{2}$ is given as
\begin{align}
\varepsilon_{2} = \dfrac{\sigma_\mathrm{mu}}{E_\mathrm{m}}
\end{align}
where $\sigma_\mathrm{mu}$ and $E_\mathrm{m}$ are the matrix tensile strength and stiffness, respectively.
The composite stiffness has been obtained using the
[**mixture rule**](../bmcs_course/1_1_elastic_stiffness_of_the_composite.ipynb)
and can be expressed here as:
\begin{align}
E_\mathrm{c} = E_\mathrm{f} \; V_\mathrm{f} + E_\mathrm{m} \; (1 - V_\mathrm{f})
\end{align}
where $E_\mathrm{f}$ is the fiber stiffness, and $V_\mathrm{f}$ is denoting the fiber volume fraction (reinforcement ratio).
 
- [$\sigma_{3}, \varepsilon_{3}$]: The second stage is characterized by the crack propagation. In this phase, the load is
assumed to be constant up to the strain value $\varepsilon_{3}$ calculated as follows:
\begin{align}
\varepsilon_{3} = \dfrac{\sigma_\mathrm{mu}}{E_\mathrm{m}} \; (1 + 0.666 \alpha_\mathrm{e})
\end{align}
where where $\alpha_\mathrm{e}$ is an homogenization coefficient given as
\begin{align}
\alpha_\mathrm{e} = \dfrac{E_\mathrm{m} \; (1 - V_\mathrm{f}) }{E_\mathrm{f} \; V_\mathrm{f}}
\end{align}
 
- [$\sigma_{4}, \varepsilon_{4}$]: Finally, in the third stage, when the crack pattern is stabilized the load increases linearly up to the ultimate tensile stress $\sigma_4$ with a slope equal to $E_\mathrm{r}$
The ultimate tensile stress is given as
\begin{align}
\sigma_4 = \sigma_\mathrm{fu} \; V_\mathrm{f}
\end{align}
where $\sigma_\mathrm{fu}$ is the tensile strength of the fiber.
The slope $E_\mathrm{r}$ represents the effective stiffness of the reinforcement with respect to the whole cross section and is given as
\begin{align}
E_\mathrm{r} = E_\mathrm{f} \; V_\mathrm{f}
\end{align}
The composilte strain at failure $\varepsilon_{4}$ is given as
\begin{align}
\varepsilon_{4} = \varepsilon_{3} + \dfrac{\sigma_\mathrm{4} - \sigma_\mathrm{2}}{E_\mathrm{r}}
\end{align}
 
%% Cell type:markdown id:southeast-stadium tags:
 
## Crack spacing
 
%% Cell type:markdown id:medium-hygiene tags:
 
### Matrix cracking is like car parking ?!
 
![SegmentLocal](../fig/Cars.gif "segment")
 
Consider a process where particles (cars) are randomly introduced in a system (along the street).
They must not overlap any previously parked car. What is the average distance between two neighbouring cars?
 
%% Cell type:markdown id:pretty-jacksonville tags:
 
Probabilistic analysis of the car parking problem delivers the result that the average spacing is 1.337 larger than the car length ([Wikipedia: Random sequential adsorption](https://en.wikipedia.org/wiki/Random_sequential_adsorption))
 
%% Cell type:markdown id:reverse-discretion tags:
 
### How long is the car in a concrete tensile specimen?
 
The final average crack spacing $l_\mathrm{cs}$ is given as
<!-- 1.337 \; \dfrac{(1 - V_\mathrm{f}) \; \sigma_\mathrm{mu}}{ V_\mathrm{f} \; T} \\ -->
\begin{align}
l_\mathrm{cs} &= 1.337 \; l_\mathrm{shielded} = 1.337 \; \dfrac{A_\mathrm{m} \sigma_\mathrm{mu}}{\bar{\tau}p}
\end{align}
 
%% Cell type:markdown id:secondary-artwork tags:
 
## Examples
 
%% Cell type:markdown id:solved-damage tags:
 
### **Task 1:** Evaluate the tensile stress-strain curve
Consider a steel reinforced cross section of $100 \times 100$ mm
reinforced with a rebar ($d = 16$ mm) diameter.
Plot the stress-strain curve using the ACK model:
 
%% Cell type:code id:regulation-bronze tags:
 
``` python
E_m = 25000 # 28000 # concrete stiffness [MPa]
E_f = 182000 # 210000 # reinforcement stiffnes [MPa]
A_c = 100 * 100 # dimensions [mm]
d = 16 # diameter [mm]
sig_mu = 3 # 3 # concrete tensile strength [MPa]
sig_fu = 1380 # 500 # reinforcement strength [MPa]
```
 
%% Cell type:markdown id:arbitrary-preservation tags:
 
Derived parameters of the cross composite section
 
%% Cell type:code id:stock-interval tags:
 
``` python
p = 3.14 * d # bond perimeter
A_f = 3.14 * (d/2)**2 # reinforcement cross section
A_m = A_c - A_f # concrete cross section
V_f = 0.01 # A_f / A_c # reinforcement ratio / fiber volume fraction
E_c = E_m * (1 - V_f) + E_f * V_f # composite stiffness
alpha_e = E_m * (1 - V_f) / (E_f * V_f) # homogenization coefficient
```
 
%% Cell type:code id:junior-patrol tags:
 
``` python
E_c
```
 
%% Output
 
26570.0
 
%% Cell type:code id:e77defe7-ce4a-42f2-9ac2-8cbdc5302d5c tags:
 
``` python
V_f
```
 
%% Output
 
0.01
 
%% Cell type:markdown id:short-apparel tags:
 
Characteristic points of the ACK model deliver the values
 
%% Cell type:code id:fundamental-bulletin tags:
 
``` python
eps_1, sig_1 = 0, 0
eps_2 = sig_mu / E_m
sig_2 = eps_2 * E_c
eps_3, sig_3 = sig_mu / E_m * (1 + 0.6666 * alpha_e), sig_2
sig_4 = sig_fu * V_f
E_r = E_f * V_f # effective reinforcement stiffness related to the composite cross section
eps_4 = eps_3 + (sig_4 - sig_3) / E_r
```
 
%% Cell type:code id:bb9b6f0f-ad91-4b18-a65f-b19873afd2b4 tags:
 
``` python
sig_2, sig_4
```
 
%% Output
 
(3.1884, 13.8)
 
%% Cell type:markdown id:configured-picnic tags:
 
Plot the composite stress-strain curve
 
%% Cell type:code id:nuclear-firmware tags:
 
``` python
%matplotlib widget
import matplotlib.pylab as plt
fig, ax = plt.subplots(1,1,figsize=(7,3))
fig.canvas.toolbar_position = 'top'
fig.canvas.header_visible = False
ax.plot([eps_1, eps_2, eps_3, eps_4], [sig_1, sig_2, sig_3, sig_4]);
ax.set_xlabel(r'$\varepsilon$ [-]'); ax.set_ylabel(r'$\sigma$ [MPa]')
ax.plot([0,eps_4],[0,E_r*eps_4], color='black', linewidth=1, linestyle='dashed');
```
 
%% Output
 
 
%% Cell type:markdown id:guided-anxiety tags:
 
**Note** that the curve does not depend on the bond $\tau p$.
 
%% Cell type:markdown id:broke-ballot tags:
 
### **Task 2:** Evaluate the crack spacing
 
What does ACK model predict for a specimen with the dimensions $100 \times 100$ mm reinforced with 1% ratio.
 
%% Cell type:code id:engaged-breast tags:
 
``` python
A_c = 100 * 100
d = 16
p = 3.14 * d
A_f = 3.14 * (d/2)**2
A_m = A_c - A_f
tau = 8
1.337 * A_m * sig_mu / (p * tau)
```
 
%% Output
 
97.79047929936306
 
%% Cell type:markdown id:portable-belfast tags:
 
which corresponds to reinforcement ratio $V_f$
 
%% Cell type:code id:molecular-french tags:
 
``` python
A_f / A_c
```
 
%% Output
 
0.020096
 
%% Cell type:markdown id:35550041-f70f-4054-8a59-3bf5897fba0c tags:
 
## **Question:** How to evaluate the corresponding crack opening?
 
In the design of steel reinforced concrete or carbon concrete, it is necessary to limit the maximum crack opening to a prescribed value, i.e. $w_\max < 0.1$ mm. As an exercise propose a formula for $w_\max$.
 
%% Cell type:markdown id:transsexual-overall tags:
 
# **Model 2:** Random matrix strength
 
In reality, the matrix strength $\sigma_\mathrm{mu}$ is random. Its profile along the tensile specimen can be described by the probability distribution function.
Weibull probability distribution is used to describe the strength of materials.
 
%% Cell type:code id:martial-sense tags:
 
``` python
%matplotlib widget
from pmcm import PMCM
pm = PMCM()
pm.interact()
```
 
%% Output
 
 
%% Cell type:markdown id:ahead-lafayette tags:
 
The probabilistic multiple cracking model uses the crack bridge model which is inserted at any newly emerging crack position. By assembling the profile along the specimen we obtain the
- matrix stress field $\sigma_\mathrm{m}(x, \sigma_\mathrm{c})$, and
- reinforcement strain field $\varepsilon_\mathrm{f}(x, \sigma_\mathrm{c})$.
for any state of loading $\sigma_\mathrm{c}$. No finite element calculation is needed.
 
The algorithm used in the above web-app can identify the individual cracks exactly. For a given load level $\sigma_\mathrm{c}$ and crack distribution along the specimen, the composite strain of a specimen with a length $L$ is obtained using the averaging formula introduced above
\begin{align}
\varepsilon_\mathrm{c} = \dfrac{1}{L} \int_{0}^L \varepsilon_\mathrm{f} \, \mathrm{d}x
\end{align}
 
%% Cell type:markdown id:elegant-bride tags:
 
**Further reading:** [Paper describing the general probabilistic multiple cracking model](../papers/pmcm_fragmentation.pdf), Journal of Mathematical Modeling (2021)
 
%% Cell type:markdown id:african-eating tags:
 
## PMCM application
 
%% Cell type:markdown id:numeric-confidentiality tags:
 
Apply the model to a composite cross section using carbon textile fabrics as specified in the notebook [**Mixture rule**](1_1_elastic_stiffness_of_the_composite.ipynb)
 
%% Cell type:code id:hungry-momentum tags:
 
``` python
A_roving = 0.5 # [mm**2]
n_layers = 6 # -
spacing = 8.3 # [mm]
thickness = 10 # [mm]
width = 100 # [mm]
E_carbon = 160000 # [MPa]
E_concrete = 28000 # [MPa]
```
 
%% Cell type:code id:stone-harmony tags:
 
``` python
A_composite = width * thickness
n_rovings = width / spacing
A_layer = n_rovings * A_roving
A_carbon = n_layers * A_layer
A_concrete = A_composite - A_carbon
E_composite = (E_carbon * A_carbon + E_concrete * A_concrete) / A_composite
E_composite
```
 
%% Output
 
32771.0843373494
 
%% Cell type:code id:needed-suspension tags:
 
``` python
pm2 = PMCM(sig_cu=20, sig_mu=4, m=8)
pm2.crack_bridge.trait_set(E_m=E_concrete, E_f=E_carbon, tau=8,
A_c=A_composite, A_f=A_carbon, p=n_rovings*n_layers*3.14)
pm2.interact()
```
 
%% Output
 
 
%% Cell type:markdown id:radio-alignment tags:
 
![image.png](attachment:192b4a48-d1b5-44a1-9736-0fa01372f454.png)
 
%% Cell type:markdown id:fossil-quality tags:
 
## Examples
 
%% Cell type:markdown id:nervous-apparatus tags:
 
### Task 3: Use the model to validate its prediction
Given the cross sectional areas $A_\mathrm{m}, A_\mathrm{f}$, concrete and reinforcement stiffness $E_\mathrm{m}, E_\mathrm{f}$ and strength $\sigma_\mathrm{mu}, \sigma_\mathrm{fu}$, reinforcement ratio $V_\mathrm{f}$, bond stress $\tau$, and perimeter $p$ calculate the average crack width at failure of a tensile specimen.
### Task 4: Evaluate the average crack width
Compare the crack width obtained using the ACK model and the PMCM model for a given reinforced cross section design
 
%% Cell type:markdown id:going-conflict tags:
 
<div style="background-color:lightgray;text-align:left"> <img src="../icons/exercise.png" alt="Run" width="40" height="40">
&nbsp; &nbsp; <a href="../exercises/X0204.pdf"><b>Exercise X0203:</b></a> <b>Tensile behavior of a composite with constant bond-slip law</b>
</div>
 
%% Cell type:markdown id:gentle-trout 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="../tour2_constant_bond/2_2_1_PO_configuration_explorer.ipynb#top">2.2 Classification of pullout configurations</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="../tour3_nonlinear_bond/3_1_nonlinear_bond.ipynb#top">3.1 Nonlinear bond - softening, hardening</a>&nbsp; <img src="../icons/next.png" alt="Previous trip" width="50" height="50"> </div>
 
%% Cell type:code id:cubic-prompt tags:
 
``` python
```
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment