Class ClassicalNucleationTheory
This class implements homogeneous nucleation theory to predict critical nucleus size, nucleation rate, particle growth by condensation, and coagulation loss. It is applicable to any substance undergoing vapor-to-solid or vapor-to-liquid phase transition including:
- Elemental sulfur (S8) deposition in natural gas systems
- Water ice nucleation in cryogenic processes
- Wax crystallization from paraffinic oils
- Hydrate particle formation
- Metal oxide particle formation in combustion
The model uses the following physics:
- Kelvin equation: critical nucleus radius from supersaturation
- Becker-Doering CNT: nucleation rate with Zeldovich factor
- Hertz-Knudsen: free-molecular condensation growth
- Maxwell continuum: diffusion-limited condensation growth
- Fuchs interpolation: transition regime bridging both growth limits
- Smoluchowski coagulation: Brownian coagulation reducing particle number
Usage example for sulfur particle prediction:
ClassicalNucleationTheory cnt = ClassicalNucleationTheory.sulfurS8();
cnt.setTemperature(253.15); // -20 C
cnt.setSupersaturationRatio(100.0);
cnt.setGasViscosity(1.0e-5); // Pa.s
cnt.setGasDiffusivity(5.0e-6); // m2/s
cnt.setResidenceTime(2.0); // seconds
cnt.calculate();
double diameter_um = cnt.getMeanParticleDiameter() * 1e6;
double rate = cnt.getNucleationRate(); // particles per m3 per second
References:
- Becker, R. and Doering, W. (1935). Ann. Phys. 416, 719-752.
- Seinfeld, J.H. and Pandis, S.N. (2016). Atmospheric Chemistry and Physics, 3rd ed.
- Friedlander, S.K. (2000). Smoke, Dust, and Haze, 2nd ed.
- Fuchs, N.A. and Sutugin, A.G. (1971). Topics in Current Aerosol Research.
- Version:
- 1.0
- Author:
- esol
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate doubleActual partial pressure of the condensing species in Pa.private booleanWhether the calculation has been performed.private doubleMolar mass of the carrier gas in kg/mol.private doubleBrownian coagulation kernel in m3/s (continuum regime).private doubleDensity of the condensed phase (solid or liquid) in kg/m3.private doubleContact angle in degrees between the condensed phase and the substrate surface.private doubleFletcher shape factor f(theta) that multiplies the homogeneous barrier. f(theta) = (2 - 3*cos(theta) + cos^3(theta)) / 4.private doubleNumber of molecules in the critical nucleus.private doubleCritical nucleus radius in m.private doubleDimensionless free energy barrier (DeltaG* / kT).private doubleFree energy barrier for nucleation in J.private doubleDiffusivity of the condensing vapor in the carrier gas in m2/s.private doubleDynamic viscosity of the carrier gas in Pa*s.private doubleEstimated geometric standard deviation of the particle size distribution.private doubleCondensation growth rate in m/s (at critical radius).private doubleGrowth rate in continuum (diffusion-limited) regime in m/s.private doubleGrowth rate in free molecular regime in m/s.private booleanWhether to use heterogeneous nucleation (with contact angle correction).static final doubleBoltzmann constant in J/K.private doubleKnudsen number at the mean particle radius (dimensionless).private doubleMean free path of gas molecules in m.private doubleMean particle diameter after residence time in m.private doubleMean particle radius after residence time (incl. condensation + coagulation) in m.private doubleMass per molecule in kg.private doubleMolecular volume per molecule in m3.private doubleMolecular weight of the condensing species in kg/mol.static final doubleAvogadro's number in 1/mol.private doubleHomogeneous nucleation rate in particles/(m3*s).private doubleMass concentration of particles in kg/m3.private doubleParticle number density after residence time in particles/m3.static final doubleUniversal gas constant in J/(mol*K).private doubleResidence time in the supersaturated zone in seconds.private doubleSaturation (equilibrium) vapor pressure of the condensed phase in Pa.private doubleSticking (accommodation) coefficient for vapor molecules hitting the nucleus surface.private StringName of the substance for reporting.private doubleSupersaturation ratio S = p_actual / p_sat.private doubleSurface tension (surface free energy) of the condensed phase in N/m (= J/m2).private doubleTemperature in K.private doubleTotal pressure of the gas in Pa.private doubleZeldovich non-equilibrium factor (dimensionless). -
Constructor Summary
ConstructorsConstructorDescriptionClassicalNucleationTheory(double molecularWeight_kg_mol, double condensedDensity_kg_m3, double surfaceTension_N_m) Creates a ClassicalNucleationTheory model for a given substance. -
Method Summary
Modifier and TypeMethodDescriptionvoidPerforms the full nucleation, growth, and coagulation calculation.private voidCalculates the Brownian coagulation kernel (Smoluchowski).private voidCalculates condensation growth rates in free-molecular and continuum regimes, with Fuchs interpolation for the transition regime.doublecalculateParticleDiameter(double supersaturation, double residenceTimeSec) Calculates the mean particle diameter for a given supersaturation and residence time.private voidCalculates particle size evolution over the residence time, including condensation growth and coagulation.private static doubleerf(double x) Approximation of the error function using Abramowitz and Stegun formula 7.1.26.private static doubleestimateCondensedDensity(double mw, double tc, double pc, double temperature) Estimates condensed phase density from critical properties using a simplified Rackett equation.private doubleEstimates the mean free path of gas molecules from kinetic theory.private static doubleestimateSurfaceTension(double tc, double pc, double temperature) Estimates surface tension from critical properties using the Eotvos correlation.static ClassicalNucleationTheoryfromThermoSystem(SystemInterface system, String componentName) Creates a CNT model from a NeqSim thermodynamic system for a specified condensable component.private doublefuchsSutuginCorrection(double kn) Calculates the Fuchs-Sutugin transition regime correction factor.doubleReturns the Brownian coagulation kernel.doubleReturns the condensed phase density.doubleReturns the contact angle in degrees.doubleReturns the contact angle factor f(theta).doubleReturns the number of molecules in the critical nucleus.doubleReturns the critical nucleus radius.doubleReturns the dimensionless free energy barrier (Delta G* / kT).doublegetFilterCaptureEfficiency(double filterRatingM) Returns the fraction of particles larger than the filter rating.doublegetFractionSmallerThan(double diameterM) Returns the fraction of particles smaller than a given diameter, assuming lognormal distribution.doubleReturns the free energy barrier for nucleation.doubleReturns the estimated geometric standard deviation of the size distribution.doubleReturns the condensation growth rate at the critical radius.doubleReturns the Knudsen number at the mean particle radius.doubleReturns the mean particle diameter after residence time.doubleReturns the mean particle diameter in the specified unit.doubleReturns the mean particle radius after residence time.doubleReturns the homogeneous nucleation rate.doubleReturns the particle mass concentration.doubleReturns the particle number density after residence time.double[]Returns particle sizes at the 10th, 50th, and 90th percentiles of the estimated lognormal size distribution.doubleReturns the supersaturation ratio used in the calculation.doubleReturns the Zeldovich non-equilibrium correction factor.static doubleheterogeneousContactAngleFactor(double angleDegrees) Computes the Fletcher shape factor for heterogeneous nucleation.booleanReturns whether the calculation has been performed.booleanReturns whether heterogeneous nucleation is enabled.static ClassicalNucleationTheoryCreates a CNT model for naphthalene (C10H8) solid deposition.static ClassicalNucleationTheoryCreates a CNT model for a generic n-paraffin wax (e.g., C25H52 for wax nucleation).private voidResets all calculated results to zero.voidsetCarrierGasMolarMass(double molarMass) Sets the carrier gas molar mass.voidsetContactAngle(double angleDegrees) Sets the contact angle for heterogeneous nucleation.voidsetGasDiffusivity(double diffusivity) Sets the diffusivity of the condensing vapor in the carrier gas.voidsetGasViscosity(double viscosity) Sets the dynamic viscosity of the carrier gas.voidsetHeterogeneous(boolean isHeterogeneous) Sets whether to use heterogeneous nucleation.voidsetMeanFreePath(double lambda) Sets the mean free path of gas molecules directly.voidsetPartialPressure(double pressurePa) Sets the actual partial pressure of the condensing species.voidsetResidenceTime(double timeSeconds) Sets the residence time in the supersaturated zone.voidsetSaturationPressure(double pressurePa) Sets the saturation (equilibrium) vapor pressure over the condensed phase.voidsetStickingCoefficient(double alpha) Sets the sticking (accommodation) coefficient.voidsetSubstanceName(String name) Sets the substance name for reporting.voidsetSupersaturationRatio(double ratio) Sets the supersaturation ratio directly.voidsetSurfaceTension(double sigma) Sets the surface tension of the condensed phase.voidsetTemperature(double temperatureKelvin) Sets the temperature.voidsetTotalPressure(double pressurePa) Sets the total gas pressure.static ClassicalNucleationTheorysulfurS8()Creates a CNT model for elemental sulfur S8.toJson()Returns a JSON report of all nucleation and particle results.toMap()Returns all results as a Map for serialization.toString()static ClassicalNucleationTheorywaterIce()Creates a CNT model for water (ice nucleation from vapor).
-
Field Details
-
K_BOLTZMANN
public static final double K_BOLTZMANNBoltzmann constant in J/K.- See Also:
-
N_AVOGADRO
public static final double N_AVOGADROAvogadro's number in 1/mol.- See Also:
-
R_GAS
public static final double R_GASUniversal gas constant in J/(mol*K).- See Also:
-
molecularWeight
private double molecularWeightMolecular weight of the condensing species in kg/mol. -
condensedPhaseDensity
private double condensedPhaseDensityDensity of the condensed phase (solid or liquid) in kg/m3. -
surfaceTension
private double surfaceTensionSurface tension (surface free energy) of the condensed phase in N/m (= J/m2). -
substanceName
Name of the substance for reporting. -
molecularVolume
private double molecularVolumeMolecular volume per molecule in m3. Derived from MW and density. -
molecularMass
private double molecularMassMass per molecule in kg. Derived from MW. -
stickingCoefficient
private double stickingCoefficientSticking (accommodation) coefficient for vapor molecules hitting the nucleus surface. Default 1.0 (every collision sticks). Typical range 0.01 to 1.0. -
heterogeneous
private boolean heterogeneousWhether to use heterogeneous nucleation (with contact angle correction). -
contactAngleDegrees
private double contactAngleDegreesContact angle in degrees between the condensed phase and the substrate surface. Only used when heterogeneous = true. Range 0 to 180 degrees. 0 = complete wetting (no barrier), 180 = non-wetting (same as homogeneous). -
contactAngleFactor
private double contactAngleFactorFletcher shape factor f(theta) that multiplies the homogeneous barrier. f(theta) = (2 - 3*cos(theta) + cos^3(theta)) / 4. Range: 0 (complete wetting) to 1 (non-wetting). -
temperature
private double temperatureTemperature in K. -
actualPartialPressure
private double actualPartialPressureActual partial pressure of the condensing species in Pa. -
saturationPressure
private double saturationPressureSaturation (equilibrium) vapor pressure of the condensed phase in Pa. -
supersaturationRatio
private double supersaturationRatioSupersaturation ratio S = p_actual / p_sat. Can be set directly instead of setting both pressures. -
gasDiffusivity
private double gasDiffusivityDiffusivity of the condensing vapor in the carrier gas in m2/s. -
gasViscosity
private double gasViscosityDynamic viscosity of the carrier gas in Pa*s. -
meanFreePath
private double meanFreePathMean free path of gas molecules in m. If not set, estimated from gas viscosity and conditions. -
residenceTime
private double residenceTimeResidence time in the supersaturated zone in seconds. -
totalPressure
private double totalPressureTotal pressure of the gas in Pa. Used for mean free path estimation. -
carrierGasMolarMass
private double carrierGasMolarMassMolar mass of the carrier gas in kg/mol. Used for mean free path estimation. -
criticalRadius
private double criticalRadiusCritical nucleus radius in m. -
criticalNucleusMolecules
private double criticalNucleusMoleculesNumber of molecules in the critical nucleus. -
freeEnergyBarrier
private double freeEnergyBarrierFree energy barrier for nucleation in J. -
dimensionlessFreeEnergyBarrier
private double dimensionlessFreeEnergyBarrierDimensionless free energy barrier (DeltaG* / kT). -
zeldovichFactor
private double zeldovichFactorZeldovich non-equilibrium factor (dimensionless). -
nucleationRate
private double nucleationRateHomogeneous nucleation rate in particles/(m3*s). -
growthRate
private double growthRateCondensation growth rate in m/s (at critical radius). -
growthRateFreeM
private double growthRateFreeMGrowth rate in free molecular regime in m/s. -
growthRateContinuum
private double growthRateContinuumGrowth rate in continuum (diffusion-limited) regime in m/s. -
coagulationKernel
private double coagulationKernelBrownian coagulation kernel in m3/s (continuum regime). -
meanParticleRadius
private double meanParticleRadiusMean particle radius after residence time (incl. condensation + coagulation) in m. -
meanParticleDiameter
private double meanParticleDiameterMean particle diameter after residence time in m. -
particleNumberDensity
private double particleNumberDensityParticle number density after residence time in particles/m3. -
knudsenNumber
private double knudsenNumberKnudsen number at the mean particle radius (dimensionless). -
geometricStdDev
private double geometricStdDevEstimated geometric standard deviation of the particle size distribution. -
particleMassConcentration
private double particleMassConcentrationMass concentration of particles in kg/m3. -
calculated
private boolean calculatedWhether the calculation has been performed.
-
-
Constructor Details
-
ClassicalNucleationTheory
public ClassicalNucleationTheory(double molecularWeight_kg_mol, double condensedDensity_kg_m3, double surfaceTension_N_m) Creates a ClassicalNucleationTheory model for a given substance.- Parameters:
molecularWeight_kg_mol- molecular weight of the condensing species in kg/molcondensedDensity_kg_m3- density of the condensed (solid or liquid) phase in kg/m3surfaceTension_N_m- surface tension of the condensed phase in N/m
-
-
Method Details
-
sulfurS8
Creates a CNT model for elemental sulfur S8.Properties: MW = 256.52 g/mol, solid density = 2070 kg/m3, surface tension approx 0.060 N/m.
- Returns:
- ClassicalNucleationTheory configured for S8
-
waterIce
Creates a CNT model for water (ice nucleation from vapor).Properties: MW = 18.015 g/mol, ice density = 917 kg/m3, ice surface tension approx 0.106 N/m.
- Returns:
- ClassicalNucleationTheory configured for water/ice
-
paraffinWax
Creates a CNT model for a generic n-paraffin wax (e.g., C25H52 for wax nucleation).Properties: MW = 352.7 g/mol, solid density = 900 kg/m3, surface tension approx 0.025 N/m.
- Returns:
- ClassicalNucleationTheory configured for paraffin wax
-
naphthalene
Creates a CNT model for naphthalene (C10H8) solid deposition.Properties: MW = 128.17 g/mol, solid density = 1145 kg/m3, surface tension approx 0.050 N/m.
- Returns:
- ClassicalNucleationTheory configured for naphthalene
-
fromThermoSystem
public static ClassicalNucleationTheory fromThermoSystem(SystemInterface system, String componentName) Creates a CNT model from a NeqSim thermodynamic system for a specified condensable component.This factory method extracts physical properties from the EOS-based thermo system:
- Temperature from the system temperature
- Surface tension from interphase properties (if two phases exist)
- Gas-phase transport properties (viscosity, diffusivity) from the gas phase
- Total pressure for mean free path estimation
- Supersaturation is estimated from the fugacity ratio if two phases are present
The system should have been flashed (TPflash + initProperties) before calling this method.
- Parameters:
system- the NeqSim thermodynamic system (should be flashed and initialized)componentName- the name of the condensable component (e.g., "n-heptane", "water")- Returns:
- ClassicalNucleationTheory model populated from the EOS, or null if the component is not found
-
estimateCondensedDensity
private static double estimateCondensedDensity(double mw, double tc, double pc, double temperature) Estimates condensed phase density from critical properties using a simplified Rackett equation.- Parameters:
mw- molecular weight in kg/moltc- critical temperature in Kpc- critical pressure in Patemperature- actual temperature in K- Returns:
- estimated liquid density in kg/m3
-
estimateSurfaceTension
private static double estimateSurfaceTension(double tc, double pc, double temperature) Estimates surface tension from critical properties using the Eotvos correlation.- Parameters:
tc- critical temperature in Kpc- critical pressure in Patemperature- actual temperature in K- Returns:
- estimated surface tension in N/m
-
setTemperature
public void setTemperature(double temperatureKelvin) Sets the temperature.- Parameters:
temperatureKelvin- temperature in Kelvin
-
setPartialPressure
public void setPartialPressure(double pressurePa) Sets the actual partial pressure of the condensing species.- Parameters:
pressurePa- partial pressure in Pa
-
setSaturationPressure
public void setSaturationPressure(double pressurePa) Sets the saturation (equilibrium) vapor pressure over the condensed phase.- Parameters:
pressurePa- saturation vapor pressure in Pa
-
setSupersaturationRatio
public void setSupersaturationRatio(double ratio) Sets the supersaturation ratio directly. If both partial pressure and saturation pressure are also set, this value takes precedence.- Parameters:
ratio- supersaturation ratio S = p_actual / p_sat (must be > 1 for nucleation)
-
setGasDiffusivity
public void setGasDiffusivity(double diffusivity) Sets the diffusivity of the condensing vapor in the carrier gas.- Parameters:
diffusivity- gas-phase diffusivity in m2/s (typical 1e-6 to 1e-5)
-
setGasViscosity
public void setGasViscosity(double viscosity) Sets the dynamic viscosity of the carrier gas.- Parameters:
viscosity- dynamic viscosity in Pa*s (typical 1e-5 for natural gas)
-
setMeanFreePath
public void setMeanFreePath(double lambda) Sets the mean free path of gas molecules directly. If not set, it is estimated from gas viscosity and conditions.- Parameters:
lambda- mean free path in m (typical 5-100 nm at process conditions)
-
setResidenceTime
public void setResidenceTime(double timeSeconds) Sets the residence time in the supersaturated zone.- Parameters:
timeSeconds- residence time in seconds
-
setTotalPressure
public void setTotalPressure(double pressurePa) Sets the total gas pressure. Used for mean free path estimation if not explicitly set.- Parameters:
pressurePa- total pressure in Pa
-
setCarrierGasMolarMass
public void setCarrierGasMolarMass(double molarMass) Sets the carrier gas molar mass. Used for mean free path estimation.- Parameters:
molarMass- carrier gas molar mass in kg/mol (e.g. 0.016 for methane)
-
setStickingCoefficient
public void setStickingCoefficient(double alpha) Sets the sticking (accommodation) coefficient.- Parameters:
alpha- sticking coefficient (0 to 1). Default 1.0.
-
setSurfaceTension
public void setSurfaceTension(double sigma) Sets the surface tension of the condensed phase.- Parameters:
sigma- surface tension in N/m
-
setSubstanceName
Sets the substance name for reporting.- Parameters:
name- substance name
-
setHeterogeneous
public void setHeterogeneous(boolean isHeterogeneous) Sets whether to use heterogeneous nucleation. When true, the free energy barrier is multiplied by the contact angle factor f(theta), which reduces the barrier and increases the nucleation rate. This models nucleation on surfaces such as pipe walls, particulate impurities, or pre-existing droplets.- Parameters:
isHeterogeneous- true to enable heterogeneous nucleation
-
isHeterogeneous
public boolean isHeterogeneous()Returns whether heterogeneous nucleation is enabled.- Returns:
- true if heterogeneous nucleation is enabled
-
setContactAngle
public void setContactAngle(double angleDegrees) Sets the contact angle for heterogeneous nucleation. The contact angle determines how much the free energy barrier is reduced relative to homogeneous nucleation.Also automatically enables heterogeneous mode if not already set.
- Parameters:
angleDegrees- contact angle in degrees (0 to 180). 0 = complete wetting (no barrier), 90 = partial wetting (half barrier), 180 = non-wetting (same as homogeneous).
-
getContactAngle
public double getContactAngle()Returns the contact angle in degrees.- Returns:
- contact angle in degrees
-
getContactAngleFactor
public double getContactAngleFactor()Returns the contact angle factor f(theta). This multiplies the homogeneous barrier to give the heterogeneous barrier.- Returns:
- contact angle factor (0 to 1)
-
heterogeneousContactAngleFactor
public static double heterogeneousContactAngleFactor(double angleDegrees) Computes the Fletcher shape factor for heterogeneous nucleation.f(theta) = (2 - 3*cos(theta) + cos^3(theta)) / 4
This factor reduces the nucleation barrier when a substrate surface is present. Physical meaning:
- f(0) = 0: complete wetting, no barrier, barrierless nucleation
- f(90) = 0.5: partial wetting, half the homogeneous barrier
- f(180) = 1.0: non-wetting, same as homogeneous nucleation
- Parameters:
angleDegrees- contact angle in degrees (0 to 180)- Returns:
- shape factor f(theta) in range [0, 1]
-
calculate
public void calculate()Performs the full nucleation, growth, and coagulation calculation.Calculates in order:
- Supersaturation ratio (from pressures or direct setting)
- Critical nucleus radius (Kelvin equation)
- Free energy barrier and Zeldovich factor
- Homogeneous nucleation rate (Becker-Doering)
- Condensation growth rate (free-molecular and continuum with Fuchs interpolation)
- Brownian coagulation kernel (Smoluchowski)
- Particle size evolution over residence time
-
estimateMeanFreePath
private double estimateMeanFreePath()Estimates the mean free path of gas molecules from kinetic theory.- Returns:
- mean free path in m
-
calculateGrowthRates
private void calculateGrowthRates()Calculates condensation growth rates in free-molecular and continuum regimes, with Fuchs interpolation for the transition regime. -
fuchsSutuginCorrection
private double fuchsSutuginCorrection(double kn) Calculates the Fuchs-Sutugin transition regime correction factor.The correction smoothly interpolates between free-molecular (Kn much greater than 1) and continuum (Kn much less than 1) regimes.
- Parameters:
kn- Knudsen number (mean free path / particle radius)- Returns:
- correction factor (approaches 1 in continuum, > 1 in free molecular)
-
calculateCoagulationKernel
private void calculateCoagulationKernel()Calculates the Brownian coagulation kernel (Smoluchowski). -
calculateParticleEvolution
private void calculateParticleEvolution()Calculates particle size evolution over the residence time, including condensation growth and coagulation. -
resetResults
private void resetResults()Resets all calculated results to zero. -
calculateParticleDiameter
public double calculateParticleDiameter(double supersaturation, double residenceTimeSec) Calculates the mean particle diameter for a given supersaturation and residence time. This is a convenience method that sets both parameters and runs the calculation.- Parameters:
supersaturation- supersaturation ratio (S > 1)residenceTimeSec- residence time in seconds- Returns:
- mean particle diameter in m
-
getMeanParticleDiameter
Returns the mean particle diameter in the specified unit.- Parameters:
unit- size unit: "m", "mm", "um" (micrometres), "nm" (nanometres)- Returns:
- mean particle diameter in the specified unit
-
getParticleSizePercentiles
public double[] getParticleSizePercentiles()Returns particle sizes at the 10th, 50th, and 90th percentiles of the estimated lognormal size distribution.- Returns:
- array [d10, d50, d90] in m
-
getFractionSmallerThan
public double getFractionSmallerThan(double diameterM) Returns the fraction of particles smaller than a given diameter, assuming lognormal distribution.- Parameters:
diameterM- threshold diameter in m- Returns:
- fraction (0 to 1) of particles smaller than the threshold
-
getFilterCaptureEfficiency
public double getFilterCaptureEfficiency(double filterRatingM) Returns the fraction of particles larger than the filter rating. This indicates what fraction would be captured by a filter with the given rating.- Parameters:
filterRatingM- filter rating in m (e.g., 10e-6 for 10 um)- Returns:
- capture fraction (0 to 1)
-
erf
private static double erf(double x) Approximation of the error function using Abramowitz and Stegun formula 7.1.26.- Parameters:
x- input value- Returns:
- erf(x)
-
getCondensedPhaseDensity
public double getCondensedPhaseDensity()Returns the condensed phase density.- Returns:
- condensed phase density in kg/m3
-
getCriticalRadius
public double getCriticalRadius()Returns the critical nucleus radius.- Returns:
- critical radius in m
-
getCriticalNucleusMolecules
public double getCriticalNucleusMolecules()Returns the number of molecules in the critical nucleus.- Returns:
- number of molecules in the critical cluster
-
getFreeEnergyBarrier
public double getFreeEnergyBarrier()Returns the free energy barrier for nucleation.- Returns:
- Gibbs free energy barrier in Joules
-
getDimensionlessFreeEnergyBarrier
public double getDimensionlessFreeEnergyBarrier()Returns the dimensionless free energy barrier (Delta G* / kT).- Returns:
- dimensionless barrier height
-
getZeldovichFactor
public double getZeldovichFactor()Returns the Zeldovich non-equilibrium correction factor.- Returns:
- Zeldovich factor (dimensionless)
-
getNucleationRate
public double getNucleationRate()Returns the homogeneous nucleation rate.- Returns:
- nucleation rate in particles/(m3*s)
-
getGrowthRate
public double getGrowthRate()Returns the condensation growth rate at the critical radius.- Returns:
- growth rate in m/s
-
getCoagulationKernel
public double getCoagulationKernel()Returns the Brownian coagulation kernel.- Returns:
- coagulation kernel in m3/s
-
getMeanParticleRadius
public double getMeanParticleRadius()Returns the mean particle radius after residence time.- Returns:
- mean particle radius in m
-
getMeanParticleDiameter
public double getMeanParticleDiameter()Returns the mean particle diameter after residence time.- Returns:
- mean particle diameter in m
-
getParticleNumberDensity
public double getParticleNumberDensity()Returns the particle number density after residence time.- Returns:
- number density in particles/m3
-
getKnudsenNumber
public double getKnudsenNumber()Returns the Knudsen number at the mean particle radius.- Returns:
- Knudsen number (dimensionless)
-
getGeometricStdDev
public double getGeometricStdDev()Returns the estimated geometric standard deviation of the size distribution.- Returns:
- geometric standard deviation
-
getSupersaturationRatio
public double getSupersaturationRatio()Returns the supersaturation ratio used in the calculation.- Returns:
- supersaturation ratio S
-
getParticleMassConcentration
public double getParticleMassConcentration()Returns the particle mass concentration.- Returns:
- mass concentration in kg/m3
-
isCalculated
public boolean isCalculated()Returns whether the calculation has been performed.- Returns:
- true if calculate() has been called successfully
-
toMap
-
toJson
Returns a JSON report of all nucleation and particle results.- Returns:
- JSON string
-
toString
-