What is new in pyHarm ?¶
Changelog¶
Every modification is contained in this file.
The format is based on Keep a Changelog..
[1.1.3] - 2025-08-05¶
Added¶
Configuration files are written in the $HOME of the user at first launch under
~/.pyHarm/settings.jsonfolder. The configuration file contains th reference to extension that have to be loaded in the kernel. The user configuration file can get overwrite by local/project configuration file under./.pyHarm/settings.jsonAddition of
pyharm activateandpyharm deactivatecommands in the CLI in order to simplify the cumbersome repetition of thePROJECT_NAMEfor each command.
Changed¶
Plugin of the objects written in the extensions is now responsability of pyHarm-os instead of the extensions themselves.
In the CLI & for most of the commands
PPROJECT_NAMEis now optionnal and provided using--project|-ptag. By default, the CLI will use the activated project if there is one
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.1.2] - 2025-07-31¶
Added¶
pyHarm_CLIpackage : 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.pymodule that contains some exportation classes and protocole that defines ways of exporting results from system class and analysis classes – export methods ahve been added toABCSystemand the analysis inAnalysispackage.Logger & logging features have been added in order to be able to export console outputs in separate files
DofGrabber.pymodule that provides functions to select dofs correctly forElementsandKinematicConditionspackages as well as creating the selection matrices forNodeToNodeElements.Logger.pymodule that wraps some logging configuration and is compatible with exportation of the results.Timeout option has been added to the
ABCStopcriterionused inFRF_Nonlinearanalysis. Timeout shall be provided in thestopper_optionsdictionnary 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.
Extension capabilities using “pyharm.extensions” entry point. When loading pyHarm,
importlib.metadatalook for package with “pyharm.extensions” entry point and load those extensions. Extensions should use the plugin system when being registered
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
ElementsandKinematicConditions. Now keyword “connect” can be filled with list[list[substructure_name, list_node_number]] – legacy way remain valid – This new way avoid declaration ofINTERNALkey to callback the same substructure name.INTERNAL,GROUNDare now a protected namespaces for the substructures.GROUNDkey can be used to declare ground connexion in “connect” input dictionnary ofABCElementsandABCKinematicConditions.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 aint, 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
ntikey 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¶
getIndexmethod fromMaestroclass is now deprecated, please favor the use of new functions inDofGrabber.py
Removed¶
With the creation of
DofGrabber.pymodule some functions have been deleted in order to avoid code duplication :ConstructorPslavemasterfromNodeToNodeElements.pyConstructorPslavemasterfromABCKinematic.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.lockfile for harmonizing development environments when using Poetry.gitlab-ci.ymlfile for automatic unit test runs and deployments to PyPi.PyPi deployment under the
pyHarm-osproject.
Changed¶
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.tomlfor more modern project description file
Changed¶
No changes in this release.
Deprecated¶
No deprecations in this release.
Removed¶
setup.pyis deprecated, has been replaced with more modernpyproject.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.ymlfile added in order to simplify conda environment setup..gitignoregeneric 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 isFRFanalysis that compute a forced response curve using continuation procedurePackage
Correctors: Contains correction framework available in pyHarm for continuation procedure. Main correctors are thearc_length,pseudo_arc_lengthandnocontinuationcorrectors.Package
Elements: Contains all the contributors to the residual equation framework available in pyHarm. Main features areNodeToNodeElemementsconnecting 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 isscipyroot, 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 istangent, 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 areNLdofsreducing the system to solve using a nonlinear solver only on the nonlinear dofs,globalHarmonicreducing the number of harmonics to be solved,AllgowerPreconditionerthat 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 isbounds, returning a stop criterion once angular frequency bounds are being reached.Package
Substructures: Contains the dofs creation framework available in pyHarm. Main feature issubstructure, 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 isBase, 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.