Class CO2CaptureTemplate

java.lang.Object
neqsim.process.design.template.CO2CaptureTemplate
All Implemented Interfaces:
ProcessTemplate

public class CO2CaptureTemplate extends Object implements ProcessTemplate
Template for creating amine-based CO2 capture systems.

This template creates a standard amine-based CO2 absorption unit consisting of an absorber column, solvent regeneration system, and heat integration equipment. Supports various amine solvents including MEA, MDEA, and proprietary blends.

Features

  • Amine absorber with configurable stages and amine type
  • Rich amine flash drum for hydrocarbon recovery
  • Lean-rich heat exchanger for heat recovery
  • Regenerator column with reboiler
  • Lean amine cooler and pump
  • CO2 compression option

Supported Amine Types

  • MEA (Monoethanolamine) - 15-30 wt%
  • DEA (Diethanolamine) - 25-35 wt%
  • MDEA (Methyldiethanolamine) - 35-50 wt%
  • MDEA+PZ (Activated MDEA) - Enhanced kinetics

Usage Example

ProcessBasis basis = new ProcessBasis();
basis.setFeedFluid(flueGasFluid);
basis.setParameter("amineType", "MDEA");
basis.setParameter("amineConcentration", 0.45); // 45 wt%
basis.setParameter("co2RemovalTarget", 0.90); // 90% removal

CO2CaptureTemplate template = new CO2CaptureTemplate();
ProcessSystem capture = template.create(basis);
capture.run();

Design Standards

  • GPSA Engineering Data Book - Chapter 21
  • API RP 945 - Corrosion in amine units
  • NACE MR0175/ISO 15156 - Materials selection
Version:
1.0
Author:
NeqSim Development Team
  • Field Details

    • DEFAULT_ABSORBER_STAGES

      private static final int DEFAULT_ABSORBER_STAGES
      Default number of theoretical stages in absorber.
      See Also:
    • DEFAULT_REGENERATOR_STAGES

      private static final int DEFAULT_REGENERATOR_STAGES
      Default number of theoretical stages in regenerator.
      See Also:
    • DEFAULT_REBOILER_TEMP_C

      private static final double DEFAULT_REBOILER_TEMP_C
      Default reboiler temperature in Celsius.
      See Also:
    • DEFAULT_AMINE_CONCENTRATION

      private static final double DEFAULT_AMINE_CONCENTRATION
      Default amine concentration (mass fraction).
      See Also:
    • DEFAULT_LEAN_AMINE_TEMP_C

      private static final double DEFAULT_LEAN_AMINE_TEMP_C
      Default lean amine temperature in Celsius.
      See Also:
    • DEFAULT_LEAN_LOADING

      private static final double DEFAULT_LEAN_LOADING
      Default CO2 loading in lean amine (mol CO2/mol amine).
      See Also:
    • DEFAULT_APPROACH_TEMP_K

      private static final double DEFAULT_APPROACH_TEMP_K
      Default approach temperature for heat exchangers in K.
      See Also:
    • amineType

      private CO2CaptureTemplate.AmineType amineType
      Selected amine type.
  • Constructor Details

    • CO2CaptureTemplate

      public CO2CaptureTemplate()
      Creates a new CO2CaptureTemplate with default MDEA amine.
    • CO2CaptureTemplate

      public CO2CaptureTemplate(CO2CaptureTemplate.AmineType amineType)
      Creates a new CO2CaptureTemplate with specified amine type.
      Parameters:
      amineType - the amine type to use
  • Method Details

    • create

      public ProcessSystem create(ProcessBasis basis)
      Create a process system from this template using the given process basis.
      Specified by:
      create in interface ProcessTemplate
      Parameters:
      basis - the process basis containing feed conditions and constraints
      Returns:
      a configured ProcessSystem
    • createAmineFluid

      private SystemInterface createAmineFluid(CO2CaptureTemplate.AmineType type, double concentration, double pressure)
      Creates an amine solvent fluid.
      Parameters:
      type - amine type
      concentration - amine mass fraction
      pressure - system pressure in bara
      Returns:
      amine fluid system
    • addAmineComponents

      private void addAmineComponents(SystemInterface fluid, CO2CaptureTemplate.AmineType type, double concentration)
      Adds amine components to fluid.
      Parameters:
      fluid - fluid system
      type - amine type
      concentration - amine mass fraction
    • parseAmineType

      private CO2CaptureTemplate.AmineType parseAmineType(String amineStr)
      Parses amine type from string.
      Parameters:
      amineStr - amine type string
      Returns:
      AmineType enum value
    • estimateAmineCirculationRate

      private double estimateAmineCirculationRate(SystemInterface feedFluid, double gasFlowRate, double amineConcentration, double removalTarget)
      Estimates amine circulation rate for given CO2 removal.
      Parameters:
      feedFluid - feed fluid system
      gasFlowRate - gas flow rate in kg/hr
      amineConcentration - amine mass fraction
      removalTarget - CO2 removal fraction (0-1)
      Returns:
      estimated amine circulation rate in kg/hr
    • isApplicable

      public boolean isApplicable(SystemInterface fluid)
      Check if this template is applicable for the given fluid.
      Specified by:
      isApplicable in interface ProcessTemplate
      Parameters:
      fluid - the fluid to check
      Returns:
      true if template is applicable
    • getRequiredEquipmentTypes

      public String[] getRequiredEquipmentTypes()
      Get the required equipment types for this template.
      Specified by:
      getRequiredEquipmentTypes in interface ProcessTemplate
      Returns:
      array of equipment type names
    • getExpectedOutputs

      public String[] getExpectedOutputs()
      Get the expected outputs from this process template.
      Specified by:
      getExpectedOutputs in interface ProcessTemplate
      Returns:
      array of output stream names/types
    • getName

      public String getName()
      Get the template name.
      Specified by:
      getName in interface ProcessTemplate
      Returns:
      template name
    • getDescription

      public String getDescription()
      Get a description of the process template.
      Specified by:
      getDescription in interface ProcessTemplate
      Returns:
      template description
    • calculateSpecificReboilerDuty

      public static double calculateSpecificReboilerDuty(CO2CaptureTemplate.AmineType amineType, double richLoading, double leanLoading)
      Calculates specific reboiler duty for amine regeneration.
      Parameters:
      amineType - type of amine
      richLoading - rich amine loading (mol CO2/mol amine)
      leanLoading - lean amine loading (mol CO2/mol amine)
      Returns:
      specific reboiler duty in GJ/ton CO2
    • estimateAmineLoss

      public static double estimateAmineLoss(CO2CaptureTemplate.AmineType amineType, double gasFlowRate)
      Estimates amine loss rate.
      Parameters:
      amineType - type of amine
      gasFlowRate - gas flow rate in MMscfd
      Returns:
      amine loss rate in kg/MMscf