22 lines
509 B
Python
22 lines
509 B
Python
from __future__ import annotations
|
|
|
|
from dataclasses import dataclass
|
|
|
|
|
|
@dataclass
|
|
class VolumeState:
|
|
"""Primary dynamic state for rigid adiabatic control volumes."""
|
|
|
|
m: float
|
|
U: float
|
|
|
|
def as_vector(self) -> list[float]:
|
|
return [self.m, self.U]
|
|
|
|
@classmethod
|
|
def from_vector(cls, values: list[float]) -> "VolumeState":
|
|
if len(values) != 2:
|
|
raise ValueError("VolumeState requires exactly two values: [m, U].")
|
|
return cls(m=values[0], U=values[1])
|
|
|