def __init__(self, params=None, **kwargs): self.params = params if self.params == None: self.params = SimulationParameters(**kwargs) self.ppi_T_G = readCostTable('PPI_T-G') self.ppi_pump = readCostTable('PPI_Pump') self.ppi_HX = readCostTable('PPI_HX')
def specificCaptitalCost(Q_cooler, Q_condenser, TDC, T_ambient_C, dT_approach_CT, dT_range_CT, cost_year, coolingMode): def processWet(process): if process == 'cooling': return CoolingCondensingTower.computeProcess( 5.58e3, 0., -1.77e1, 1.96e2, T_ambient_C, dT_approach_CT, dT_range_CT) elif process == 'condensing': return CoolingCondensingTower.computeProcess( 4.08e3, -1.54e-2, -1.24e1, 0., T_ambient_C, dT_approach_CT, dT_range_CT) else: raise Exception( 'GenGeo::coolingCondensingTower:UnknownProcess - Unknown Process - use "cooling" or "condensing"' ) def processDry(process): if process == 'cooling': return CoolingCondensingTower.computeProcess( 7.31e3, 0., 0., 1.23e3, T_ambient_C, dT_approach_CT, dT_range_CT) elif process == 'condensing': return CoolingCondensingTower.computeProcess( 1.91e3, 0., 0., 0., T_ambient_C, dT_approach_CT, dT_range_CT) else: raise Exception( 'GenGeo::coolingCondensingTower:UnknownProcess - Unknown Process - use "cooling" or "condensing"' ) if coolingMode == CoolingCondensingTowerMode.Wet: c_cooling = processWet('cooling') c_condensing = processWet('condensing') elif coolingMode == CoolingCondensingTowerMode.Dry: c_cooling = processDry('cooling') c_condensing = processDry('condensing') else: raise Exception( 'GenGeo::coolingCondensingTower:UnknownCoolingMode - Unknown Cooling Mode' ) # c_cooling and c_condensing are both in units of $/kWth if np.isnan(Q_cooler): Q_cooler = 0 if np.isnan(Q_condenser): Q_condenser = 0 # Reference case 1000 kWth (1e6 Wth) Q_Ref_BAC = 1e6 F_cooling = abs(Q_cooler) / (abs(Q_cooler) + abs(Q_condenser)) C_Ref_BAC = readCostTable( 'PPI_PE', cost_year=cost_year) * Q_Ref_BAC * TDC * (F_cooling * (c_cooling / 1e3) + (1 - F_cooling) * (c_condensing / 1e3)) return C_Ref_BAC * (abs(Q_cooler + Q_condenser) / Q_Ref_BAC)**0.8
def dCMonitoringCO2Baseline(N, cost_year, depth, monitoring_well_radius): c_surface_monitoring_CO2 = X_IC_wf * X_PC_wf * readCostTable( 'PPI_O&G-s', cost_year=cost_year) * 138000 * (1 / 1e6) * aCO2AMA(N) c_monitoring_Wells_CO2 = N**2 * CapitalCostWell.waterBaseline( depth=depth, well_radius=monitoring_well_radius, success_rate=1., cost_year=cost_year) return c_monitoring_Wells_CO2 + c_surface_monitoring_CO2
def well(well_length, well_radius, well_type, success_rate, cost_year, dC_well=0.): PPI_O_G = readCostTable('PPI_O&G', cost_year=cost_year) C_well = X_IC_well * X_PC_well * PPI_O_G * ( well_type[0] + well_type[1] * 2 * well_radius * well_length + 275300.) return (C_well + dC_well) / success_rate
def cost(params=None, **kwargs): if params == None: params = SimulationParameters(**kwargs) X_PCs = 1.15 X_ICs = 1.12 if params.wellFieldType == WellFieldType.Doublet: L_surfacePipe = 707 D_surfacePipe = 0.41 elif params.wellFieldType == WellFieldType._5Spot: L_surfacePipe = 3000 D_surfacePipe = 0.41 elif params.wellFieldType == WellFieldType._5Spot_SharedNeighbor: L_surfacePipe = 707 D_surfacePipe = 0.41 elif params.wellFieldType == WellFieldType._5Spot_Many: L_surfacePipe_manyN = { 1: 3000, 2: 12000, 3: 25000, 4: 45000, 5: 69000, 6: 107000, 7: 153000, 8: 223000, 9: 309000, 10: 406000 } D_surfacePipe_manyN = { 1: 0.34, 2: 0.54, 3: 0.65, 4: 0.79, 5: 0.89, 6: 0.98, 7: 1.02, 8: 1.05, 9: 1.09, 10: 1.13 } L_surfacePipe = L_surfacePipe_manyN[params.N_5spot] D_surfacePipe = D_surfacePipe_manyN[params.N_5spot] else: L_surfacePipe = 707 D_surfacePipe = 0.41 c_surfacePipe = 2205. * D_surfacePipe**2 + 134. return X_PCs * X_ICs * readCostTable( 'PPI_Pipe', cost_year=params.cost_year) * c_surfacePipe * L_surfacePipe
def dCPermittingCO2(N, cost_year): return X_IC_wf * X_PC_wf * readCostTable( 'PPI_Permit', cost_year=cost_year) * 45000 * (1 / 1e6) * aCO2AMA(N)
def cPermitting(cost_year): return X_IC_wf * X_PC_wf * readCostTable('PPI_Permit', cost_year=cost_year) * 665700.
def wellCO2(well_length, well_radius, well_type, success_rate, cost_year): PPI_O_G = readCostTable('PPI_O&G', cost_year=cost_year) dC_well = X_IC_well * X_PC_well * PPI_O_G * ( 265. * 2 * well_radius * well_length + 133. * well_length) return well(well_length, well_radius, well_type, success_rate, cost_year, dC_well)
def cModeling(cost_year): return X_IC_expl * X_PC_expl * readCostTable('PPI_O&G-s', cost_year=cost_year) * 508000
def dCModelingCO2(N, cost_year): return X_IC_expl * X_PC_expl * readCostTable( 'PPI_O&G-s', cost_year=cost_year) * 44800 * (1 / 1e6) * aCO2AMA(N)