Skip to content
forked from pyphs/pyphs

A python package for the simulation of multiphysical systems in the Port-Hamiltonian Systems (PHS) formalism.

License

Notifications You must be signed in to change notification settings

FabricioS/pyphs

 
 

Repository files navigation

PyPHS

A python software dedicated to the simulation of multiphysical systems in the Port-Hamiltonian Systems (PHS) formalism.

It is developped in the project/team S3 (Sound Signals and Systems) at STMS Research Lab (CNRS UMR 9912), hosted by IRCAM.

It was initially developed between 2012 and 2016 as a part of the PhD project of Antoine Falaize, under the direction of Thomas Hélie, through a funding from French doctoral school EDITE (UPMC ED-130), and in connection with the French National Research Agency project HaMecMoPSys.

https://www.travis-ci.org/afalaize/pyphs.svg?branch=master https://coveralls.io/repos/github/afalaize/pyphs/badge.svg?branch=master issues Health

Installation

It is possible to install pyphs from package (if you just want to use it) or source (if you plan to use it for development) by following the instructions below. Whichever variant you choose, please make sure that all prerequisites are installed.

Prerequisites

To install the pyphs package, you must have either Python 2.7 or Python 3.4 or newer and the following packages installed:

Please refer to the requirements.txt file for the minimum required versions and make sure that these modules are up to date, otherwise it can result in unexpected errors or false computations!

Additionally, theano is used if available for faster numerical evaluation of symbolic functions.

Finally, the generated C++ code rely on the Eigen library (see Configuration below).

Install from package

The instructions given here should be used if you just want to install the package, e.g. to run the bundled programs or use some functionality for your own project. If you intend to change anything within the pyphs package, please follow the steps in the next section.

The easiest way to install the package is via pip from the PyPI (Python Package Index):

pip install pyphs

This includes the latest code and should install all dependencies automatically. If this is not the case, each dependency can be install the same way with pip.

You might need higher privileges (use su or sudo) to install the package globally. Alternatively you can install the package locally (i.e. only for you) by adding the --user argument:

pip install --user pyphs

Install from source

If you plan to use the package as a developer, clone the Git repository:

git clone --recursive https://github.com/afalaize/pyphs.git

Then you can simply install the package in development mode:

python setup.py develop --user

To run the included tests:

python setup.py test

Configuration

After installation, it is recommanded to configure the config.py to your needs. Particularily, this is where the local path to the Eigen library is specified (and then included in the generated C++ code).

Your local config.py file is located at the root of the pyphs package, which can be recovered with:

>>> import pyphs
>>> help(pyph)

Upgrade of existing installations

To upgrade the package, please use the same mechanism (pip vs. source) as you did for installation. If you want to change from package to source, please uninstall the package first.

Upgrade a package

Simply upgrade the package via pip:

pip install --upgrade pyphs [--user]

If some of the provided programs or models changed (please refer to the CHANGELOG) you should first uninstall the package and then reinstall:

pip uninstall pyphs
pip install pyphs [--user]

Upgrade from source

Simply pull the latest sources:

git pull

Package structure

The package has a very simple structure, divided into the following folders:

/docs
package documentation
/pyphs/tutorials
tutorials programs for the main `pyphs classes
/pyphs/examples
additional examples (executable programs)
/pyphs/core
define the core PHS structure class PHSCore
/pyphs/graphs
define the classes PHSNetlist and PHSGraph
/pyphs/dictionary
components (PHSGraph)
/pyphs/numerics
define the classes PHSEval, PHSNumericalMethod and PHSNumericalCore for the numerical evaluation of PHSCore
/pyphs/simulations
define the classes PHSSimulation and PHSData for simulation
/pyphs/latex
LaTeX code generation
/pyphs/cpp
C++ code generation
/pyphs/tests
test programs (withe nose)
/pyphs/plots
Plot tools
/pyphs/misc
Miscelaneous tools

Documentation

About

A python package for the simulation of multiphysical systems in the Port-Hamiltonian Systems (PHS) formalism.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%