Gas Scrubber Sizing Screening
Use this skill for public, educational gas-scrubber (vertical separator) sizing screening. It estimates the Souders-Brown maximum gas velocity, the required vessel diameter, the velocity utilisation against an existing diameter, and a mist-eliminator gas-load check so an agent can scope a separator-sizing study before detailed design.
When to Use
- When a user asks what diameter a vertical gas scrubber needs or whether an existing vessel is large enough.
- When an agent needs a quick Souders-Brown velocity and mist-eliminator load estimate.
- When examples must run without confidential vessel data, vendor internals data, or company specs.
Inputs
gas_mass_flow_kg_s: gas mass flow in kg/s.
gas_density_kg_m3: gas density in kg/m3.
liquid_density_kg_m3: liquid density in kg/m3.
k_factor_m_s: Souders-Brown K-factor in m/s, default 0.107.
vessel_inside_diameter_m: optional existing vessel inside diameter; if given it is checked, otherwise the required diameter is sized.
mist_eliminator_k_factor: mist-eliminator K-factor in m/s, default 0.12.
demister_present: whether a mist eliminator is installed, default True.
Outputs
souders_brown_velocity_m_s: maximum gas velocity v_max.
gas_volumetric_flow_m3_s: actual gas volumetric flow Q.
required_area_m2: required cross-sectional area Q / v_max.
required_diameter_m: required vessel inside diameter.
actual_velocity_m_s: actual gas velocity at the given diameter, or null.
velocity_utilisation: actual velocity divided by v_max, or null.
gas_load_factor: effective K-factor from the actual velocity, or null.
demister_velocity_limit_m_s: mist-eliminator Souders-Brown limit.
demister_utilisation: gas velocity divided by the demister limit, or null.
sizing_warning: ok, watch, undersized, or oversized.
demister_warning: ok, watch, mist-eliminator-overloaded, or no-demister.
assumptions: public assumptions used by the placeholder model.
Engineering Method
The Python class GasScrubberSizingModel uses open separator-sizing relations only:
- Souders-Brown velocity uses
v_max = K sqrt((rho_l - rho_g) / rho_g).
- gas volumetric flow uses
Q = mdot / rho_g.
- required area uses
A = Q / v_max and required diameter uses D = sqrt(4 A / pi).
- when a diameter is given, actual velocity uses
v = Q / (pi/4 * D^2), velocity utilisation uses v / v_max, and the effective K-factor uses v / sqrt((rho_l - rho_g) / rho_g).
- the demister limit uses
v_demister = K_mist sqrt((rho_l - rho_g) / rho_g), and demister utilisation uses v / v_demister.
This is educational and screening-only logic. It assumes a vertical vessel with uniform gas velocity, ignores inlet-device performance, liquid handling, and settling-section detail, and is not a replacement for validated separator sizing or qualified review.
Python Usage Pattern
from gas_scrubber_sizing_screening import GasScrubberSizingModel
model = GasScrubberSizingModel()
result = model.evaluate(
gas_mass_flow_kg_s=8.0,
gas_density_kg_m3=45.0,
liquid_density_kg_m3=700.0,
vessel_inside_diameter_m=1.2,
)
print(result.souders_brown_velocity_m_s)
print(result.velocity_utilisation)
print(result.sizing_warning)
print(result.demister_warning)
Related NeqSim Functionality
For validated separator sizing, redirect to NeqSim classes:
neqsim.process.equipment.separator.Separator — process separator with gas/liquid split and performance.
neqsim.process.mechanicaldesign.separator.SeparatorMechanicalDesign — separator mechanical design, gas-load factor, and retention time.
neqsim.process.mechanicaldesign.separator.internals.DemistingInternal — mist-eliminator Souders-Brown limit and carry-over model.
neqsim.process.equipment.separator.GasScrubberDesign — proposed dedicated gas-scrubber sizing model; candidate NeqSim gap.
This skill is a public triage layer that decides when to invoke a validated separator-sizing model.
Validation Checklist
Common Mistakes
| Symptom |
Cause |
Fix |
| Velocity utilisation above 1 |
Vessel diameter too small |
Increase the diameter or reduce throughput |
| Mist eliminator overloaded |
Demister K-factor exceeded |
Add a larger demister or reduce velocity |
| Utilisation missing |
No vessel_inside_diameter_m supplied |
Use required_diameter_m as the size |
Limitations
- No proprietary vessel data, vendor internals data, or company specs are included.
- Inlet-device performance, liquid handling, and settling-section detail are not modelled.
- A single Souders-Brown K-factor is used for the gas-capacity check.
References
- GPSA Engineering Data Book, Section 7, Separators and Filters.
- API Recommended Practice 12J, Specification for Oil and Gas Separators.
- NeqSim repository: https://github.com/equinor/neqsim
1---2name: neqsim-gas-scrubber-sizing-screening3description: Educational gas-scrubber sizing screening using the public Souders-Brown / K-factor relation for vertical separators with a mist-eliminator gas-load check. USE WHEN: a task needs a public, screening-level estimate of the Souders-Brown velocity, required vessel diameter, velocity utilisation, and mist-eliminator load for a vertical gas scrubber before detailed separator design.4---56# Gas Scrubber Sizing Screening78Use this skill for public, educational gas-scrubber (vertical separator) sizing screening. It estimates the Souders-Brown maximum gas velocity, the required vessel diameter, the velocity utilisation against an existing diameter, and a mist-eliminator gas-load check so an agent can scope a separator-sizing study before detailed design.910## When to Use1112- When a user asks what diameter a vertical gas scrubber needs or whether an existing vessel is large enough.13- When an agent needs a quick Souders-Brown velocity and mist-eliminator load estimate.14- When examples must run without confidential vessel data, vendor internals data, or company specs.1516## Inputs1718- `gas_mass_flow_kg_s`: gas mass flow in kg/s.19- `gas_density_kg_m3`: gas density in kg/m3.20- `liquid_density_kg_m3`: liquid density in kg/m3.21- `k_factor_m_s`: Souders-Brown K-factor in m/s, default 0.107.22- `vessel_inside_diameter_m`: optional existing vessel inside diameter; if given it is checked, otherwise the required diameter is sized.23- `mist_eliminator_k_factor`: mist-eliminator K-factor in m/s, default 0.12.24- `demister_present`: whether a mist eliminator is installed, default `True`.2526## Outputs2728- `souders_brown_velocity_m_s`: maximum gas velocity `v_max`.29- `gas_volumetric_flow_m3_s`: actual gas volumetric flow `Q`.30- `required_area_m2`: required cross-sectional area `Q / v_max`.31- `required_diameter_m`: required vessel inside diameter.32- `actual_velocity_m_s`: actual gas velocity at the given diameter, or `null`.33- `velocity_utilisation`: actual velocity divided by `v_max`, or `null`.34- `gas_load_factor`: effective K-factor from the actual velocity, or `null`.35- `demister_velocity_limit_m_s`: mist-eliminator Souders-Brown limit.36- `demister_utilisation`: gas velocity divided by the demister limit, or `null`.37- `sizing_warning`: `ok`, `watch`, `undersized`, or `oversized`.38- `demister_warning`: `ok`, `watch`, `mist-eliminator-overloaded`, or `no-demister`.39- `assumptions`: public assumptions used by the placeholder model.4041## Engineering Method4243The Python class `GasScrubberSizingModel` uses open separator-sizing relations only:4445- Souders-Brown velocity uses `v_max = K sqrt((rho_l - rho_g) / rho_g)`.46- gas volumetric flow uses `Q = mdot / rho_g`.47- required area uses `A = Q / v_max` and required diameter uses `D = sqrt(4 A / pi)`.48- when a diameter is given, actual velocity uses `v = Q / (pi/4 * D^2)`, velocity utilisation uses `v / v_max`, and the effective K-factor uses `v / sqrt((rho_l - rho_g) / rho_g)`.49- the demister limit uses `v_demister = K_mist sqrt((rho_l - rho_g) / rho_g)`, and demister utilisation uses `v / v_demister`.5051This is educational and screening-only logic. It assumes a vertical vessel with uniform gas velocity, ignores inlet-device performance, liquid handling, and settling-section detail, and is not a replacement for validated separator sizing or qualified review.5253## Python Usage Pattern5455```python56from gas_scrubber_sizing_screening import GasScrubberSizingModel5758model = GasScrubberSizingModel()59result = model.evaluate(60 gas_mass_flow_kg_s=8.0,61 gas_density_kg_m3=45.0,62 liquid_density_kg_m3=700.0,63 vessel_inside_diameter_m=1.2,64)6566print(result.souders_brown_velocity_m_s)67print(result.velocity_utilisation)68print(result.sizing_warning)69print(result.demister_warning)70```7172## Related NeqSim Functionality7374For validated separator sizing, redirect to NeqSim classes:7576- `neqsim.process.equipment.separator.Separator` — process separator with gas/liquid split and performance.77- `neqsim.process.mechanicaldesign.separator.SeparatorMechanicalDesign` — separator mechanical design, gas-load factor, and retention time.78- `neqsim.process.mechanicaldesign.separator.internals.DemistingInternal` — mist-eliminator Souders-Brown limit and carry-over model.79- `neqsim.process.equipment.separator.GasScrubberDesign` — proposed dedicated gas-scrubber sizing model; candidate NeqSim gap.8081This skill is a public triage layer that decides when to invoke a validated separator-sizing model.8283## Validation Checklist8485- [ ] Gas and liquid densities are positive and `rho_l > rho_g`.86- [ ] K-factors and mass flow are positive.87- [ ] Tests cover sizing without a diameter, an undersized vessel, a demister-overload case, and invalid input.88- [ ] Results are described as educational screening indicators.89- [ ] Real sizing is redirected to validated NeqSim separator classes and qualified review.9091## Common Mistakes9293| Symptom | Cause | Fix |94| --- | --- | --- |95| Velocity utilisation above 1 | Vessel diameter too small | Increase the diameter or reduce throughput |96| Mist eliminator overloaded | Demister K-factor exceeded | Add a larger demister or reduce velocity |97| Utilisation missing | No `vessel_inside_diameter_m` supplied | Use `required_diameter_m` as the size |9899## Limitations100101- No proprietary vessel data, vendor internals data, or company specs are included.102- Inlet-device performance, liquid handling, and settling-section detail are not modelled.103- A single Souders-Brown K-factor is used for the gas-capacity check.104105## References106107- GPSA Engineering Data Book, Section 7, Separators and Filters.108- API Recommended Practice 12J, Specification for Oil and Gas Separators.109- NeqSim repository: https://github.com/equinor/neqsim