Research Article

The Framework Dedicated to Three Phase Flows Wellbore Modelling

Listing 6

Step algorithm.
() P[wellBottom]=BHP
() T[wellBottom]=BHT
() for WellBottom-1 To i=0 [
() GasDensity[i]=Step 4.GassMassFlowRate[i] SG
() OilDensity[i]=Step 4.OilMassFlowRate[i] API
() WaterDensity[i]=Step 4.WaterMassFlowRate[i] WD
() SumGasFlowRate[i]=GasFlowRate[i]+SumGasFlowRate[i+1]
() SumOilFlowRate[i]=OilFlowRate[i]+SumOilFlowRate[i+1]
() SumWaterFlowRate[i]=WaterFlowRate[i]+SumWaterFlowRate[i+1]
() SumLiquidFlowRate[i]=SumOilFlowRate[i]+SumWaterFlowRate[i]
() GOR[i]=GasFlowRate[i]/OilFlowRate[i]
() GasSolubility[i]=correlation.GasSolubility(T[i+1], OilDensity[i], P[i+1], GasDensity[i+1])
() GasCompressibility[i]=correlation.gasCompressibility(T[i+1], GasDensity[i], P[i+1])
() GasFormationVolumeFactor[i]=correlation.GasFormationVolumeFactor(T[i+1], GasCompressibility[i], P[i+1])
() OilFormationVolumeFactor[i]=correlation.OilFormationVolumeFactor(T[i+1], OilDensity[i], GOR[i], GasDensity[i])
() WaterFormationVolumeFactor[i]=correlation.WaterFormationVolumeFactor(T[i+1], P[i+1])
() EarthThermalDiffusivity[i]=correlation.EarthThermalDiffusivity(T[i+1])
() SumGasFlowRate[i] =GasFormationVolumeFactor[i]
() SumOilFlowRate[i] =OilFormationVolumeFactor[i]
() SumWaterFlowRate[i] =WaterFormationVolumeFactor[i]
() SumLiquidFlowRate[i]=SumOilFlowRate[i]+SumWaterFlowRate[i]
() if (GasSolubility[i] < GOR[i])
FreeGasFlowRate[i]=GasFlowRate[i](GasSolubility[i] OilFlowRate[i])
else FreeGasFlowRate[i]=0
() GasInSolutionFlowRates[i]=Step 4.GasFlowRate[i]FreeGasFlowRate[i]
() BubblePointPressure[i]=correlation.BubblePointPressure(T[i], SepT, OilDensity[i], GasDensity[i], SepP, GOR[i])
() GasViscosity[i]=correlation.GasViscosity(T[i+1], GasDensity[i])
() DeadOilViscosity[i]=correlation.DeadOilViscosity(T[i+1], OilDesnity[i])
() SaturatedOilViscosity[i]=correlation.SaturatedOilViscosity(GasSolubility[i], DeadOilViscosity[i])
() UnderSaturatedOilViscosity[i]=correlation.UnderSaturatedOilViscosity(P[i+1], BubblePointPressure[i],
SaturatedOilViscosity[i]
() OilViscosity[i]=correlation.OilViscosity(DeadOilViscosity[i], SaturatedOilViscosity[i], UnderSaturatedOilViscosity[i],
P[i+1], BubblePointPressure[i])
() WaterViscosity[i]=correlation.WaterViscosity(WaterDensity[i], T[i+1])
() OilHeatCapacity[i]=correlation.OilHeatCapacity(OilDensity[i], T[i+1])
() WaterHeatCapacity[i]=correlation.WaterHeatCapacity(T[i+1], WaterDensity[i])
() GasHeatCapacity[i]=correlation.GasHeatCapacity(T[i+1], GasDensity[i])
() LiquidViscosity[i]=(Step 4.OilMassFlowRate[i] Step 5.OilViscosity[i]+
Step 4.WaterMassFlowRate[i] Step 5.WaterViscosity[i])/(Step 4.OilMassFlowRate[i]+Step 4.WaterMassFlowRate[i])
() MixtureViscosity[i]=(Step 4.OilMassFlowRate[i] Step 5.OilViscosity[i]+
Step 4.WaterMassFlowRate[i] Step 5.WaterViscosity[i]+Step 4.GasMassFlowRate[i]
Step 5.GasViscosity[i])/(Step 4.OilMassFlowRate[i]+Step 4.WaterMassFlowRate[i]+Step 4.GasMassFlowRate[i])
() LiquidHeatCapacity[i]=(Step 4.OilMassFlowRate[i] Step 5.OilHeatCapacity[i]+Step 4.WaterMassFlowRate[i]
Step 5.WaterHeatCapacity[i])/(Step 4.OilMassFlowRate[i]+Step 4.WaterMassFlowRate[i])
() MixtureHeatCapacity[i]=(Step 4.OilMassFlowRate[i] Step 5.OilHeatCapacity[i]+
Step 4.WaterMassFlowRate[i] Step 5.WaterHeatCapacity[i]
+Step 4.GasMassFlowRate[i] Step 5.GasHeatCapacity[i])/(Step 4.OilMassFlowRate[i]
+Step 4.WaterMassFlowRate[i]+Step 4.GasMassFlowRate[i])
() LiquidDensity[i]=(Step 4.OilMassFlowRate[i] OilDensity[i]+Step 4.WaterMassFlowRate[i]
WaterDensity[i])/(Step 4.OilMassFlowRate[i]+Step 4.WaterMassFlowRate[i])
() MixtureDensity[i]=(Step 4.OilMassFlowRate[i] OilDensity[i]+Step 4.WaterMassFlowRate[i]
WaterDensity+Step 4.GasMassFlowRate[i] GasDensity[i])/(Step 4.OilMassFlowRate[i]
+Step 4.WaterMassFlowRate[i]+Step 4.GasMassFlowRate[i])
() SumGasMassFlowRate[i]+=Step 4.GasMassFlowRate[i]+SumGasMassFlowRate[i+1]
() SumOilMassFlowRate[i]+=Step 4.OilMassFlowRate[i]+SumOilMassFlowRate[i+1]
() SumWaterMassFlowRate[i]+=Step 4.WaterMassFlowRate[i]+SumWaterMassFlowRate[i+1]
() MixtureMassFlowRate[i]=SumGasMassFlowRate[i]+SumOilMassFlowRate[i]+SumWaterMassFlowRate[i]
() T[i]=correlation.Temperature(…)
() SurfaceTension[i]=correlation.SurfaceTension(T[i], P[i+1])
() P[i]=correlation.Pressure(…)
]
return new objectStep 5(accumulatedGasMassFlowRate, accumulatedOilMassFlowRate, accumulatedWaterMassFlowRate, gasD,
oilD, watD, gasSolubility, gor, gasCompressibility, GFVF, OFVF, WFVF, bubblePoint, gasViscosity, oilViscosity, liquidViscosity,
mixtureViscosity, waterViscosity, oilHeatCapacity,  waterHeatCapacity, gasHeatCapacity,  T, SurfaceTension, P);