Component Class#

This is a general purpose Component object, and is suitable for general cases where the user is not concerned about distinguishing solutes from solvents (is_solute() and is_solvent() will both raise TypeErrors). This also forms the base class for all other Component types.

class idaes.core.base.components.Component(*args, **kwds)#
Parameters:
  • rule (function) – A rule function or None. Default rule calls build().

  • concrete (bool) – If True, make this a toplevel model. Default - False.

  • ctype (class) –

    Pyomo ctype of the block. Default - pyomo.environ.Block

    Config args

    valid_phase_types

    List of valid PhaseTypes (Enums) for this Component.

    elemental_composition

    Dict containing elemental composition in the form element : stoichiometry

    henry_component

    Dict indicating phases in which component follows Henry’s Law (keys) with values indicating form of law.

    vol_mol_liq_comp

    Method to use to calculate liquid phase molar volume. Users need only define either vol_mol_liq_comp or dens_mol_liq_comp.

    vol_mol_sol_comp

    Method to use to calculate solid phase molar volume. Users need only define either vol_mol_sol_comp or dens_mol_sol_comp.

    dens_mol_liq_comp

    Method to use to calculate liquid phase molar density. Users need only define either vol_mol_liq_comp or dens_mol_liq_comp.

    dens_mol_sol_comp

    Method to use to calculate solid phase molar density. Users need only define either vol_mol_sol_comp or dens_mol_sol_comp.

    cp_mol_liq_comp

    Method to calculate liquid component specific heats

    cp_mol_sol_comp

    Method to calculate solid component specific heats

    cp_mol_ig_comp

    Method to calculate ideal gas component specific heats

    enth_mol_liq_comp

    Method to calculate liquid component molar enthalpies

    enth_mol_sol_comp

    Method to calculate solid component molar enthalpies

    enth_mol_ig_comp

    Method to calculate ideal gas component molar enthalpies

    entr_mol_liq_comp

    Method to calculate liquid component molar entropies

    entr_mol_sol_comp

    Method to calculate solid component molar entropies

    entr_mol_ig_comp

    Method to calculate ideal gas component molar entropies

    diffus_phase_comp

    Method to calculate component diffusivities in each phase. Must be a dict with keys being phase names.

    visc_d_phase_comp

    Method to calculate pure component viscosities in each phase. Must be a dict with keys being phase names.

    therm_cond_phase_comp

    Method to calculate pure component thermal conductivities in each phase. Must be a dict with keys being phase names.

    has_vapor_pressure

    Flag indicating whether component has a vapor pressure

    pressure_sat_comp

    Method to use to calculate saturation pressure

    relative_permittivity_liq_comp

    Method to use to calculate liquid phase relative permittivity

    phase_equilibrium_form

    Form of phase equilibrium constraints for component

    parameter_data

    Dict containing initialization data for parameters

    _component_list_exists

    Internal config argument indicating whether component_list needs to be populated.

    _electrolyte

    Internal config argument indicating whether electrolyte component_lists needs to be populated.

  • initialize (dict) – ProcessBlockData config for individual elements. Keys are BlockData indexes and values are dictionaries with config arguments as keys.

  • idx_map (function) – Function to take the index of a BlockData element and return the index in the initialize dict from which to read arguments. This can be provided to override the default behavior of matching the BlockData index exactly to the index in initialize.

Returns:

(Component) New instance

Solute Class#

The component object is suitable for species which should be treated as solutes in a LiquidPhase. The only difference between this and a general Component is that is_solute() returns True and is_solvent() returns False.

Solvent Class#

The component object is suitable for species which should be treated as solvents in a LiquidPhase. The only difference between this and a general Component is that is_solute() returns False and is_solvent() returns True.

Ion Class#

The Ion class is suitable for ionic species which appear in LiquidPhases. This is similar to the Solute class, in that is_solute() returns True and is_solvent() returns False. Additionally, Ion objects have a charge configuration argument for recording the charge on the ion (must be an integer) and do not have a valid_phase_types argument (as it is assumed they can only exist in LiquidPhases).

Note

Users are encouraged to use the Anion and Cation classes instead of the generic Ion class, as these validate that sign of the charge configuration argument.

Anion Class#

The Anion class is suitable for anionic species (i.e. negatively charged) which appear in LiquidPhases. This is a subclass of Ion, which enforces that the sign on the charge configuration argument be negative.

Cation Class#

The Cation class is suitable for cationic species (i.e. positively charged) which appear in LiquidPhases. This is a subclass of Ion, which enforces that the sign on the charge configuration argument be positive.