Skip to main content

Python interface for retrieving results of Pendulo water hammer simulation

Project description

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)

  1. python 3.10

  2. numpy 1.21.3 (python 3.10)

  3. Pendulo kernel library (penwin32.dll)

  4. 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:
  1. pen_vers = init(debug=0) function

  2. close() function

  3. 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’:
  1. ‘LINK’ or ‘ARC’: ‘Q’

  2. ‘NODE’ or ‘NOEUD’: ‘P’, ‘CH’ or ‘HH’

  3. ‘TANK’ or ‘RESERVOIR’: ‘NC’ or ‘NV’, ‘VO’

  4. ‘PUMP’ or ‘POMPE’: ‘PC’, ‘VR’, ‘Q’

  5. ‘VANNE’ or ‘ROBINET’ or ‘REGULATEUR’: ‘DO’, ‘PC’, ‘Q’

  6. ‘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()

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

pendulo-0.9.4-cp310-cp310-win32.whl (221.4 kB view hashes)

Uploaded CPython 3.10 Windows x86

pendulo-0.9.4-cp39-cp39-win32.whl (221.4 kB view hashes)

Uploaded CPython 3.9 Windows x86

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page