Class CO2InjectionWellAnalyzer
java.lang.Object
neqsim.process.equipment.pipeline.CO2InjectionWellAnalyzer
High-level safety analysis module for CO2 injection wells. Combines steady-state wellbore flow
simulation, phase boundary analysis, impurity enrichment mapping, shutdown assessment, choke JT
analysis, and depressurization timeline into a single analysis tool.
This analyzer integrates multiple NeqSim capabilities:
PipeBeggsAndBrillsfor steady-state wellbore pressure and temperature profilesCO2FlowCorrectionsfor CO2-specific flow corrections- TP flash calculations for phase boundary and impurity enrichment mapping
ThrottlingValvefor choke JT analysisTransientWellborefor shutdown cooling simulation
Usage example:
CO2InjectionWellAnalyzer analyzer = new CO2InjectionWellAnalyzer("SmeaheiaWell");
analyzer.setFluid(co2Fluid);
analyzer.setWellGeometry(1300.0, 0.1571, 4.5e-5);
analyzer.setOperatingConditions(90.0, 25.0, 150000.0);
analyzer.setFormationTemperature(4.0, 43.0);
analyzer.runFullAnalysis();
Map<String, Object> results = analyzer.getResults();
boolean safe = analyzer.isSafeToOperate();
- Version:
- 1.0
- Author:
- neqsim
-
Field Summary
FieldsModifier and TypeFieldDescriptionAlarm thresholds for tracked components (mole fraction in gas phase).private booleanWhether the analysis has been run.private doubleDesign mass flow rate in kg/hr.private SystemInterfaceThe injection fluid (will be cloned for each analysis).private doubleFormation temperature at bottom-hole in Celsius.private doubleFormation temperature at wellhead in Celsius.private final StringWell name/tag.Results from the full analysis.private doublePipe roughness in meters.Components to track for impurity enrichment.private doubleTubing inner diameter in meters.private doubleWell depth in meters.private doubleWellhead pressure in bara.private doubleWellhead temperature in Celsius. -
Constructor Summary
ConstructorsConstructorDescriptionConstructor for CO2InjectionWellAnalyzer. -
Method Summary
Modifier and TypeMethodDescriptionvoidaddTrackedComponent(String componentName, double alarmMolFrac) Adds a component to track for impurity enrichment analysis.Determines the safe operating envelope: minimum WHP to avoid two-phase conditions.getName()Gets the analyzer name.Gets all analysis results.booleanWhether the analysis has been completed.booleanWhether the well is safe to operate (no alarms exceeded at design conditions).Runs the steady-state design case using PipeBeggsAndBrills.Maps impurity enrichment across the two-phase region for all tracked components.voidRuns the full analysis: steady-state, phase boundary scan, enrichment map, and shutdown assessment.Scans the P-T space to identify two-phase conditions.Assesses the wellbore safety after shutdown at various trapped pressures.voidsetFluid(SystemInterface fluid) Sets the injection fluid.voidsetFormationTemperature(double topTempC, double bottomTempC) Sets the formation (geothermal) temperature at the wellhead and bottom-hole.voidsetOperatingConditions(double pressureBara, double temperatureC, double flowRateKgPerHr) Sets the operating conditions at the wellhead.voidsetWellGeometry(double depthMeters, double tubingIDMeters, double roughnessMeters) Sets the well geometry parameters.
-
Field Details
-
name
Well name/tag. -
fluid
The injection fluid (will be cloned for each analysis). -
wellDepth
private double wellDepthWell depth in meters. -
tubingID
private double tubingIDTubing inner diameter in meters. -
roughness
private double roughnessPipe roughness in meters. -
wellheadPressure
private double wellheadPressureWellhead pressure in bara. -
wellheadTemperatureC
private double wellheadTemperatureCWellhead temperature in Celsius. -
designFlowRate
private double designFlowRateDesign mass flow rate in kg/hr. -
formationTempTopC
private double formationTempTopCFormation temperature at wellhead in Celsius. -
formationTempBottomC
private double formationTempBottomCFormation temperature at bottom-hole in Celsius. -
trackedComponents
-
alarmThresholds
-
results
-
analysisComplete
private boolean analysisCompleteWhether the analysis has been run.
-
-
Constructor Details
-
CO2InjectionWellAnalyzer
Constructor for CO2InjectionWellAnalyzer.- Parameters:
name- the analyzer name/tag
-
-
Method Details
-
setFluid
Sets the injection fluid.- Parameters:
fluid- the thermodynamic system representing the injection fluid
-
setWellGeometry
public void setWellGeometry(double depthMeters, double tubingIDMeters, double roughnessMeters) Sets the well geometry parameters.- Parameters:
depthMeters- the well measured depth in meterstubingIDMeters- the tubing inner diameter in metersroughnessMeters- the pipe roughness in meters
-
setOperatingConditions
public void setOperatingConditions(double pressureBara, double temperatureC, double flowRateKgPerHr) Sets the operating conditions at the wellhead.- Parameters:
pressureBara- wellhead pressure in baratemperatureC- wellhead temperature in CelsiusflowRateKgPerHr- design mass flow rate in kg/hr
-
setFormationTemperature
public void setFormationTemperature(double topTempC, double bottomTempC) Sets the formation (geothermal) temperature at the wellhead and bottom-hole.- Parameters:
topTempC- formation temperature at wellhead in CelsiusbottomTempC- formation temperature at bottom-hole in Celsius
-
addTrackedComponent
Adds a component to track for impurity enrichment analysis.- Parameters:
componentName- the component name (e.g., "hydrogen")alarmMolFrac- the gas phase mole fraction alarm threshold (e.g., 0.04 for 4%)
-
runFullAnalysis
public void runFullAnalysis()Runs the full analysis: steady-state, phase boundary scan, enrichment map, and shutdown assessment. -
runDesignCase
-
runPhaseBoundaryScan
-
runEnrichmentMap
-
runShutdownAssessment
-
determineSafeEnvelope
-
isSafeToOperate
public boolean isSafeToOperate()Whether the well is safe to operate (no alarms exceeded at design conditions).- Returns:
- true if design conditions are single-phase and no alarms are exceeded
-
getResults
-
getName
-
isAnalysisComplete
public boolean isAnalysisComplete()Whether the analysis has been completed.- Returns:
- true if runFullAnalysis() has been called
-