Property Package Classes

Introduction

Property packages represent a collection of calculations necessary to determine the state properties of a given material. Property calculations form a critical part of any process model, and thus Property packages form the core of the IDAES modeling framework.

Property Parameter Blocks

Property Parameter blocks serve as a central location for linking to a property package, and contain all the parameters and indexing sets used by a given proeprty package.

PropertyParameterBase Class

The role of the PropertyParameterBase class is to set up the references required by the rest of the IDAES framework for constructing instances of PropertyBlocks and attaching these to the PropertyParameter block for ease of use. This allows other models to be pointed to the PropertyParameter block in order to collect the necessary information and to construct the necessary PropertyBlocks without the need for the user to do this manually.

class idaes.core.property_base.PropertyParameterBase(component)[source]

This is the base class for property parameter blocks. These are blocks that contain a set of parameters associated with a specific property package, and are linked to by all instances of that property package.

build()[source]

General build method for PropertyParameterBlocks. Inheriting models should call super().build.

Parameters:None
Returns:None
get_package_units()[source]

Method to return a dictionary of default units of measurement used in the property package. This is used to populate doc strings for variables which derive from the property package (such as flows and volumes). This method should return a dict with keys for the quantities used in the property package (as strs) and values of their default units as strs.

The quantities used by the framewokr are (all optional):
  • ‘time’
  • ‘length’
  • ‘mass’
  • ‘amount’
  • ‘temperature’
  • ‘energy’
  • ‘current’
  • ‘luminous intensity’

This default method is a placeholder and should be overloaded by the package developer. This method will return an Exception if not overloaded.

Parameters:None
Returns:A dict with supported properties as keys and tuples of (method, units) as values.
get_supported_properties()[source]

Method to return a dictionary of properties supported by this package and their assoicated construction methods and units of measurement. This method should return a dict with keys for each supported property.

For each property, the value should be another dict which may contain the following keys:

  • ‘method’: (required) the name of a method to construct the
    property as a str, or None if the property will be constructed by default.
  • ‘units’: (optional) units of measurement for the property.

This default method is a placeholder and should be overloaded by the package developer. This method will return an Exception if not overloaded.

Parameters:None
Returns:A dict with supported properties as keys.

Property Blocks

Property Blocks are used within all IDAES Unit models (generally within Holdup Blocks) in order to calculate properties given the state of the material. Property Blocks are notably differnt to other types of Blocks within IDAES as they are always indexed by time (and possibly space as well). There are two bases Classes associated with Property Blocks:

  • PropertyBlockDataBase forms the base class for all PropertyBlockData objects, which contain the instructions on how to construct each instance of a Property Block.
  • PropertyBlockBase is used for building classes which contain methods to be applied to sets of Indexed Property Blocks (or to a subset of these). See the documentation on declare_process_block_class and the IDAES tutorials and examples for more information.

Construction Arguments

Property Blocks have the following construction arguments:

  • parameters - a reference to the associated Property Parameter block which will be used to make references to all necessary parameters.
  • has_sum_fractions - this argumnet indicates whether the Property Block should construct constraints which eforce the sum of material fractions (e.g. mass or mole fractions) within the block. This is primarily set to False for unit inlets where it is assumed that the material state is fully specified. This argument can also be used in some conjunction with the following argumnets to indicate whether equilibrium should be enforced.
  • calculate_equilibrium_reactions - indicates whether the assoicated Holdup Block or Unit model expects chemical equilibrium to be enforced (if applicable).
  • calculate_phase_equilibrium - indicates whether the assoicated Holdup Block or Unit model expects phase equilibrium to be enforced (if applicable).

PropertyBlockDataBase Class

PropertyBlockDataBase contains the code necessary for implementing the as needed construction of variables and constraints.

class idaes.core.property_base.PropertyBlockDataBase(component)[source]

This is the base class for property block data objects. These are blocks that contain the Pyomo components associated with calculating a set of thermophysical, transport and reacion properties for a given material.

build()[source]

General build method for PropertyBlockDatas. Inheriting models should call super().build.

Parameters:None
Returns:None

PropertyBlockBase Class

class idaes.core.property_base.PropertyBlockBase(*args, **kwargs)[source]

This is the base class for property block objects. These are used when constructing the SimpleBlock or IndexedBlock which will contain the PropertyData objects, and contains methods that can be applied to multiple PropertyBlockData objects simultaneously.

initialize(*args)[source]

This is a default initialization routine for PropertyBlocks to ensure that a routine is present. All PropertyBlockData classes should overload this method with one suited to the particular property package

This method prints a warning and then ends.

Parameters:None
Returns:None