Class WellMechanicalDesign
- All Implemented Interfaces:
Serializable
Provides casing design, tubing stress analysis, well barrier verification, and cost estimation for subsea wells per applicable standards:
- NORSOK D-010 - Well Integrity in Drilling and Well Operations
- API 5CT - Casing and Tubing
- ISO 11960 - Steel Pipes for Use as Casing or Tubing
- API RP 90 - Annular Casing Pressure Management
- API Bull 5C3 - Formulas and Calculations for Casing and Tubing Properties
Calculation Scope
- Casing Design - Burst, collapse, tension checks per API 5C3
- Tubing Analysis - Stress, burst/collapse, DHSV requirements
- Well Barriers - Primary/secondary barrier verification per NORSOK D-010
- Weight Estimation - Casing, tubing, cement, completion string weights
- Cost Estimation - Drilling, completion, subsea wellhead, logging, contingency
Usage Example
SubseaWell well = new SubseaWell("Producer-1", stream);
well.setWellType(SubseaWell.WellType.OIL_PRODUCER);
well.setMeasuredDepth(3800.0);
well.setWaterDepth(350.0);
well.initMechanicalDesign();
WellMechanicalDesign design = (WellMechanicalDesign) well.getMechanicalDesign();
design.calcDesign();
design.calculateCostEstimate();
System.out.println("Total well cost: $" + design.getTotalCostUSD() / 1e6 + "M");
System.out.println(design.toJson());
- Version:
- 1.0
- Author:
- ESOL
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate intNumber of barrier issues.Barrier verification notes.private WellBarrierSchematicWell barrier schematic for NORSOK D-010 validation.private booleanWell barrier verification result (pass/fail).private WellDesignCalculatorInternal calculator.private doubleCompletion cost in USD.private WellCostEstimatorCost estimator.private WellMechanicalDesignDataSourceStandards-based data source for loading design parameters from CSV.private StringDesign standard code.private doubleDrilling cost in USD.private doubleIntermediate casing required wall thickness in mm.private doubleLogging and testing cost in USD.private doubleMaterial cost (casing, cement, mud) in USD.private doubleProduction casing burst design factor.private doubleProduction casing collapse design factor.private doubleProduction casing tension design factor.private doubleProduction casing VME (triaxial) design factor per NORSOK D-010.private doubleProduction casing required wall thickness in mm.private static final longSerialization version UID.private doubleSurface casing required wall thickness in mm.private doubleTemperature derating factor applied per API 5CT / API TR 5C3.private doubleTotal casing weight in tonnes.private doubleTotal cement volume in m3.private doubleTotal well cost in USD.private doubleTotal drill cuttings volume in m3.private doubleTotal tubing weight in tonnes.private doubleTubing burst design factor.private doubleTubing required wall thickness in mm.private SubseaWellReference to well equipment.private doubleWellhead cost in USD.Fields inherited from class MechanicalDesign
costEstimate, designStandard, innerDiameter, maxDesignCv, maxDesignDuty, maxDesignGassVolumeFlow, maxDesignOilVolumeFlow, maxDesignPower, maxDesignPressureDrop, maxDesignVelocity, maxDesignVolumeFlow, maxDesignWaterVolumeFlow, minDesignDuty, minDesignGassVolumeFLow, minDesignOilFLow, minDesignPower, minDesignVolumeFLow, minDesignWaterVolumeFLow, moduleHeight, moduleLength, moduleWidth, outerDiameter, tantanLength, wallThickness, weightElectroInstrument, weightNozzle, weightPiping, weightStructualSteel, weightVessel, weigthInternals, weigthVesselShell -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate voidBuild default barrier elements from the SubseaWell configuration.voidcalcDesign.voidCalculate cost estimate for the well.Generate bill of materials for the well.Get barrier verification notes.Get the well barrier schematic.Get the well design calculator, creating if needed.doubleGet completion cost in USD.Get cost breakdown.Get the cost estimator, creating if needed.Get the standards data source, creating if needed.Get design standard code.doubleGet drilling cost in USD.doubleGet logging and testing cost in USD.doubleGet material cost in USD.doubleGet production casing burst design factor.doubleGet production casing collapse design factor.doubleGet production casing tension design factor.doubleGet production casing VME (triaxial) design factor per NORSOK D-010.doubleGet production casing wall thickness in mm.doubleGet API 5CT / API TR 5C3 temperature derating factor.doubleGet total casing weight in tonnes.doubleGet total cement volume in m3.doubleGet total well cost in USD.doubleGet total tubing weight in tonnes.doubleGet wellhead cost in USD.booleanCheck if barrier verification passed.voidreadDesignSpecifications.voidsetDesignStandardCode(String designStandardCode) Set design standard code.voidsetRegion(SubseaCostEstimator.Region region) Set region for cost estimation.toJson()Export mechanical design data to JSON format.toMap()Get design results as Map.private voidVerify well barriers per NORSOK D-010 using the barrier schematic model.Methods inherited from class MechanicalDesign
addDesignDataSource, costEstimateToJson, displayResults, equals, getApplicableStandards, getBareModuleCost, getCompanySpecificDesignStandards, getConstrutionMaterial, getCorrosionAllowance, getCostEstimate, getDefaultLiquidDensity, getDefaultLiquidViscosity, getDesignCorrosionAllowance, getDesignDataSources, getDesignJointEfficiency, getDesignLimitData, getDesignMaxPressureLimit, getDesignMaxTemperatureLimit, getDesignMinPressureLimit, getDesignMinTemperatureLimit, getDesignStandard, getDuty, getGrassRootsCost, getHeatTransferArea, getInnerDiameter, getInstallationManHours, getJointEfficiency, getLastMarginResult, getMaterialDesignStandard, getMaterialPipeDesignStandard, getMaxAllowableStress, getMaxDesignCv, getMaxDesignGassVolumeFlow, getMaxDesignOilVolumeFlow, getMaxDesignPressure, getMaxDesignPressureDrop, getMaxDesignVelocity, getMaxDesignVolumeFlow, getMaxDesignWaterVolumeFlow, getMaxOperationPressure, getMaxOperationTemperature, getMinDesignGassVolumeFLow, getMinDesignOilFLow, getMinDesignPressure, getMinDesignVolumeFLow, getMinDesignWaterVolumeFLow, getMinOperationPressure, getMinOperationTemperature, getModuleHeight, getModuleLength, getModuleWidth, getOuterDiameter, getPower, getPressureMarginFactor, getProcessEquipment, getPurchasedEquipmentCost, getRecommendedStandards, getResponse, getTantanLength, getTensileStrength, getTotalModuleCost, getVolumeTotal, getWallThickness, getWeightElectroInstrument, getWeightNozzle, getWeightPiping, getWeightStructualSteel, getWeightTotal, getWeightVessel, getWeigthInternals, getWeigthVesselShell, hasDesignStandard, hashCode, initMechanicalDesign, isHasSetCompanySpecificDesignStandards, setCompanySpecificDesignStandards, setConstrutionMaterial, setCorrosionAllowance, setCostEstimateCepci, setCostEstimateLocationFactor, setCostEstimateMaterial, setDefaultLiquidDensity, setDefaultLiquidViscosity, setDesign, setDesignDataSource, setDesignDataSources, setDesignStandard, setDesignStandard, setDesignStandard, setDesignStandard, setDesignStandards, setHasSetCompanySpecificDesignStandards, setInnerDiameter, setJointEfficiency, setMaterialDesignStandard, setMaterialPipeDesignStandard, setMaxDesignCv, setMaxDesignDuty, setMaxDesignGassVolumeFlow, setMaxDesignOilVolumeFlow, setMaxDesignPower, setMaxDesignPressureDrop, setMaxDesignVelocity, setMaxDesignVolumeFlow, setMaxDesignWaterVolumeFlow, setMaxOperationPressure, setMaxOperationTemperature, setMinDesignDuty, setMinDesignGassVolumeFLow, setMinDesignOilFLow, setMinDesignPower, setMinDesignVolumeFLow, setMinDesignWaterVolumeFLow, setMinOperationPressure, setMinOperationTemperature, setModuleHeight, setModuleLength, setModuleWidth, setOuterDiameter, setPressureMarginFactor, setProcessEquipment, setTantanLength, setTensileStrength, setWallThickness, setWeightElectroInstrument, setWeightNozzle, setWeightPiping, setWeightStructualSteel, setWeightTotal, setWeightVessel, setWeigthInternals, setWeigthVesselShell, toCompactJson, validateOperatingEnvelope, validateOperatingEnvelope
-
Field Details
-
serialVersionUID
private static final long serialVersionUIDSerialization version UID.- See Also:
-
well
Reference to well equipment. -
designStandardCode
Design standard code. -
calculator
Internal calculator. -
costEstimator
Cost estimator. -
dataSource
Standards-based data source for loading design parameters from CSV. -
barrierSchematic
Well barrier schematic for NORSOK D-010 validation. -
productionCasingWallThickness
private double productionCasingWallThicknessProduction casing required wall thickness in mm. -
intermediateCasingWallThickness
private double intermediateCasingWallThicknessIntermediate casing required wall thickness in mm. -
surfaceCasingWallThickness
private double surfaceCasingWallThicknessSurface casing required wall thickness in mm. -
tubingWallThickness
private double tubingWallThicknessTubing required wall thickness in mm. -
productionCasingBurstDF
private double productionCasingBurstDFProduction casing burst design factor. -
productionCasingCollapseDF
private double productionCasingCollapseDFProduction casing collapse design factor. -
productionCasingTensionDF
private double productionCasingTensionDFProduction casing tension design factor. -
tubingBurstDF
private double tubingBurstDFTubing burst design factor. -
productionCasingVME_DF
private double productionCasingVME_DFProduction casing VME (triaxial) design factor per NORSOK D-010. -
temperatureDeratingFactor
private double temperatureDeratingFactorTemperature derating factor applied per API 5CT / API TR 5C3. -
totalCasingWeight
private double totalCasingWeightTotal casing weight in tonnes. -
totalTubingWeight
private double totalTubingWeightTotal tubing weight in tonnes. -
totalCementVolume
private double totalCementVolumeTotal cement volume in m3. -
totalCuttingsVolume
private double totalCuttingsVolumeTotal drill cuttings volume in m3. -
barrierVerificationPassed
private boolean barrierVerificationPassedWell barrier verification result (pass/fail). -
barrierIssueCount
private int barrierIssueCountNumber of barrier issues. -
barrierNotes
-
totalCostUSD
private double totalCostUSDTotal well cost in USD. -
drillingCostUSD
private double drillingCostUSDDrilling cost in USD. -
completionCostUSD
private double completionCostUSDCompletion cost in USD. -
wellheadCostUSD
private double wellheadCostUSDWellhead cost in USD. -
loggingCostUSD
private double loggingCostUSDLogging and testing cost in USD. -
materialCostUSD
private double materialCostUSDMaterial cost (casing, cement, mud) in USD.
-
-
Constructor Details
-
WellMechanicalDesign
Constructor.- Parameters:
equipment- well equipment instance
-
-
Method Details
-
readDesignSpecifications
public void readDesignSpecifications()readDesignSpecifications.
- Overrides:
readDesignSpecificationsin classMechanicalDesign
-
calcDesign
-
verifyWellBarriers
private void verifyWellBarriers()Verify well barriers per NORSOK D-010 using the barrier schematic model.If a
WellBarrierSchematichas been configured (viareadDesignSpecifications()), validation uses the schematic model with element-level checking. Otherwise falls back to the legacy count-based check. -
buildDefaultBarrierElements
private void buildDefaultBarrierElements()Build default barrier elements from the SubseaWell configuration.Populates the primary and secondary envelopes based on the well type and whether DHSV/ISV are present. This provides a default element set when barriers are not explicitly configured.
-
calculateCostEstimate
public void calculateCostEstimate()Calculate cost estimate for the well.- Overrides:
calculateCostEstimatein classMechanicalDesign
-
getCalculator
Get the well design calculator, creating if needed.- Returns:
- the calculator
-
getCostEstimator
Get the cost estimator, creating if needed.- Returns:
- the cost estimator
-
getDataSource
Get the standards data source, creating if needed.- Returns:
- the data source
-
getBarrierSchematic
Get the well barrier schematic.- Returns:
- barrier schematic, or null if not yet configured
-
getCostBreakdown
-
generateBillOfMaterials
Generate bill of materials for the well.- Overrides:
generateBillOfMaterialsin classMechanicalDesign- Returns:
- list of BOM items
-
toMap
-
toJson
Export mechanical design data to JSON format.This method creates a
MechanicalDesignResponseobject and serializes it to JSON using Gson. The JSON includes equipment identification, weight breakdown, design conditions, dimensions, and materials information.Usage example:
MechanicalDesign mecDesign = separator.getMechanicalDesign(); mecDesign.calcDesign(); String json = mecDesign.toJson();- Overrides:
toJsonin classMechanicalDesign- Returns:
- JSON string representation of the mechanical design
-
getDesignStandardCode
-
setDesignStandardCode
Set design standard code.- Parameters:
designStandardCode- design standard code
-
getTotalCostUSD
public double getTotalCostUSD()Get total well cost in USD.- Returns:
- total cost
-
getDrillingCostUSD
public double getDrillingCostUSD()Get drilling cost in USD.- Returns:
- drilling cost
-
getCompletionCostUSD
public double getCompletionCostUSD()Get completion cost in USD.- Returns:
- completion cost
-
getWellheadCostUSD
public double getWellheadCostUSD()Get wellhead cost in USD.- Returns:
- wellhead cost
-
getLoggingCostUSD
public double getLoggingCostUSD()Get logging and testing cost in USD.- Returns:
- logging cost
-
getMaterialCostUSD
public double getMaterialCostUSD()Get material cost in USD.- Returns:
- material cost
-
getProductionCasingWallThickness
public double getProductionCasingWallThickness()Get production casing wall thickness in mm.- Returns:
- wall thickness
-
getTotalCasingWeight
public double getTotalCasingWeight()Get total casing weight in tonnes.- Returns:
- casing weight
-
getTotalTubingWeight
public double getTotalTubingWeight()Get total tubing weight in tonnes.- Returns:
- tubing weight
-
getTotalCementVolume
public double getTotalCementVolume()Get total cement volume in m3.- Returns:
- cement volume
-
isBarrierVerificationPassed
public boolean isBarrierVerificationPassed()Check if barrier verification passed.- Returns:
- true if passed
-
getBarrierNotes
-
setRegion
Set region for cost estimation.- Parameters:
region- cost region
-
getProductionCasingBurstDF
public double getProductionCasingBurstDF()Get production casing burst design factor.- Returns:
- burst design factor
-
getProductionCasingCollapseDF
public double getProductionCasingCollapseDF()Get production casing collapse design factor.- Returns:
- collapse design factor
-
getProductionCasingTensionDF
public double getProductionCasingTensionDF()Get production casing tension design factor.- Returns:
- tension design factor
-
getProductionCasingVME_DF
public double getProductionCasingVME_DF()Get production casing VME (triaxial) design factor per NORSOK D-010.Must be >= 1.25 per NORSOK D-010 Table 18.
- Returns:
- VME design factor
-
getTemperatureDeratingFactor
public double getTemperatureDeratingFactor()Get API 5CT / API TR 5C3 temperature derating factor.Factor of 1.0 means no derating (temperature <= 100 degC). Lower values indicate SMYS reduction at elevated temperatures.
- Returns:
- derating factor (0 to 1)
-