Class IonParametersMM

java.lang.Object
neqsim.thermo.util.constants.IonParametersMM

public final class IonParametersMM extends Object
Ion parameters from the Maribo-Mogensen PhD thesis (Tables 6.6, 6.11).

Contains temperature-dependent ion-solvent interaction parameters and Born radii for common ions in multiple solvents. This class supports the Maribo-Mogensen e-CPA model for mixed solvent electrolyte systems.

Ion-Solvent Interaction Energy

The ion-solvent interaction energy follows a linear temperature dependence:

ΔU_iw(T) = u⁰_iw + uᵀ_iw × (T - 298.15)

Born Radius Correlations (Maribo-Mogensen Table 6.6)

  • Cations: R_Born = 0.5σ + 0.1 Å
  • Anions: R_Born = 0.5σ + 0.85 Å

Supported Solvents

  • Water (default)
  • Methanol
  • Ethanol
  • MEG (monoethylene glycol)
  • DEG (diethylene glycol)
  • TEG (triethylene glycol)
  • MDEA (methyldiethanolamine)

References

  • Maribo-Mogensen, B. (2014). PhD Thesis, DTU Chemical Engineering.
  • Maribo-Mogensen et al., Ind. Eng. Chem. Res. 2012, 51, 5353-5363
  • Zuber et al., Fluid Phase Equilibria 2014, 376, 116-123
Version:
$Id: $Id
Author:
Even Solbraa
  • Field Details

  • Constructor Details

    • IonParametersMM

      private IonParametersMM()
      Private constructor to prevent instantiation.
  • Method Details

    • getIonData

      public static IonParametersMM.IonData getIonData(String ionName)
      Get ion data for a given ion name.
      Parameters:
      ionName - the name of the ion (e.g., "Na+", "Cl-", "Ca2+")
      Returns:
      IonData object or null if not found
    • hasIonData

      public static boolean hasIonData(String ionName)
      Check if ion parameters exist for the given ion.
      Parameters:
      ionName - the name of the ion
      Returns:
      true if parameters exist
    • getSigma

      public static double getSigma(String ionName)
      Get the Lennard-Jones diameter (sigma) for an ion.
      Parameters:
      ionName - the name of the ion
      Returns:
      sigma in Ångströms, or 0 if not found
    • getInteractionEnergy

      public static double getInteractionEnergy(String ionName, double temperature)
      Get the ion-solvent interaction energy at a given temperature for water.
      ΔU_iw(T) = u⁰_iw + uᵀ_iw × (T - 298.15)
      
      Parameters:
      ionName - the name of the ion
      temperature - temperature in Kelvin
      Returns:
      interaction energy in Kelvin, or 0 if not found
    • getInteractionEnergy

      public static double getInteractionEnergy(String ionName, String solventName, double temperature)
      Get the ion-solvent interaction energy at a given temperature for a specific solvent.

      If solvent-specific parameters are not available, falls back to water parameters.

      Parameters:
      ionName - the name of the ion
      solventName - the name of the solvent (use constants: WATER, METHANOL, MEG, etc.)
      temperature - temperature in Kelvin
      Returns:
      interaction energy in Kelvin, or 0 if not found
    • getInteractionEnergydT

      public static double getInteractionEnergydT(String ionName)
      Get the temperature derivative of the ion-solvent interaction energy.
      Parameters:
      ionName - the name of the ion
      Returns:
      dΔU_iw/dT in K/K, or 0 if not found
    • getInteractionEnergydT

      public static double getInteractionEnergydT(String ionName, String solventName)
      Get the temperature derivative of the ion-solvent interaction energy for a specific solvent.
      Parameters:
      ionName - the name of the ion
      solventName - the name of the solvent
      Returns:
      dΔU_is/dT in K/K, or 0 if not found
    • getU0

      public static double getU0(String ionName, String solventName)
      Get the u0 (interaction energy at reference temperature) for an ion-solvent pair.

      This is the NRTL τ parameter at T_ref = 298.15 K.

      Parameters:
      ionName - the name of the ion
      solventName - the name of the solvent
      Returns:
      u0 in Kelvin, or 0 if not found
    • getUT

      public static double getUT(String ionName, String solventName)
      Get the uT (temperature coefficient) for an ion-solvent pair.

      τ(T) = u0 + uT × (T - 298.15)

      Parameters:
      ionName - the name of the ion
      solventName - the name of the solvent
      Returns:
      uT in K/K, or 0 if not found
    • hasSolventSpecificData

      public static boolean hasSolventSpecificData(String ionName, String solventName)
      Check if solvent-specific parameters exist for an ion-solvent pair.
      Parameters:
      ionName - the name of the ion
      solventName - the name of the solvent
      Returns:
      true if solvent-specific parameters exist
    • getBornRadius

      public static double getBornRadius(String ionName)
      Calculate the Born radius for an ion.

      Using Maribo-Mogensen empirical correlations:

      • Cations: R_Born = 0.5σ + 0.1 Å
      • Anions: R_Born = 0.5σ + 0.85 Å
      Parameters:
      ionName - the name of the ion
      Returns:
      Born radius in Ångströms, or 0 if not found
    • getCharge

      public static int getCharge(String ionName)
      Get the ionic charge for an ion.
      Parameters:
      ionName - the name of the ion
      Returns:
      ionic charge (positive for cations, negative for anions)
    • getAvailableIons

      public static String[] getAvailableIons()
      Get all available ion names.
      Returns:
      array of ion names
    • isSupportedSolvent

      public static boolean isSupportedSolvent(String solventName)
      Check if a solvent is supported.
      Parameters:
      solventName - the name of the solvent
      Returns:
      true if the solvent is supported