From d55411db42b37c3d333b0140ff333932660634cc Mon Sep 17 00:00:00 2001 From: Matt Prilliman <54449384+mjprilliman@users.noreply.github.com> Date: Thu, 2 Jan 2025 10:26:03 -0600 Subject: [PATCH] Drilling well counts updates, pump costs updates --- shared/lib_geothermal.cpp | 3 ++- ssc/cmod_geothermal.cpp | 2 +- ssc/cmod_geothermal_costs.cpp | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/shared/lib_geothermal.cpp b/shared/lib_geothermal.cpp index 7b4e9128d..e1dc99538 100644 --- a/shared/lib_geothermal.cpp +++ b/shared/lib_geothermal.cpp @@ -1616,7 +1616,7 @@ double CGeothermalAnalyzer::GetNumberOfWells(void) mo_geo_in.md_ProdWellFriction * pow(mo_geo_in.md_FailedProdFlowRatio, 2) - pressureHydrostaticPSI()); double inj_failed_inj_rate = (mo_geo_in.md_FailedProdFlowRatio > 0) ? (mo_geo_in.md_FailedProdFlowRatio * mo_geo_in.md_ReservoirDeltaPressure) * (mo_geo_in.md_InjWellPressurePSI + geothermal::MetersToFeet(GetResourceDepthM()) * InjectionDensity() / 144.0 + (pressure_well_head) - - mo_geo_in.md_InjWellFriction * pow(mo_geo_in.md_FailedProdFlowRatio, 2) - pressureHydrostaticPSI()) * mo_geo_in.md_FailedProdFlowRatio * mo_geo_in.md_ReservoirDeltaPressure : 0.0; + mo_geo_in.md_InjWellFriction * pow(mo_geo_in.md_FailedProdFlowRatio, 2) - pressureHydrostaticPSI()) : 0.0; double inj_rate_failed_prod_wells = MIN(prod_failed_inj_rate, flowRatePerWell()); //Injectivity of failed production well? double inj_rate_failed_inj_wells = MIN(inj_failed_inj_rate, flowRatePerWell()); double inj_rate_successful_inj_wells = flowRatePerWell() / mo_geo_in.md_RatioInjectionToProduction; @@ -1654,6 +1654,7 @@ double CGeothermalAnalyzer::GetNumberOfWells(void) else { inj_wells_drilled = mp_geo_out->md_NumberOfWellsInj / (mo_geo_in.md_DrillSuccessRate); } + mp_geo_out->md_NumberOfWellsInj = inj_flow / inj_rate_successful_inj_wells - successful_inj_wells_exploration; mp_geo_out->md_NumberOfWellsInjDrilled = inj_wells_drilled; //mp_geo_out->md_NumberOfWellsProdDrilled = mp_geo_out->md_NumberOfWellsProdExp / mo_geo_in.md_DrillSuccessRate; /* diff --git a/ssc/cmod_geothermal.cpp b/ssc/cmod_geothermal.cpp index 30ee25538..2375400d2 100644 --- a/ssc/cmod_geothermal.cpp +++ b/ssc/cmod_geothermal.cpp @@ -400,7 +400,7 @@ class cm_geothermal : public compute_module // assign values for UI results assign("num_wells_getem_output", var_data((ssc_number_t)geo_outputs.md_NumberOfWells)); - assign("num_wells_getem_inj", var_data((ssc_number_t)geo_outputs.md_NumberOfWellsInj)); + assign("num_wells_getem_inj", var_data((ssc_number_t)geo_outputs.md_NumberOfWellsInjDrilled)); assign("plant_brine_eff", var_data((ssc_number_t)geo_outputs.md_PlantBrineEffectiveness)); assign("pump_watthr_per_lb", var_data((ssc_number_t)geo_outputs.md_PumpWorkWattHrPerLb)); assign("pumpwork_prod", var_data((ssc_number_t)geo_outputs.md_pumpwork_prod)); diff --git a/ssc/cmod_geothermal_costs.cpp b/ssc/cmod_geothermal_costs.cpp index 477343012..5b9daa3f6 100644 --- a/ssc/cmod_geothermal_costs.cpp +++ b/ssc/cmod_geothermal_costs.cpp @@ -815,7 +815,7 @@ class cm_geothermal_costs : public compute_module assign("total_gathering_cost", var_data(static_cast(gathering_cost_total))); double indirect_pump_gathering_cost = (total_pump_cost + gathering_cost_total) * (1.0 / (1 - 0.12) - 1); - assign("indirect_pump_gathering_cost", var_data(static_cast(indirect_pump_gathering_cost); + assign("indirect_pump_gathering_cost", var_data(static_cast(indirect_pump_gathering_cost))); //OM Cost calculations /*