Metadata-Version: 2.1
Name: pendulo
Version: 0.9.5
Summary: Python interface for retrieving results of Pendulo water hammer simulation
Home-page: UNKNOWN
Author: Dr. Pierre Antoine Jarrige
Author-email: piccolo@safege.fr
License: commercial
Keywords: Pendulo
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Win32 (MS Windows)
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: End Users/Desktop
Classifier: Intended Audience :: Science/Research
Classifier: License :: Free To Use But Restricted
Classifier: License :: Other/Proprietary License
Classifier: Operating System :: Microsoft :: Windows
Classifier: Programming Language :: Fortran
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Utilities
Requires-Python: >=3.8, <4
Description-Content-Type: text/x-rst
Requires-Dist: numpy (>=1.19.4)

PenWin32 (Pendulo) python API calling interface

What is it?
-----------
A python package enabling users to call a minimal set of PenWin32.dll API functions and subroutines within python scripts. For latest python version e.g. 3.10. 32 bits only.

Installation
------------
*Windows only* :: 

    pip install pendulo

Requirements (32 bits)
----------------------
  #) python 3.10
  #) numpy 1.21.3 (python 3.10)
  #) Pendulo kernel library (penwin32.dll) 2022+
  #) valid Pendulo_size and Pendulo_version license


This tool expects Picwin32.dll to be in the PATH or in one of the following folders::

                 %localappdata%/Programs/Safege/Pendulo or
                 %localappdata%/Programs/Suez/Pendulo or
 [ C: or D: ] / 'Program Files (x86)/Safege/Pendulo_' 
              + ['' or '_fr' or '_uk' or '_esp' or '_eng'] + ['' or '_ck']

With custom installations, PENDULO_DIR environment variable can be set to define the path. 

Content
-------

The package provides:
 #) pen_vers = init(debug=0) function
 #) close() function
 #) vdat, vval = ts(id_elem, typelt, attr) retrieves the result TS for element 'id_elem' of type 'typelt' and attribute 'attr'.
 
Example of 'typelt' and 'attr': 
 #) 'LINK' or 'ARC': 'Q'
 #) 'NODE' or 'NOEUD': 'P', 'CH' or 'HH'
 #) 'TANK' or 'RESERVOIR': 'NC' or 'NV', 'VO'
 #) 'PUMP' or 'POMPE': 'PC', 'VR', 'Q'
 #) 'VANNE' or 'ROBINET' or 'REGULATEUR': 'DO', 'PC', 'Q'
 #) 'ANB': 'Q', 'VO', 'NC' or 'NV'


Example
-------

::

 # -*- coding: utf-8 -*-
 import os.path as OP
 import pendulo
 from ganessa.plot import pageplot
 from ganessa.util import winstr
 
 folder = OP.dirname(__file__)
 # init pendulo
 pendulo.init()
 model = OP.join(folder, 'VIROFL_1.PEN')
 print('===\nChargement de ', model)
 istat = pendulo.loadmodel(winstr(model))
 if not istat:
     print(' * Erreur au chargement *')
 results = []
 for node in ['PEN1', '36N646', '36N495', '36N488', '36N463', '36N35']:
     t, v = pendulo.ts(winstr(node), typelt='NODE', attr='CH')
     if len(t) and len(v):
         results.append((node, t, v))
 fname = OP.join(folder, 'Simulation_1.png')
 pageplot(results, 'Simulation #1 - Charge aux noeuds', 2, 3, fname, inter=False, orient='h')
 pendulo.close()



