Class ColumnSpecification

java.lang.Object
neqsim.process.equipment.distillation.ColumnSpecification
All Implemented Interfaces:
Serializable

public class ColumnSpecification extends Object implements Serializable
Represents a column specification (degree of freedom) for a distillation column.

In a distillation column with a condenser and reboiler, there are two degrees of freedom that must be satisfied. Each specification constrains one degree of freedom. Common specification types include:

  • Product purity (mole fraction of a component in distillate or bottoms)
  • Reflux ratio (L/D for condenser or V/B boilup ratio for reboiler)
  • Component recovery (fraction of a component recovered in a product)
  • Product flow rate (total flow rate of distillate or bottoms)
  • Condenser or reboiler duty

Example usage:

// Specify 95% methane purity in the top product
ColumnSpecification topSpec = new ColumnSpecification(
    ColumnSpecification.SpecificationType.PRODUCT_PURITY,
    ColumnSpecification.ProductLocation.TOP,
    0.95, "methane");

// Specify reflux ratio of 3.0 at the condenser
ColumnSpecification condenserSpec = new ColumnSpecification(
    ColumnSpecification.SpecificationType.REFLUX_RATIO,
    ColumnSpecification.ProductLocation.TOP,
    3.0);

column.setTopSpecification(topSpec);
column.setBottomSpecification(condenserSpec);
Version:
1.0
Author:
esol
See Also:
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      Serialization version UID.
      See Also:
    • DEFAULT_TOLERANCE

      private static final double DEFAULT_TOLERANCE
      Default tolerance for the secant/bisection solver.
      See Also:
    • DEFAULT_MAX_ITERATIONS

      private static final int DEFAULT_MAX_ITERATIONS
      Default maximum iterations for the outer adjustment loop.
      See Also:
    • type

    • location

      private final ColumnSpecification.ProductLocation location
    • targetValue

      private final double targetValue
    • componentName

      private final String componentName
    • tolerance

      private double tolerance
    • maxIterations

      private int maxIterations
  • Constructor Details

    • ColumnSpecification

      public ColumnSpecification(ColumnSpecification.SpecificationType type, ColumnSpecification.ProductLocation location, double targetValue)
      Creates a column specification that does not require a component name.
      Parameters:
      type - the specification type (REFLUX_RATIO, PRODUCT_FLOW_RATE, or DUTY)
      location - which end of the column this applies to
      targetValue - the target value for this specification
    • ColumnSpecification

      public ColumnSpecification(ColumnSpecification.SpecificationType type, ColumnSpecification.ProductLocation location, double targetValue, String componentName)
      Creates a column specification with a component name.
      Parameters:
      type - the specification type
      location - which end of the column this applies to
      targetValue - the target value for this specification
      componentName - the name of the component (required for PRODUCT_PURITY and COMPONENT_RECOVERY)
  • Method Details

    • validate

      private void validate()
      Validates that the specification is internally consistent.
      Throws:
      IllegalArgumentException - if the specification is invalid
    • getType

      Returns the specification type.
      Returns:
      the specification type
    • getLocation

      Returns which end of the column this specification refers to.
      Returns:
      the product location
    • getTargetValue

      public double getTargetValue()
      Returns the target value for this specification.
      Returns:
      the target value
    • getComponentName

      public String getComponentName()
      Returns the component name (may be null for non-component specifications).
      Returns:
      the component name, or null
    • getTolerance

      public double getTolerance()
      Returns the convergence tolerance for the outer adjustment loop.
      Returns:
      the tolerance
    • setTolerance

      public void setTolerance(double tolerance)
      Sets the convergence tolerance for the outer adjustment loop.
      Parameters:
      tolerance - the tolerance (must be positive)
    • getMaxIterations

      public int getMaxIterations()
      Returns the maximum number of iterations for the outer adjustment loop.
      Returns:
      the maximum iterations
    • setMaxIterations

      public void setMaxIterations(int maxIterations)
      Sets the maximum number of iterations for the outer adjustment loop.
      Parameters:
      maxIterations - the maximum iterations (must be positive)
    • toString

      public String toString()
      Overrides:
      toString in class Object