Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 17 additions & 1 deletion biosteam/units/splitting.py
Original file line number Diff line number Diff line change
Expand Up @@ -137,6 +137,14 @@ class Splitter(Unit):
Water 0.9
Ethanol 0.8

A dictionary can be used as well. As when creating the splitter,
chemicals that are not given are set to 0:

>>> S1.split = {'Ethanol': 0.99}
>>> S1.isplit.show()
SplitIndexer:
Ethanol 0.99

"""
_N_outs = 2
_graphics = splitter_graphics
Expand All @@ -152,7 +160,12 @@ def split(self):
@split.setter
def split(self, values):
split = self.split
if split is not values:
if isinstance(values, dict):
# Reset split (default for missing components is zero; same rule used in _init)
split[:] = 0
IDs, values = zip(*values.items())
self._isplit[IDs] = values
else:
split[:] = values

def _init(self, split, order=None):
Expand Down Expand Up @@ -388,6 +401,9 @@ def split(self):
def split(self, values):
split = self.split
if split is not values:
if isinstance(values, dict):
# Same rule as at creation: chemicals not given are set to 0
values = self.thermo.chemicals.isplit(values).data
split[:] = values

def _init(self, split, order=None, T=None, P=None, phases=None):
Expand Down
Loading