コード例 #1
0
 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')
コード例 #2
0
    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
コード例 #3
0
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
コード例 #4
0
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
コード例 #5
0
    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
コード例 #6
0
def dCPermittingCO2(N, cost_year):
    return X_IC_wf * X_PC_wf * readCostTable(
        'PPI_Permit', cost_year=cost_year) * 45000 * (1 / 1e6) * aCO2AMA(N)
コード例 #7
0
def cPermitting(cost_year):
    return X_IC_wf * X_PC_wf * readCostTable('PPI_Permit',
                                             cost_year=cost_year) * 665700.
コード例 #8
0
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)
コード例 #9
0
def cModeling(cost_year):
    return X_IC_expl * X_PC_expl * readCostTable('PPI_O&G-s',
                                                 cost_year=cost_year) * 508000
コード例 #10
0
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)