Coverage for backend/django/flowsheetInternals/unitops/config/objects/splitter_config.py: 100%
4 statements
« prev ^ index » next coverage.py v7.10.7, created at 2026-05-13 02:47 +0000
« prev ^ index » next coverage.py v7.10.7, created at 2026-05-13 02:47 +0000
1from common.config_types import *
2from common.config_utils import *
3from ..spec_helpers import *
5splitter_config: ObjectType = ObjectType(
6 displayType="Splitter",
7 displayName="Splitter",
8 ports={
9 "inlet": PortType(
10 displayName="Inlet",
11 type=ConType.Inlet,
12 streamName="S",
13 ),
14 "outlet": PortType(
15 many=True,
16 displayName="Outlet",
17 type=ConType.Outlet,
18 default=2, # default number of outlets
19 minimum=2, # minimum number of outlets
20 streamName="S",
21 ),
22 },
23 propertyPackagePorts=default_property_package_ports(),
24 graphicObject=unitop_graphic(),
25 indexSets=["splitter_fraction"],
26 properties=PropertiesType({
27 "split_fraction": PropertyType(
28 displayName="Split Ratio",
29 type="numeric",
30 unitType="ratio",
31 indexSets=["splitter_fraction"],
32 sumToOne=True,
33 ),
34 }),
35 splitter_fraction_name="Outlet",
36 propertySetGroups={
37 "default": {
38 "type": "exceptLast",
39 "displayName": "Properties",
40 "stateVars": ("split_fraction",),
41 }
42 },
43 idaes_adapter=UnitModelAdapter(
44 args=ArgAdapter({
45 "property_package": PropertyPackageAdapter(),
46 "num_outlets": NumOutletsAdapter(),
47 }),
48 properties=SerialisePropertiesAdapter(),
49 ports=SplitterPortListAdapter()
50 ),
51)
53# We can't use the normal PortListAdapter because we don't know ahead of time which ports are on the splitter.
54# there could be any number of inlet and outlet ports.
55# So we will have to make our own PortListAdapter that has custom code to generate the list of ports.