Class DistillationColumn.SimplifiedKvalueModel

java.lang.Object
neqsim.process.equipment.distillation.DistillationColumn.SimplifiedKvalueModel
Enclosing class:
DistillationColumn

static class DistillationColumn.SimplifiedKvalueModel extends Object
Simplified K-value model for the inside-out inner loop.

For each component on each tray, the model stores coefficients for the correlation:

  ln K_i = a_i + b_i / T
where T is in Kelvin. The coefficients are fitted from rigorous flash results at two temperature points (the current and previous outer-loop temperatures). Between outer-loop updates, compositions are estimated using this simplified model instead of full PH-flash calculations, reducing computational cost by a factor of approximately innerLoopSteps.
Author:
esol
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    (package private) final double[][]
    Intercept coefficient: lnK = a + b/T.
    (package private) final double[][]
    Slope coefficient: lnK = a + b/T.
    (package private) boolean
    Whether the model has been fitted (needs at least 2 temperature points).
    (package private) final int
    Number of components.
    (package private) final int
    Number of trays.
  • Constructor Summary

    Constructors
    Constructor
    Description
    SimplifiedKvalueModel(int nTrays, int nComponents)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    (package private) void
    fit(double[][] kvalues1, double[] temps1, double[][] kvalues2, double[] temps2)
    Fit the model from two sets of K-values at two temperatures.
    (package private) double
    predict(int tray, int component, double temperature)
    Predict K-value for component j on tray i at temperature T.

    Methods inherited from class Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • coeffA

      final double[][] coeffA
      Intercept coefficient: lnK = a + b/T. Indexed [tray][component].
    • coeffB

      final double[][] coeffB
      Slope coefficient: lnK = a + b/T. Indexed [tray][component].
    • nTrays

      final int nTrays
      Number of trays.
    • nComponents

      final int nComponents
      Number of components.
    • fitted

      boolean fitted
      Whether the model has been fitted (needs at least 2 temperature points).
  • Constructor Details

    • SimplifiedKvalueModel

      SimplifiedKvalueModel(int nTrays, int nComponents)
  • Method Details

    • fit

      void fit(double[][] kvalues1, double[] temps1, double[][] kvalues2, double[] temps2)
      Fit the model from two sets of K-values at two temperatures.

      Given K-values at T1 and T2, we solve:

        ln(K1) = a + b/T1
        ln(K2) = a + b/T2
      
      yielding b = (ln(K2) - ln(K1)) / (1/T2 - 1/T1) and a = ln(K1) - b/T1.
      Parameters:
      kvalues1 - K-values at temperature T1 [tray][component]
      temps1 - tray temperatures at point 1
      kvalues2 - K-values at temperature T2 [tray][component]
      temps2 - tray temperatures at point 2
    • predict

      double predict(int tray, int component, double temperature)
      Predict K-value for component j on tray i at temperature T.
      Parameters:
      tray - tray index
      component - component index
      temperature - temperature in Kelvin
      Returns:
      estimated K-value