Centrifuge¶
![]()
Solids / liquid centrifuge (disk-stack / decanter / tubular). Splits the inlet between a Heavy (concentrate / cake) outlet and a Light (clarified) outlet with a recovery-to-heavy fraction r_i (0 to 1) per compound. With UserFractions (default) every r_i is a user input. With SigmaTheory the particulate compounds (cells, debris, solids) get r_i from the Sigma theory: Stokes settling velocity v_g(d) = d^2 (rho_p - rho_L) g / (18 mu), grade efficiency G(d) = min(1, v_g(d) Sigma_ef / Q), with Sigma_ef = eta Sigma and the cut size d50 at Q = 2 v_g(d50) Sigma_ef, integrated over a log-normal mass distribution of particle size (Ambler 1952; Svarovsky 2000; Maybury et al. 2000; Harrison et al. 2015). The liquid carried with the solids keeps the user fractions.
DWSIM.UnitOperations.UnitOperations.UnitOp_Centrifuge
Assembly DWSIM.UnitOperations.dll · Object ← BaseClass ← UnitOpBaseClass ← UnitOp_Centrifuge
At a glance¶

| Port | Index | Connected in the example |
|---|---|---|
| Inlet, material | 0 |
Beer |
| Outlet, material | 0 |
Yeast cream |
| Outlet, material | 1 |
Clarified beer |
Example¶
This code runs on every build of this site, and the output below is what it printed.
fs = (Flowsheet.Create("CentrifugeExample")
.WithCompounds("Water", "Ethanol", "Glucose", "Biomass_Yeast_Scerevisiae")
.WithPropertyPackage(PropertyPackages.NRTL))
beer = (fs.AddMaterialStream("Beer")
.At(Q.Celsius(30.0), Q.Bar(2.0))
.SetCompoundMassFlow("Water", 4.45) # kg/s
.SetCompoundMassFlow("Ethanol", 0.45)
.SetCompoundMassFlow("Glucose", 0.01)
.SetCompoundMassFlow("Biomass_Yeast_Scerevisiae", 0.09))
cream = fs.AddMaterialStream("Yeast cream")
clarified = fs.AddMaterialStream("Clarified beer")
cf = (fs.AddCentrifuge("CF-1")
.WithTechnology(CentrifugeType.DiskStack)
.WithBowlSpeedRpm(6500.0)
.WithSigmaFactorM2(12000.0)
.WithDefaultRecoveryToHeavy(0.08) # share of every liquid that leaves with the cream
.WithRecoveryToHeavy("Biomass_Yeast_Scerevisiae", 0.98)
.ConnectFeed(beer, 0)
.ConnectProduct(cream, 0) # heavy phase
.ConnectProduct(clarified, 1)) # light phase
fs.AutoLayout()
fs.Solve()
yeast_in = beer.Object.Phases[0].Compounds["Biomass_Yeast_Scerevisiae"].MassFlow
yeast_cream = cream.Object.Phases[0].Compounds["Biomass_Yeast_Scerevisiae"].MassFlow
etoh_cream = cream.Object.Phases[0].Compounds["Ethanol"].MassFlow
print(f"Cream flow = {cream.MassFlowKgPerSecond * 3600.0:.0f} kg/h")
print(f"Yeast in cream = {yeast_cream / cream.MassFlowKgPerSecond * 100.0:.1f} wt %")
print(f"Yeast recovery = {yeast_cream / yeast_in * 100.0:.1f} %")
print(f"Clarified beer flow = {clarified.MassFlowKgPerSecond * 3600.0:.0f} kg/h")
print(f"Ethanol lost = {etoh_cream * 3600.0:.1f} kg/h")
Output
Cream flow = 1732 kg/h
Yeast in cream = 18.3 wt %
Yeast recovery = 98.0 %
Clarified beer flow = 16268 kg/h
Ethanol lost = 129.6 kg/h
DWSIM 10.2.11.0, generated 2026-10-08.
Calculation modes¶
Set with RecoveryModel (CentrifugeRecoveryModel). The mode decides which properties are inputs; every other one is a result and is overwritten by the calculation.
| Mode | Value | What it does | Inputs |
|---|---|---|---|
UserFractions |
0 | Every compound goes to the Heavy outlet in the fraction the user gives (RecoveryToHeavy, or DefaultRecoveryToHeavy). |
Technology, Bowl Speed, Sigma Factor, Default Recovery To Heavy, Recovery Model |
SigmaTheory |
1 | The particulate compounds follow the Sigma theory (Ambler 1952): Stokes settling against the throughput over an effective settling area, integrated over a log-normal particle size distribution. The other compounds keep the user fractions. | Technology, Bowl Speed, Sigma Factor, Default Recovery To Heavy, Recovery Model, Reference Bowl Speed, Sigma Efficiency, Number of Discs, Disc Angle, Outer Radius, Inner Radius, Bowl Length |
Properties¶
IDs accepted by GetPropertyValue, SetPropertyValue, the sensitivity analysis, the optimizer, the Adjust block and dynamic events. Units are SI; pass another unit system to GetPropertyValue to get them converted.
| ID | Name | Unit (SI) | Input in |
|---|---|---|---|
Technology |
- | all modes | |
Bowl Speed |
rpm | all modes | |
Sigma Factor |
m2 | all modes | |
Default Recovery To Heavy |
- | all modes | |
Recovery Model |
- | all modes | |
Reference Bowl Speed |
rpm | SigmaTheory |
|
Sigma Efficiency |
- | SigmaTheory |
|
Number of Discs |
- | SigmaTheory |
|
Disc Angle |
deg | SigmaTheory |
|
Outer Radius |
m | SigmaTheory |
|
Inner Radius |
m | SigmaTheory |
|
Bowl Length |
m | SigmaTheory |
|
Feed Mass Flow |
kg/s | result | |
Heavy Mass Flow |
kg/s | result | |
Light Mass Flow |
kg/s | result | |
Solids Recovery |
- | result | |
Sigma at Bowl Speed |
m2 | result | |
Effective Sigma |
m2 | result | |
Liquid Volumetric Flow |
m3/s | result | |
Liquid Density |
kg/m3 | result | |
Liquid Viscosity |
Pa.s | result | |
Recovery to Heavy: Water |
- | result | |
Recovery to Heavy: Ethanol |
- | result | |
Recovery to Heavy: Glucose |
- | result | |
Recovery to Heavy: Biomass_Yeast_Scerevisiae |
- | result |
Learn more¶
-
User guide
-
FluentAPI
API members¶
Public members declared by this class. Inherited members are documented on the base classes.
Constructors¶
UnitOp_Centrifuge(): Initializes a new default instance of the UnitOp_Centrifuge class.
Initializes a new default instance of the UnitOp_Centrifuge class.
UnitOp_Centrifuge(string, string): Initializes a new instance of the UnitOp_Centrifuge class with a name and description.
Initializes a new instance of the UnitOp_Centrifuge class with a name and description.
| Parameter | Type | Description |
|---|---|---|
name |
String |
The name of this unit operation. |
description |
String |
A brief description of this unit operation. |
Properties¶
BowlLength_m: Gets or sets the length of the cylindrical bowl, in m, for Sigma from the geometry of a tubular or decanter bowl.
Gets or sets the length of the cylindrical bowl, in m, for Sigma from the geometry of a tubular or decanter bowl. Default 0 (no geometry).
BowlSpeed_rpm: Gets or sets the bowl rotational speed, in rpm.
Gets or sets the bowl rotational speed, in rpm. Default 6000 rpm. Informational with UserFractions. With SigmaTheory Sigma scales with the square of the speed: through the geometry when it is given, or relative to ReferenceBowlSpeed_rpm otherwise. Setting this property directly does not move the reference speed; ChangeBowlSpeed (used by the editors and by SetPropertyValue("Bowl Speed")) does.
ComponentDescription: Gets or sets the display description for this unit operation.
Gets or sets the display description for this unit operation.
ComponentName: Gets or sets the display name for this unit operation.
Gets or sets the display name for this unit operation.
DefaultRecoveryToHeavy: Gets or sets the fraction (0 to 1) of each compound sent to the Heavy outlet when the compound has no entry in...
Gets or sets the fraction (0 to 1) of each compound sent to the Heavy outlet when the compound has no entry in RecoveryToHeavy. Default 0.05.
DiscAngle_deg: Gets or sets the disc half-cone angle, in degrees, measured from the axis of rotation.
Gets or sets the disc half-cone angle, in degrees, measured from the axis of rotation. Default 40 degrees. Used only with the disk-stack geometry.
InnerRadius_m: Gets or sets the inner radius, in m: the disc inner radius of a disk stack, or the liquid surface (weir) radius of a...
Gets or sets the inner radius, in m: the disc inner radius of a disk stack, or the liquid surface (weir) radius of a tubular or decanter bowl. Default 0.
IsBio: Gets a value that marks this unit operation as a bioprocess unit.
Gets a value that marks this unit operation as a bioprocess unit. The object palettes read this flag by reflection to list it in the Biochemical group.
MobileCompatible: Gets a value indicating whether this unit operation is compatible with mobile interfaces.
Gets a value indicating whether this unit operation is compatible with mobile interfaces. Always False.
NumberOfDiscs: Gets or sets the number of discs of a disk-stack bowl, for Sigma from the geometry.
Gets or sets the number of discs of a disk-stack bowl, for Sigma from the geometry. Default 0 (Sigma from SigmaFactor_m2).
ObjectClass: Gets or sets the simulation object class category (always Separators).
Gets or sets the simulation object class category (always Separators).
OuterRadius_m: Gets or sets the outer radius, in m: the disc outer radius of a disk stack, or the bowl wall radius of a tubular or...
Gets or sets the outer radius, in m: the disc outer radius of a disk stack, or the bowl wall radius of a tubular or decanter bowl. Default 0 (no geometry).
ParticleDensity_kgm3: Gets or sets the particle density, in kg/m3, per compound name.
Gets or sets the particle density, in kg/m3, per compound name. A compound with no entry takes the solid density of the compound, or 1100 kg/m3 (a wet cell) when the compound has none.
ParticleMedianDiameter_um: Gets or sets the mass median particle diameter d50, in micrometres, per compound name, for the Sigma theory.
Gets or sets the mass median particle diameter d50, in micrometres, per compound name, for the Sigma theory. A compound with no entry takes the default for its kind (see ParticleDefaults); an entry of 0 marks the compound as not particulate.
ParticleSizeSpread: Gets or sets the geometric standard deviation sigma_g (1 or more) of the log-normal particle size distribution, per...
Gets or sets the geometric standard deviation sigma_g (1 or more) of the log-normal particle size distribution, per compound name. 1 is a monodisperse population. A compound with no entry takes the default for its kind.
RecoveryModel: Gets or sets how the recovery to the Heavy outlet is found: UserFractions (0, default, every fraction is an input)...
Gets or sets how the recovery to the Heavy outlet is found: UserFractions (0, default, every fraction is an input) or SigmaTheory (1, the particulate compounds follow the Sigma theory).
RecoveryToHeavy: Gets or sets the per-compound fraction (0 to 1) of the feed mass sent to the Heavy (concentrate) outlet, keyed by...
Gets or sets the per-compound fraction (0 to 1) of the feed mass sent to the Heavy (concentrate) outlet, keyed by compound name. The remainder goes to the Light (clarified) outlet.
ReferenceBowlSpeed_rpm: Gets or sets the bowl speed, in rpm, at which SigmaFactor_m2 was given.
Gets or sets the bowl speed, in rpm, at which SigmaFactor_m2 was given. Default 0: Sigma applies at the current bowl speed. ChangeBowlSpeed sets it to the old speed the first time the speed changes, so that Sigma then scales with (N / N_ref)^2.
Result_CutSize_um: Gets or sets the cut size d50 of the grade efficiency curve, in micrometres, per particulate compound (Sigma theory...
Gets or sets the cut size d50 of the grade efficiency curve, in micrometres, per particulate compound (Sigma theory only): the diameter recovered at 50 %, Q = 2 v_g(d50) Sigma_ef. A compound whose particles are not denser than the liquid has no entry (it does not settle, recovery 0).
Result_FeedMass_kgs: Gets or sets the calculated feed mass flow, in kg/s.
Gets or sets the calculated feed mass flow, in kg/s.
Result_HeavyMass_kgs: Gets or sets the calculated Heavy (concentrate) outlet mass flow, in kg/s.
Gets or sets the calculated Heavy (concentrate) outlet mass flow, in kg/s.
Result_LightMass_kgs: Gets or sets the calculated Light (clarified) outlet mass flow, in kg/s.
Gets or sets the calculated Light (clarified) outlet mass flow, in kg/s.
Result_LiquidDensity_kgm3: Gets or sets the density of the feed liquid phase, in kg/m3 (Sigma theory only).
Gets or sets the density of the feed liquid phase, in kg/m3 (Sigma theory only).
Result_LiquidFlow_m3s: Gets or sets the volumetric flow of the feed liquid phase, the throughput Q, in m3/s (Sigma theory only).
Gets or sets the volumetric flow of the feed liquid phase, the throughput Q, in m3/s (Sigma theory only).
Result_LiquidViscosity_Pas: Gets or sets the viscosity of the feed liquid phase, in Pa.s (Sigma theory only).
Gets or sets the viscosity of the feed liquid phase, in Pa.s (Sigma theory only).
Result_Recovery: Gets or sets the fraction (0 to 1) of each compound sent to the Heavy outlet in the last calculation, keyed by...
Gets or sets the fraction (0 to 1) of each compound sent to the Heavy outlet in the last calculation, keyed by compound name.
Result_Sigma_m2: Gets or sets the Sigma at the bowl speed, in m2, before the efficiency (Sigma theory only).
Gets or sets the Sigma at the bowl speed, in m2, before the efficiency (Sigma theory only).
Result_SigmaEffective_m2: Gets or sets the effective Sigma, eta Sigma, in m2 (Sigma theory only).
Gets or sets the effective Sigma, eta Sigma, in m2 (Sigma theory only).
Result_SigmaEfficiency: Gets or sets the Sigma efficiency eta used in the calculation (Sigma theory only).
Gets or sets the Sigma efficiency eta used in the calculation (Sigma theory only).
Result_SigmaFromGeometry: Gets or sets whether the Sigma came from the bowl geometry (Sigma theory only).
Gets or sets whether the Sigma came from the bowl geometry (Sigma theory only).
Result_SolidsRecovery: Gets or sets the calculated solids recovery (0 to 1).
Gets or sets the calculated solids recovery (0 to 1). With UserFractions: the fraction of the compounds with molecular weight above 10000 g/mol that goes to the Heavy outlet. With SigmaTheory: the fraction of the particulate compounds that goes to the Heavy outlet. Zero when no such compound is present.
SigmaEfficiency: Gets or sets the Sigma efficiency eta (0 to 1) that turns the theoretical Sigma into the effective one, Sigma_ef =...
Gets or sets the Sigma efficiency eta (0 to 1) that turns the theoretical Sigma into the effective one, Sigma_ef = eta Sigma. Default 0: the value for the technology (tubular 0.90, decanter 0.60, disk stack 0.55; Svarovsky 2000).
SigmaFactor_m2: Gets or sets the sigma factor (equivalent settling area), in m2, at...
Gets or sets the sigma factor (equivalent settling area), in m2, at ReferenceBowlSpeed_rpm (at the bowl speed when the reference is 0). Default 1000 m2. Informational with UserFractions; not used when the geometry gives Sigma.
SupportsDynamicMode: Gets a value indicating whether this unit operation supports dynamic simulation mode.
Gets a value indicating whether this unit operation supports dynamic simulation mode. Always False.
Technology: Gets or sets the centrifuge type: DiskStack (0, default), Decanter (1) or Tubular (2).
Gets or sets the centrifuge type: DiskStack (0, default), Decanter (1) or Tubular (2). With UserFractions it is informational. With SigmaTheory it sets the default Sigma efficiency (see SigmaEfficiency) and the geometry formula for Sigma.
Methods¶
Calculate(object): Calculates the object.
Calculates the object.
| Parameter | Type | Description |
|---|---|---|
args |
Object |
ChangeBowlSpeed(double): Changes the bowl speed.
Changes the bowl speed. When ReferenceBowlSpeed_rpm is 0 the old speed becomes the reference first, so that SigmaFactor_m2 stays the Sigma at the speed it was given and the Sigma at the new speed scales with (N / N_ref)^2.
| Parameter | Type | Description |
|---|---|---|
rpm |
Double |
The new bowl speed, in rpm. |
CloneXML(): Creates a deep copy of this object by round-tripping through XML serialization.
Creates a deep copy of this object by round-tripping through XML serialization.
CloseEditForm(): Closes the editor of this object, if it is open.
Closes the editor of this object, if it is open.
CriticalDiameter_m(double, double, double, double): Returns the smallest particle diameter recovered completely, d_c, in m, from v_g(d_c) Sigma_ef = Q with the Stokes...
Returns the smallest particle diameter recovered completely, d_c, in m, from v_g(d_c) Sigma_ef = Q with the Stokes settling velocity v_g(d) = d^2 delta_rho g / (18 mu): d_c = sqrt(18 mu Q / (delta_rho g Sigma_ef)). The cut size d50 is d_c / sqrt(2).
| Parameter | Type | Description |
|---|---|---|
flow_m3s |
Double |
The throughput Q, in m3/s. |
viscosity_Pas |
Double |
The liquid viscosity, in Pa.s. |
densityDifference_kgm3 |
Double |
The particle density minus the liquid density, in kg/m3. |
effectiveSigma_m2 |
Double |
The effective Sigma, in m2. |
DeCalculate(): Decalculates the object.
Decalculates the object.
DisplayEditForm(): Opens the editor of this object.
Opens the editor of this object. A host that has no editor for it does nothing.
EffectiveSigmaEfficiency(): Returns the Sigma efficiency the calculation uses: SigmaEfficiency when it is positive (at most...
Returns the Sigma efficiency the calculation uses: SigmaEfficiency when it is positive (at most 1), otherwise the value for the Technology.
GeometrySigma(): Returns the theoretical Sigma, in m2, from the bowl geometry at the bowl speed, or 0 when the geometry is incomplete.
Returns the theoretical Sigma, in m2, from the bowl geometry at the bowl speed, or 0 when the geometry is incomplete. Disk stack (Ambler 1952): Sigma = 2 pi n omega^2 (r2^3 - r1^3) / (3 g tan(theta)), with n NumberOfDiscs, r2 OuterRadius_m, r1 InnerRadius_m and theta DiscAngle_deg. Tubular and decanter: Sigma = pi L omega^2 (3 r2^2 + r1^2) / (2 g), with L BowlLength_m, r2 the bowl wall radius and r1 the liquid surface radius; for a decanter this is the cylindrical section only (the cone is left out).
GetDisplayDescription(): Returns the description string for this unit operation type.
Returns the description string for this unit operation type.
GetDisplayName(): Returns the display name for this unit operation type.
Returns the display name for this unit operation type.
GetIconBitmapBytes(): Returns the raw bytes of the icon image for this unit operation.
Returns the raw bytes of the icon image for this unit operation.
GetProperties(PropertyType): Get a list of all properties of the object.
Get a list of all properties of the object.
| Parameter | Type | Description |
|---|---|---|
proptype |
PropertyType |
Type of the property. |
GetPropertyUnit(string, IUnitsOfMeasure): Gets the units of a property.
Gets the units of a property.
| Parameter | Type | Description |
|---|---|---|
prop |
String |
Property identifier. |
su |
IUnitsOfMeasure |
Units system to use. Null to use the default (SI) system. |
GetPropertyValue(string, IUnitsOfMeasure): Returns the value of a named property, converting from SI to the current unit system.
Returns the value of a named property, converting from SI to the current unit system. Falls back to extra properties if the property is not found in the base implementation.
| Parameter | Type | Description |
|---|---|---|
prop |
String |
The property identifier string. |
su |
IUnitsOfMeasure |
Optional units-of-measure system used for conversion; uses the shared SI system when Nothing. |
GetReport(IUnitsOfMeasure, CultureInfo, string): Generates a plain-text results report for this unit operation.
Generates a plain-text results report for this unit operation.
| Parameter | Type | Description |
|---|---|---|
su |
IUnitsOfMeasure |
The unit system used for formatting output values (not used; values are reported in fixed units). |
ci |
CultureInfo |
The culture info used for number formatting. |
numberformat |
String |
A .NET numeric format string (e.g. "G6") applied to output values. |
LogNormalRecovery(double, double, double): Returns the recovery (0 to 1) of a log-normal particle population under the Sigma grade efficiency G(d) = min(1, (d...
Returns the recovery (0 to 1) of a log-normal particle population under the Sigma grade efficiency G(d) = min(1, (d / d_c)^2). Closed form of the integral of G over the mass distribution, with s = ln(sigma_g): R = (d_m / d_c)^2 exp(2 s^2) Phi((ln(d_c / d_m) - 2 s^2) / s) + 1 - Phi(ln(d_c / d_m) / s). A monodisperse population (sigma_g = 1) gives G(d_m).
| Parameter | Type | Description |
|---|---|---|
medianDiameter |
Double |
The mass median diameter d_m of the population. |
spread |
Double |
The geometric standard deviation sigma_g (1 or more). |
criticalDiameter |
Double |
The diameter recovered completely, d_c, in the same unit as medianDiameter. |
ParticleDefaults(ICompoundConstantProperties): Returns the default particle size of a compound for the Sigma theory: the mass median diameter d50 (micrometres)...
Returns the default particle size of a compound for the Sigma theory: the mass median diameter d50 (micrometres), the geometric standard deviation sigma_g and where the values come from. Cell debris (name contains "debris") 1 um, 1.8. Biomass by kind (the compound BiomassType, or its name): yeast 5 um, 1.5; bacteria 1 um, 1.4; mammalian cells 15 um, 1.3; microalgae 5 um, 1.6; activated sludge flocs 50 um, 2.0; other biomass 3 um, 1.6. Compounds flagged as solids 10 um, 2.0. Any other compound gets d50 = 0: it is not particulate and keeps its user fraction.
| Parameter | Type | Description |
|---|---|---|
compound |
ICompoundConstantProperties |
The compound. |
ParticleFor(ICompoundConstantProperties): Returns the particle data the Sigma theory uses for a compound: the entries in...
Returns the particle data the Sigma theory uses for a compound: the entries in ParticleMedianDiameter_um, ParticleSizeSpread and ParticleDensity_kgm3, or the defaults (ParticleDefaults; the solid density of the compound, or 1100 kg/m3).
| Parameter | Type | Description |
|---|---|---|
compound |
ICompoundConstantProperties |
The compound. |
RecoveryFor(string): Returns the fraction of a compound sent to the Heavy outlet: its entry in RecoveryToHeavy, or...
Returns the fraction of a compound sent to the Heavy outlet: its entry in RecoveryToHeavy, or DefaultRecoveryToHeavy when it has none, clamped to 0 to 1.
| Parameter | Type | Description |
|---|---|---|
compName |
String |
The compound name. |
SetPropertyValue(string, object, IUnitsOfMeasure): Sets the value of a property.
Sets the value of a property.
| Parameter | Type | Description |
|---|---|---|
prop |
String |
Property identifier. |
propval |
Object |
Property value to set at the specified units. |
su |
IUnitsOfMeasure |
Units system to use. Null to use the default (SI) system. |
SigmaAtBowlSpeed(): Returns the theoretical Sigma at the bowl speed, in m2: from the geometry when it is complete...
Returns the theoretical Sigma at the bowl speed, in m2: from the geometry when it is complete (GeometrySigma), otherwise SigmaFactor_m2 times (BowlSpeed_rpm / ReferenceBowlSpeed_rpm)^2, with no scaling when the reference speed is 0.
TechnologySigmaEfficiency(CentrifugeType): Returns the Sigma efficiency eta of a centrifuge type (Svarovsky 2000): tubular 0.90, decanter 0.60, disk stack 0.55.
Returns the Sigma efficiency eta of a centrifuge type (Svarovsky 2000): tubular 0.90, decanter 0.60, disk stack 0.55.
| Parameter | Type | Description |
|---|---|---|
type |
CentrifugeType |
The centrifuge type. |
UpdateEditForm(): Redraws the editor of this object with the current values, if it is open.
Redraws the editor of this object with the current values, if it is open.
Fields¶