diff --git a/PythonModels/systems/test_mql_closure.py b/PythonModels/systems/test_mql_closure.py index d2fa0dc..3109bb4 100644 --- a/PythonModels/systems/test_mql_closure.py +++ b/PythonModels/systems/test_mql_closure.py @@ -280,6 +280,14 @@ class TestMqlPn3P4NodeChamberSegmentComponents: spec: TestMqlPneumaticChamberSegmentSpec +@dataclass(frozen=True) +class TestMqlFixedChamberSegmentFlows: + inlet_node_to_line_flow: float + inlet_line_to_chamber_flow: float + outlet_node_to_line_flow: float + outlet_line_to_chamber_flow: float + + @dataclass(frozen=True) class TestMqlPn3NodeBalancePort: flow_kg_s: float @@ -716,24 +724,21 @@ class TestMqlPn3P4NodeChamberSegmentClosure: resistance_boundary = self.resistance_boundary.properties( self.components.node_resistance.gas ) - inlet_node_to_line_flow = self.components.inlet_line.resistance_mass_flow( - port_1_pressure_pa=p4_port3_remote_orifice_line_port_1.p, - port_1_temperature_k=p4_port3_remote_orifice_line_port_1.T, - ) - outlet_node_to_line_flow = self.components.outlet_line.resistance_mass_flow( - port_1_pressure_pa=node_line_port_1.p, - port_1_temperature_k=node_line_port_1.T, - ) - inlet_line_to_chamber_flow = self._line_to_chamber_flow( - line=inlet_line, - chamber=chamber, - orifice=self.components.inlet_orifice, - ) - outlet_line_to_chamber_flow = self._line_to_chamber_flow( - line=outlet_line, - chamber=chamber, - orifice=self.components.outlet_orifice, + chamber_segment_flows = self._fixed_chamber_segment_flows( + chamber_properties=chamber, + inlet_line=self.components.inlet_line, + inlet_line_properties=inlet_line, + inlet_node_properties=p4_port3_remote_orifice_line_port_1, + inlet_orifice=self.components.inlet_orifice, + outlet_line=self.components.outlet_line, + outlet_line_properties=outlet_line, + outlet_node_properties=node_line_port_1, + outlet_orifice=self.components.outlet_orifice, ) + inlet_node_to_line_flow = chamber_segment_flows.inlet_node_to_line_flow + inlet_line_to_chamber_flow = chamber_segment_flows.inlet_line_to_chamber_flow + outlet_node_to_line_flow = chamber_segment_flows.outlet_node_to_line_flow + outlet_line_to_chamber_flow = chamber_segment_flows.outlet_line_to_chamber_flow node_to_resistance_flow = self.components.node_resistance.mass_flow( port_1_pressure_pa=node_line_port_1.p, port_1_temperature_k=node_line_port_1.T, @@ -846,12 +851,43 @@ class TestMqlPn3P4NodeChamberSegmentClosure: port_1_temperature_k=p4_bridge_primary_chamber.T, ) ) - p4_port1_next_orifice_resistance_chamber_inlet_node_to_line_flow = ( - self.components.p4_port1_next_orifice_resistance_chamber_inlet_line.resistance_mass_flow( - port_1_pressure_pa=p4_port1_remote_orifice_line_port_1.p, - port_1_temperature_k=p4_port1_remote_orifice_line_port_1.T, + p4_port1_next_orifice_resistance_chamber_flows = ( + self._fixed_chamber_segment_flows( + chamber_properties=p4_port1_next_orifice_resistance_chamber, + inlet_line=( + self.components.p4_port1_next_orifice_resistance_chamber_inlet_line + ), + inlet_line_properties=( + p4_port1_next_orifice_resistance_chamber_inlet_line + ), + inlet_node_properties=p4_port1_remote_orifice_line_port_1, + inlet_orifice=( + self.components.p4_port1_next_orifice_resistance_chamber_inlet_orifice + ), + outlet_line=( + self.components.p4_port1_next_orifice_resistance_chamber_outlet_line + ), + outlet_line_properties=( + p4_port1_next_orifice_resistance_chamber_outlet_line + ), + outlet_node_properties=p4_port1_next_orifice_resistance_line_port_1, + outlet_orifice=( + self.components.p4_port1_next_orifice_resistance_chamber_outlet_orifice + ), ) ) + p4_port1_next_orifice_resistance_chamber_inlet_node_to_line_flow = ( + p4_port1_next_orifice_resistance_chamber_flows.inlet_node_to_line_flow + ) + p4_port1_next_orifice_resistance_chamber_inlet_line_to_chamber_flow = ( + p4_port1_next_orifice_resistance_chamber_flows.inlet_line_to_chamber_flow + ) + p4_port1_next_orifice_resistance_chamber_outlet_node_to_line_flow = ( + p4_port1_next_orifice_resistance_chamber_flows.outlet_node_to_line_flow + ) + p4_port1_next_orifice_resistance_chamber_outlet_line_to_chamber_flow = ( + p4_port1_next_orifice_resistance_chamber_flows.outlet_line_to_chamber_flow + ) p4_port1_remote_orifice_node_balance = self._pn3_node_balance( node=self.components.p4_port1_remote_orifice_node, primary_properties=p4_port1_remote_orifice_line_port_1, @@ -947,27 +983,28 @@ class TestMqlPn3P4NodeChamberSegmentClosure: port_temperature_k=p4_port3_next_primary_line.T, ) ) - p4_port3_next_chamber_inlet_node_to_line_flow = ( - self.components.p4_port3_next_chamber_inlet_line.resistance_mass_flow( - port_1_pressure_pa=p4_port3_next_orifice_line_port_1.p, - port_1_temperature_k=p4_port3_next_orifice_line_port_1.T, - ) + p4_port3_next_chamber_flows = self._fixed_chamber_segment_flows( + chamber_properties=p4_port3_next_chamber, + inlet_line=self.components.p4_port3_next_chamber_inlet_line, + inlet_line_properties=p4_port3_next_chamber_inlet_line, + inlet_node_properties=p4_port3_next_orifice_line_port_1, + inlet_orifice=self.components.p4_port3_next_chamber_inlet_orifice, + outlet_line=self.components.p4_port3_next_chamber_outlet_line, + outlet_line_properties=p4_port3_next_chamber_outlet_line, + outlet_node_properties=p4_port3_remote_resistance_node_line_port_1, + outlet_orifice=self.components.p4_port3_next_chamber_outlet_orifice, ) - p4_port3_next_chamber_inlet_line_to_chamber_flow = self._line_to_chamber_flow( - line=p4_port3_next_chamber_inlet_line, - chamber=p4_port3_next_chamber, - orifice=self.components.p4_port3_next_chamber_inlet_orifice, + p4_port3_next_chamber_inlet_node_to_line_flow = ( + p4_port3_next_chamber_flows.inlet_node_to_line_flow + ) + p4_port3_next_chamber_inlet_line_to_chamber_flow = ( + p4_port3_next_chamber_flows.inlet_line_to_chamber_flow ) p4_port3_next_chamber_outlet_node_to_line_flow = ( - self.components.p4_port3_next_chamber_outlet_line.resistance_mass_flow( - port_1_pressure_pa=p4_port3_remote_resistance_node_line_port_1.p, - port_1_temperature_k=p4_port3_remote_resistance_node_line_port_1.T, - ) + p4_port3_next_chamber_flows.outlet_node_to_line_flow ) - p4_port3_next_chamber_outlet_line_to_chamber_flow = self._line_to_chamber_flow( - line=p4_port3_next_chamber_outlet_line, - chamber=p4_port3_next_chamber, - orifice=self.components.p4_port3_next_chamber_outlet_orifice, + p4_port3_next_chamber_outlet_line_to_chamber_flow = ( + p4_port3_next_chamber_flows.outlet_line_to_chamber_flow ) p4_port3_next_resistance_node_to_next_flow = ( self.components.p4_port3_next_orifice_resistance.mass_flow( @@ -1007,31 +1044,36 @@ class TestMqlPn3P4NodeChamberSegmentClosure: p4_port3_next_orifice_output_to_p4_flow = ( p4_port3_next_orifice_to_output_line_flow ) - p4_port3_next_resistance_chamber_inlet_node_to_line_flow = ( - self.components.p4_port3_next_resistance_chamber_inlet_line.resistance_mass_flow( - port_1_pressure_pa=p4_port1_next_orifice_line_port_1.p, - port_1_temperature_k=p4_port1_next_orifice_line_port_1.T, + p4_port3_next_resistance_chamber_flows = ( + self._fixed_chamber_segment_flows( + chamber_properties=p4_port3_next_resistance_chamber, + inlet_line=self.components.p4_port3_next_resistance_chamber_inlet_line, + inlet_line_properties=p4_port3_next_resistance_chamber_inlet_line, + inlet_node_properties=p4_port1_next_orifice_line_port_1, + inlet_orifice=( + self.components.p4_port3_next_resistance_chamber_inlet_orifice + ), + outlet_line=( + self.components.p4_port3_next_resistance_chamber_outlet_line + ), + outlet_line_properties=p4_port3_next_resistance_chamber_outlet_line, + outlet_node_properties=p4_port3_next_resistance_node_line_port_1, + outlet_orifice=( + self.components.p4_port3_next_resistance_chamber_outlet_orifice + ), ) ) + p4_port3_next_resistance_chamber_inlet_node_to_line_flow = ( + p4_port3_next_resistance_chamber_flows.inlet_node_to_line_flow + ) p4_port3_next_resistance_chamber_inlet_line_to_chamber_flow = ( - self._line_to_chamber_flow( - line=p4_port3_next_resistance_chamber_inlet_line, - chamber=p4_port3_next_resistance_chamber, - orifice=self.components.p4_port3_next_resistance_chamber_inlet_orifice, - ) + p4_port3_next_resistance_chamber_flows.inlet_line_to_chamber_flow ) p4_port3_next_resistance_chamber_outlet_node_to_line_flow = ( - self.components.p4_port3_next_resistance_chamber_outlet_line.resistance_mass_flow( - port_1_pressure_pa=p4_port3_next_resistance_node_line_port_1.p, - port_1_temperature_k=p4_port3_next_resistance_node_line_port_1.T, - ) + p4_port3_next_resistance_chamber_flows.outlet_node_to_line_flow ) p4_port3_next_resistance_chamber_outlet_line_to_chamber_flow = ( - self._line_to_chamber_flow( - line=p4_port3_next_resistance_chamber_outlet_line, - chamber=p4_port3_next_resistance_chamber, - orifice=self.components.p4_port3_next_resistance_chamber_outlet_orifice, - ) + p4_port3_next_resistance_chamber_flows.outlet_line_to_chamber_flow ) p4_port1_next_orifice_resistance_node_to_next_flow = ( self.components.p4_port1_next_orifice_resistance.mass_flow( @@ -1041,26 +1083,6 @@ class TestMqlPn3P4NodeChamberSegmentClosure: port_2_temperature_k=p4_port1_next_orifice_line_port_1.T, ) ) - p4_port1_next_orifice_resistance_chamber_inlet_line_to_chamber_flow = ( - self._line_to_chamber_flow( - line=p4_port1_next_orifice_resistance_chamber_inlet_line, - chamber=p4_port1_next_orifice_resistance_chamber, - orifice=self.components.p4_port1_next_orifice_resistance_chamber_inlet_orifice, - ) - ) - p4_port1_next_orifice_resistance_chamber_outlet_node_to_line_flow = ( - self.components.p4_port1_next_orifice_resistance_chamber_outlet_line.resistance_mass_flow( - port_1_pressure_pa=p4_port1_next_orifice_resistance_line_port_1.p, - port_1_temperature_k=p4_port1_next_orifice_resistance_line_port_1.T, - ) - ) - p4_port1_next_orifice_resistance_chamber_outlet_line_to_chamber_flow = ( - self._line_to_chamber_flow( - line=p4_port1_next_orifice_resistance_chamber_outlet_line, - chamber=p4_port1_next_orifice_resistance_chamber, - orifice=self.components.p4_port1_next_orifice_resistance_chamber_outlet_orifice, - ) - ) p4_port1_next_orifice_node_balance = self._pn3_node_balance( node=self.components.p4_port1_next_orifice_node, primary_properties=p4_port1_next_orifice_line_port_1, @@ -1752,6 +1774,40 @@ class TestMqlPn3P4NodeChamberSegmentClosure: connected_h=connected_h, ) + def _fixed_chamber_segment_flows( + self, + *, + chamber_properties: ThermodynamicProperties, + inlet_line: AmesimPnl0001Pipe, + inlet_line_properties: ThermodynamicProperties, + inlet_node_properties: ThermodynamicProperties, + inlet_orifice: AmesimPneumaticOrifice, + outlet_line: AmesimPnl0001Pipe, + outlet_line_properties: ThermodynamicProperties, + outlet_node_properties: ThermodynamicProperties, + outlet_orifice: AmesimPneumaticOrifice, + ) -> TestMqlFixedChamberSegmentFlows: + return TestMqlFixedChamberSegmentFlows( + inlet_node_to_line_flow=inlet_line.resistance_mass_flow( + port_1_pressure_pa=inlet_node_properties.p, + port_1_temperature_k=inlet_node_properties.T, + ), + inlet_line_to_chamber_flow=self._line_to_chamber_flow( + line=inlet_line_properties, + chamber=chamber_properties, + orifice=inlet_orifice, + ), + outlet_node_to_line_flow=outlet_line.resistance_mass_flow( + port_1_pressure_pa=outlet_node_properties.p, + port_1_temperature_k=outlet_node_properties.T, + ), + outlet_line_to_chamber_flow=self._line_to_chamber_flow( + line=outlet_line_properties, + chamber=chamber_properties, + orifice=outlet_orifice, + ), + ) + def _pn3_node_balance( self, *,