Skip to content

Releases: ritchie46/anaStruct

v1.6.1

16 Oct 10:07
19fba5b
Compare
Choose a tag to compare

This is primarily a maintenance release, fixing a couple minor bugs in autoscaling diagrams and some broken examples in the documentation. It does also add two minor new features:

  1. Build binary wheels for aarch64 (i.e. for Linux machines running on Apple's ARM processors)
  2. Add total deflection as a simple output to element results
    • No more manually adding node displacements to element deflections! This likely won't matter at all if you're analysing a truss, but if you're analysing a beam, these new "total deflection" results should be the numbers you actually expect.

What's Changed

Dependabots

Full Changelog: release-v1.6.0...release-v1.6.1

v1.6.0

20 Jul 11:54
9af5e05
Compare
Choose a tag to compare

This release makes two key updates:

  1. Upgrade to Numpy v2.0.0 compatibility
    • Importantly, this required deprecating Python 3.9. Theoretically, if you are still using the Numpy 1.x series, nothing should have broken Python 3.9, but automatic testing of Python 3.9 is now dropped, so use at your own risk!
  2. Build and distribute platform-specific binary wheels - which should now make this package both more efficient and faster to install

And while it won't make any difference to anaStruct users, for any developers or forks, anaStruct has now swapped to using poetry for packaging and dependency management.

What's Changed

  • Swap to Poetry as package manager, build binary wheels by @smith120bh in #281

Dependabots

Full Changelog: release-v1.5.1...release-v1.6.0

v1.5.1

01 Apr 21:01
66cca27
Compare
Choose a tag to compare

This minor release adds one new feature - custom plot colours. It is otherwise a maintenance release with some minor updates to accommodate the newest versions of our dependencies.

What's Changed

Dependabots

New Contributors

Full Changelog: release-v1.5.0...release-v1.5.1

v1.5.0

30 Oct 11:38
66931c4
Compare
Choose a tag to compare

This release includes multiple breaking changes that had been building up in the backlog. Hopefully these changes will now make various parts of anaStruct make more intuitive sense, but some minor updates may be required to scripts or APIs that use this package as a result.

Breaking Changes

  1. Definitions of "y" and "z" axis directions have been made fully consistent throughout all user-facing and internal code. The "y" axis is now always the vertical, in-plane axis, and the "z" axis is now always the out-of-plane axis. Changes generally do not affect inputs, but several outputs are affected. For example, "Ty" and "phi_y" are now "Tz" and "phi_z", respectively.
  2. insert_node() now splits up an element in-place, rather than re-creating the entire system. As a consequence, the function will now no longer lose your loads and supports! While technically breaking behaviour, this is probably also more intuitive behaviour.
  3. get_element_result_range() now by default returns the maximum absolute value of the given unit along the entire length of each element, rather than the first mesh value. A new optional parameter called minmax can customise this behaviour to alternatively return the "min", "max", or "both".
  4. get_node_results_system() and get_node_displacements() now return a list of dictionaries rather than a list of long tuples by default or when node_id=0. This now mirrors the behaviour of the get_element_result*() functions, and should be easier to read.

What's Changed

Full Changelog: release-v1.4.4...release-v1.5.0

v1.4.4

29 Oct 11:03
f21f0f3
Compare
Choose a tag to compare

This update is primarily a maintenance release, though with a couple notable additions:

  • Location inputs have been unified such that every function now expects the same "VertexLike" input - which includes our existing Vertex object, as well as any Sequence (list or tuple) or two numbers.
  • New function add_sequential_elements() has been added - which is very similar to the existing add_element_grid(), but with a more accurate name and able to accept coordinates as Vertex or VertexLike objects, to match with coordinates inputs on other functions
  • All functions throughout the codebase now have full docstrings, which should make both using the functions (if you're using an IDE) and contributing to the anastruct code easier
  • VS Code configuration has been thoroughly updated, to hopefully make it easier than ever to help contribute to the anastruct codebase! :-)

What's Changed

Dependabots

New Contributors

Full Changelog: release-v1.4.3...release-v1.4.4

v1.4.3

28 Aug 12:54
e9d5ec6
Compare
Choose a tag to compare

This is exclusively a bugfix release, correcting a regression in the find_node_id() function, fixing the handling of pinned nodes that have only one element connected to them, and adding some meaningful error-handling to non-integer node and element ids.

What's Changed

  • Fix regression in find_node_id() with typeof vertex == Vertex by @smith120bh in #178
  • Add restraint to a node that has exactly one pinned connection by @smith120bh in #146
  • Add error-handling to node & element id data types by @smith120bh in #179

Dependabots

Full Changelog: release-v1.4.2...release-v1.4.3

v1.4.2

08 Jun 08:20
f6e714e
Compare
Choose a tag to compare

This release represents few changes in the actual user-facing package, but significant updates to validation testing, packaging practices, and typing. Specifically:

  • There is now a full suite of automated pytest validation tests verifying that anaStruct does, in fact, give the same results as Euler-Bernoulli analytical equations. Thank you to all the new contributors who helped add these tests!
  • The file structure and package definitions in anaStruct have been updated to modern best practices, including swapping from a setup.py file to pyproject.toml, updating all the GitHub workflows, and adding some default/recommended VS Code configuration to help any contributors to this package work more easily!
  • Full type checking has been implemented throughout anaStruct, and a py.typed marker file has been added for anyone using anaStruct as a library (you can remove those # type: ignores on your anastruct imports now!) In typing everything, a few scattered bugs were also identified and fixed (nothing that would have given a wrong result, but several little things that would have caused error messages), especially around setting loads on multiple elements at once.

What's Changed

Dependabots

New Contributors

Full Changelog: release-v1.4.1...release-v1.4.2

v1.4.1

20 Feb 12:08
9452e16
Compare
Choose a tag to compare

What's Changed

Dependabots

Full Changelog: release-v1.4.0.1...release-v1.4.1

v1.4.0.1

12 Jan 02:36
da7f1fa
Compare
Choose a tag to compare

Very minor update to avoid an error message being over-issued.

What's Changed

  • Don't throw inclined roller error if angle is a multiple of 90 degrees by @smith120bh in #114

v1.4.0

12 Jan 00:41
6fc1160
Compare
Choose a tag to compare

Notes:

  • This version has dropped support for Python 3.7! That is primarily due to the latest version of matplotlib also dropping support. You should still be able to install a headless version of anaStruct in Python 3.7 - but tests will no longer be automatically run against Python 3.7, so use at your own risk.
  • If you wish to install anaStruct with plotting capability, you now need to explicitly install it using pip install anastruct[plot]. Alternatively, you can now install a headless version of anaStruct using just pip install anastruct.

What's Changed

  • Move matplotlib to extras_require, to make headless installs possible by @smith120bh in #112
  • Set Minimum Python version to 3.8 & Bump matplotlib from 3.0.3 to 3.6.2 by @dependabot in #100

Full Changelog: release-v1.3.4...release-v1.4.0