> For the complete documentation index, see [llms.txt](https://tlcfem.gitbook.io/suanpan-manual/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://tlcfem.gitbook.io/suanpan-manual/material/material2d/concrete21.md).

# Concrete21

The `Concrete21` material model implements the smeared rotating crack model for concrete. In general, it takes the in-plane strain vector as the input, converts it into principal strains and calls uniaxial material models to compute uniaxial stress and stiffness response. These are rotated back to the nominal direction using the same eigen vectors.

The underlying uniaxial concrete model used is the [`ConcreteTsai`](/suanpan-manual/material/material1d/concrete/concretetsai.md) model.

## References

1. [10.1061/(ASCE)0733-9399(1989)115:3(578)](https://doi.org/10.1061/\(ASCE\)0733-9399\(1989\)115:3\(578\))

## Syntax

```
material Concrete21 (1) (2) (3) (4) (5) (6) (7) (8) (9) [10]
# (1) int, unique material tag
# (2) double, elastic modulus
# (3) double, compression strength, should be negative but sign insensitive
# (4) double, tension strength, should be positive but sign insensitive
# (5) double, NC
# (6) double, NT
# (7) double, middle point
# (8) double, strain at compression strength
# (9) double, strain at tension strength
# [10] double, density, default: 0.0
```

## Theory

The formulation can be interpreted via two approaches. One in pure mathematics style and the other from engineering perspective. Fundamentally, the stress response is an isotropic tensor function of in-plane strain tensor. One can refer to [10.1002/cnm.1640091105](https://doi.org/10.1002/cnm.1640091105) for a more general derivation of stiffness, which eventually gives the same expression as shown in [10.1061/(ASCE)0733-9399(1989)115:3(578)](https://doi.org/10.1061/\(ASCE\)0733-9399\(1989\)115:3\(578\)).

Let $$\varepsilon$$ and $$\sigma$$ be coaxial in-plane strain and stress tensor. Performing eigen decomposition gives two eigenvalues and eigenvectors.

$$
\varepsilon=\sum\_{i=1}^2\hat\varepsilon\_in\_i\otimes{}n\_i,\ \sigma=\sum\_{i=1}^2\hat\sigma\_in\_i\otimes{}n\_i.
$$

In which $$\hat\varepsilon\_i$$ and $$\hat\sigma\_i$$ are principal strain and stress that are related to each other via uniaxial material model, viz., $$\hat\sigma\_i=f(\hat\varepsilon\_i)$$.

Given that the Poisson's effect is not considered, the in-plane stiffness can be expressed as

$$
K=\sum\_
{i=1}^2\dfrac{\mathrm{d}\hat\sigma\_i}{\mathrm{d}\hat\varepsilon\_i}n\_i\otimes{}n\_i\otimes{}n\_i\otimes{}n\_i+\dfrac{1}{2}\dfrac{\hat\sigma\_1-\hat\sigma\_2}{\hat\varepsilon\_1-\hat\varepsilon\_2}(
n\_1\otimes{}n\_2+n\_2\otimes{}n\_1)\otimes(n\_1\otimes{}n\_2+n\_2\otimes{}n\_1).
$$

If one arranges second order tensors $$n\_i\otimes{}n\_j$$ into Voigt form, then we define the transformation matrix

$$
T\_{3\times3}=\begin{bmatrix}n\_1\otimes{}n\_1\&n\_2\otimes{}n\_2\&n\_1\otimes{}n\_2+n\_2\otimes{}n\_1\end{bmatrix},
$$

then

$$
K=T\hat{K}T^\mathrm{T},
$$

where

$$
\hat{K}=\begin{bmatrix}\dfrac{\mathrm{d}\hat\sigma\_1}{\mathrm{d}\hat\varepsilon\_1}&&\\&\dfrac{\mathrm{d}\hat\sigma\_2}{\mathrm{d}\hat\varepsilon\_2}&\\&&\dfrac{1}{2}\dfrac{\hat\sigma\_1-\hat\sigma\_2}{\hat\varepsilon\_1-\hat\varepsilon\_2}\end{bmatrix},
$$

which is identical to the expression shown in [10.1061/(ASCE)0733-9399(1989)115:3(578)](https://doi.org/10.1061/\(ASCE\)0733-9399\(1989\)115:3\(578\)).


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://tlcfem.gitbook.io/suanpan-manual/material/material2d/concrete21.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
