Example #1
0
def producers_icv_binary(sim_folder, well):
    from config import settings as sett
    from assembly.scripts.producer_dual_icv import producer_dual_icv
    producer_dual_icv(
        well.name, well.group, well.operate, well.monitor, well.geometry,
        well.perf_ff, well.perf_table, well.time_open, well.time_on,
        well.layerclump, well.icv_operation, well.icv_control_law,
        sett.LOCAL_ROOT / sett.SIMS_FOLDER / sim_folder / 'wells')
Example #2
0
def producers(sim_folder, prod):
    from config import settings as sett
    from assembly.scripts.producer_dual_icv import producer_dual_icv
    producer_dual_icv(
        prod.name,
        prod.group,
        prod.operate,
        prod.monitor,
        prod.geometry,
        prod.perf_ff,
        prod.perf_table,
        prod.time_open,
        prod.time_on,
        prod.layerclump,
        []  #prod.icv_operation
        ,
        []  #prod.icv_control_law
        ,
        sett.LOCAL_ROOT / sett.SIMS_FOLDER / sim_folder / 'wells')
Example #3
0
ICV_CONTROL_DIC = {}
ICV_CONTROL_DIC['PR01'] = [(('*ON_CTRLLUMP _LAYER_ *GOR > 250','AND','*ON_CTRLLUMP _LAYER_ *GOR < 500',0.0),('*ON_CTRLLUMP _LAYER_ *WCUT > 0.95',0.0))]*ICV_NR_DIC['PR01']
ICV_CONTROL_DIC['PR02'] = [(('*ON_CTRLLUMP _LAYER_ *GOR > 750','AND','*ON_CTRLLUMP _LAYER_ *GOR < 1250',0.0),('*ON_CTRLLUMP _LAYER_ *WCUT > 0.70',0.0))]*ICV_NR_DIC['PR02']

if __name__ == '__main__':
    from os import sys, path
    sys.path.append(path.dirname(path.dirname(path.abspath(__file__))))

    from assembly.scripts.producer_dual_icv import producer_dual_icv
    from dictionary.scripts.dictionary import Keywords as kw

    cont_repeat = '{} {}'.format(kw.cont(), kw.repeat())

    operate = []
    operate.append((kw.max(), kw.stl(), 3000.0, cont_repeat))
    operate.append((kw.min(), kw.bhp(),  295.0, cont_repeat))

    monitor = []
    monitor.append((kw.wcut(), 0.95, kw.shutin()))

    geometry = (kw.k(),0.108,0.370,1.0,0.0)
    perf = kw.geoa()

    for well in WELL_LST:
        completion = [tuple(line.split()) for line in COMPLETION_DIC[well].strip().splitlines()]

        producer_dual_icv(well, 'PRODUCTION', operate, monitor,
                geometry, perf, completion, OPEN_DIC[well],
                ON_TIME_DIC[well], LAYERCLUMP_DIC[well], ICV_START_DIC[well],
                ICV_CONTROL_DIC[well], './wells/producer_dual_icv')