Vessels: COPVs, tank ullages, manifold plenums.
All the same object at different sizes -- a closed volume of gas whose pressure
is what the rest of the system sees::
from feedtwin.props import Fluid
from feedtwin.vessels import GasVolume
copv = GasVolume(Fluid("nitrogen"), volume=0.009,
wall_mass=6.0, wall_capacity=900.0, wall_conductance=12.0)
state = copv.initial_state(pressure=310e5, temperature=293.15)
copv.pressure(state) # Pa, real gas
State is ``(mass, internal energy)`` rather than ``(mass, temperature)``, which
keeps a real gas's energy balance exact. See :mod:`feedtwin.vessels.volume` for
why that distinction is worth the trouble, and why a vessel wall is not an
optional refinement.