Skip to content

Releases: robbievanleeuwen/section-properties

v3.2.1

15 Apr 00:54
Compare
Choose a tag to compare

Release for JOSS publication and dependency updates.

What's Changed

👷 Continuous Integration

📦 Dependencies

Full changelog: v3.2.0...v3.2.1

v3.2.0

09 Mar 20:48
Compare
Choose a tag to compare

This release adds Python 3.12 support!

What's Changed

🚀 Features

Full changelog: v3.1.3...v3.2.0

v3.1.3

09 Mar 11:19
Compare
Choose a tag to compare

This release updates core and dev dependencies, as well as minor docs changes.

What's Changed

📚 Documentation

📦 Dependencies

Full changelog: v3.1.2...v3.1.3

v3.1.2

06 Nov 11:56
Compare
Choose a tag to compare

This release makes numba an optional dependency, adds strict mypy type checking and modifies the application of the Lagrangian Multiplier method.

What's Changed

🚀 Features

  • Add plot_warping_function(), enforce Lagrangian Multiplier constraint (#343) @TLCFEM

🐛 Fixes

📚 Documentation

💄 Style

📦 Dependencies

Full changelog: v3.1.1...v3.1.2

v3.1.1

12 Oct 00:38
Compare
Choose a tag to compare

Minor release for Zenodo archival.

Full changelog: v3.1.0...v3.1.1

v3.1.0

11 Oct 11:03
Compare
Choose a tag to compare

⭐ Highlights

  • Get significant performance improvements for large meshes by using the pardiso solver, see installation docs here. Further performance gains with the introduction of numba, both thanks to @TLCFEM.
  • Vastly increased the number of tests, including 19 extra validation tests from Pilkey (2002), three of which can be found in the examples.
  • Added benchmark tests to aid performance improvements.
  • Rhino methods are now supported in python 3.10 and 3.11.

What's Changed

🐎 Performance

🚨 Testing

👷 Continuous Integration

  • Add nbQA to pre-commit (runs black, isort and pyupgrade on jupyter notebooks) (#333) @robbievanleeuwen
  • Restructure tests directory, add further validation tests (including many examples from Pilkey), improve tests coverage, add flake8-pytest-style (#329) @robbievanleeuwen

📚 Documentation

📦 Dependencies

Full changelog: v3.0.2...v3.1.0

v3.0.2

06 Oct 03:25
Compare
Choose a tag to compare

This release restores the top reinforcement distribution for concrete_tee_sections() present in sectionproperties v2.1.5. It also includes some minor docs fixes, CI updates and dependency updates.

What's Changed

🐛 Fixes

👷 Continuous Integration

📚 Documentation

📦 Dependencies

Full changelog: v3.0.1...v3.0.2

v3.0.1

04 Oct 03:05
Compare
Choose a tag to compare

This release addresses a bug with the concrete rectangular section side bars and bumps several python and github actions dependencies.

What's Changed

🐛 Fixes

  • Fix concrete_rectangular_section() bug when n_side=1 (#322) @TLCFEM

📦 Dependencies

Full changelog: v3.0.0...v3.0.1

v3.0.0

03 Oct 05:55
Compare
Choose a tag to compare

⭐ Highlights

  • New, unambiguous section property retrieval with get() methods, see an example here.
  • Improved stress plotting options (new colorbar features, mesh opacity, plot selected materials), see an example here.
  • Improved documentation style and automation.
  • sectionproperties API now has full typing coverage.
  • Significantly expanded examples in the documentation.
  • Add support for Python 3.11.
  • Improved workflow, CI and contributor experience by introducing poetry and nox.

💥 Breaking Changes

  • Update section property get() methods behaviour as per #287 to circumvent confusion surrounding material weighted properties. An analysis without material properties uses the get_{property}() syntax, while an analysis with material properties typically uses the get_e{property}() syntax with the added option of retrieving transformed section properties. See here for a list of the new get() methods and here for a discussion surrounding this issue.
  • Stress plotting methods have been simplified to improve maintainability and code repetition. You can now plot stress results by using the plot_stress() or plot_stress_vector() methods that belong to the StressPost object.
  • get_stress_at_point() method removed, use the more versatile get_stress_at_points() method instead.
  • Pythonic renaming of methods and variables, e.g. get_As() becomes get_as() for retrieving shear areas, moments and shears change from Mxx and Vx to mxx and vx.
  • Concrete section library - renamed argument names to be more pythonic, reinforcement now requires an area and diameter.
  • Dropped support for Python 3.8 (#289).

🚀 Features

  • Packaging and dependency management with poetry.
  • Improve length/readability of imports by placing key classes in __init__.py files, e.g. from sectionproperties.pre.library.primitive_sections import rectangular_section becomes from sectionproperties.pre.library import rectangular_section
  • Significant analysis performance and readability improvements (#293, #298) thanks to @TLCFEM.
  • Allow unlipped cee and zed sections (#300), thanks to @smith120bh.
  • Export analysis results to fibre sections that can be used by the suanPan FEM platform (#295), thanks to @TLCFEM.
  • Allow spline options to be specified when importing .dxf files (#292), thanks to @ccaprani.
  • Improved plotting options, including colorbar string formatting, mesh opacity options, custom colorbar limits, custom colorbar label, option to only plot selected materials (#291).
  • Added option to specify minimum mesh angle (#290).
  • Added support for Python 3.11 (#289).

🐛 Fixes

  • Fix symmetric difference operation not auto-detecting holes in the geometry (#297), thanks to @connorferster.
  • Provide clarity on how to create arbitrary sections without a facet list (#294).
  • CGS solver fix (#268), thanks to @simo-11.

🚨 Testing

  • Use nox & nox-poetry for testing.
  • Move test_plastic_centroid() to test_plastic.py.
  • Various tests added.

👷 Continuous Integration

  • Add poetry integration and detailed contributor guidelines.
  • Added labeller and release drafter automation.
  • Added pre-commit checks.
  • Updated all workflows.

📚 Documentation

  • Changed documentation theme to furo.
  • General overhaul of the documentation.
  • Auto-generate API documentation using sphinx.ext.autodoc.
  • Auto-generate images in documentation using the matplotlib plot directive.
  • Change examples from sphinx gallery to jupyter notebook style with nbsphinx.
  • Add intersphinx mappings.

💄 Style

  • Fully implement typing.
  • Added flake8 linter to pre-commit.
  • Added darglint docstring linter to pre-commit.
  • Added isort to pre-commit.
  • Added pyupgrade to pre-commit.
  • General refactor to improve readability and maintainability, e.g. reduce amount of code in section.py: PlasticSection -> plastic_section.py, StressPost and StressResult -> stress_post.py, SectionProperties -> post.py.
  • Generally changed type of a point from list[float] to a tuple(float, float).

Other

  • Restructured package by adding src folder.

v2.1.5

03 Jan 11:59
Compare
Choose a tag to compare
  • Fix shapely 2.0 imports and STRtree implementation, with thanks to @normanrichardson
  • Add support for python 3.10, drop support for python 3.7

Full changelog: 2.1.4...2.1.5