What is new in pyHarm ?

Changelog

Every modification is contained in this file.
The format is based on Keep a Changelog..

[1.1.0] - 2025-07-31

Added

  • pyHarm_CLI package : A Command Line Interface tool to help build project for pyHarm by producing skeleton input files – see documentation for more details – (same level as pyHarm main package).

  • Exporter.py module that contains some exportation classes and protocole that defines ways of exporting results from system class and analysis classes – export methods ahve been added to ABCSystem and the analysis in Analysis package.

  • Logger & logging features have been added in order to be able to export console outputs in separate files

  • DofGrabber.py module that provides functions to select dofs correctly for Elements and KinematicConditions packages as well as creating the selection matrices for NodeToNodeElements.

  • Logger.py module that wraps some logging configuration and is compatible with exportation of the results.

  • Timeout option has been added to the ABCStopcriterion used in FRF_Nonlinear analysis. Timeout shall be provided in the stopper_options dictionnary of the analysis parametrization.

stopper_options = dict(
  ...
  timeout = dict(
    status=True,
    timeout="00:01:00:00" # DD:HH:MM:SS
  )
  ...
)
  • Tutorial_000_QuickStart : a tutorial that walks you through the use of the CLI to build pyHarm project quickly.

Changed

  • Updated documentation to take into account all the changes as well as adding a page to help out with the use of the now provided CLI tool.

  • Added a new way to declare connexion in the input dictionary of Elements and KinematicConditions. Now keyword “connect” can be filled with list[list[substructure_name, list_node_number]] – legacy way remain valid – This new way avoid declaration of INTERNAL key to callback the same substructure name.

  • INTERNAL, GROUND are now a protected namespaces for the substructures. GROUND key can be used to declare ground connexion in “connect” input dictionnary of ABCElements and ABCKinematicConditions.

  • Now system parametrization for the number of harmonics is also compatible with list of specific harmonics [1,3,5,21,...] - only those harmonics will be created and solved in the system. As before, if provided with a int, all the harmonics will be conidered up to the number.

  • Now system is responsible of building the dynamic operators (DFT – DTF) that is shared between all the connectors and kinematic conditions (this reduces memory usage). It is also also possible to require a specifc number of timesteps in the input dict by filling a nti key of the connectors or kinematic conditions. This will lead to the creation of dedicated dynamic operators using this new time discretization. This is particularly usefull to have a fine time discretization on contact elements while not being necessary everywhere in the system.

Deprecated

  • getIndex method from Maestro class is now deprecated, please favor the use of new functions in DofGrabber.py

Removed

  • With the creation of DofGrabber.py module some functions have been deleted in order to avoid code duplication :

    • ConstructorPslavemaster from NodeToNodeElements.py

    • ConstructorPslavemaster from ABCKinematic.py

Fixed

  • FRF curve comparison during nonregression tests has been updated.

Security

  • No security changes in this release.

[1.0.3] - 2025-02-28

Added

  • poetry.lock file for harmonizing development environments when using Poetry.

  • gitlab-ci.yml file for automatic unit test runs and deployments to PyPi.

  • PyPi deployment under the pyHarm-os project.

Changed

  • Updated the pyproject.toml build system to use poetry and it is now recommended for developers.

  • Updated the dependencies versions in pyproject.toml.

  • Updated the documentation for the installation process for users according to the deployment of pyHarm onto PyPi under the pyHarm-os project.

Deprecated

  • No deprecations in this release.

Removed

  • No removals in this release.

Fixed

  • No issues fixed in this release.

Security

  • No security changes in this release.

[1.0.2] - 2025-02-25

Added

  • pyproject.toml for more modern project description file

Changed

  • No changes in this release.

Deprecated

  • No deprecations in this release.

Removed

  • setup.py is deprecated, has been replaced with more modern pyproject.toml

Fixed

  • python 3.13 isntallation compatibility

  • Issue with Jenkins #5

Security

  • No security changes in this release.

[1.0.1] - 2024-12-02

Added

  • pyHarm_env.yml file added in order to simplify conda environment setup.

  • .gitignore generic file added

Changed

  • No changes in this release.

Deprecated

  • No deprecations in this release.

Removed

  • No removals in this release.

Fixed

  • No fixes in this release.

Security

  • No security changes in this release.

[1.0.0] - 2024-10-09

Added

  • Initial release of the project.

  • Implementation of core features:

    • Package Analysis: Contains analysis framework available in pyHarm. Main feature is FRF analysis that compute a forced response curve using continuation procedure

    • Package Correctors: Contains correction framework available in pyHarm for continuation procedure. Main correctors are the arc_length, pseudo_arc_length and nocontinuation correctors.

    • Package Elements: Contains all the contributors to the residual equation framework available in pyHarm. Main features are NodeToNodeElemements connecting two nodes together, as well as multiple precoded linear and nonlinear elements including physical behavior such as friction, unilateral and bilateral contact, linear matrix (mass, rigidity, etc …)

    • Package KinematicConditions: Contains the kinematic condition framework available in pyHarm. Main feature are imposing a displacement or any derivative to a specific node, or projecting onto a chosen base.

    • Package NonLinearSolver: Contains the solver framework available in pyHarm. Main feature is scipyroot, wrapping root function from scipy to the imposed framework. All classes contained in this package are responsible of solving the nonlinear algebric equation.

    • Package Predictors: Contains the predictors framework available in pyHarm for the continuation process. Main feature is tangent, computing the tangent of the jacobian matrix at a solution point in order to provide a prediction direction.

    • Package Reductors: Contains the reductors framework available in pyHarm for the solving process. The reductors can be chained and their purpose is to facilitate the solving of the main algebric equations through reduction methods or preconditioning methods. Main feature are NLdofs reducing the system to solve using a nonlinear solver only on the nonlinear dofs, globalHarmonic reducing the number of harmonics to be solved, AllgowerPreconditioner that precondition the system using a scaling matrix based on the Jacobian evaluated at a given point.

    • Package StopCriterion: Contains the stop criterion framework available in pyHarm for analysis. Main feature is bounds, returning a stop criterion once angular frequency bounds are being reached.

    • Package Substructures: Contains the dofs creation framework available in pyHarm. Main feature is substructure, building a vector of dofs according to input matrices (mass, rigidity, etc … ) and creating matrix elements according to the provided matrices.

    • Package System: Contains the system framework available in pyHarm. Main feature is Base, basic system that is responsible of assembling the residual and jacobian.

    • Module Maestro: Contains the main user interface, responsible for launching the analysis onto the provided system. This uses dictionnary as input and build the system to be solved accordingly.

  • User documentation

Changed

  • No changes in this release.

Deprecated

  • No deprecations in this release.

Removed

  • No removals in this release.

Fixed

  • No fixes in this release.

Security

  • No security changes in this release.