Class DistillationColumnCapacityStrategy

java.lang.Object
neqsim.process.equipment.capacity.DistillationColumnCapacityStrategy
All Implemented Interfaces:
EquipmentCapacityStrategy

public class DistillationColumnCapacityStrategy extends Object implements EquipmentCapacityStrategy
Capacity strategy for distillation column equipment.

This strategy evaluates distillation column capacity based on multiple constraints including:

  • Flooding factor (vapor/liquid loading)
  • Weir loading (liquid flow per unit weir length)
  • Reboiler duty utilization
  • Condenser duty utilization
  • Tray pressure drop
Version:
1.0
Author:
NeqSim Development Team
  • Field Details

    • DEFAULT_MAX_FLOODING_FACTOR

      public static final double DEFAULT_MAX_FLOODING_FACTOR
      Default maximum flooding factor.
      See Also:
    • DEFAULT_MAX_WEIR_LOADING

      public static final double DEFAULT_MAX_WEIR_LOADING
      Default maximum weir loading (m3/hr per m of weir).
      See Also:
    • DEFAULT_MAX_TRAY_PRESSURE_DROP

      public static final double DEFAULT_MAX_TRAY_PRESSURE_DROP
      Default maximum tray pressure drop (mbar/tray).
      See Also:
    • maxFloodingFactor

      private double maxFloodingFactor
    • maxWeirLoading

      private double maxWeirLoading
    • maxTrayPressureDrop

      private double maxTrayPressureDrop
  • Constructor Details

    • DistillationColumnCapacityStrategy

      public DistillationColumnCapacityStrategy()
      Default constructor.
    • DistillationColumnCapacityStrategy

      public DistillationColumnCapacityStrategy(double maxFloodingFactor, double maxWeirLoading, double maxTrayPressureDrop)
      Constructor with custom constraints.
      Parameters:
      maxFloodingFactor - maximum flooding factor (0-1)
      maxWeirLoading - maximum weir loading (m3/hr per m)
      maxTrayPressureDrop - maximum tray pressure drop (mbar/tray)
  • Method Details

    • supports

      public boolean supports(ProcessEquipmentInterface equipment)
      Checks if this strategy supports the given equipment.
      Specified by:
      supports in interface EquipmentCapacityStrategy
      Parameters:
      equipment - the equipment to check
      Returns:
      true if this strategy can evaluate the equipment
    • getPriority

      public int getPriority()
      Gets the priority of this strategy.

      When multiple strategies support the same equipment, the one with higher priority is used. Default priority is 0. Use positive values for more specific strategies.

      Specified by:
      getPriority in interface EquipmentCapacityStrategy
      Returns:
      the priority value (higher = more preferred)
    • getName

      public String getName()
      Gets a descriptive name for this strategy.
      Specified by:
      getName in interface EquipmentCapacityStrategy
      Returns:
      strategy name
    • getEquipmentClass

      public Class<? extends ProcessEquipmentInterface> getEquipmentClass()
      Gets the equipment class this strategy handles.
      Specified by:
      getEquipmentClass in interface EquipmentCapacityStrategy
      Returns:
      the equipment class
    • evaluateCapacity

      public double evaluateCapacity(ProcessEquipmentInterface equipment)
      Evaluates the current capacity utilization of the equipment.

      Returns a value between 0 and 1+ where:

      • 0.0 = no load
      • 1.0 = at design capacity
      • >1.0 = over capacity
      Specified by:
      evaluateCapacity in interface EquipmentCapacityStrategy
      Parameters:
      equipment - the equipment to evaluate
      Returns:
      capacity utilization as a fraction
    • evaluateBasicCapacity

      private double evaluateBasicCapacity(DistillationColumn column)
      Evaluates basic capacity when column doesn't have constraint interface.
      Parameters:
      column - the distillation column to evaluate
      Returns:
      utilization factor (0-1+)
    • evaluateMaxCapacity

      public double evaluateMaxCapacity(ProcessEquipmentInterface equipment)
      Evaluates the maximum capacity of the equipment.

      Returns the maximum capacity in the equipment's natural units (e.g., flow rate, power, duty).

      Specified by:
      evaluateMaxCapacity in interface EquipmentCapacityStrategy
      Parameters:
      equipment - the equipment to evaluate
      Returns:
      maximum capacity
    • getConstraints

      public Map<String, CapacityConstraint> getConstraints(ProcessEquipmentInterface equipment)
      Gets all capacity constraints for this equipment.

      Returns a map of constraint name to constraint object. The constraints include both the current value and the design/limit values.

      Specified by:
      getConstraints in interface EquipmentCapacityStrategy
      Parameters:
      equipment - the equipment to get constraints for
      Returns:
      map of constraint name to CapacityConstraint
    • getViolations

      public List<CapacityConstraint> getViolations(ProcessEquipmentInterface equipment)
      Gets the list of constraint violations for this equipment.

      Returns only the constraints that are currently violated (utilization > 1.0 or outside limits).

      Specified by:
      getViolations in interface EquipmentCapacityStrategy
      Parameters:
      equipment - the equipment to check
      Returns:
      list of violated constraints
    • getBottleneckConstraint

      public CapacityConstraint getBottleneckConstraint(ProcessEquipmentInterface equipment)
      Gets the bottleneck constraint (highest utilization).
      Specified by:
      getBottleneckConstraint in interface EquipmentCapacityStrategy
      Parameters:
      equipment - the equipment to evaluate
      Returns:
      the constraint with highest utilization, or null if none
    • isWithinHardLimits

      public boolean isWithinHardLimits(ProcessEquipmentInterface equipment)
      Checks if the equipment is operating within all hard limits.
      Specified by:
      isWithinHardLimits in interface EquipmentCapacityStrategy
      Parameters:
      equipment - the equipment to check
      Returns:
      true if no hard limits are violated
    • isWithinSoftLimits

      public boolean isWithinSoftLimits(ProcessEquipmentInterface equipment)
      Checks if the equipment is operating within all soft limits (design values).
      Specified by:
      isWithinSoftLimits in interface EquipmentCapacityStrategy
      Parameters:
      equipment - the equipment to check
      Returns:
      true if no soft limits are violated
    • setMaxFloodingFactor

      public void setMaxFloodingFactor(double maxFloodingFactor)
      Sets the maximum flooding factor.
      Parameters:
      maxFloodingFactor - maximum flooding factor (0-1)
    • getMaxFloodingFactor

      public double getMaxFloodingFactor()
      Gets the maximum flooding factor.
      Returns:
      maximum flooding factor (0-1)
    • setMaxWeirLoading

      public void setMaxWeirLoading(double maxWeirLoading)
      Sets the maximum weir loading.
      Parameters:
      maxWeirLoading - maximum weir loading (m3/hr per m)
    • getMaxWeirLoading

      public double getMaxWeirLoading()
      Gets the maximum weir loading.
      Returns:
      maximum weir loading (m3/hr per m)
    • setMaxTrayPressureDrop

      public void setMaxTrayPressureDrop(double maxTrayPressureDrop)
      Sets the maximum tray pressure drop.
      Parameters:
      maxTrayPressureDrop - maximum tray pressure drop (mbar/tray)
    • getMaxTrayPressureDrop

      public double getMaxTrayPressureDrop()
      Gets the maximum tray pressure drop.
      Returns:
      maximum tray pressure drop (mbar/tray)