This version introduces introduces the concept of *meshed reinforcement*, allowing materials other than concrete to be meshed (variation of strain across region) which paves the way for composite analysis!
Bar reinforcement should now be assigned the ``SteelBar`` material to utilise in-built efficiencies in idealising bars as lumped masses and enabling calculation of parameters such as ``k_u``.
Full details of the changes are listed below, note there are several breaking changes in this release.
**1. Material Module**
- Materials other than concrete can now be meshed allowing for varying strain distributions. This allows composite sections to be analysed. If using structural steel sections, assign a ``Steel`` material object to this section. If using a generic material, use the new generic ``Material`` class and set ``meshed=True``.
- Lumped (constant strain) reinforcement can be specified by using the ``SteelBar`` class, or by using the ``Material`` clas with ``meshed=False``.
**2. Pre Module**
- Increased performance by creating of *concreteproperties* ``CPGeom`` object, an optimised version of the *sectionproperties* ``Geometry`` object. All geometry is converted to ``CPGeom`` objects after creating a ``ConcreteSection`` object.
**3. Concrete Section Module**
- Geometries are now sorted into *concrete geometries*, *meshed reinforcement geometries* and *lumped reinforcement geometries*.
- Improved failure checks in moment curvature analysis.
- All moments are now calculated about the elastic centroid, enabling easy integration with structural analysis software (previously ultimate moments were calculated about the plastic centroid and service moments about the neutral axis).
**4. Interaction Diagram Changes**
- Ultimate bending capacities can now be calculated for all ranges of netural axis depth (neutral axis depth larger than section depth).
- Concept of squash load and ultimate tensile load removed to cater for generic interaction diagrams (not AS 3600 specific).
- Improved control of how interaction diagrams are generated - added control points, labels, and maximum compressive load. Extended control of the number of points in the diagram. See 20 for further details.
- Removed ``m_neg`` feature to facilitate the above. Negative diagrams can now be easily created by manually creating another interaction diagram with a 180 degree bending axis rotation and displaying both diagrams on a single plot.
**5. Results Module**
- ``ConcreteProperties`` and ``TransformedConcreteProperties`` renamed to ``GrossProperties`` and ``TransformedGrossProperties``.
- Principal axis angle now in radians to align with other angles in *concreteproperties*.
- Extended ``StressResult`` object to handle *concrete geometries*, *meshed reinforcement geometries* and *lumped reinforcement geometries*.
- Plot 2D and 3D diagrams for biaxial bending results.
**6. Design Code Module**
- ``AS3600`` interaction diagram includes the balanced point by default, ensuring kinks in the diagram are correctly captured.
**7. Utilities Module**
- Global and principal axis angle calculations are done in-house to increase performance.
- Rewrote ``split_geom_at_strains()`` to improve performance.
**Full changelog:** [v0.2.3...v0.3.0](https://github.com/robbievanleeuwen/concrete-properties/compare/v0.2.3...v0.3.0)