Class CatalystBed
- All Implemented Interfaces:
Serializable
Models the physical properties of a heterogeneous catalyst bed including particle geometry, void fraction, bulk density, and transport properties. Provides calculations for bed pressure drop (Ergun equation), catalyst effectiveness factor (Thiele modulus), and effective diffusivity.
The Ergun equation for pressure drop through a packed bed:
dP/dz = -(150 * mu * (1-eps)^2 * u) / (eps^3 * dp^2) - (1.75 * rho * (1-eps) * u^2) / (eps^3 * dp)
The effectiveness factor for a spherical catalyst pellet using the Thiele modulus:
eta = (1/phi) * (1/tanh(3*phi) - 1/(3*phi))
Usage example:
CatalystBed catalyst = new CatalystBed(); catalyst.setParticleDiameter(3.0, "mm"); catalyst.setVoidFraction(0.40); catalyst.setBulkDensity(800.0); double dPdz = catalyst.calculatePressureDrop(1.5, 25.0, 1.8e-5);
- Version:
- 1.0
- Author:
- esol
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate doubleCatalyst activity factor [-]. 1.0 = fresh, decreases with deactivation.private doubleCatalyst bulk density [kg/m3].private doubleCatalyst particle density [kg/m3].private doubleCatalyst particle diameter [m].private doubleIntra-particle porosity [-].private static final longSerialization version UID.private doubleBET specific surface area [m2/kg].private doubleTortuosity factor [-].private doubleBed void fraction (porosity) [-]. -
Constructor Summary
ConstructorsConstructorDescriptionDefault constructor for CatalystBed.CatalystBed(double particleDiameterMm, double voidFraction, double bulkDensityKgM3) Constructor with particle diameter and void fraction. -
Method Summary
Modifier and TypeMethodDescriptiondoublecalculateEffectivenessFactor(double thieleModulus) Calculate the internal effectiveness factor for a spherical catalyst pellet.doublecalculatePressureDrop(double superficialVelocity, double gasDensity, double gasViscosity) Calculate pressure drop per unit length using the Ergun equation.doublecalculateReynoldsNumber(double superficialVelocity, double gasDensity, double gasViscosity) Calculate bed Reynolds number.doublecalculateThieleModulus(double volumetricRateConstant, double effectiveDiffusivity) Calculate the generalized Thiele modulus for a first-order reaction in a spherical pellet.doublecalculateTotalPressureDrop(double superficialVelocity, double gasDensity, double gasViscosity, double bedLength) Calculate pressure drop across the full catalyst bed.doubleGet catalyst activity factor.doubleGet catalyst bulk density.doublegetEffectiveDiffusivity(double molecularDiffusivity) Calculate the effective diffusivity inside catalyst pores.doubleGet catalyst particle density.doubleGet particle diameter [m].doubleGet intra-particle porosity.doubleGet BET specific surface area [m2/kg].doubleGet tortuosity factor.doubleGet bed void fraction.voidsetActivityFactor(double activityFactor) Set catalyst activity factor.voidsetBulkDensity(double bulkDensity) Set catalyst bulk density.voidsetParticleDensity(double particleDensity) Set catalyst particle density.voidsetParticleDiameter(double diameter, String unit) Set particle diameter.voidsetParticlePorosity(double particlePorosity) Set intra-particle porosity.voidsetSpecificSurfaceArea(double area, String unit) Set BET specific surface area.voidsetTortuosity(double tortuosity) Set tortuosity factor.voidsetVoidFraction(double voidFraction) Set bed void fraction.
-
Field Details
-
serialVersionUID
private static final long serialVersionUIDSerialization version UID.- See Also:
-
particleDiameter
private double particleDiameterCatalyst particle diameter [m]. -
voidFraction
private double voidFractionBed void fraction (porosity) [-]. Typical 0.35-0.50 for random packing. -
bulkDensity
private double bulkDensityCatalyst bulk density [kg/m3]. Mass of catalyst per unit bed volume. -
particleDensity
private double particleDensityCatalyst particle density [kg/m3]. Density of individual particles. -
particlePorosity
private double particlePorosityIntra-particle porosity [-]. Fraction of particle volume that is pore. -
tortuosity
private double tortuosityTortuosity factor [-]. Ratio of actual pore path length to straight-line distance. -
specificSurfaceArea
private double specificSurfaceAreaBET specific surface area [m2/kg]. -
activityFactor
private double activityFactorCatalyst activity factor [-]. 1.0 = fresh, decreases with deactivation.
-
-
Constructor Details
-
CatalystBed
public CatalystBed()Default constructor for CatalystBed. -
CatalystBed
public CatalystBed(double particleDiameterMm, double voidFraction, double bulkDensityKgM3) Constructor with particle diameter and void fraction.- Parameters:
particleDiameterMm- particle diameter in mmvoidFraction- bed void fraction [-]bulkDensityKgM3- bulk density in kg/m3
-
-
Method Details
-
calculatePressureDrop
public double calculatePressureDrop(double superficialVelocity, double gasDensity, double gasViscosity) Calculate pressure drop per unit length using the Ergun equation.dP/dz = -(150 * mu * (1-eps)^2 * u) / (eps^3 * dp^2) - (1.75 * rho * (1-eps) * u^2) / (eps^3 * dp)
- Parameters:
superficialVelocity- gas superficial velocity [m/s]gasDensity- gas density [kg/m3]gasViscosity- gas dynamic viscosity [Pa*s]- Returns:
- pressure drop per unit length [Pa/m] (positive value representing pressure loss)
-
calculateTotalPressureDrop
public double calculateTotalPressureDrop(double superficialVelocity, double gasDensity, double gasViscosity, double bedLength) Calculate pressure drop across the full catalyst bed.- Parameters:
superficialVelocity- gas superficial velocity [m/s]gasDensity- gas density [kg/m3]gasViscosity- gas dynamic viscosity [Pa*s]bedLength- bed length [m]- Returns:
- total pressure drop [bar]
-
calculateThieleModulus
public double calculateThieleModulus(double volumetricRateConstant, double effectiveDiffusivity) Calculate the generalized Thiele modulus for a first-order reaction in a spherical pellet.phi = (R/3) * sqrt(k_v / D_eff) where R = particle radius, k_v = volumetric rate constant, D_eff = effective diffusivity. The factor of 3 converts from radius-based to generalized Thiele modulus for sphere.
- Parameters:
volumetricRateConstant- first-order rate constant [1/s]effectiveDiffusivity- effective diffusivity [m2/s]- Returns:
- generalized Thiele modulus phi [-]
-
calculateEffectivenessFactor
public double calculateEffectivenessFactor(double thieleModulus) Calculate the internal effectiveness factor for a spherical catalyst pellet.eta = (1/phi) * [1/tanh(3*phi) - 1/(3*phi)]
For small phi (phi < 0.1): eta approaches 1.0 (no diffusion limitation). For large phi (phi > 10): eta approaches 1/(3*phi) (severe diffusion limitation).
- Parameters:
thieleModulus- generalized Thiele modulus phi- Returns:
- effectiveness factor eta [0-1]
-
getEffectiveDiffusivity
public double getEffectiveDiffusivity(double molecularDiffusivity) Calculate the effective diffusivity inside catalyst pores.D_eff = D_molecular * epsilon_particle / tau
- Parameters:
molecularDiffusivity- molecular diffusivity in free phase [m2/s]- Returns:
- effective diffusivity [m2/s]
-
calculateReynoldsNumber
public double calculateReynoldsNumber(double superficialVelocity, double gasDensity, double gasViscosity) Calculate bed Reynolds number.Re_p = rho * u * dp / (mu * (1 - eps))
- Parameters:
superficialVelocity- gas superficial velocity [m/s]gasDensity- gas density [kg/m3]gasViscosity- gas dynamic viscosity [Pa*s]- Returns:
- particle Reynolds number [-]
-
setParticleDiameter
Set particle diameter.- Parameters:
diameter- particle diameter valueunit- unit: "m", "mm", "cm", "in"
-
getParticleDiameter
public double getParticleDiameter()Get particle diameter [m].- Returns:
- particle diameter in meters
-
setVoidFraction
public void setVoidFraction(double voidFraction) Set bed void fraction.- Parameters:
voidFraction- void fraction [-] (0 to 1)
-
getVoidFraction
public double getVoidFraction()Get bed void fraction.- Returns:
- void fraction [-]
-
setBulkDensity
public void setBulkDensity(double bulkDensity) Set catalyst bulk density.- Parameters:
bulkDensity- bulk density [kg/m3]
-
getBulkDensity
public double getBulkDensity()Get catalyst bulk density.- Returns:
- bulk density [kg/m3]
-
setParticleDensity
public void setParticleDensity(double particleDensity) Set catalyst particle density.- Parameters:
particleDensity- particle density [kg/m3]
-
getParticleDensity
public double getParticleDensity()Get catalyst particle density.- Returns:
- particle density [kg/m3]
-
setParticlePorosity
public void setParticlePorosity(double particlePorosity) Set intra-particle porosity.- Parameters:
particlePorosity- particle porosity [-] (0 to 1)
-
getParticlePorosity
public double getParticlePorosity()Get intra-particle porosity.- Returns:
- particle porosity [-]
-
setTortuosity
public void setTortuosity(double tortuosity) Set tortuosity factor.- Parameters:
tortuosity- tortuosity [-] (typically 2-6)
-
getTortuosity
public double getTortuosity()Get tortuosity factor.- Returns:
- tortuosity [-]
-
setSpecificSurfaceArea
Set BET specific surface area.- Parameters:
area- surface area valueunit- unit: "m2/kg" or "m2/g"
-
getSpecificSurfaceArea
public double getSpecificSurfaceArea()Get BET specific surface area [m2/kg].- Returns:
- specific surface area [m2/kg]
-
setActivityFactor
public void setActivityFactor(double activityFactor) Set catalyst activity factor.- Parameters:
activityFactor- activity factor [-] (0 to 1, where 1 = fresh)
-
getActivityFactor
public double getActivityFactor()Get catalyst activity factor.- Returns:
- activity factor [-]
-