Pipe Stress Infinity (PSI) is an engineering analysis and design software used to evaluate the structural behavior and stresses of piping systems to a variety of different codes and standards.
PSI has an active developer and user community. If you find a bug or a problem with the documentation, please open an issue. Anyone is welcome to join our discord server were a lot of the development discussion is going on. It's also a great place to ask for help.
Some of the features of PSI are:
- Modeling of piping components such as Runs, Bends, Reducers, Valves, and Flanges
- Ability to specify section and material data properties for different cross-sections
- Access to a variety of different support types such as Anchors, global X, global Y, and global Z including non-linear support capability
- Assign loads such as Weight, Pressure, Thermal, Wind and Seismic
- Linear combinations of loads and combinations of load cases
- Stress evaluation based on B31.1 power piping code
- Linear static, modal and dynamic analyses
- Movements, support reactions, internal forces and code stress results
- And more...
PSI supports Python 3.5 and above. The following is a list of libraries that it depends on:
- jinja2
- numpy
- pint
- tqdm
To install PSI, type the following command in the terminal:
$ pip install psi --user
If you're reading this README from a source distribution, you can install PSI with:
$ python setup.py install --user
You can also install the latest development version direct from Github using:
$ pip install https://github.com/denisgomes/psi/archive/master.zip
For local development install PSI in editable mode:
# with pip
$ pip install -e .
# with setup.py
$ python setup.py develop
There are no compilation steps during the installation; if you prefer, you can simply add this directory to your PYTHONPATH and use PSI without installing it. You can also copy PSI directly into your project folder.
To start PSI in interactive mode just type:
$ psi
PSI provides an interpreter with added functionality for creating and analyzing piping systems using Python scripts. Type the input file shown below in your favorite text editor and save it as demo.inp:
.. literalinclude:: ../examples/demo.inp :language: python
Now run the file above to get the displacements at the nodes and the reaction force at the anchor:
$ psi demo.inp > demo.out # run demo.py and redirect to demo.out
Inspect the demo.out file to view the output:
.. literalinclude:: ../examples/demo.out
To go directly into interactive mode after running the model, use the -i switch:
$ psi -i demo.inp > demo.out # start the PSI interpreter
There are many different ways to contribute. You can promote PSI, fix bugs, participate on the mailing list, etc. Please read the documentation to find out more ways to contribute to the Community and Enterprise Editions.
The Community Edition of PSI is open source and can be used free of charge. If the software adds value to your life i.e. you use it to do commercial work for example, consider donating to support PSI's ongoing development. Also please read the documentation about the feature rich Enterprise Edition.
PSI's documentation is hosted on Read the Docs. The PDF version and other popular formats are also available on this website. To build the docs, type the following from the project root directory:
$ cd docs
$ make clean && make html
The PSI website (i.e. this site) consists of the project README.rst file hosted on GitHub via GitHub Pages. It lives on a branch called gh-pages and is viewable at the project website.
To build and upload the website, type the following from the project root directory:
$ cd www
$ make clean && make html # for testing
$ make github # to publish
$ cd tests
$ tox
PSI is developed by many individual volunteers, and there is no central point of contact. If you have a question about developing with PSI, or you wish to contribute, please join the mailing list or the discord server.
For license questions, please contact Denis Gomes, the primary author. Also check out the project links below.
- PSI on PyPI
- PSI documentation
- PSI discord server
- PSI mailing list
- PSI issue tracker