Source code for diveplan.models.buhlmann.zhl16

"""Bühlmann ZHL-16 variants — coefficient tables over the shared engine.

The whole algorithm lives in :class:`~diveplan.models.buhlmann.model.BuhlmannModel`;
a variant is nothing but ``NAME`` plus its published tables (half-times in
minutes, ``a`` in bar, ``b`` dimensionless). ZHL-16A/16B can be added the
same way once their tables are transcribed and verified.
"""

from diveplan.models.buhlmann.model import BuhlmannModel, BuhlmannState

__all__ = ["ZHL16C", "BuhlmannState"]


[docs] class ZHL16C(BuhlmannModel): """Bühlmann ZHL-16C, 16 compartments (1b first-compartment variant). Sources: Bühlmann, *Tauchmedizin*; identical values are used by Subsurface/OSTC. """ NAME = "zhl16c" # fmt: off N2_HALF_TIMES = ( 5.0, 8.0, 12.5, 18.5, 27.0, 38.3, 54.3, 77.0, 109.0, 146.0, 187.0, 239.0, 305.0, 390.0, 498.0, 635.0, ) N2_A = ( 1.1696, 1.0000, 0.8618, 0.7562, 0.6200, 0.5043, 0.4410, 0.4000, 0.3750, 0.3500, 0.3295, 0.3065, 0.2835, 0.2610, 0.2480, 0.2327, ) N2_B = ( 0.5578, 0.6514, 0.7222, 0.7825, 0.8126, 0.8434, 0.8693, 0.8910, 0.9092, 0.9222, 0.9319, 0.9403, 0.9477, 0.9544, 0.9602, 0.9653, ) HE_HALF_TIMES = ( 1.88, 3.02, 4.72, 6.99, 10.21, 14.48, 20.53, 29.11, 41.20, 55.19, 70.69, 90.34, 115.29, 147.42, 188.24, 240.03, ) HE_A = ( 1.6189, 1.3830, 1.1919, 1.0458, 0.9220, 0.8205, 0.7305, 0.6502, 0.5950, 0.5545, 0.5333, 0.5189, 0.5181, 0.5176, 0.5172, 0.5119, ) HE_B = ( 0.4770, 0.5747, 0.6527, 0.7223, 0.7582, 0.7957, 0.8279, 0.8553, 0.8757, 0.8903, 0.8997, 0.9073, 0.9122, 0.9171, 0.9217, 0.9267, ) # fmt: on __slots__ = ()