2626 TimeSeriesSplitterConfiguration ,
2727 TimeSeriesTemperatureSetterConfiguration ,
2828)
29+ from libecalc .ecalc_model .time_series_fluid_model import TimeSeriesFluidModel
2930from libecalc .ecalc_model .time_series_stream import TimeSeriesStream
3031from libecalc .expression .expression import ExpressionType
3132from libecalc .presentation .yaml .domain .expression_time_series_flow_rate import ExpressionTimeSeriesFlowRate
3233from libecalc .presentation .yaml .domain .reference_service import ReferenceService
3334from libecalc .presentation .yaml .domain .time_series_expression import TimeSeriesExpression
3435from libecalc .presentation .yaml .mappers .charts .user_defined_chart_data import UserDefinedChartData
3536from libecalc .presentation .yaml .mappers .consumer_function_mapper import handle_condition_list
36- from libecalc .presentation .yaml .mappers .fluid_mapper import (
37- composition_fluid_model_mapper ,
38- predefined_fluid_model_mapper ,
39- )
37+ from libecalc .presentation .yaml .mappers .fluid_mapper import fluid_definition_mapper
4038from libecalc .presentation .yaml .mappers .model import InvalidChartResourceException
4139from libecalc .presentation .yaml .mappers .process .build_sections import ProcessSectionBuilder
4240from libecalc .presentation .yaml .yaml_types .components .yaml_expression_type import YamlExpressionType
43- from libecalc .presentation .yaml .yaml_types .models import YamlFluidModel
4441from libecalc .presentation .yaml .yaml_types .models .yaml_compressor_stages import YamlControlMarginUnits
45- from libecalc .presentation .yaml .yaml_types .models . yaml_fluid import YamlCompositionFluidModel , YamlPredefinedFluidModel
42+ from libecalc .presentation .yaml .yaml_types .process . yaml_fluid_definitions import YamlFluidDefinition
4643from libecalc .presentation .yaml .yaml_types .process .yaml_process_pipeline import YamlProcessPipeline
4744from libecalc .presentation .yaml .yaml_types .process .yaml_process_references import (
45+ DefinitionReference ,
4846 InstanceReference ,
4947)
5048from libecalc .presentation .yaml .yaml_types .process .yaml_process_simulation import (
6260)
6361from libecalc .presentation .yaml .yaml_types .streams .yaml_inlet_stream import YamlInletStream , YamlInletStreamRate
6462from libecalc .presentation .yaml .yaml_types .yaml_data_or_file import YamlFile
65- from libecalc .process .fluid_stream .fluid_model import FluidModel
6663from libecalc .process .fluid_stream .fluid_service import FluidService
6764from libecalc .process .fluid_stream .fluid_stream import FluidStream
6865from libecalc .process .process_pipeline .process_pipeline import (
@@ -186,11 +183,13 @@ def _resolve_stream_reference(self, ref: str | YamlInletStream) -> YamlInletStre
186183 else :
187184 return ref
188185
189- def _resolve_fluid_model_reference (self , ref : str | YamlFluidModel ) -> YamlFluidModel :
190- if isinstance (ref , str ):
191- return self ._reference_service .get_fluid (reference = ref )
192- else :
193- return ref
186+ def _resolve_fluid_definition (
187+ self ,
188+ reference : DefinitionReference | YamlFluidDefinition ,
189+ ) -> YamlFluidDefinition :
190+ if isinstance (reference , str ):
191+ return self ._reference_service .get_fluid_definition (reference )
192+ return reference
194193
195194 def _map_conditions (
196195 self , conditions : YamlExpressionType | list [YamlExpressionType ] | None
@@ -235,14 +234,14 @@ def _map_temperature(self, temperature: ExpressionType) -> TimeSeriesExpression:
235234 expression = temperature ,
236235 )
237236
238- def _map_fluid_model ( self , yaml_fluid_model : YamlFluidModel ) -> FluidModel :
239- match yaml_fluid_model :
240- case YamlPredefinedFluidModel ():
241- return predefined_fluid_model_mapper ( yaml_fluid_model )
242- case YamlCompositionFluidModel ():
243- return composition_fluid_model_mapper ( yaml_fluid_model )
244- case _:
245- assert_never ( yaml_fluid_model )
237+ def _map_fluid_definition (
238+ self ,
239+ fluid_definition : YamlFluidDefinition ,
240+ ) -> TimeSeriesFluidModel :
241+ return fluid_definition_mapper (
242+ fluid_definition ,
243+ expression_evaluator = self . _expression_evaluator ,
244+ )
246245
247246 def _validate_and_map_pipeline_events (
248247 self ,
@@ -347,14 +346,14 @@ def map_process_simulation(
347346
348347 case YamlMixerDefinition ():
349348 yaml_stream = self ._resolve_stream_reference (yaml_process_unit .sidestream )
350- yaml_fluid_model = self ._resolve_fluid_model_reference (yaml_stream .fluid_model )
349+ yaml_fluid_definition = self ._resolve_fluid_definition (yaml_stream .fluid )
351350 unit = Mixer (fluid_service = self ._fluid_service )
352351 problem_time_series_configurations [unit .get_id ()] = TimeSeriesMixerConfiguration (
353352 sidestream = TimeSeriesStream (
354353 pressure_bara = self ._map_pressure (yaml_stream .pressure ),
355354 standard_rate_m3_per_day = self ._map_rate (yaml_stream .rate ),
356355 temperature_kelvin = self ._map_temperature (yaml_stream .temperature ),
357- fluid_model = self ._map_fluid_model ( yaml_fluid_model ),
356+ fluid_model = self ._map_fluid_definition ( yaml_fluid_definition ),
358357 )
359358 )
360359
@@ -539,12 +538,12 @@ def map_process_simulation(
539538 )
540539
541540 yaml_stream = self ._resolve_stream_reference (yaml_stream_distribution .inlet_stream )
542- yaml_fluid_model = self ._resolve_fluid_model_reference (yaml_stream .fluid_model )
541+ yaml_fluid_definition = self ._resolve_fluid_definition (yaml_stream .fluid )
543542 inlet_stream = TimeSeriesStream (
544543 pressure_bara = self ._map_pressure (yaml_stream .pressure ),
545544 standard_rate_m3_per_day = self ._map_rate (yaml_stream .rate ),
546545 temperature_kelvin = self ._map_temperature (yaml_stream .temperature ),
547- fluid_model = self ._map_fluid_model ( yaml_fluid_model ),
546+ fluid_model = self ._map_fluid_definition ( yaml_fluid_definition ),
548547 )
549548 stream_distribution = CommonStreamDistributionConfig (
550549 inlet_stream = inlet_stream ,
@@ -554,13 +553,13 @@ def map_process_simulation(
554553 inlet_streams = []
555554 for inlet_stream in yaml_stream_distribution .inlet_streams :
556555 yaml_stream = self ._resolve_stream_reference (inlet_stream )
557- yaml_fluid_model = self ._resolve_fluid_model_reference (yaml_stream .fluid_model )
556+ yaml_fluid_definition = self ._resolve_fluid_definition (yaml_stream .fluid )
558557 inlet_streams .append (
559558 TimeSeriesStream (
560559 pressure_bara = self ._map_pressure (yaml_stream .pressure ),
561560 standard_rate_m3_per_day = self ._map_rate (yaml_stream .rate ),
562561 temperature_kelvin = self ._map_temperature (yaml_stream .temperature ),
563- fluid_model = self ._map_fluid_model ( yaml_fluid_model ),
562+ fluid_model = self ._map_fluid_definition ( yaml_fluid_definition ),
564563 )
565564 )
566565 stream_distribution = IndividualStreamDistributionConfig (
0 commit comments