STAR
Cal STAR — firmware, DAQ server, and engine design
Loading...
Searching...
No Matches
feedtwin.model Namespace Reference

Namespaces

namespace  catalog
namespace  component
namespace  curve
namespace  param
namespace  pressure
namespace  segments
namespace  spec
namespace  units

Variables

list __all__

Detailed Description

The parameter and component model: "nothing hardcoded", as a type.

Every number describing hardware is a :class:`Param` -- a value, the unit it was
written in, where it came from, and how well it is known::

    from feedtwin.model import Param, Provenance

    Param(1.2, "Cv", Provenance.MANUFACTURER, "SS-8BK-V51 datasheet rev C")

There is no default for the source. A number with no provenance is a validation
error, because "nobody remembers where this came from" is the state this layer
exists to make impossible -- and it is the state most of a propulsion team's
numbers are in by the second year.

What each piece is for
----------------------
:mod:`~feedtwin.model.units`
    Conversion at the boundary and dimension checking. Author in psi and
    inches; the solver sees SI floats. A pressure written where a length
    belongs fails at load with both dimensions named.

:mod:`~feedtwin.model.param`
    :class:`Param`, :class:`Provenance`, :class:`Uncertainty`, and the report
    helpers that turn a pile of parameters into "nine measured, four datasheet,
    two guesses".

:mod:`~feedtwin.model.spec`
    :class:`ComponentSpec` -- what a kind of component has. Loaded from
    ``components.toml``, so a component's schema is data and only its physics is
    code. Validation, the Phase 10 inspector and the generated parameter tables
    all read this one declaration.

:mod:`~feedtwin.model.segments`
    :class:`LineSegment` and the loss-method ladder -- how a line's resistance
    is known, and which of several statements of it wins.

:mod:`~feedtwin.model.component`
    :class:`ComponentInstance`, one configured piece of hardware, and the
    provisional :class:`Component` protocol that Phase 03 implements against.

:mod:`~feedtwin.model.catalog`
    Part numbers to parameters, with datasheet values and measurements kept
    separately so the difference between them stays visible.

Serialisation is TOML in, plain dicts through, JSON for exact round-trips.
Deliberately not YAML: PyYAML parses ``1e-3`` as the *string* ``"1e-3"``, which
in a config full of orifice diameters is a silent, load-bearing bug.

Variable Documentation

◆ __all__

list feedtwin.model.__all__
private

Definition at line 100 of file __init__.py.