Skip to content

Releases: ccaprani/pycba

v0.8.0

11 Jun 12:00
c0268c1

Choose a tag to compare

What’s Changed

  • Nonlinear (elasto-plastic) beam analysis (NonlinearBeamAnalysis) — #140
  • Non-prismatic (variable-EI) elements (SectionEI) — #139
  • Imposed-curvature (initial-strain) loads (add_ic, load type 6) — #139
  • plus Markdown (MyST) documentation migration

Verification

  • Full suite: 117 passed (incl. the new test_rejects_nonprismatic_member).
  • Docs build warning-free; the prismatic-only note renders correctly in the nonlinear tutorial.

v0.7.0

25 Mar 06:11
ba96dde

Choose a tag to compare

v0.7.0

Features

Trapezoidal (linearly varying) distributed load (#101)

New load type 5 supports linearly varying distributed loads. Full-span form [span, 5, w1, w2] applies intensity w1 at the left end varying to w2 at the right. Partial form [span, 5, w1, w2, a, c] applies the load starting at position a over cover length c. A convenience method BeamAnalysis.add_trap() is also provided.

Coincident load effects on envelopes (#122)

When computing envelopes from a moving vehicle analysis, the co-existing value of the other effect (V or M) at the truck position that caused each envelope extreme is now tracked. New Envelopes attributes: Vco_Mmax, Vco_Mmin, Mco_Vmax, Mco_Vmin. The critical_values() output now includes "Vco" and "Mco" keys. Coincident values are preserved through augment() and zero_like().

Envelope addition (#92)

New Envelopes.sum() method for element-wise addition of compatible envelopes, enabling superposition of load effects from different sources (e.g. patterned UDL + moving vehicle envelopes).

Vehicle traverse range control (#53)

New pos_start and pos_end parameters on BridgeAnalysis.run_vehicle() restrict the vehicle traverse to a specified range. Useful for transverse deck analyses where the vehicle is confined to specific lanes.

Bug Fixes

Influence line IndexError (#89)

Fixed InfluenceLines.get_il() raising IndexError when the point of interest does not fall exactly on the result grid. Root cause was overly tight floating-point tolerance and zero-valued padding indices at span boundaries.

What’s Changed

v0.6.0

04 Mar 09:55

Choose a tag to compare

v0.6.0 — Release Notes

New Features

  • Prescribed displacements: Support for imposing known displacements at any DOF, enabling modelling of support settlements. Specify via the D argument to BeamAnalysis.
  • Spring support reactions: Spring forces are now reported in beam_results.Rs (upward positive, i.e. -k_s × u).

Bug Fixes

  • Load superposition: Fixed MemberResults.__add__ which was incorrectly accumulating shear (V) instead of rotation (R) when superimposing load cases.
  • Spring stiffness double-counting: Fixed a bug where spring stiffness was being added to the global stiffness matrix twice, giving incorrect results for spring-supported beams.
  • Spring reaction sign: Spring forces in beam_results.Rs are now reported with correct sign (upward positive).

Improvements

  • Theory documentation: Expanded theory.ipynb to cover global stiffness matrix assembly, spring supports, boundary condition enforcement, prescribed displacements, and reaction recovery.
  • Type definitions: Shared types (LoadType, LoadMatrix, LoadCNL, MemberResults) consolidated into types.py; explicit API exports replace wildcard imports.
  • CI: Dropped Python 3.8 support; added Python 3.12 and 3.13 to the test matrix. Minimum supported version is now Python 3.9.
  • Docs build: Replaced the unmaintained ammaraskar/sphinx-action with a native build step, fixing the GitHub Pages deployment.

Full Changelog: v0.5.2...v0.6.0

v0.5.2

24 Aug 00:21
08e1415

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v0.5.1...v0.5.2

v0.5.1

08 Apr 13:45
9d6c1ed

Choose a tag to compare

What's Changed

  • Added some theory docs by @ccaprani in #83
  • Fix deflections for etype 3 and 4 by @ccaprani in #80
  • Format Python code with psf/black push by @github-actions in #78

v0.5

31 Mar 06:17
55ae8f3

Choose a tag to compare

What’s Changed

  • Deflection shape fixes for all element types (#77) @ccaprani
  • corrected released end forces for etype=3 (Pinned-Fixed) (#75) @tpanagiotakos
  • Format Python code with psf/black push (#74) @github-actions
  • Bump codecov/codecov-action from 4.1.0 to 4.1.1 (#76) @dependabot

v0.4.2

22 Mar 00:52
ba1302d

Choose a tag to compare

What’s Changed

  • Fix for returning IL of vertical support near the POI (#73) @ccaprani

v0.4.1

02 Mar 03:41
5f3242d

Choose a tag to compare

What’s Changed

v0.4.0

05 Oct 09:53
911a12b

Choose a tag to compare

What’s Changed

  • Added new automatic load patterning for continuous beams
  • Added plot of load patterning envelopes
  • Added new examples notebook on load patterning & envelopes
  • Added test for enveloping.
  • Corrected that BMDs are plotted positive below the axis [per #48]

PRs:

v0.3

23 Sep 05:16
551a400

Choose a tag to compare

What’s Changed

Features

  • AS5100.2 Appendix C example (#47) @ccaprani
  • Added functionality to have static loads as well as moving vehicle loads in a BridgeAnalysis (#47).
  • Renamed the from_convoy to make_train and moved outside Vehicle class (#47).
  • Updated make_train example accordingly (#47).
  • Added utility functions for loads (#38) @ccaprani

Bug Fixes