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

Merge remote-tracking branch 'origin/master'

parents 373d83e2 4d3e26d7
No related branches found
No related tags found
No related merge requests found
......@@ -12,9 +12,11 @@ dependencies:
- ipywidgets
- ipympl
- ipytree
- shapely
- importlib_resources
- pip
- pip:
- anastruct==1.2.0
- bmcs-utils==0.0.31a0
- bmcs-ibvpy==0.0.24a0
- bmcs-cross-section==0.0.54a0
......
This diff is collapsed.
%% Cell type:markdown id:9857ad72-7028-4bbe-8023-e0e05191fbc1 tags:
 
<a id="top"></a>
# **8.1 Nonlinear moment-curvature relationship**
 
%% Cell type:markdown id:870d9976-a91d-4a41-b644-dc7a87decb30 tags:
 
<div style="background-color:lightgray;text-align:left"> <img src="../icons/start_flag.png" alt="Previous trip" width="50" height="50">
&nbsp; &nbsp; <b>Starting point</b> </div>
 
%% Cell type:markdown id:c24de5b4-611f-4ff3-8730-719ae8a37250 tags:
 
With the coverage of bond and cracking behavior, we can now approach the simulation of a composite as a whole. The described material models can be found and used in general finite tools. It is possible to simulate the material response using 3D solid finite element models. However, in engineering practice, more specialized methods of structural analysis and design are desired which allow us to get the answers to repeating questions. A frequent application of composite materials is provided in form of a beam exposed to bending. Let us show how to utilize the models and theory explained during the previous Tours and show how to apply them to provide an efficient and general method for an assessment of a beam.
 
%% Cell type:markdown id:74a5ed65-cedd-4fa8-ac24-959abfed1b2a tags:
 
<div style="background-color:lightgray;text-align:left"> <img src="../icons/destination.png" alt="Previous trip" width="50" height="50">
&nbsp; &nbsp; <b>Where are we heading</b> </div>
 
%% Cell type:markdown id:f3904ded-0e24-40c8-a851-678c8d4f0e87 tags:
 
One fundamental concept of engineering design is to decompose a complex problem into smaller subproblems that can be described managed in a more transparent way. This concept is relevant also for the description of structural behavior. The present notebook shows such a decomposition for a nonlinear structural analysis of an arbitrarily reinforced beam. It can consider steel, carbon, glass, basalt reinforcement with correspondingly defined constitutive laws. At the same time, various cross sectional shapes can be included as well.
 
%% Cell type:markdown id:550f0202-04ad-4a43-87cf-0e93aec02eb5 tags:
 
Using the analysis method explained in the present notebook, is is possible to explain the fundamental differences between the design of traditional steel-reinforced concrete structures, and the innovative TRC and carbon concrete structures. Understanding of these differences is crucial for achieving more economic, durable and, thus, sustainable design of structures in the future.
 
%% Cell type:markdown id:f41269ff-a671-434f-aa0a-fda07f56871d tags:
 
# **Quick structural analysis and assessment of arbitrary beam design**
 
%% Cell type:markdown id:01371c93-fa68-438b-92f3-ef7081f99ad8 tags:
 
For motivation, consider some examples of concrete girders reinforced with CFRP rebars, carbon textile fabrics and AR-glass fabrics.
 
%% Cell type:markdown id:5df64893-59f9-46ed-b01d-a56d36f769ae tags:
 
![image.png](attachment:8ecfeae8-e7df-4ec6-a0c0-f27e16e89d0f.png)
 
%% Cell type:markdown id:e7d93532-d076-4bb9-87fb-b5b484b94b32 tags:
 
# **Beam deflection calculated by integrating curvature**
 
%% Cell type:markdown id:e5bbdf8d-f57b-401f-8d04-a1491bee3350 tags:
 
Recalling the concepts of beam kinematics and equilibrium, we can sketch the computational scheme using the following diagram.
 
%% Cell type:markdown id:d21e7ae3-5838-4b15-87df-8e406f6caa63 tags:
 
![image.png](attachment:39d28291-8332-4674-b249-bc9fc9c937a5.png)
 
%% Cell type:markdown id:99ccdcec-29ff-4ee3-8003-05fac630d527 tags:
 
In case of a simply supported beam, the profile of bending moment is known a-priori as it does not depend on the material behavior. In other words, there are no redistribution effects along the beam. Therefore, if we know the relation between the bending moment $M$ and the local curvature $\kappa$ as depicted in the left figure above, we can calculate the deflection of the beam by integrating the curvature to obtain the cross sectional rotation, i.e.
$$
\varphi(x) = \int_0^L \kappa(x) \, \mathrm{d}x + C
$$
and the deflection as
$$
w(x) = \int_0^L \varphi(x) \, \mathrm{d}x + Cx + D
$$
The integration constants must be solved for particular boundary conditions.
 
%% Cell type:markdown id:eebe7455-c466-433d-8afa-64cad43b4665 tags:
 
Given this evaluation, we can directly construct the load-deflection curve depicted in the right diagram of the above Figure. The appealing feature of this evaluation scheme is the efficiency in comparison to a nonlinear finite-element model.
 
%% Cell type:code id:60aab350-850a-479a-bc40-034d6e097ef1 tags:
``` python
```
%% Cell type:markdown id:c9152b22-1c8b-4f68-9ab1-e019ef7a02b8 tags:
 
# **Cross section based nonlinear constitutive law**
 
%% Cell type:markdown id:d6cbc93c-03b3-4189-994d-8a84204a1210 tags:
 
![image.png](attachment:8020f7c4-d3db-4002-bf93-65538da45aa5.png)
 
%% Cell type:markdown id:8b6428e0-baa8-43ec-8151-a15e2b4fd8b3 tags:
 
To accomplish this kind of evaluation, however, we need to derive the $M-\kappa$ relation. This relation is affected by the stress redistribution occurring within a cross section during the cracking. The crack propagation demonstrated in the notebook [7.1](../tour7_cracking/7_1_bending3pt_2d.ipynb#top) has already demonstrated the propagation of the stress peak through the cross section. While the example shown there considered a plain concrete without reinforcement, in the present notebook, we shall consider also the effect of the reinforcement.
 
%% Cell type:markdown id:6b862b64-d491-42b8-aae6-1c981b2e83d6 tags:
 
The computational procedure is schematically shown in the Figure below. The key assumption
saying that the cross sections remain planar and normal to the deflection curve is used to
establish the relation between the curvature and strain profile along the beam height. Then,
the curvature can be defined as
\begin{align}
\kappa = \frac{\partial \varepsilon_{xx}}{\partial z}
\end{align}
Demoting the strains at the top and bottom of the cross section as $\varepsilon_\mathrm{top}$ and $\varepsilon_\mathrm{bot}$,
we can directly evaluate the derivative of strain over the height as
\begin{align}
\kappa = \frac{\varepsilon_\mathrm{top} - \varepsilon_\mathrm{bot}}{h}
\end{align}
 
%% Cell type:markdown id:1da6cddd-1ebf-4027-a6b1-e651d4f35d2f tags:
 
![image.png](attachment:c17caca6-1a8c-4d0a-926e-a1ab2bd1b954.png)
 
%% Cell type:markdown id:5cfbc2a1-76ec-4466-a7bb-d4e75a9976f0 tags:
 
We want to establish the relation between $\kappa$ and the corresponding bending moment $M$. Therefore, the evaluation starts by prescribing the
values of $\varepsilon_\mathrm{top}$ in a range given by the failure strain of the matrix or of the reinforcement. However, the curvature is given by two values, i.e. $\varepsilon_\mathrm{bot}$ and $\varepsilon_\mathrm{top}$. What is the value of $\varepsilon_\mathrm{bot}$ corresponding to the prescribed value of $\varepsilon_\mathrm{top}$. The answer can be found by applying the equilibrium condition requiring that the normal force within the cross section.
The force in concrete $F_\mathrm{c}$ is obtained by integrating the stress over the cross sectional height and the force in the reinforcement is obtained by summing up the crack bridging actions into F_\mathrm{r}. The equilibrium condition then reads
**Iterative scheme:** We want to establish the relation between $\kappa$ and the corresponding bending moment $M$. Therefore, the evaluation starts by prescribing the value of $\kappa$ and finding the corresponding strain $\varepsilon_\mathrm{bot}$ for which the equilibrium condition of normal forces in the cross section is satisfied. Note that the strain at any coordinate $z$ is then given by as a linear profile
$$
F_\mathrm{c}(\varepsilon_\mathrm{bot}) + F_\mathrm{r}(\varepsilon_\mathrm{bot}) = 0
\varepsilon_\mathrm{top} = \kappa z + \varepsilon_{bot}
$$
%% Cell type:markdown id:5051b8a7-bded-4ff7-80d5-54045f6c552b tags:
Since the strain at each vertical position $z$ is known, we can use the constitutive law of the concrete matrix and of the reinforcement to evaluate the stress profile in concrete $\sigma_\mathrm{c}(z)$ over the height, so that the concrete force is given as
Thus, by prescribing a fixed value of $\kappa$ and by choosing a trial value $\varepsilon_{bot}$, the strain value of each concrete ligament and of each reinforcement layer is known.
With the strain value at each vertical position $z$ is known, we can use the constitutive law of the concrete matrix and of the reinforcement to evaluate the stress profile in concrete $\sigma_\mathrm{c}(z)$ over the height, so that the concrete force is given as
$$
F_\mathrm{c} = \int_0^h \sigma_\mathrm{c}(z) \cdot b \, \mathrm{d}z
$$
and the individual crack bridging force contributions of the reinforcement layers $i$ as
$$
F_\mathrm{r} = \sum_i A_{\mathrm{r},i} \sigma_{\mathrm{r},i}
$$
The equilibrium condition of normal forces then reads
$$
F_\mathrm{c}(\varepsilon_\mathrm{bot}) + F_\mathrm{r}(\varepsilon_\mathrm{bot}) = 0
$$
This equation is not fufilled for the trial value of $\varepsilon_\mathrm{bot}$.
Therefore, the evaluation is repeated for the trial values of $\varepsilon_{bot}$ until a horizontal equilibrium is achieved. Mathematically, the nonlinear equation can be solved using root finding methods provided in mathematical packages. In the present implementation, the method
[scipy.optimize.root](https://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.root.html) has been used.
 
%% Cell type:markdown id:09188f1f-2479-4d8d-acae-5b80b475692a tags:
 
Finally, the $M-\kappa$ relation can be evaluated as an expression
\begin{align}
M(\kappa) = \sum_i F_{\mathrm{r},i}(\kappa) z_i + \int_z \sigma_\mathrm{c} (\kappa) z_i \, \mathrm{d} z
\end{align}
 
%% Cell type:markdown id:a3350b14-c016-4d07-8d03-a279d62d21af tags:
**Example:** Evaluate the $M(\kappa)$ relation for a steel-reinforced concrete cross section with the geometry given in [cm] and reinforcement ratio $\rho = 0.7\%$. Discuss the correspondence between the stress profile of concrete over the cross section and the constitutive law applied as an input?
%% Cell type:markdown id:aab94bad-e8cf-4fb7-b346-2aa51285ce08 tags:
![image.png](attachment:c4990edf-7bfd-4810-a601-9736389bcaaf.png)
%% Cell type:markdown id:7ad7dda7-edff-4bbb-ad7d-7ed243f346bc tags:
![image.png](cross_sectional_stress_profile.gif)
%% Cell type:markdown id:ef1803e1-cb5e-4e45-ae19-68e70b3140c0 tags:
 
# **Model implementation**
 
%% Cell type:markdown id:3f9ab28a-9089-4a17-a6dc-967f92dd5094 tags:
 
The described scheme represents a commonly used concept of interative scheme to identify the $M-\kappa$ relation. The implementation provided here exploits the flexibility of the Python ecosystem of packages for scientific computing, in particular, the `scipy` solvers of nonlinear equations. Moreover, by introducing the integration over the cross section with a variable width, various cross sectional shapes and nonlinear constitutive laws are covered.
 
%% Cell type:markdown id:82c611c7-6142-4a2c-8e72-cf4df2067e1c tags:
 
The above shown model has been implemented in the model component `MKappa`. covered range of configurations with the specification of inputs and outputs can be summarized as follows
 
%% Cell type:markdown id:69ef9570-8fbd-4bec-9b05-ab992286b573 tags:
 
![image.png](attachment:a83a557e-db38-49a2-a460-701089b535fc.png)
 
%% Cell type:code id:47ced80d-59d8-474d-be9b-869804021ac5 tags:
 
``` python
%matplotlib widget
from bmcs_cross_section.api import MKappa
from bmcs_cross_section.api import ReinfLayer, BarLayer, FabricLayer
from bmcs_cross_section.cs_design.cs_shape import TShape
import matplotlib.pyplot as plt
```
 
%% Cell type:markdown id:e8f21d4f-6a50-4bb3-a7fa-7b59e4394102 tags:
 
# **Concrete beam with short fibers**
 
%% Cell type:markdown id:cd012303-087f-4167-99c4-e08d4a7e78cf tags:
 
To relate described model to the previously shown description of the bended beam in the notebook [7.2](../tour7_cracking/7_1_bending3pt_2d.ipynb#top), let us first simulate a beam without reinforcement. The model is constructed as follows
 
%% Cell type:code id:05d8ee2f-2065-4f35-be83-10e9d4430e1f tags:
 
``` python
mk_plain = MKappa()
```
 
%% Cell type:markdown id:a7082ea1-2c5b-48a2-8702-aab823ebbcca tags:
 
By rendering the interactive interface, we can inspect the cross sectional design `cs_design`. The attribute `matrix` specifies the material law of the matrix. The `cross_section_layout` is an empty list, because no reinforcement has been specified. Finally,
 
%% Cell type:code id:1f90f4d0-cdb1-40bb-8c69-316e6ee3cd41 tags:
 
``` python
mk_plain.interact()
```
 
%% Output
 
 
%% Cell type:markdown id:b7a2647d-c066-4780-9454-fee96fcabb3b tags:
 
# **Steel reinforced beam**
 
%% Cell type:code id:b31a5211-9261-4946-9f7c-a31fe1414833 tags:
 
``` python
mk_steel = MKappa()
bl1 = BarLayer(name='steel 1', z=30, ds=16, count=2 )
csl = mk_steel.cross_section_layout
csl.add_layer(bl1)
```
 
%% Cell type:code id:66d0ac65-a5ef-4cfd-bad2-66cf0958961b tags:
 
``` python
mk_steel.interact()
```
 
%% Output
 
 
%% Cell type:markdown id:6a7814be-97e3-4387-804e-ccfbdced4fee tags:
 
## Validation of the model using experimental results
 
Yang et al. (2010), http://dx.doi.org/10.1016/j.engstruct.2010.07.017, Steel reinforcement
 
![image.png](attachment:dbbb9b50-4c83-41f6-b92e-510a2e309ead.png)
 
%% Cell type:markdown id:78e884ee-3062-4c0f-b39c-72e8c859747e tags:
 
# **Carbon reinforced beam**
 
%% Cell type:code id:f3d28245-e5c2-4a59-b084-c690717e1e6e tags:
 
``` python
mk_carbon = MKappa(high_kappa=0.0002)
mk_carbon.cross_section_shape_.H=30
csl = mk_carbon.cross_section_layout
bl1 = FabricLayer(name='carbon 1', z=5 )
csl.add_layer(bl1)
```
 
%% Cell type:code id:59047ae2-b433-430d-9a59-e161f949982c tags:
 
``` python
mk_carbon.interact()
```
 
%% Output
 
 
%% Cell type:markdown id:7dceda20-7882-4889-89f2-232866738f89 tags:
 
# **Identify the failure mechanism**
 
%% Cell type:markdown id:cb6c794b-2db6-4d8a-a26a-e1c8a68c1cd0 tags:
 
The nonlinear moment curvature curve captures the interaction between the tensile and compressive zone of a beam. Depending on the cross-sectional design, the peak load marks either the tensile or compressive failure of the cross section. The `MKappa` model component can be used to verify the cross sectional capacity calculated using the assessment rules in the design codes.
 
%% Cell type:markdown id:2fd0c84a-7c62-4304-9ac2-e0fdab7505d0 tags:
 
As an example, let us construct a steel reinforced cross section and configure the cross section in such a way either the compressive yielding of concrete or tensile yielding of steel will occur.
 
%% Cell type:code id:3cb3cd8f-6c3f-4ca2-aad9-d2a55262c537 tags:
 
``` python
mk_mechanism = MKappa(high_kappa=0.0002)
bl1 = BarLayer(name='rebar 1', z=20, ds=24, count=2, matmod='steel') # material model
bl1.matmod_.trait_set(E=200000, f_t=500)
mk_mechanism.cross_section_layout.add_layer(bl1)
mk_mechanism.cross_section_shape_.trait_set(H=100, B=300)
mk_mechanism.interact()
```
 
%% Output
 
 
%% Cell type:markdown id:603db33e-f540-4798-93a3-80484e4b76c0 tags:
 
Exercises
 
- compare with the design code concept in EC2 evaluating the moment capacity of a reinforced cross section with the obtained peak load
 
%% Cell type:markdown id:7d9c1f3f-dc0b-4993-bd71-8f863f855e5d tags:
 
 
%% Cell type:markdown id:d5984a18-5d97-4ac4-9d22-e58461d12010 tags:
 
Points to be added
 
- Reference to the iterative procedures in EC2, explain the difference and
that the present method is more consistent and not more complicated to implement.
- Highlight the model components and mechanisms explained in Tours before, i.e.
crack-bridging action and to multiple cracking
- Monotonic versus cyclic
- Preconfigure the webapp for commercially available reinforcement materials
 
%% Cell type:markdown id:9ac37eca-0a59-4d04-9fcf-fbf7238b4b25 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="../tour7_cracking/7_2_fracture_energy_ident.ipynb#top">7.2 Fracture energy identification and size effect</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="../tour8_rcbeam/8_2_rc_beam_uls_sls.ipynb#top">8.2 Reinforced beam, ultimate and serviceability limit states</a>&nbsp; <img src="../icons/next.png" alt="Previous trip" width="50" height="50"> </div>
 
%% Cell type:code id:fb6b6aa6-cf70-4d14-9a46-0fe3b2febe5a tags:
 
``` python
```
......
tour8_rcbeam/cross_sectional_stress_profile.gif

489 KiB

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