aspen_pysys.model.factory

1# Copyright 2026 Hariidaran Tamilmaran
2
3from aspen_pysys.model.factory.mod_factory import HysysModFactory
4from aspen_pysys.model.factory.mod_manager import HysysModManager
5
6__all__ = ["HysysModFactory", "HysysModManager"]
class HysysModFactory(abc.ABC):
19class HysysModFactory(ABC):
20    """Interface for HYSYS model factory methods."""
21
22    @staticmethod
23    @abstractmethod
24    def get_process_stream(obj: HysysNamedObject) -> HysysProcessStream:
25        """Get a process stream.
26
27        Args:
28            obj (HysysNamedObject): Named HYSYS object
29
30        Returns:
31            HysysProcessStream: Process stream
32        """
33
34    @staticmethod
35    @abstractmethod
36    def get_material_stream(
37        obj: HysysNamedObject,
38    ) -> HysysMaterialStream:
39        """Get a material stream.
40
41        Args:
42            obj (HysysNamedObject): Named HYSYS object
43
44        Returns:
45            HysysMaterialStream: Material stream
46        """
47
48    @staticmethod
49    @abstractmethod
50    def get_energy_stream(obj: HysysNamedObject) -> HysysEnergyStream:
51        """Get an energy stream.
52
53        Args:
54            obj (HysysNamedObject): Named HYSYS object
55
56        Returns:
57            HysysEnergyStream: Energy stream
58        """
59
60    @staticmethod
61    @abstractmethod
62    def get_unit_operation(obj: HysysNamedObject) -> HysysUnitOperation:
63        """Get a unit operation.
64
65        Args:
66            obj (HysysNamedObject): Named HYSYS object
67
68        Returns:
69            HysysUnitOperation: Unit operation
70        """

Interface for HYSYS model factory methods.

@staticmethod
@abstractmethod
def get_process_stream( obj: aspen_pysys.base.HysysNamedObject) -> aspen_pysys.model.process_stream.HysysProcessStream:
22    @staticmethod
23    @abstractmethod
24    def get_process_stream(obj: HysysNamedObject) -> HysysProcessStream:
25        """Get a process stream.
26
27        Args:
28            obj (HysysNamedObject): Named HYSYS object
29
30        Returns:
31            HysysProcessStream: Process stream
32        """

Get a process stream.

Arguments:
  • obj (HysysNamedObject): Named HYSYS object
Returns:

HysysProcessStream: Process stream

@staticmethod
@abstractmethod
def get_material_stream( obj: aspen_pysys.base.HysysNamedObject) -> aspen_pysys.model.process_stream.HysysMaterialStream:
34    @staticmethod
35    @abstractmethod
36    def get_material_stream(
37        obj: HysysNamedObject,
38    ) -> HysysMaterialStream:
39        """Get a material stream.
40
41        Args:
42            obj (HysysNamedObject): Named HYSYS object
43
44        Returns:
45            HysysMaterialStream: Material stream
46        """

Get a material stream.

Arguments:
  • obj (HysysNamedObject): Named HYSYS object
Returns:

HysysMaterialStream: Material stream

@staticmethod
@abstractmethod
def get_energy_stream( obj: aspen_pysys.base.HysysNamedObject) -> aspen_pysys.model.process_stream.HysysEnergyStream:
48    @staticmethod
49    @abstractmethod
50    def get_energy_stream(obj: HysysNamedObject) -> HysysEnergyStream:
51        """Get an energy stream.
52
53        Args:
54            obj (HysysNamedObject): Named HYSYS object
55
56        Returns:
57            HysysEnergyStream: Energy stream
58        """

Get an energy stream.

Arguments:
  • obj (HysysNamedObject): Named HYSYS object
Returns:

HysysEnergyStream: Energy stream

@staticmethod
@abstractmethod
def get_unit_operation( obj: aspen_pysys.base.HysysNamedObject) -> aspen_pysys.model.unit_operation.HysysUnitOperation:
60    @staticmethod
61    @abstractmethod
62    def get_unit_operation(obj: HysysNamedObject) -> HysysUnitOperation:
63        """Get a unit operation.
64
65        Args:
66            obj (HysysNamedObject): Named HYSYS object
67
68        Returns:
69            HysysUnitOperation: Unit operation
70        """

Get a unit operation.

Arguments:
  • obj (HysysNamedObject): Named HYSYS object
Returns:

HysysUnitOperation: Unit operation

class HysysModManager(aspen_pysys.model.factory.HysysModFactory):
20class HysysModManager(HysysModFactory):
21    """Helper class that constructs the right type of HysysObject."""
22
23    @override
24    @staticmethod
25    def get_process_stream(obj: HysysNamedObject) -> HysysProcessStream:
26        return HysysProcessStream.from_obj(obj)
27
28    @override
29    @staticmethod
30    def get_material_stream(obj: HysysNamedObject) -> HysysMaterialStream:
31        return HysysMaterialStream.from_obj(obj)
32
33    @override
34    @staticmethod
35    def get_energy_stream(obj: HysysNamedObject) -> HysysEnergyStream:
36        return HysysEnergyStream.from_obj(obj)
37
38    @override
39    @staticmethod
40    def get_unit_operation(obj: HysysNamedObject) -> HysysUnitOperation:
41        return HysysUnitOperation.from_obj(obj)

Helper class that constructs the right type of HysysObject.

@override
@staticmethod
def get_process_stream( obj: aspen_pysys.base.HysysNamedObject) -> aspen_pysys.model.process_stream.HysysProcessStream:
23    @override
24    @staticmethod
25    def get_process_stream(obj: HysysNamedObject) -> HysysProcessStream:
26        return HysysProcessStream.from_obj(obj)

Get a process stream.

Arguments:
  • obj (HysysNamedObject): Named HYSYS object
Returns:

HysysProcessStream: Process stream

@override
@staticmethod
def get_material_stream( obj: aspen_pysys.base.HysysNamedObject) -> aspen_pysys.model.process_stream.HysysMaterialStream:
28    @override
29    @staticmethod
30    def get_material_stream(obj: HysysNamedObject) -> HysysMaterialStream:
31        return HysysMaterialStream.from_obj(obj)

Get a material stream.

Arguments:
  • obj (HysysNamedObject): Named HYSYS object
Returns:

HysysMaterialStream: Material stream

@override
@staticmethod
def get_energy_stream( obj: aspen_pysys.base.HysysNamedObject) -> aspen_pysys.model.process_stream.HysysEnergyStream:
33    @override
34    @staticmethod
35    def get_energy_stream(obj: HysysNamedObject) -> HysysEnergyStream:
36        return HysysEnergyStream.from_obj(obj)

Get an energy stream.

Arguments:
  • obj (HysysNamedObject): Named HYSYS object
Returns:

HysysEnergyStream: Energy stream

@override
@staticmethod
def get_unit_operation( obj: aspen_pysys.base.HysysNamedObject) -> aspen_pysys.model.unit_operation.HysysUnitOperation:
38    @override
39    @staticmethod
40    def get_unit_operation(obj: HysysNamedObject) -> HysysUnitOperation:
41        return HysysUnitOperation.from_obj(obj)

Get a unit operation.

Arguments:
  • obj (HysysNamedObject): Named HYSYS object
Returns:

HysysUnitOperation: Unit operation