Skip to content

Conversation

@mortenengen
Copy link
Member

@mortenengen mortenengen commented Mar 18, 2025

This draft PR tracks the development related to #225.

To do

The following. incomplete, list of tasks should be completed before merging with dev.

  • Add tests for the ShellGeometry class.
  • Add tests for the ShellReinforcement class.
  • Add tests for the ShellSection class.
  • Add tests for the ShellSectionCalculator class.
  • Add tests for the ShellFiberIntegrator class.
  • Add side views in ._repr_svg_().
  • Make secant stiffness matrix of ParabolaRectangle2D consistent by taking into account poisson effects.
  • Add artificial low stiffness for concrete components in tension to avoid singular stiffness matrices.

@mortenengen mortenengen added enhancement New feature or request sections Development of sections labels Mar 18, 2025
@mortenengen mortenengen moved this to New ✨ in PR tracker Mar 18, 2025
@mortenengen mortenengen linked an issue Mar 18, 2025 that may be closed by this pull request
18 tasks
krkris and others added 21 commits March 24, 2025 17:42
* Add shell reinforcement

* Add shell geometry
* Added validation for z-value and scaled the visualization

* Removed 'return self' and 'return None'

---------

Co-authored-by: Morten Engen <[email protected]>
* Add get_stress_2d and get_tangent_2d methods

* Add separate elastic class for 2D operations

* Add tests for Elastic2D methods get_stress and get_tangent.

* Establish the C_matrix as an internal attribute and a property + various fixes

* Change 'math.isclose...' to 'np.allclose...'

* Verified ValueError and removed misplaced comment in get_stress method

---------

Co-authored-by: Morten Engen <[email protected]>
* Add shell fiber integrator

* Removed strain at fiber as argument for Elastic2D get_tangent method

* Improve triangulation logic and various fixes to prepare_input per review comments

* Use zip() in integrate_modulus and only generate default mesh_size when z_coords is None

---------

Co-authored-by: Morten Engen <[email protected]>
…#241)

* Replace tangent stiffness with secant stiffness for 2D materials

* Replace 'tangent' with 'secant' in tests
* Fix add_reinforcement to validate single ShellReinforcement object correctly

* Add tests for ShellGeometry and ShellReinforcement, and add ._shell_geometry.py to __init__.py

* Remove duplicate line
* Add stiffness matrix for reinforcement

* Changed names for global and local material matrix

* Reinforcement integration in prepare_input and drop redundant geometry argument

* Move transformation matrix from  integrator to  ShellReinforcement

* Updated prepare_input for reinforcement
* Add side view to repr_svg in ShellGeometry

* Revert "Updated comment"

This reverts commit 4ca1ad0, reversing
changes made to 9823d2a.

* Updated files with errors

* Fixed difference in not relevant file

* Ignore too many statements in repr_svg

---------

Co-authored-by: Morten Engen <[email protected]>
* Add ParabolaRectangle2D material class

* Add ParabolaRectangle2D material in __init__

* Split class into modular methods for transform, correction, and cracking

* Add more tests to ParabolaRectangle2D class

* Add coefficient for compressive-strength reduction due to lateral shear

* Update tests accounting for compressive-strength reduction

* Update docstrings

* Fix computations related to principal strain direction and correct length of strain vectors as per review comments

* Avoid division by zero in get_secant method

* Update test results after corrections in commit 35898f8
* Add shell section

* Import shell classes to __init__ files

* Make section_calculator a public attr of ShellSection

* Make sure the layer information is stored

* Make sure strain is an array

* Draft iterative solver

* Update tests to reflect how mesh_size is propagated

* Make sure the stiffness matrix is returned correctly

* Separate treatment of current and initial stiffness

* Check number of iterations at the beginning of an iteration

---------

Co-authored-by: Morten Engen <[email protected]>
* Make the secant stiffness matrix consistent

* Refine computation of secant stiffness

* Add more tests for get_secant method

* Update Poisson matrix as per review comments
* Fix misleading variable name in integrate_stress method

* Changed variable name to fiber_stress
* Add shell section

* Import shell classes to __init__ files

* Make section_calculator a public attr of ShellSection

* Make sure the layer information is stored

* Make sure strain is an array

* Draft iterative solver

* Update tests to reflect how mesh_size is propagated

* Make sure the stiffness matrix is returned correctly

* Separate treatment of current and initial stiffness

* Check number of iterations at the beginning of an iteration

* Add tests for shell section

---------

Co-authored-by: Morten Engen <[email protected]>
@mortenengen mortenengen force-pushed the implement-shell-section branch from e9e09d3 to c1fceef Compare August 28, 2025 19:50
* Update target values in new tests

* Merge dev

* Accept only materials in shell geometry and reinforcement

* Update tests
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request sections Development of sections

Projects

Status: New

Development

Successfully merging this pull request may close these issues.

Add functionality for analysing shell sections

4 participants