Class Fermenter

All Implemented Interfaces:
Serializable, Runnable, ProcessEquipmentInterface, TwoPortInterface, ProcessElementInterface, SimulationInterface, NamedInterface
Direct Known Subclasses:
AnaerobicDigester, FermentationReactor

public class Fermenter extends StirredTankReactor
Fermenter / bioreactor for biological conversion processes.

Extends StirredTankReactor with bio-process specific features such as aeration, oxygen transfer, pH control, and cell growth tracking. Supports aerobic and anaerobic fermentation modes.

Usage example:

Fermenter fermenter = new Fermenter("EtOH Fermenter", feedStream);
fermenter.setReactorTemperature(273.15 + 32.0);
fermenter.setResidenceTime(48.0, "hr");
fermenter.setVesselVolume(200.0);
fermenter.setAerobic(false); // anaerobic fermentation
fermenter.addReaction(ethanolFermentation);
fermenter.run();
Version:
1.0
Author:
NeqSim team
See Also:
  • Field Details

    • serialVersionUID

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

      private static final org.apache.logging.log4j.Logger logger
      Logger object for class.
    • aerobic

      private boolean aerobic
      Whether the fermenter is aerobic (requires O2) or anaerobic.
    • aerationRate

      private double aerationRate
      Aeration rate in vvm (volume of air per volume of liquid per minute).
    • oxygenTransferRate

      private double oxygenTransferRate
      Oxygen transfer rate in mol O2 / (L * hr).
    • kLa

      private double kLa
      KLa value (volumetric mass transfer coefficient) in 1/hr.
    • targetPH

      private double targetPH
      Target pH for pH-controlled fermentation. NaN if not controlled.
    • cellYield

      private double cellYield
      Cell mass yield coefficient (g cells / g substrate).
    • maintenanceCoefficient

      private double maintenanceCoefficient
      Cell mass maintenance coefficient (g substrate / (g cells * hr)).
    • co2EvolutionRate

      private double co2EvolutionRate
      CO2 evolution rate in mol/(L*hr). Calculated during run.
    • aerationPower

      private double aerationPower
      Aeration compressor power in kW. Calculated during run.
  • Constructor Details

    • Fermenter

      public Fermenter(String name)
      Constructor for Fermenter.
      Parameters:
      name - name of the fermenter
    • Fermenter

      public Fermenter(String name, StreamInterface inletStream)
      Constructor for Fermenter with inlet stream.
      Parameters:
      name - name of the fermenter
      inletStream - inlet feed stream
  • Method Details

    • setAerobic

      public void setAerobic(boolean aerobic)
      Set whether the fermenter operates aerobically.
      Parameters:
      aerobic - true for aerobic, false for anaerobic
    • isAerobic

      public boolean isAerobic()
      Check if fermenter is aerobic.
      Returns:
      true if aerobic
    • setAerationRate

      public void setAerationRate(double vvm)
      Set the aeration rate for aerobic fermentation.
      Parameters:
      vvm - aeration rate in vvm (volume air / volume liquid / minute)
    • getAerationRate

      public double getAerationRate()
      Get the aeration rate.
      Returns:
      aeration rate in vvm
    • setKLa

      public void setKLa(double kLa)
      Set the volumetric mass transfer coefficient.
      Parameters:
      kLa - mass transfer coefficient in 1/hr
    • getKLa

      public double getKLa()
      Get the KLa value.
      Returns:
      KLa in 1/hr
    • setTargetPH

      public void setTargetPH(double pH)
      Set the target pH for the fermentation.
      Parameters:
      pH - target pH value
    • getTargetPH

      public double getTargetPH()
      Get the target pH.
      Returns:
      target pH or NaN if not controlled
    • setCellYield

      public void setCellYield(double yield)
      Set the cell biomass yield coefficient.
      Parameters:
      yield - g cells produced per g substrate consumed
    • getCellYield

      public double getCellYield()
      Get the cell yield coefficient.
      Returns:
      cell yield
    • setMaintenanceCoefficient

      public void setMaintenanceCoefficient(double maintenance)
      Set the cell maintenance coefficient.
      Parameters:
      maintenance - g substrate consumed per g cells per hr
    • getMaintenanceCoefficient

      public double getMaintenanceCoefficient()
      Get the maintenance coefficient.
      Returns:
      maintenance coefficient
    • getCO2EvolutionRate

      public double getCO2EvolutionRate()
      Get the CO2 evolution rate from the last run.
      Returns:
      CO2 evolution rate in mol/(L*hr)
    • getAerationPower

      public double getAerationPower()
      Get the aeration compressor power in kW.
      Returns:
      aeration power in kW
    • getTotalPower

      public double getTotalPower()
      Get the total power requirement (agitator + aeration) in kW.
      Returns:
      total power in kW
    • estimateAerationPower

      private double estimateAerationPower()
      Calculate the estimated aeration compressor power.

      Uses a simplified model: Power = Q * rho * g * H, where Q is volumetric air flow rate, rho is air density, g is gravity, H is liquid height.

      Returns:
      estimated aeration power in kW
    • run

      public void run(UUID id)

      In this method all thermodynamic and unit operations will be calculated in a steady state calculation.

      Specified by:
      run in interface SimulationInterface
      Overrides:
      run in class StirredTankReactor
      Parameters:
      id - UUID