Class FlowAssuranceScreener
java.lang.Object
neqsim.process.fielddevelopment.screening.FlowAssuranceScreener
Flow assurance screener for rapid envelope-based assessment.
This class provides automated screening of flow assurance risks for field development concepts. It uses NeqSim's thermodynamic engine to calculate phase behavior and identify potential production issues that could impact facility design and operating strategy.
Screening Categories
The screener evaluates the following risk categories:
- Hydrate formation: Uses CPA equation of state for accurate hydrate equilibrium temperature prediction. Critical for subsea tiebacks and cold ambient conditions.
- Wax deposition: Estimates Wax Appearance Temperature (WAT) based on fluid type. Important for waxy crudes in cold environments.
- Asphaltene precipitation: Flags risk based on fluid type and GOR. Particularly relevant near bubble point conditions.
- Corrosion: Evaluates CO2 and H2S content against industry thresholds for material selection (NACE MR0175 compliance).
- Scale formation: Assesses risk based on water cut and water injection mixing.
- Erosion: Flags high-rate wells that may require velocity management.
Result Classification
Each risk category is classified as:
FlowAssuranceResult.PASS: No mitigation requiredFlowAssuranceResult.MARGINAL: Monitoring or simple mitigation recommendedFlowAssuranceResult.FAIL: Active mitigation mandatory
Usage Example
FlowAssuranceScreener screener = new FlowAssuranceScreener();
// Full screening with specific conditions
FlowAssuranceReport report = screener.screen(concept, 4.0, 150.0); // 4°C seabed, 150 bara
// Quick screening with default conditions
FlowAssuranceReport quickReport = screener.quickScreen(concept);
// Check specific risks
if (report.getHydrateResult() == FlowAssuranceResult.FAIL) {
System.out.println("Hydrate mitigation required: " + report.getHydrateMargin() + "°C margin");
report.getMitigationOptions().forEach((k, v) -> System.out.println(" - " + v));
}
Limitations
- Fluid compositions are estimated from fluid type; use actual PVT for detailed design
- WAT calculations are correlation-based; laboratory measurements recommended
- Asphaltene stability requires specialized analysis (e.g., SARA fractionation)
- Version:
- 1.0
- Author:
- ESOL
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final doubleCO2 concentration above which high corrosion risk is flagged (mol%).private static final doubleCO2 concentration above which marginal corrosion risk is flagged (mol%).private static final doubleH2S concentration above which high corrosion/SSC risk is flagged (ppm).private static final doubleH2S concentration above which marginal sour service is required (ppm).private static final doubleTemperature margin below which hydrate risk is classified as MARGINAL (°C).private static final doubleTemperature margin below which hydrate risk is classified as PASS (°C).private static final doubleTemperature margin for WAT below which wax risk is classified as MARGINAL (°C).private static final doubleTemperature margin for WAT above which wax risk is classified as PASS (°C). -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate SystemInterfacecreateRepresentativeFluid(ReservoirInput reservoir, double tempC, double pressureBara) quickScreen(FieldConcept concept) Performs quick screening using estimated fluid properties.screen(FieldConcept concept, double minAmbientTempC, double operatingPressureBara) Performs flow assurance screening for a field concept.private voidscreenAsphalteneRisk(FlowAssuranceReport.Builder builder, ReservoirInput reservoir) private voidscreenCorrosionRisk(FlowAssuranceReport.Builder builder, ReservoirInput reservoir) private voidscreenErosionRisk(FlowAssuranceReport.Builder builder, FieldConcept concept) private voidscreenHydrateRisk(FlowAssuranceReport.Builder builder, SystemInterface fluid, double minTempC, double pressureBara) private voidscreenScalingRisk(FlowAssuranceReport.Builder builder, ReservoirInput reservoir, FieldConcept concept) private voidscreenWaxRisk(FlowAssuranceReport.Builder builder, ReservoirInput reservoir, double minTempC)
-
Field Details
-
HYDRATE_SAFE_MARGIN_C
private static final double HYDRATE_SAFE_MARGIN_CTemperature margin below which hydrate risk is classified as PASS (°C). Operating temperature must be this much above hydrate formation temperature.- See Also:
-
HYDRATE_MARGINAL_MARGIN_C
private static final double HYDRATE_MARGINAL_MARGIN_CTemperature margin below which hydrate risk is classified as MARGINAL (°C). Between this and HYDRATE_SAFE_MARGIN_C requires monitoring.- See Also:
-
WAX_SAFE_MARGIN_C
private static final double WAX_SAFE_MARGIN_CTemperature margin for WAT above which wax risk is classified as PASS (°C). Operating temperature must be this much above wax appearance temperature.- See Also:
-
WAX_MARGINAL_MARGIN_C
private static final double WAX_MARGINAL_MARGIN_CTemperature margin for WAT below which wax risk is classified as MARGINAL (°C). Between this and WAX_SAFE_MARGIN_C requires monitoring.- See Also:
-
CO2_HIGH_CORROSION_PERCENT
private static final double CO2_HIGH_CORROSION_PERCENTCO2 concentration above which high corrosion risk is flagged (mol%). Requires CRA materials or continuous inhibition.- See Also:
-
CO2_MARGINAL_CORROSION_PERCENT
private static final double CO2_MARGINAL_CORROSION_PERCENTCO2 concentration above which marginal corrosion risk is flagged (mol%). Consider corrosion allowance.- See Also:
-
H2S_HIGH_CORROSION_PPM
private static final double H2S_HIGH_CORROSION_PPMH2S concentration above which high corrosion/SSC risk is flagged (ppm). Requires full sour service design per NACE MR0175.- See Also:
-
H2S_MARGINAL_CORROSION_PPM
private static final double H2S_MARGINAL_CORROSION_PPMH2S concentration above which marginal sour service is required (ppm). NACE MR0175 material selection required.- See Also:
-
-
Constructor Details
-
FlowAssuranceScreener
public FlowAssuranceScreener()Creates a new flow assurance screener.The screener is stateless and can be reused for multiple concept evaluations.
-
-
Method Details
-
screen
public FlowAssuranceReport screen(FieldConcept concept, double minAmbientTempC, double operatingPressureBara) Performs flow assurance screening for a field concept.This method creates a representative fluid composition based on the concept's reservoir properties and performs thermodynamic calculations to assess flow assurance risks. The method evaluates all risk categories and returns a comprehensive report.
Thermodynamic Calculations
- Uses SystemSrkCPAstatoil for accurate hydrate calculations when water is present
- Falls back to SystemSrkEos for dry gas systems
- Estimates phase behavior from fluid type classification
- Parameters:
concept- field concept to screen (must have reservoir input)minAmbientTempC- minimum ambient temperature in °C (e.g., seabed temperature for subsea, winter air temperature for topsides)operatingPressureBara- operating pressure in bara (typically wellhead or separator pressure)- Returns:
- comprehensive flow assurance report with all risk assessments
- Throws:
IllegalArgumentException- if concept has no reservoir input
-
quickScreen
Performs quick screening using estimated fluid properties.- Parameters:
concept- field concept- Returns:
- flow assurance report
-
createRepresentativeFluid
private SystemInterface createRepresentativeFluid(ReservoirInput reservoir, double tempC, double pressureBara) -
screenHydrateRisk
private void screenHydrateRisk(FlowAssuranceReport.Builder builder, SystemInterface fluid, double minTempC, double pressureBara) -
screenWaxRisk
private void screenWaxRisk(FlowAssuranceReport.Builder builder, ReservoirInput reservoir, double minTempC) -
screenAsphalteneRisk
-
screenCorrosionRisk
-
screenScalingRisk
private void screenScalingRisk(FlowAssuranceReport.Builder builder, ReservoirInput reservoir, FieldConcept concept) -
screenErosionRisk
-