pylot-db
Read side of the hydrodynamic database: open a library, rank stored floating
conditions against a vessel pose, and deliver a mafredo.Hyddb1.
Install this if you only use hydrodynamic databases. It does not require capytaine, pymeshup or DAVE.
pip install pylot-db
Getting a mafredo database out of a stored library
A library holds many solved conditions. You do not pick one by name — you say how the vessel is floating, and the library ranks what it has against that.
import numpy as np
from pylot_db import Library
with Library.open("tanker.pylot") as library:
ranking = library.select(
z_origin=-11.6, # z of the vessel origin in diffraction space [m]
heel=0.0, # slope, not degrees
trim=0.004, # slope, not degrees
water_depth=np.inf,
forward_speed=0.0,
)
if not ranking:
raise SystemExit(ranking.reason) # why nothing matched, in words
best = ranking.best
if not best.usable:
raise SystemExit(best.reason) # matched, but cannot produce a database
selection = library.deliver(best, rho=1.025) # t/m3
hyddb = selection.hyddb # a mafredo.Hyddb1
point = selection.application_point # (3,) vessel-local, where forces apply
hyddb is an ordinary mafredo.Hyddb1, so from here it is mafredo's API:
hyddb.amass(omega=0.5) # (6, 6) added mass at 0.5 rad/s
hyddb.damping(omega=0.5) # (6, 6) radiation damping
hyddb.force(omega=0.5, wave_direction=180.0) # (6,) complex excitation
Four things worth knowing before you trust a number:
heelandtrimare slopes, everywhere in this API. Degrees appear in user interfaces and nowhere else.rhois in t/m³ and is applied on delivery. Results are stored per unit density, so the library itself has no density to be wrong about.- The delivered database always covers the full 360° of wave direction, even when only 0–180° was solved, and direction means direction of travel.
application_pointis vessel-local and is where the forces inhyddbapply. It is not the origin, and using the wrong one is a moment error that looks plausible.
ranking.candidates is every condition that survived the hard filters, best
first, and nothing is dropped for scoring badly. When the closest match is a
poor one, that is a fact about your library, and this package's position is that
you should be able to see it rather than have it silently handled.
What is where
docs/api.md |
The reference: every public name, with its units |
docs/README.md |
Where the specification lives and why it is not here |
Building a library — meshing and solving — is
pylot-bem, which depends on this
package and never the reverse. A file written there opens here on a machine with
no BEM solver installed, which is the whole point of the split.
Licence
MIT. Copyright 2026 Ruben de Bruin / DAVE Lab.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pylot_db-2026.8.1.tar.gz.
File metadata
- Download URL: pylot_db-2026.8.1.tar.gz
- Upload date:
- Size: 123.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
527cc86ddadd837617dcd3c55f354fdab7686f575cba13b2ea1378c743988769
|
|
| MD5 |
a8a597b1e465a8f72ccd69af07604168
|
|
| BLAKE2b-256 |
bae4ac30158f545c3a97fb83dc77b1ac44afa6c6227790c09ab91034f3cd0817
|
Provenance
The following attestation bundles were made for pylot_db-2026.8.1.tar.gz:
Publisher:
publish.yml on dave-open/pylot-db
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pylot_db-2026.8.1.tar.gz -
Subject digest:
527cc86ddadd837617dcd3c55f354fdab7686f575cba13b2ea1378c743988769 - Sigstore transparency entry: 2466722651
- Sigstore integration time:
-
Permalink:
dave-open/pylot-db@ee950ed354fd5db89a58282cce9ef3a4ea843c77 -
Branch / Tag:
refs/tags/2026.8.1 - Owner: https://github.com/dave-open
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@ee950ed354fd5db89a58282cce9ef3a4ea843c77 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pylot_db-2026.8.1-py3-none-any.whl.
File metadata
- Download URL: pylot_db-2026.8.1-py3-none-any.whl
- Upload date:
- Size: 50.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4671db8270df5609ec991bbe85d64aaa111759f2d2d4f6ceb53399d60a635ee9
|
|
| MD5 |
e4cee615ecfde80c013fc34f8cf3622f
|
|
| BLAKE2b-256 |
f8350ad8462ee2209a78ab8c9f352f16fb85d48cd37ccf5ce41228bc74ee4078
|
Provenance
The following attestation bundles were made for pylot_db-2026.8.1-py3-none-any.whl:
Publisher:
publish.yml on dave-open/pylot-db
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pylot_db-2026.8.1-py3-none-any.whl -
Subject digest:
4671db8270df5609ec991bbe85d64aaa111759f2d2d4f6ceb53399d60a635ee9 - Sigstore transparency entry: 2466722678
- Sigstore integration time:
-
Permalink:
dave-open/pylot-db@ee950ed354fd5db89a58282cce9ef3a4ea843c77 -
Branch / Tag:
refs/tags/2026.8.1 - Owner: https://github.com/dave-open
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@ee950ed354fd5db89a58282cce9ef3a4ea843c77 -
Trigger Event:
push
-
Statement type: