Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs: Add theory for sections and materials #197

Draft
wants to merge 3 commits into
base: dev
Choose a base branch
from

Conversation

talledodiego
Copy link
Collaborator

No description provided.

@talledodiego talledodiego self-assigned this Oct 18, 2024
@mortenengen mortenengen added the documentation Improvements or additions to documentation label Oct 18, 2024
@mortenengen mortenengen linked an issue Oct 23, 2024 that may be closed by this pull request
18 tasks

## Geometry definition

Structuralcodes adopts Shapely for creating and managing the geometry. Shapely works in screen **XY** coordinates, which are mapped to **yz** in the **GRS** system. Geometries are essential for defining structural sections and are categorized into the following classes:
Copy link
Member

@mortenengen mortenengen Jan 28, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Consider adding a sub-heading H3, e.g. "General notes", before describing that we are using shapely.


## Geometry definition

Structuralcodes adopts Shapely for creating and managing the geometry. Shapely works in screen **XY** coordinates, which are mapped to **yz** in the **GRS** system. Geometries are essential for defining structural sections and are categorized into the following classes:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

...Structuralcodes adopts Shapely for creating and managing the geometry...

Although it is true, I find it a bit hard to explain and understand this way. Perhaps we could instead say e.g. that In Structuralcodes, a geometry object is a polygon or a point with a material assigned to it. We are using Shapely for creating polygons and points?

Combines multiple geometries into a single entity. Allows the creation of complex sections by grouping simpler geometries. A typical use is combining one or more surface geometries

:::{seealso}
For a description of the API for geometry creation and the different classes involved, refer to the [API documentation](https://fib-international.github.io/structuralcodes/api/index.html#).
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For the link we should instead use the following code:

[API reference](api-geometry-creation)

**Figure Placeholder**: Example of geometries (SurfaceGeometry, PointGeometry, and CompoundGeometry) and their translations to the GRS coordinate system.

## Section calculators
Section calculators evaluate the structural response based on section properties and applied loads. They integrate results from the geometry and material models to provide insights into section performance by using a specific *section integrator*.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Consider putting this text under the "General concept" heading.

Section calculators evaluate the structural response based on section properties and applied loads. They integrate results from the geometry and material models to provide insights into section performance by using a specific *section integrator*.

### General concept
The section calculator contains the methods that permits to handle a structual analysis for a cross section. For instance it is possible to compute the bending strength given the axial force, or to compute the moment curvatura, or to compute the strength domain. The outputs of those methods are represented as *ad-hoc* defined results objects which contains the data and the methods to further process them.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For the moment, we are not providing any methods on the result objects.


![Bending Strength Rotated](FigureBendingRotated.png)

In the rotated reference system **y\*z\***, the bending strength in terms of positive $M_y^*$ is computed.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Instead of the inline dollar-math, we should use the math-role like this:

... positive {math}`M_{\textrm{y}^*}` is computed.

:::{Note}
According to such definition, to compute the bending strength for a section with top fibers in compression and bottom fibers in tension, the angle theta should be inpu equal to *pi*.

![Bending Strength Bottom Tension](FigureBendingTopCompression.png)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could we do a similar figure for the general case described above, or perhaps just indicate the blue and red zones in the "Bending Strength Rotated" figure above?

![Bending Strength Bottom Tension](FigureBendingTopCompression.png)
:::

According to classic RC theory, the deformations domains could be represented as following (with domains from 1 to 6 moving respectivelly from pure tension to pure compression):
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Here it would be nice to add a reference to e.g. Leonhardt (?)

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I was really going to add Leonhardt but could find the details of an English translation online so I postponed it.

1. **Rotate the section**: the section is rotated by the given angle theta. In this new CRS (**y\*z\***), the problem becomes uniaxial bending about the **y\*** axis
2. **Axial load check**: verify if axial load is within the admissible range of axial loads (in tension and compression). This ensures the section can withstand the applied aixal load without failure.
3. **Ultimate strain profile**: find a strain profile that reaches the utimate strain for at least one of the materials. The found strain profile must guarantee equilibrium with external axial load. This is computed with an iterative algorithm based on bisection method.
1. The internal axial load, defined by the balanced failure condition (i.e., the simultaneous reaching of ultimate strain in both the stretched and compressed materials), is evaluated by integrating the strain profile.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Consider using a., b., ... for the sub-items.

3. **Ultimate strain profile**: find a strain profile that reaches the utimate strain for at least one of the materials. The found strain profile must guarantee equilibrium with external axial load. This is computed with an iterative algorithm based on bisection method.
1. The internal axial load, defined by the balanced failure condition (i.e., the simultaneous reaching of ultimate strain in both the stretched and compressed materials), is evaluated by integrating the strain profile.
2. If the internal axial load is greater than the external axial load, the neutral axis needs to be lowered, indicating excessive tension in the section. If the internal axial load is lower, the neutral axis should be raised to reduce compression.
3. The strain profile is then adjusted by changing the curvature, pivoting on either the top or bottom chord. The goal is to balance the axial load and reach a solution that satisfies equilibrium. This is done solving the equation $\Delta N(k_{y^*}) = 0$ where $\Delta N(k_{y^*}) = N_ext - N_int(k_{y^*})$. For instance the function could be something like depicted in the following picture:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It could be hard to interpret what we mean by "... pivoting on either the top or bottom chord."

3. **Ultimate strain profile**: find a strain profile that reaches the utimate strain for at least one of the materials. The found strain profile must guarantee equilibrium with external axial load. This is computed with an iterative algorithm based on bisection method.
1. The internal axial load, defined by the balanced failure condition (i.e., the simultaneous reaching of ultimate strain in both the stretched and compressed materials), is evaluated by integrating the strain profile.
2. If the internal axial load is greater than the external axial load, the neutral axis needs to be lowered, indicating excessive tension in the section. If the internal axial load is lower, the neutral axis should be raised to reduce compression.
3. The strain profile is then adjusted by changing the curvature, pivoting on either the top or bottom chord. The goal is to balance the axial load and reach a solution that satisfies equilibrium. This is done solving the equation $\Delta N(k_{y^*}) = 0$ where $\Delta N(k_{y^*}) = N_ext - N_int(k_{y^*})$. For instance the function could be something like depicted in the following picture:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For the inline math, we can use the same math-role as above.


![Bisection demo](bisection_demo.gif)

4. **Final Computation of Bending Strength**: once the equilibrium strain profile is found, the bending strength is calculated. The bending moment is computed using the rotated section's stress-strain relationship, incorporating the material properties and geometry of the section. This results in the final bending strength in the rotated coordinate system, which is then transformed back to the original coordinate system.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Here we are saying that we are using the stress-strain relationship for the rotated section as if it was something new to step 4, but we using this also to integrate the strain response to find the internal axial force. Consider describing this related to the internal axial force as well or instead.




## Section integrators
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We could consider describing the section integrators before the section calculator since the calculator uses the integrator (?)

@@ -0,0 +1,109 @@
# Section
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We could consider splitting the content into several pages that are put in a logical order, e.g.:

  • Material
  • Coordinate system and sign convention
  • Geometry
  • Section (where we also introduce the calculator and integrator)
  • Section integrators
  • Section calculator

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation
Projects
Status: New
Development

Successfully merging this pull request may close these issues.

Add theory reference in docs
2 participants