⭐ Highlights
- Get significant performance improvements for large meshes by using the `pardiso` solver, see installation docs [here](https://sectionproperties.readthedocs.io/en/stable/installation.html#installing-pardiso-solver). 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](https://sectionproperties.readthedocs.io/en/stable/examples.html#validation).
- Added benchmark tests to aid performance improvements.
- Rhino methods are now supported in python 3.10 and 3.11.
What's Changed
:racehorse: Performance
* Add numba, pardiso (324) TLCFEM
:rotating_light: Testing
* Exclude benchmarks from test coverage (339) robbievanleeuwen
* Add benchmark tests (336) robbievanleeuwen
* Restructure tests directory, add further validation tests (including many examples from Pilkey), improve tests coverage, add flake8-pytest-style (329) robbievanleeuwen
:construction_worker: 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
:books: Documentation
* Add validation examples from Pilkey (Symmetric Channel Section, Circular Arc, Composite Rectangular Strip) (335) robbievanleeuwen
* Fix docstring for StressPost.get_stress() (330) robbievanleeuwen
:package: Dependencies
* Build docs with python 3.10, pre-commit with python 3.11 (338) robbievanleeuwen
* Bump rhino3dm from 8.0.0b2 to 8.0.0b3, remove python 3.10 & 3.11 restriction for `rhino` extra (337) robbievanleeuwen
* Bump pre-commit-hooks from 4.4.0 to 4.5.0, pyupgrade from 3.14.0 to 3.15.0 (334) robbievanleeuwen
**Full changelog:** [v3.0.2...v3.1.0](https://github.com/robbievanleeuwen/section-properties/compare/v3.0.2...v3.1.0)