Class Fermenter
- All Implemented Interfaces:
Serializable, Runnable, ProcessEquipmentInterface, TwoPortInterface, ProcessElementInterface, SimulationInterface, NamedInterface
- Direct Known Subclasses:
AnaerobicDigester, FermentationReactor
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 Summary
FieldsModifier and TypeFieldDescriptionprivate doubleAeration compressor power in kW.private doubleAeration rate in vvm (volume of air per volume of liquid per minute).private booleanWhether the fermenter is aerobic (requires O2) or anaerobic.private doubleCell mass yield coefficient (g cells / g substrate).private doubleCO2 evolution rate in mol/(L*hr).private doubleKLa value (volumetric mass transfer coefficient) in 1/hr.private static final org.apache.logging.log4j.LoggerLogger object for class.private doubleCell mass maintenance coefficient (g substrate / (g cells * hr)).private doubleOxygen transfer rate in mol O2 / (L * hr).private static final longSerialization version UID.private doubleTarget pH for pH-controlled fermentation.Fields inherited from class TwoPortEquipment
inStream, outStreamFields inherited from class ProcessEquipmentBaseClass
conditionAnalysisMessage, energyStream, hasController, isSolved, properties, reportFields inherited from class SimulationBaseClass
calcIdentifier, calculateSteadyState, timeFields inherited from class NamedBaseClass
name -
Constructor Summary
ConstructorsConstructorDescriptionConstructor for Fermenter.Fermenter(String name, StreamInterface inletStream) Constructor for Fermenter with inlet stream. -
Method Summary
Modifier and TypeMethodDescriptionprivate doubleCalculate the estimated aeration compressor power.doubleGet the aeration compressor power in kW.doubleGet the aeration rate.doubleGet the cell yield coefficient.doubleGet the CO2 evolution rate from the last run.doublegetKLa()Get the KLa value.doubleGet the maintenance coefficient.doubleGet the target pH.doubleGet the total power requirement (agitator + aeration) in kW.booleanCheck if fermenter is aerobic.voidIn this method all thermodynamic and unit operations will be calculated in a steady state calculation.voidsetAerationRate(double vvm) Set the aeration rate for aerobic fermentation.voidsetAerobic(boolean aerobic) Set whether the fermenter operates aerobically.voidsetCellYield(double yield) Set the cell biomass yield coefficient.voidsetKLa(double kLa) Set the volumetric mass transfer coefficient.voidsetMaintenanceCoefficient(double maintenance) Set the cell maintenance coefficient.voidsetTargetPH(double pH) Set the target pH for the fermentation.Methods inherited from class StirredTankReactor
addReaction, clearReactions, getAgitatorPower, getAgitatorPowerPerVolume, getHeatDuty, getHeatDuty, getPressureDrop, getReactions, getReactorPressure, getReactorTemperature, getResidenceTime, getVesselVolume, isIsothermal, setAgitatorPowerPerVolume, setIsothermal, setPressureDrop, setReactorPressure, setReactorTemperature, setReactorTemperature, setResidenceTime, setVesselVolume, toJsonMethods inherited from class TwoPortEquipment
getInletPressure, getInletStream, getInletStreams, getInletTemperature, getMassBalance, getOutletPressure, getOutletStream, getOutletStreams, getOutletTemperature, setInletPressure, setInletStream, setInletTemperature, setOutletPressure, setOutletPressure, setOutletStream, setOutletTemperature, setOutletTemperature, toJson, validateSetupMethods inherited from class ProcessEquipmentBaseClass
addCapacityConstraint, addController, copy, displayResult, equals, getAvailableMargin, getAvailableMarginPercent, getBottleneckConstraint, getCapacityConstraints, getConditionAnalysisMessage, getConstraintEvaluationReport, getController, getController, getControllers, getEffectiveCapacityFactor, getEnergyStream, getEntropyProduction, getExergyChange, getFailureMode, getMassBalance, getMaxUtilization, getMaxUtilizationPercent, getMechanicalDesign, getMinimumFlow, getPressure, getPressure, getProperty, getReferenceDesignation, getReport_json, getResultTable, getSpecification, getTemperature, getTemperature, getThermoSystem, getUtilizationSummary, hashCode, initElectricalDesign, initializeDefaultConstraints, initInstrumentDesign, initMechanicalDesign, isActive, isActive, isCapacityAnalysisEnabled, isCapacityExceeded, isFailed, isHardLimitExceeded, isNearCapacityLimit, isSetEnergyStream, reportResults, restoreFromFailure, run_step, runConditionAnalysis, setCapacityAnalysisEnabled, setController, setEnergyStream, setEnergyStream, setFailureMode, setFlowValveController, setMinimumFlow, setPressure, setReferenceDesignation, setRegulatorOutSignal, setSpecification, setTemperature, simulateDegradedOperation, simulateTrip, solvedMethods inherited from class SimulationBaseClass
getCalculateSteadyState, getCalculationIdentifier, getTime, increaseTime, isRunInSteps, setCalculateSteadyState, setCalculationIdentifier, setRunInSteps, setTimeMethods inherited from class NamedBaseClass
getName, getTagNumber, setName, setTagNumberMethods inherited from class Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface NamedInterface
getName, getTagName, getTagNumber, setName, setTagName, setTagNumberMethods inherited from interface ProcessEquipmentInterface
getCapacityDuty, getCapacityMax, getElectricalDesign, getEquipmentState, getExergyChange, getExergyDestruction, getExergyDestruction, getFluid, getInstrumentDesign, getOperatingEnvelopeViolation, getOutletFlowRate, getOutletPressure, getOutletTemperature, getReferenceDesignationString, getRestCapacity, getSimulationValidationErrors, isSimulationValid, isWithinOperatingEnvelope, needRecalculationMethods inherited from interface SimulationInterface
getCalculateSteadyState, getCalculationIdentifier, getTime, increaseTime, isRunInSteps, run, run_step, runTransient, runTransient, setCalculateSteadyState, setCalculationIdentifier, setRunInSteps, setTimeMethods inherited from interface TwoPortInterface
getInStream, getOutStream, setOutPressure, setOutPressure, setOutTemperature, setOutTemperature
-
Field Details
-
serialVersionUID
private static final long serialVersionUIDSerialization version UID.- See Also:
-
logger
private static final org.apache.logging.log4j.Logger loggerLogger object for class. -
aerobic
private boolean aerobicWhether the fermenter is aerobic (requires O2) or anaerobic. -
aerationRate
private double aerationRateAeration rate in vvm (volume of air per volume of liquid per minute). -
oxygenTransferRate
private double oxygenTransferRateOxygen transfer rate in mol O2 / (L * hr). -
kLa
private double kLaKLa value (volumetric mass transfer coefficient) in 1/hr. -
targetPH
private double targetPHTarget pH for pH-controlled fermentation. NaN if not controlled. -
cellYield
private double cellYieldCell mass yield coefficient (g cells / g substrate). -
maintenanceCoefficient
private double maintenanceCoefficientCell mass maintenance coefficient (g substrate / (g cells * hr)). -
co2EvolutionRate
private double co2EvolutionRateCO2 evolution rate in mol/(L*hr). Calculated during run. -
aerationPower
private double aerationPowerAeration compressor power in kW. Calculated during run.
-
-
Constructor Details
-
Fermenter
-
Fermenter
Constructor for Fermenter with inlet stream.- Parameters:
name- name of the fermenterinletStream- 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
In this method all thermodynamic and unit operations will be calculated in a steady state calculation.
- Specified by:
runin interfaceSimulationInterface- Overrides:
runin classStirredTankReactor- Parameters:
id- UUID
-