diff --git a/docs/_sources/introduction.rst.txt b/docs/_sources/introduction.rst.txt index 3388bdb..3768ab3 100644 --- a/docs/_sources/introduction.rst.txt +++ b/docs/_sources/introduction.rst.txt @@ -41,8 +41,9 @@ where -z Vector of z-coarsening, see the description for -x ('' by default). -a Use `min`, `max`, or `mode` to scale the actnum, e.g., min makes the new coarser cell inactive if at least one cell is inactive, while max makes it active it at least one cell is active (`mode` by default). -n Use `min`, `max`, or `mode` to scale endnum, eqlnum, fipnum, fluxnum, imbnum, miscnum, multnum, pvtnum, rocknum, and satnum (`mode` by default). --s Use `min`, `max`, or `mean` to scale permx, permy, permz, poro, swatinit, and all mult(-)xyz ('' by default, i.e., using the arithmetic average for permx/permy, harmonic average for permz, and the mean for the rest). +-s Use `min`, `max`, or `mean` to scale permx, permy, permz, poro, swatinit, and all mult(-)xyz ('' by default, i.e., using the arithmetic average for permx/permy, harmonic average for permz, mean for mult(-)xyz, and the pore volume weighted mean for the rest). -p Add the removed pore volume to the closest coarser cells (`0` by default, `1` to enable). +-r Remove CONFACT and KH from COMPDAT (`1`) and also remove PEQVR (`2`) (ITEM 13, the last entry) to compute the well transmisibility connections internally in OPM Flow using the grid properties (`2` by default; `0` to not remove). -j Tuning parameter to avoid creation of neighbouring connections in the coarser model where there are discontinuities between cells along the z direction, e.g., around faults ('' by default, i.e., nothing corrected; if need it, try with values of the order of 1). -m Execute a dry run on the input deck to generate the static properties ('prep'), generate only the coarse files ('deck'), only exectute a dry run on the generated coarse model ('dry'), 'prep_deck', 'deck_dry', or do all ('all') (`prep_deck` by default). -w Name of the generated deck ('' by default, i.e., the name of the input deck plus _PYCOPM.DATA). diff --git a/docs/introduction.html b/docs/introduction.html index b3059f3..0fb442d 100644 --- a/docs/introduction.html +++ b/docs/introduction.html @@ -139,11 +139,14 @@

Roadmap

Use min, max, or mode to scale endnum, eqlnum, fipnum, fluxnum, imbnum, miscnum, multnum, pvtnum, rocknum, and satnum (mode by default).

-s
-

Use min, max, or mean to scale permx, permy, permz, poro, swatinit, and all mult(-)xyz (’’ by default, i.e., using the arithmetic average for permx/permy, harmonic average for permz, and the mean for the rest).

+

Use min, max, or mean to scale permx, permy, permz, poro, swatinit, and all mult(-)xyz (’’ by default, i.e., using the arithmetic average for permx/permy, harmonic average for permz, mean for mult(-)xyz, and the pore volume weighted mean for the rest).

-p

Add the removed pore volume to the closest coarser cells (0 by default, 1 to enable).

+
-r
+

Remove CONFACT and KH from COMPDAT (1) and also remove PEQVR (2) (ITEM 13, the last entry) to compute the well transmisibility connections internally in OPM Flow using the grid properties (2 by default; 0 to not remove).

+
-j

Tuning parameter to avoid creation of neighbouring connections in the coarser model where there are discontinuities between cells along the z direction, e.g., around faults (’’ by default, i.e., nothing corrected; if need it, try with values of the order of 1).

diff --git a/docs/searchindex.js b/docs/searchindex.js index 3b67ad4..f6c7193 100644 --- a/docs/searchindex.js +++ b/docs/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["about", "api", "configuration_file", "examples", "index", "installation", "introduction", "modules", "output_folder", "pycopm", "pycopm.core", "pycopm.core.pycopm", "pycopm.utils", "pycopm.utils.files_writer", "pycopm.utils.generate_coarser_files", "pycopm.utils.grid_builder", "pycopm.utils.input_values", "pycopm.utils.properties_builder", "pycopm.utils.runs_executer", "related"], "filenames": ["about.rst", "api.rst", "configuration_file.rst", "examples.rst", "index.rst", "installation.rst", "introduction.rst", "modules.rst", "output_folder.rst", "pycopm.rst", "pycopm.core.rst", "pycopm.core.pycopm.rst", "pycopm.utils.rst", "pycopm.utils.files_writer.rst", "pycopm.utils.generate_coarser_files.rst", "pycopm.utils.grid_builder.rst", "pycopm.utils.input_values.rst", "pycopm.utils.properties_builder.rst", "pycopm.utils.runs_executer.rst", "related.rst"], "titles": ["About pycopm", "pycopm Python API", "Configuration file", "Examples", "Welcome to pycopm\u2019s documentation!", "Installation", "Introduction", "pycopm", "Output folder", "pycopm package", "pycopm.core package", "pycopm.core.pycopm module", "pycopm.utils package", "pycopm.utils.files_writer module", "pycopm.utils.generate_coarser_files module", "pycopm.utils.grid_builder module", "pycopm.utils.input_values module", "pycopm.utils.properties_builder module", "pycopm.utils.runs_executer module", "Related"], "terms": {"tool": [0, 3, 5, 6, 8, 19], "coarsen": [0, 1, 2, 3, 6], "opm": [0, 1, 2, 4, 6, 13, 16, 18, 19], "flow": [0, 1, 2, 4, 6, 13, 18, 19], "geolog": [0, 2, 3, 6, 8], "model": [0, 2, 3, 6, 8, 19], "i": [0, 1, 2, 3, 6, 8, 14, 15], "being": 0, "fund": 0, "center": [0, 14], "sustain": 0, "subsurfac": 0, "resourc": [0, 19], "cssr": [0, 3, 5, 6], "project": [0, 5, 19], "331841": 0, "thi": [0, 2, 3, 5, 6, 8], "work": [0, 6], "progress": 0, "contribut": [0, 5], "ar": [0, 1, 2, 3, 5, 6, 8, 19], "more": 0, "than": 0, "welcom": 0, "us": [0, 1, 2, 3, 5, 6, 8, 17, 19], "fork": 0, "pull": 0, "request": 0, "approach": [0, 2], "The": [1, 2, 3, 6, 8], "main": [1, 2, 3, 9, 10, 11, 14], "script": [1, 5, 11], "execut": [1, 2, 3, 5, 6, 8, 11, 18], "locat": [1, 8], "core": [1, 5, 7, 9], "folder": [1, 3, 4, 5, 6], "differ": [1, 2], "job": 1, "call": [1, 2, 8, 14], "ert": [1, 2, 3, 6, 8, 13, 16, 18], "reference_simul": 1, "contain": [1, 3], "gener": [1, 2, 3, 6, 8, 14, 15, 17, 18, 19], "file": [1, 4, 5, 6, 13, 14, 16, 18], "after": [1, 2, 3, 5, 8], "run": [1, 2, 3, 5, 6, 8, 13, 18], "norn": [1, 2, 4, 6, 8], "drogon": [1, 2, 4, 6, 8], "case": [1, 3], "test": [1, 2, 3, 5, 6], "template_script": 1, "mako": [1, 13], "base": [1, 6, 19], "from": [1, 2, 3, 5, 14, 15, 16, 19], "origin": [1, 3], "deck": [1, 2, 4, 6, 13, 14, 17], "final": [1, 2], "util": [1, 7, 9], "function": [1, 2, 3, 11, 13, 15, 16, 17, 18], "framework": [1, 6, 19], "pyocpm": 1, "packag": [1, 4, 7], "subpackag": [1, 4, 7], "submodul": [1, 7, 9], "modul": [1, 4, 5, 7, 19], "content": [1, 3, 4, 7], "allow": [2, 6], "set": [2, 3, 6, 8, 16], "integr": 2, "studi": [2, 3, 6, 8, 18, 19], "histori": [2, 6, 8], "match": [2, 6, 8], "onli": [2, 3, 5, 6, 8, 14], "To": [2, 3, 5], "pycopm": [2, 3, 5, 6, 8], "ani": 2, "given": [2, 3, 6], "coarser": [2, 3, 6, 8, 14, 17], "can": [2, 3, 5, 8], "achiev": [2, 3, 5], "without": [2, 8], "paramet": [2, 3, 6, 16, 17], "via": [2, 4, 6], "command": [2, 5], "line": [2, 3, 5, 16], "see": [2, 5, 6, 8], "overview": [2, 4], "h": 2, "definit": [2, 3], "argument": [2, 6, 11, 14], "option": [2, 6, 11], "well": [2, 14, 19], "exampl": [2, 4, 8], "here": [2, 3], "we": [2, 3, 8, 14], "an": [2, 4, 5, 19], "one": [2, 3, 6, 8, 14], "txt": [2, 3, 5, 6], "first": [2, 3, 16], "input": [2, 3, 4, 6, 14, 16, 17], "full": [2, 6, 8], "path": [2, 3, 6, 8], "If": [2, 5], "your": [2, 6, 8], "write": [2, 13, 14, 17], "e": [2, 3, 5, 6, 8], "g": [2, 3, 5, 6, 8], "user": [2, 5], "dmar": 2, "github": [2, 3, 5, 6], "build": [2, 4], "simul": [2, 3, 5, 8, 9, 12, 16, 18, 19], "bin": [2, 5], "follow": [2, 3, 5, 6, 8], "delet": 2, "suffix": 2, "save": [2, 3, 6], "storag": [2, 19], "egrid": 2, "dbg": 2, "grdecl": 2, "unrst": 2, "unsmri": 2, "prt": 2, "inc": [2, 6, 16], "infostep": 2, "smspec": 2, "init": [2, 3], "you": [2, 3, 5, 8], "type": [2, 19], "each": [2, 6], "realiz": 2, "complet": 2, "order": [2, 3, 6], "memori": 2, "number": [2, 3, 16], "jump": [2, 3, 14], "2": [2, 3, 6], "4": [2, 3], "sinc": [2, 3], "implement": [2, 3, 6], "white": 2, "space": 2, "between": [2, 3, 6], "block": [2, 17], "need": [2, 3, 5, 6, 8], "next": 2, "entri": 2, "defin": [2, 3, 17], "singl": 2, "0": [2, 3, 5, 6], "1": [2, 3, 5, 6], "vector": [2, 6], "x": [2, 3, 6], "coers": 2, "y": [2, 3, 6], "z": [2, 3, 6, 14, 17], "ensembl": [2, 6], "maximum": [2, 3], "parallel": 2, "mpi": [2, 5], "process": [2, 14, 16], "600": 2, "runtim": 2, "second": 2, "A": [2, 19], "valu": [2, 3, 6, 16], "mean": [2, 6], "unlimit": 2, "minimum": 2, "must": [2, 3], "have": [2, 14], "succeed": 2, "regard": 2, "success": 2, "7": 2, "specif": 2, "seed": 2, "reproduc": 2, "observations_train": 2, "name": [2, 6, 16], "observ": 2, "hm": [2, 3], "observations_test": 2, "observations_complet": 2, "select": [2, 8, 18], "which": [2, 3, 5], "default": [2, 3, 6, 8], "let": [2, 13], "sat": 2, "For": [2, 3, 5, 8], "satnum": [2, 6], "comput": 2, "sandv": 2, "et": 2, "al": 2, "2022": 2, "cell": [2, 3, 6, 14, 15, 16, 17], "correct": [2, 6, 8, 17], "lost": [2, 17], "pv": 2, "boundari": [2, 17], "account": 2, "poros": [2, 3], "all": [2, 3, 6, 8, 14, 17], "initi": [2, 6, 16, 17], "equil": 2, "fine": 2, "scale": [2, 6], "error": [2, 3, 8], "wwpr": 2, "wopr": 2, "wgpr": 2, "100": 2, "100000": 2, "2005": 2, "03": 2, "01": [2, 3], "last": [2, 16], "date": 2, "do": [2, 5, 6], "remov": [2, 3, 6, 14, 17], "current": [2, 3, 5, 6, 8, 14, 18], "read": [2, 3, 6, 16], "result": [2, 8], "inform": 2, "shown": 2, "termin": [2, 3, 5, 6], "instead": 2, "same": [2, 3, 8, 14, 17], "discuss": 2, "later": 2, "three": 2, "pillar": [2, 14], "direct": [2, 3, 6, 17], "respect": 2, "j": [2, 3, 6, 14, 15], "k": [2, 3, 6, 14, 15], "index": [2, 4, 14, 15, 17], "standard": 2, "data": [2, 3, 6], "pilar": [2, 3, 6, 17], "keep": [2, 3, 6, 14], "honor": 2, "shape": 2, "Then": [2, 3, 8], "provid": 2, "chang": 2, "": [2, 3, 6, 14], "add": [2, 3, 6, 14], "back": 2, "remain": 2, "mpirun": 2, "avail": [2, 5, 6], "stop": 2, "time": [2, 3, 18], "random": 2, "satur": [2, 3, 13, 16], "consid": 2, "region": [2, 3, 14], "ntg": [2, 3], "poro": [2, 3, 6], "properti": [2, 3, 6, 13, 14, 17], "modifi": [2, 5, 13, 14, 15, 16, 17, 18], "activ": [2, 3, 5, 6, 14, 17], "gui": 2, "test_run": 2, "ensemble_experi": 2, "ensemble_smooth": 2, "iterative_ensemble_smooth": 2, "es_mda": 2, "weight": 2, "flag": [2, 3, 6, 14, 16], "support": [2, 5, 6, 14], "confer": 2, "document": [2, 6], "descript": [2, 6], "enabl": [2, 6], "rst": 2, "true": 2, "newton": 2, "min": [2, 3, 6], "iter": 2, "dist": 2, "distpara": 2, "lw": 2, "3": [2, 3, 5, 6], "uniform": 2, "5": [2, 3], "ew": 2, "tw": 2, "lo": 2, "eo": 2, "lg": 2, "eg": 2, "tg": 2, "log": 2, "eog": 2, "tog": 2, "lmlto": 2, "emlto": 2, "9": [2, 5], "tmlto": 2, "lmltg": 2, "emltg": 2, "tmltg": 2, "permeabl": 2, "rock": 2, "coars": [2, 3, 6, 8, 14, 15, 17], "max": [2, 3, 6], "permx": [2, 3, 6], "permi": [2, 3, 6], "permz": [2, 3, 6], "distribut": [2, 14, 17], "interv": 2, "perm_min": 2, "perm_max": 2, "correspond": [2, 6, 14], "perform": [3, 6], "insid": [3, 5], "o": [3, 6, 8, 14], "drogon_coars": 3, "norne_coars": 3, "gif": [3, 19], "introduct": [3, 4, 8], "wa": [3, 6, 8], "develop": [3, 6, 8], "focus": [3, 6], "creat": [3, 5, 6, 8, 14], "hello_world": 3, "c": [3, 6], "m": [3, 5, 6], "would": [3, 6, 8], "dry": [3, 6], "clone": [3, 5], "left": [3, 8], "right": [3, 8, 14], "ad": [3, 4, 6], "p": [3, 6], "pore": [3, 6, 14, 17], "volum": [3, 6, 14, 17], "neighbour": [3, 6, 14], "make": [3, 5, 6, 14], "where": [3, 6], "mode": [3, 6], "n": [3, 6, 14], "integ": [3, 14], "By": 3, "download": 3, "spe10_model2": 3, "8": 3, "statoil_feasibility_sim_model_with_depletion_kross_inj_sector_20": 3, "made": 3, "inact": [3, 6], "least": [3, 5, 6, 14], "our": 3, "plopm": [3, 4], "friend": 3, "png": [3, 19], "figur": [3, 8], "statoil_feasibility_sim_model_with_depletion_kross_inj_sector_20_prep_pycopm_dryrun": 3, "statoil_feasibility_sim_model_with_depletion_kross_inj_sector_20_pycopm": 3, "v": 3, "subfig": 3, "t": 3, "xunit": 3, "km": 3, "xformat": 3, "0f": 3, "yunit": 3, "yformat": 3, "d": 3, "suptitl": 3, "cet_rainbow_bgyrm_35_85_c69": 3, "cbsfax": 3, "30": 3, "02": 3, "cformat": 3, "2f": 3, "top": [3, 14], "view": [3, 14], "note": 3, "also": [3, 5, 14], "instal": [3, 4], "pip": [3, 5], "git": [3, 5], "http": [3, 5, 6], "com": [3, 5, 6], "In": [3, 5, 6], "handl": [3, 14], "requir": [3, 5, 14, 16, 17], "indic": [3, 6, 14], "fault": [3, 6, 14, 15], "wellspec": 3, "assum": 3, "includ": [3, 5, 8], "replac": 3, "those": 3, "actual": 3, "abov": 3, "drogon_hist": 3, "l127": 3, "128": 3, "schedul": 3, "l242": 3, "243": 3, "l": [3, 6], "c1": 3, "drogon_hist_pycopm": 3, "c2": 3, "total": 3, "conserv": 3, "reduc": 3, "31": 3, "11": 3, "trial": 3, "avoid": [3, 6], "connect": [3, 6], "across": 3, "lot": 3, "divid": 3, "conquer": 3, "apporach": 3, "recommend": [3, 8], "directon": 3, "addit": [3, 5], "label": 3, "differenti": 3, "miss": 3, "grid": [3, 5, 6, 13, 14, 15, 17], "section": [3, 14], "relat": [3, 4, 13], "oper": [3, 14], "multregt": 3, "describ": [3, 6, 8], "previou": [3, 5], "certain": 3, "featur": 3, "norne_atw2013": 3, "concept": 4, "roadmap": 4, "python": [4, 19], "sourc": [4, 19], "linux": 4, "window": 4, "maco": 4, "configur": [4, 6], "hello": 4, "world": 4, "spe10": [4, 8], "smeaheia": 4, "api": 4, "output": [3, 4, 6, 16], "pyopmspe11": 4, "pyopmnearwel": 4, "exprecc": 4, "micp": 4, "pymm": 4, "about": 4, "search": [4, 14], "page": 4, "exist": 5, "environ": 5, "interest": [5, 19], "code": 5, "repositori": 5, "virtual": 5, "repo": 5, "get": 5, "cd": 5, "python3": 5, "venv": 5, "vpycopm": 5, "upgrad": 5, "setuptool": 5, "wheel": 5, "lint": 5, "dev": 5, "r": 5, "org": 5, "releas": 5, "2024": 5, "04": 5, "master": 5, "branch": 5, "ci": 5, "yml": 5, "binari": 5, "subsystem": 5, "could": [5, 8], "try": [5, 6], "prerequisit": 5, "turn": 5, "should": 5, "current_directori": 5, "pwd": 5, "common": 5, "done": [5, 6], "mkdir": 5, "cmake": 5, "duse_mpi": 5, "dwith_ndebug": 5, "dcmake_build_typ": 5, "dcmake_prefix_path": 5, "j5": 5, "sh": 5, "build_opm_mpi": 5, "copi": [3, 5, 8], "so": [5, 14], "built": 5, "dune": 5, "librari": 5, "macport": 5, "brew": 5, "geometri": 5, "istl": 5, "gitlab": 5, "v2": 5, "dunecontrol": 5, "dcmake_disable_find_package_mpi": 5, "dpython_execut": 5, "dopm_enable_python": 5, "ON": 5, "version": 5, "10": 5, "due": 5, "resdata": 5, "host": 6, "simplifi": 6, "flexibl": 6, "focu": [6, 8], "were": 6, "two": 6, "reservoir": 6, "give": [3, 6, 8], "manual": 6, "templat": [6, 13], "adapt": [6, 8], "favourit": [6, 8], "optim": [6, 8], "pet": [6, 8], "everest": [6, 8], "name_of_input_fil": 6, "f": 6, "just": 6, "level": 6, "dir": [6, 15], "either": 6, "ones": 6, "ha": 6, "6": 6, "while": 6, "them": [6, 19], "actnum": [6, 14], "new": [3, 6, 14], "endnum": 6, "eqlnum": [6, 17], "fipnum": [6, 17], "fluxnum": 6, "imbnum": 6, "miscnum": 6, "multnum": 6, "pvtnum": 6, "rocknum": 6, "swatinit": [3, 6], "mult": 6, "xyz": 6, "arithmet": 6, "averag": 6, "harmon": 6, "rest": 6, "closest": 6, "tune": 6, "creation": 6, "discontinu": 6, "along": 6, "around": 6, "noth": 6, "static": 6, "prep": 6, "exectut": 6, "prep_deck": 6, "deck_dri": 6, "w": 6, "plu": 6, "_pycopm": 6, "text": [6, 16], "befor": [6, 16], "pycopm_": 6, "porv": [3, 6], "pycopm_porv": 6, "etc": 6, "utf8": 6, "iso": 6, "8859": 6, "encod": 6, "jk": 6, "return": [6, 13, 14, 15, 16, 17, 18], "posit": [6, 14, 15], "empti": 6, "As": 8, "earli": 8, "screenshot": 8, "show": 8, "some": [3, 8, 19], "postprocess": 8, "directli": 8, "further": 8, "plot": [8, 9, 12, 18], "visual": 8, "resinsight": 8, "focuc": 8, "test_generic_deck": 8, "py": [8, 18], "other": [3, 8], "summari": 8, "appear": 8, "find": [8, 14], "otherwis": 8, "might": [3, 8, 19], "load_pars": [9, 10, 11], "files_writ": [9, 12], "coarser_fil": [9, 12, 13], "ert_fil": [9, 12, 13], "grid_featur": [9, 12, 13], "opm_properti": [9, 12, 13], "write_let_t": [9, 12, 13], "generate_coarser_fil": [9, 12], "create_deck": [9, 12, 14], "find_neighbor": [9, 12, 14], "get_ijk": [9, 12, 14], "handle_clust": [9, 12, 14], "handle_cp_grid": [9, 12, 14], "handle_fault": [9, 12, 14, 15], "handle_grid_prop": [9, 12, 14], "handle_mapax": [9, 12, 14], "handle_op": [9, 12, 14], "handle_prop": [9, 12, 14], "handle_pv": [9, 12, 14], "handle_region": [9, 12, 14], "handle_segmented_wel": [9, 12, 14], "handle_wel": [9, 12, 14], "handle_zcorn": [9, 12, 14], "map_ijk": [9, 12, 14], "map_properti": [9, 12, 14], "process_the_deck": [9, 12, 14], "write_grid": [9, 12, 14], "write_prop": [9, 12, 14], "grid_build": [9, 12], "coarser_grid": [9, 12, 15], "handle_face_dir_im": [9, 12, 15], "handle_face_dir_ip": [9, 12, 15], "handle_face_dir_jm": [9, 12, 15], "handle_face_dir_jp": [9, 12, 15], "input_valu": [9, 12], "assign_hm_paramet": [9, 12, 16], "assign_standard_valu": [9, 12, 16], "get_number_of_lin": [9, 12, 16], "initialize_valu": [9, 12, 16], "process_input": [9, 12, 16], "read_refer": [9, 12, 16], "read_the_first_part": [9, 12, 16], "properties_build": [9, 12], "add_lost_pv_to_all_cel": [9, 12, 17], "add_lost_pv_to_all_eq_cel": [9, 12, 17], "add_lost_pv_to_all_fip_cel": [9, 12, 17], "add_lost_pv_to_boundary_cel": [9, 12, 17], "coarser_properti": [9, 12, 17], "identify_removed_pilar": [9, 12, 17], "identify_removed_pilars_zdir": [9, 12, 17], "initialize_properti": [9, 12, 17], "runs_execut": [9, 12], "utilii": [13, 14, 15, 16, 17, 18], "necessari": [13, 14], "variabl": [13, 16], "dic": [13, 14, 15, 16, 17, 18], "method": [13, 14, 15, 17], "arg": [13, 14, 15, 16, 17, 18], "dict": [13, 14, 15, 16, 17, 18], "global": [13, 14, 15, 16, 17, 18], "dictionari": [13, 14, 15, 16, 17, 18], "none": [13, 14, 18], "tabl": 13, "scrip": 14, "diffeent": 14, "ind": [14, 16], "i_d": 14, "list": [14, 16], "int": [14, 15, 16, 17], "its": 14, "increas": 14, "shift": 14, "cluster": 14, "zcord": 14, "nrwo": 14, "splite": 14, "row": 14, "prop": [3, 14], "map": [14, 15], "clusmin": 14, "clusmax": 14, "rmv": 14, "sure": 14, "nor": 14, "destroi": 14, "panda": 14, "datafram": 14, "mask": 14, "segment": 14, "keyword": [3, 14], "ir": 14, "zcorn": 14, "coordin": 14, "corner": [14, 15], "d_z": 14, "z_t": 14, "z_b": 14, "z_b_t": 14, "arrai": [14, 17], "float": [14, 18], "dz": 14, "bottom": 14, "identifi": [14, 17], "point": [14, 15], "cell_index": 15, "face": 15, "refer": [15, 17], "requiri": 16, "lol": 16, "num_lin": 16, "inject": 16, "obtain": 16, "dic1": 16, "local": 16, "in_fil": 16, "str": 16, "quantiti": 16, "uncoars": 16, "29": 16, "inx": 17, "num": 17, "below": 19, "check": 19, "out": 19, "csp": 19, "spe11": 19, "benchmark": 19, "dynam": 19, "quick": 19, "vtk": 19, "expans": 19, "co2": 19, "horda": 19, "platform": 19, "leakag": 19, "remedi": 19, "microbi": 19, "induc": 19, "calcit": 19, "precipit": 19, "open": 19, "imag": 19, "cfd": 19, "microsystem": 19, "sss": [], "sad": [], "ff": [], "relev": 3, "per": 3, "mapax": 3, "like": 3, "multz": 3, "perm": 3, "multx": 3, "multi": 3, "equal": 3, "multipli": 3, "involv": 3, "appli": 3, "still": 3, "format": 3, "special": 3, "vile": 3}, "objects": {"": [[9, 0, 0, "-", "pycopm"]], "pycopm": [[10, 0, 0, "-", "core"], [12, 0, 0, "-", "utils"]], "pycopm.core": [[11, 0, 0, "-", "pycopm"]], "pycopm.core.pycopm": [[11, 1, 1, "", "load_parser"], [11, 1, 1, "", "main"], [11, 1, 1, "", "pycopm"]], "pycopm.utils": [[13, 0, 0, "-", "files_writer"], [14, 0, 0, "-", "generate_coarser_files"], [15, 0, 0, "-", "grid_builder"], [16, 0, 0, "-", "input_values"], [17, 0, 0, "-", "properties_builder"], [18, 0, 0, "-", "runs_executer"]], "pycopm.utils.files_writer": [[13, 1, 1, "", "coarser_files"], [13, 1, 1, "", "ert_files"], [13, 1, 1, "", "grid_features"], [13, 1, 1, "", "opm_properties"], [13, 1, 1, "", "write_let_tables"]], "pycopm.utils.generate_coarser_files": [[14, 1, 1, "", "create_deck"], [14, 1, 1, "", "find_neighbors"], [14, 1, 1, "", "get_ijk"], [14, 1, 1, "", "handle_clusters"], [14, 1, 1, "", "handle_cp_grid"], [14, 1, 1, "", "handle_fault"], [14, 1, 1, "", "handle_grid_props"], [14, 1, 1, "", "handle_mapaxes"], [14, 1, 1, "", "handle_oper"], [14, 1, 1, "", "handle_props"], [14, 1, 1, "", "handle_pv"], [14, 1, 1, "", "handle_regions"], [14, 1, 1, "", "handle_segmented_wells"], [14, 1, 1, "", "handle_wells"], [14, 1, 1, "", "handle_zcorn"], [14, 1, 1, "", "map_ijk"], [14, 1, 1, "", "map_properties"], [14, 1, 1, "", "process_the_deck"], [14, 1, 1, "", "write_grid"], [14, 1, 1, "", "write_props"]], "pycopm.utils.grid_builder": [[15, 1, 1, "", "coarser_grid"], [15, 1, 1, "", "handle_face_dir_im"], [15, 1, 1, "", "handle_face_dir_ip"], [15, 1, 1, "", "handle_face_dir_jm"], [15, 1, 1, "", "handle_face_dir_jp"], [15, 1, 1, "", "handle_faults"]], "pycopm.utils.input_values": [[16, 1, 1, "", "assign_hm_parameters"], [16, 1, 1, "", "assign_standard_values"], [16, 1, 1, "", "get_number_of_lines"], [16, 1, 1, "", "initialize_values"], [16, 1, 1, "", "process_input"], [16, 1, 1, "", "read_reference"], [16, 1, 1, "", "read_the_first_part"]], "pycopm.utils.properties_builder": [[17, 1, 1, "", "add_lost_pv_to_all_cells"], [17, 1, 1, "", "add_lost_pv_to_all_eq_cells"], [17, 1, 1, "", "add_lost_pv_to_all_fip_cells"], [17, 1, 1, "", "add_lost_pv_to_boundary_cells"], [17, 1, 1, "", "coarser_properties"], [17, 1, 1, "", "identify_removed_pilars"], [17, 1, 1, "", "identify_removed_pilars_zdir"], [17, 1, 1, "", "initialize_properties"]], "pycopm.utils.runs_executer": [[18, 1, 1, "", "plotting"], [18, 1, 1, "", "simulations"]]}, "objtypes": {"0": "py:module", "1": "py:function"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "function", "Python function"]}, "titleterms": {"about": 0, "pycopm": [0, 1, 4, 7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18], "python": [1, 5], "api": 1, "configur": [2, 3, 8], "file": [2, 3, 8], "exampl": 3, "via": [3, 8], "opm": [3, 5, 8], "flow": [3, 5, 8], "deck": [3, 8], "hello": 3, "world": 3, "spe10": 3, "smeaheia": 3, "drogon": 3, "norn": 3, "welcom": 4, "": 4, "document": 4, "indic": 4, "tabl": 4, "instal": 5, "packag": [5, 9, 10, 12], "sourc": 5, "build": 5, "linux": 5, "window": 5, "maco": 5, "introduct": 6, "concept": 6, "roadmap": 6, "overview": 6, "output": 8, "folder": 8, "an": 8, "input": 8, "subpackag": 9, "modul": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18], "content": [9, 10, 12], "core": [10, 11], "submodul": [10, 12], "util": [12, 13, 14, 15, 16, 17, 18], "files_writ": 13, "generate_coarser_fil": 14, "grid_build": 15, "input_valu": 16, "properties_build": 17, "runs_execut": 18, "relat": 19, "pyopmspe11": 19, "pyopmnearwel": 19, "plopm": 19, "exprecc": 19, "ad": 19, "micp": 19, "pymm": 19}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 60}, "alltitles": {"About pycopm": [[0, "about-pycopm"]], "pycopm Python API": [[1, "pycopm-python-api"]], "pycopm": [[1, "pycopm"], [7, "pycopm"]], "Configuration file": [[2, "configuration-file"]], "Welcome to pycopm\u2019s documentation!": [[4, "welcome-to-pycopm-s-documentation"]], "Indices and tables": [[4, "indices-and-tables"]], "Installation": [[5, "installation"]], "Python package": [[5, "python-package"]], "OPM Flow": [[5, "opm-flow"]], "Source build in Linux/Windows": [[5, "source-build-in-linux-windows"]], "Source build in macOS": [[5, "source-build-in-macos"]], "Introduction": [[6, "introduction"]], "Concept": [[6, "concept"]], "Roadmap": [[6, "roadmap"]], "Overview": [[6, "overview"]], "Via configuration files": [[8, "via-configuration-files"], [3, "via-configuration-files"]], "Output folder": [[8, "output-folder"]], "Via an OPM Flow input deck": [[8, "via-an-opm-flow-input-deck"]], "pycopm package": [[9, "pycopm-package"]], "Subpackages": [[9, "subpackages"]], "Module contents": [[9, "module-pycopm"], [10, "module-pycopm.core"], [12, "module-pycopm.utils"]], "pycopm.core package": [[10, "pycopm-core-package"]], "Submodules": [[10, "submodules"], [12, "submodules"]], "pycopm.utils package": [[12, "pycopm-utils-package"]], "pycopm.utils.files_writer module": [[13, "module-pycopm.utils.files_writer"]], "pycopm.utils.grid_builder module": [[15, "module-pycopm.utils.grid_builder"]], "pycopm.utils.input_values module": [[16, "module-pycopm.utils.input_values"]], "pycopm.utils.properties_builder module": [[17, "module-pycopm.utils.properties_builder"]], "pycopm.utils.runs_executer module": [[18, "module-pycopm.utils.runs_executer"]], "Related": [[19, "related"]], "pyopmspe11": [[19, "pyopmspe11"]], "pyopmnearwell": [[19, "pyopmnearwell"]], "plopm": [[19, "plopm"]], "expreccs": [[19, "expreccs"]], "ad-micp": [[19, "ad-micp"]], "pymm": [[19, "pymm"]], "pycopm.core.pycopm module": [[11, "module-pycopm.core.pycopm"]], "pycopm.utils.generate_coarser_files module": [[14, "module-pycopm.utils.generate_coarser_files"]], "Examples": [[3, "examples"]], "Via OPM Flow decks": [[3, "via-opm-flow-decks"]], "Hello world": [[3, "hello-world"]], "SPE10": [[3, "spe10"]], "Smeaheia": [[3, "smeaheia"]], "Drogon": [[3, "drogon"]], "Norne": [[3, "norne"]]}, "indexentries": {}}) \ No newline at end of file +Search.setIndex({"docnames": ["about", "api", "configuration_file", "examples", "index", "installation", "introduction", "modules", "output_folder", "pycopm", "pycopm.core", "pycopm.core.pycopm", "pycopm.utils", "pycopm.utils.files_writer", "pycopm.utils.generate_coarser_files", "pycopm.utils.grid_builder", "pycopm.utils.input_values", "pycopm.utils.properties_builder", "pycopm.utils.runs_executer", "related"], "filenames": ["about.rst", "api.rst", "configuration_file.rst", "examples.rst", "index.rst", "installation.rst", "introduction.rst", "modules.rst", "output_folder.rst", "pycopm.rst", "pycopm.core.rst", "pycopm.core.pycopm.rst", "pycopm.utils.rst", "pycopm.utils.files_writer.rst", "pycopm.utils.generate_coarser_files.rst", "pycopm.utils.grid_builder.rst", "pycopm.utils.input_values.rst", "pycopm.utils.properties_builder.rst", "pycopm.utils.runs_executer.rst", "related.rst"], "titles": ["About pycopm", "pycopm Python API", "Configuration file", "Examples", "Welcome to pycopm\u2019s documentation!", "Installation", "Introduction", "pycopm", "Output folder", "pycopm package", "pycopm.core package", "pycopm.core.pycopm module", "pycopm.utils package", "pycopm.utils.files_writer module", "pycopm.utils.generate_coarser_files module", "pycopm.utils.grid_builder module", "pycopm.utils.input_values module", "pycopm.utils.properties_builder module", "pycopm.utils.runs_executer module", "Related"], "terms": {"tool": [0, 3, 5, 6, 8, 19], "coarsen": [0, 1, 2, 3, 6], "opm": [0, 1, 2, 4, 6, 13, 16, 18, 19], "flow": [0, 1, 2, 4, 6, 13, 18, 19], "geolog": [0, 2, 3, 6, 8], "model": [0, 2, 3, 6, 8, 19], "i": [0, 1, 2, 3, 6, 8, 14, 15], "being": 0, "fund": 0, "center": [0, 14], "sustain": 0, "subsurfac": 0, "resourc": [0, 19], "cssr": [0, 3, 5, 6], "project": [0, 5, 19], "331841": 0, "thi": [0, 2, 3, 5, 6, 8], "work": [0, 6], "progress": 0, "contribut": [0, 5], "ar": [0, 1, 2, 3, 5, 6, 8, 19], "more": 0, "than": 0, "welcom": 0, "us": [0, 1, 2, 3, 5, 6, 8, 17, 19], "fork": 0, "pull": 0, "request": 0, "approach": [0, 2], "The": [1, 2, 3, 6, 8], "main": [1, 2, 3, 9, 10, 11, 14], "script": [1, 5, 11], "execut": [1, 2, 3, 5, 6, 8, 11, 18], "locat": [1, 8], "core": [1, 5, 7, 9], "folder": [1, 3, 4, 5, 6], "differ": [1, 2], "job": 1, "call": [1, 2, 8, 14], "ert": [1, 2, 3, 6, 8, 13, 16, 18], "reference_simul": 1, "contain": [1, 3], "gener": [1, 2, 3, 6, 8, 14, 15, 17, 18, 19], "file": [1, 4, 5, 6, 13, 14, 16, 18], "after": [1, 2, 3, 5, 8], "run": [1, 2, 3, 5, 6, 8, 13, 18], "norn": [1, 2, 4, 6, 8], "drogon": [1, 2, 4, 6, 8], "case": [1, 3], "test": [1, 2, 3, 5, 6], "template_script": 1, "mako": [1, 13], "base": [1, 6, 19], "from": [1, 2, 3, 5, 6, 14, 15, 16, 19], "origin": [1, 3], "deck": [1, 2, 4, 6, 13, 14, 17], "final": [1, 2], "util": [1, 7, 9], "function": [1, 2, 3, 11, 13, 15, 16, 17, 18], "framework": [1, 6, 19], "pyocpm": 1, "packag": [1, 4, 7], "subpackag": [1, 4, 7], "submodul": [1, 7, 9], "modul": [1, 4, 5, 7, 19], "content": [1, 3, 4, 7], "allow": [2, 6], "set": [2, 3, 6, 8, 16], "integr": 2, "studi": [2, 3, 6, 8, 18, 19], "histori": [2, 6, 8], "match": [2, 6, 8], "onli": [2, 3, 5, 6, 8, 14], "To": [2, 3, 5], "pycopm": [2, 3, 5, 6, 8], "ani": 2, "given": [2, 3, 6], "coarser": [2, 3, 6, 8, 14, 17], "can": [2, 3, 5, 8], "achiev": [2, 3, 5], "without": [2, 8], "paramet": [2, 3, 6, 16, 17], "via": [2, 4, 6], "command": [2, 5], "line": [2, 3, 5, 16], "see": [2, 5, 6, 8], "overview": [2, 4], "h": 2, "definit": [2, 3], "argument": [2, 6, 11, 14], "option": [2, 6, 11], "well": [2, 6, 14, 19], "exampl": [2, 4, 8], "here": [2, 3], "we": [2, 3, 8, 14], "an": [2, 4, 5, 19], "one": [2, 3, 6, 8, 14], "txt": [2, 3, 5, 6], "first": [2, 3, 16], "input": [2, 3, 4, 6, 14, 16, 17], "full": [2, 6, 8], "path": [2, 3, 6, 8], "If": [2, 5], "your": [2, 6, 8], "write": [2, 13, 14, 17], "e": [2, 3, 5, 6, 8], "g": [2, 3, 5, 6, 8], "user": [2, 5], "dmar": 2, "github": [2, 3, 5, 6], "build": [2, 4], "simul": [2, 3, 5, 8, 9, 12, 16, 18, 19], "bin": [2, 5], "follow": [2, 3, 5, 6, 8], "delet": 2, "suffix": 2, "save": [2, 3, 6], "storag": [2, 19], "egrid": 2, "dbg": 2, "grdecl": 2, "unrst": 2, "unsmri": 2, "prt": 2, "inc": [2, 6, 16], "infostep": 2, "smspec": 2, "init": [2, 3], "you": [2, 3, 5, 8], "type": [2, 19], "each": [2, 6], "realiz": 2, "complet": 2, "order": [2, 3, 6], "memori": 2, "number": [2, 3, 16], "jump": [2, 3, 14], "2": [2, 3, 6], "4": [2, 3], "sinc": [2, 3], "implement": [2, 3, 6], "white": 2, "space": 2, "between": [2, 3, 6], "block": [2, 17], "need": [2, 3, 5, 6, 8], "next": 2, "entri": [2, 6], "defin": [2, 3, 17], "singl": 2, "0": [2, 3, 5, 6], "1": [2, 3, 5, 6], "vector": [2, 6], "x": [2, 3, 6], "coers": 2, "y": [2, 3, 6], "z": [2, 3, 6, 14, 17], "ensembl": [2, 6], "maximum": [2, 3], "parallel": 2, "mpi": [2, 5], "process": [2, 14, 16], "600": 2, "runtim": 2, "second": 2, "A": [2, 19], "valu": [2, 3, 6, 16], "mean": [2, 6], "unlimit": 2, "minimum": 2, "must": [2, 3], "have": [2, 14], "succeed": 2, "regard": 2, "success": 2, "7": 2, "specif": 2, "seed": 2, "reproduc": 2, "observations_train": 2, "name": [2, 6, 16], "observ": 2, "hm": [2, 3], "observations_test": 2, "observations_complet": 2, "select": [2, 8, 18], "which": [2, 3, 5], "default": [2, 3, 6, 8], "let": [2, 13], "sat": 2, "For": [2, 3, 5, 8], "satnum": [2, 6], "comput": [2, 6], "sandv": 2, "et": 2, "al": 2, "2022": 2, "cell": [2, 3, 6, 14, 15, 16, 17], "correct": [2, 6, 8, 17], "lost": [2, 17], "pv": 2, "boundari": [2, 17], "account": 2, "poros": [2, 3], "all": [2, 3, 6, 8, 14, 17], "initi": [2, 6, 16, 17], "equil": 2, "fine": 2, "scale": [2, 6], "error": [2, 3, 8], "wwpr": 2, "wopr": 2, "wgpr": 2, "100": 2, "100000": 2, "2005": 2, "03": 2, "01": [2, 3], "last": [2, 6, 16], "date": 2, "do": [2, 5, 6], "remov": [2, 3, 6, 14, 17], "current": [2, 3, 5, 6, 8, 14, 18], "read": [2, 3, 6, 16], "result": [2, 8], "inform": 2, "shown": 2, "termin": [2, 3, 5, 6], "instead": 2, "same": [2, 3, 8, 14, 17], "discuss": 2, "later": 2, "three": 2, "pillar": [2, 14], "direct": [2, 3, 6, 17], "respect": 2, "j": [2, 3, 6, 14, 15], "k": [2, 3, 6, 14, 15], "index": [2, 4, 14, 15, 17], "standard": 2, "data": [2, 3, 6], "pilar": [2, 3, 6, 17], "keep": [2, 3, 6, 14], "honor": 2, "shape": 2, "Then": [2, 3, 8], "provid": 2, "chang": 2, "": [2, 3, 6, 14], "add": [2, 3, 6, 14], "back": 2, "remain": 2, "mpirun": 2, "avail": [2, 5, 6], "stop": 2, "time": [2, 3, 18], "random": 2, "satur": [2, 3, 13, 16], "consid": 2, "region": [2, 3, 14], "ntg": [2, 3], "poro": [2, 3, 6], "properti": [2, 3, 6, 13, 14, 17], "modifi": [2, 5, 13, 14, 15, 16, 17, 18], "activ": [2, 3, 5, 6, 14, 17], "gui": 2, "test_run": 2, "ensemble_experi": 2, "ensemble_smooth": 2, "iterative_ensemble_smooth": 2, "es_mda": 2, "weight": [2, 6], "flag": [2, 3, 6, 14, 16], "support": [2, 5, 6, 14], "confer": 2, "document": [2, 6], "descript": [2, 6], "enabl": [2, 6], "rst": 2, "true": 2, "newton": 2, "min": [2, 3, 6], "iter": 2, "dist": 2, "distpara": 2, "lw": 2, "3": [2, 3, 5, 6], "uniform": 2, "5": [2, 3], "ew": 2, "tw": 2, "lo": 2, "eo": 2, "lg": 2, "eg": 2, "tg": 2, "log": 2, "eog": 2, "tog": 2, "lmlto": 2, "emlto": 2, "9": [2, 5], "tmlto": 2, "lmltg": 2, "emltg": 2, "tmltg": 2, "permeabl": 2, "rock": 2, "coars": [2, 3, 6, 8, 14, 15, 17], "max": [2, 3, 6], "permx": [2, 3, 6], "permi": [2, 3, 6], "permz": [2, 3, 6], "distribut": [2, 14, 17], "interv": 2, "perm_min": 2, "perm_max": 2, "correspond": [2, 6, 14], "perform": [3, 6], "insid": [3, 5], "o": [3, 6, 8, 14], "drogon_coars": 3, "norne_coars": 3, "gif": [3, 19], "introduct": [3, 4, 8], "wa": [3, 6, 8], "develop": [3, 6, 8], "focus": [3, 6], "creat": [3, 5, 6, 8, 14], "hello_world": 3, "c": [3, 6], "m": [3, 5, 6], "would": [3, 6, 8], "dry": [3, 6], "clone": [3, 5], "left": [3, 8], "right": [3, 8, 14], "ad": [3, 4, 6], "p": [3, 6], "pore": [3, 6, 14, 17], "volum": [3, 6, 14, 17], "neighbour": [3, 6, 14], "make": [3, 5, 6, 14], "where": [3, 6], "mode": [3, 6], "n": [3, 6, 14], "integ": [3, 14], "By": 3, "download": 3, "spe10_model2": 3, "8": 3, "statoil_feasibility_sim_model_with_depletion_kross_inj_sector_20": 3, "made": 3, "inact": [3, 6], "least": [3, 5, 6, 14], "our": 3, "plopm": [3, 4], "friend": 3, "png": [3, 19], "figur": [3, 8], "statoil_feasibility_sim_model_with_depletion_kross_inj_sector_20_prep_pycopm_dryrun": 3, "statoil_feasibility_sim_model_with_depletion_kross_inj_sector_20_pycopm": 3, "v": 3, "subfig": 3, "t": 3, "xunit": 3, "km": 3, "xformat": 3, "0f": 3, "yunit": 3, "yformat": 3, "d": 3, "suptitl": 3, "cet_rainbow_bgyrm_35_85_c69": 3, "cbsfax": 3, "30": 3, "02": 3, "cformat": 3, "2f": 3, "top": [3, 14], "view": [3, 14], "note": 3, "also": [3, 5, 6, 14], "instal": [3, 4], "pip": [3, 5], "git": [3, 5], "http": [3, 5, 6], "com": [3, 5, 6], "In": [3, 5, 6], "handl": [3, 14], "requir": [3, 5, 14, 16, 17], "indic": [3, 6, 14], "fault": [3, 6, 14, 15], "wellspec": 3, "assum": 3, "includ": [3, 5, 8], "replac": 3, "those": 3, "actual": 3, "some": [3, 8, 19], "relev": 3, "keyword": [3, 14], "per": 3, "section": [3, 14], "grid": [3, 5, 6, 13, 14, 15, 17], "mapax": 3, "multregt": 3, "other": [3, 8], "like": 3, "multz": 3, "oper": [3, 14], "perm": 3, "porv": [3, 6], "multx": 3, "multi": 3, "prop": [3, 14], "equal": 3, "copi": [3, 5, 8], "multipli": 3, "involv": 3, "appli": 3, "still": 3, "format": 3, "addit": [3, 5], "swatinit": [3, 6], "output": [3, 4, 6, 16], "new": [3, 6, 14], "might": [3, 8, 19], "give": [3, 6, 8], "special": 3, "schedul": 3, "vile": 3, "abov": 3, "drogon_hist": 3, "l127": 3, "128": 3, "l242": 3, "243": 3, "l": [3, 6], "c1": 3, "drogon_hist_pycopm": 3, "c2": 3, "total": 3, "conserv": 3, "reduc": 3, "31": 3, "11": 3, "trial": 3, "avoid": [3, 6], "connect": [3, 6], "across": 3, "lot": 3, "divid": 3, "conquer": 3, "apporach": 3, "recommend": [3, 8], "directon": 3, "label": 3, "differenti": 3, "miss": 3, "relat": [3, 4, 13], "describ": [3, 6, 8], "previou": [3, 5], "certain": 3, "featur": 3, "norne_atw2013": 3, "concept": 4, "roadmap": 4, "python": [4, 19], "sourc": [4, 19], "linux": 4, "window": 4, "maco": 4, "configur": [4, 6], "hello": 4, "world": 4, "spe10": [4, 8], "smeaheia": 4, "api": 4, "pyopmspe11": 4, "pyopmnearwel": 4, "exprecc": 4, "micp": 4, "pymm": 4, "about": 4, "search": [4, 14], "page": 4, "exist": 5, "environ": 5, "interest": [5, 19], "code": 5, "repositori": 5, "virtual": 5, "repo": 5, "get": 5, "cd": 5, "python3": 5, "venv": 5, "vpycopm": 5, "upgrad": 5, "setuptool": 5, "wheel": 5, "lint": 5, "dev": 5, "r": [5, 6], "org": 5, "releas": 5, "2024": 5, "04": 5, "master": 5, "branch": 5, "ci": 5, "yml": 5, "binari": 5, "subsystem": 5, "could": [5, 8], "try": [5, 6], "prerequisit": 5, "turn": 5, "should": 5, "current_directori": 5, "pwd": 5, "common": 5, "done": [5, 6], "mkdir": 5, "cmake": 5, "duse_mpi": 5, "dwith_ndebug": 5, "dcmake_build_typ": 5, "dcmake_prefix_path": 5, "j5": 5, "sh": 5, "build_opm_mpi": 5, "so": [5, 14], "built": 5, "dune": 5, "librari": 5, "macport": 5, "brew": 5, "geometri": 5, "istl": 5, "gitlab": 5, "v2": 5, "dunecontrol": 5, "dcmake_disable_find_package_mpi": 5, "dpython_execut": 5, "dopm_enable_python": 5, "ON": 5, "version": 5, "10": 5, "due": 5, "resdata": 5, "host": 6, "simplifi": 6, "flexibl": 6, "focu": [6, 8], "were": 6, "two": 6, "reservoir": 6, "manual": 6, "templat": [6, 13], "adapt": [6, 8], "favourit": [6, 8], "optim": [6, 8], "pet": [6, 8], "everest": [6, 8], "name_of_input_fil": 6, "f": 6, "just": 6, "level": 6, "dir": [6, 15], "either": 6, "ones": 6, "ha": 6, "6": 6, "while": 6, "them": [6, 19], "actnum": [6, 14], "endnum": 6, "eqlnum": [6, 17], "fipnum": [6, 17], "fluxnum": 6, "imbnum": 6, "miscnum": 6, "multnum": 6, "pvtnum": 6, "rocknum": 6, "mult": 6, "xyz": 6, "arithmet": 6, "averag": 6, "harmon": 6, "rest": 6, "closest": 6, "confact": 6, "kh": 6, "compdat": 6, "peqvr": 6, "item": 6, "13": 6, "transmis": 6, "intern": 6, "tune": 6, "creation": 6, "discontinu": 6, "along": 6, "around": 6, "noth": 6, "static": 6, "prep": 6, "exectut": 6, "prep_deck": 6, "deck_dri": 6, "w": 6, "plu": 6, "_pycopm": 6, "text": [6, 16], "befor": [6, 16], "pycopm_": 6, "pycopm_porv": 6, "etc": 6, "utf8": 6, "iso": 6, "8859": 6, "encod": 6, "jk": 6, "return": [6, 13, 14, 15, 16, 17, 18], "posit": [6, 14, 15], "empti": 6, "As": 8, "earli": 8, "screenshot": 8, "show": 8, "postprocess": 8, "directli": 8, "further": 8, "plot": [8, 9, 12, 18], "visual": 8, "resinsight": 8, "focuc": 8, "test_generic_deck": 8, "py": [8, 18], "summari": 8, "appear": 8, "find": [8, 14], "otherwis": 8, "load_pars": [9, 10, 11], "files_writ": [9, 12], "coarser_fil": [9, 12, 13], "ert_fil": [9, 12, 13], "grid_featur": [9, 12, 13], "opm_properti": [9, 12, 13], "write_let_t": [9, 12, 13], "generate_coarser_fil": [9, 12], "create_deck": [9, 12, 14], "find_neighbor": [9, 12, 14], "get_ijk": [9, 12, 14], "handle_clust": [9, 12, 14], "handle_cp_grid": [9, 12, 14], "handle_fault": [9, 12, 14, 15], "handle_grid_prop": [9, 12, 14], "handle_mapax": [9, 12, 14], "handle_op": [9, 12, 14], "handle_prop": [9, 12, 14], "handle_pv": [9, 12, 14], "handle_region": [9, 12, 14], "handle_segmented_wel": [9, 12, 14], "handle_wel": [9, 12, 14], "handle_zcorn": [9, 12, 14], "map_ijk": [9, 12, 14], "map_properti": [9, 12, 14], "process_the_deck": [9, 12, 14], "write_grid": [9, 12, 14], "write_prop": [9, 12, 14], "grid_build": [9, 12], "coarser_grid": [9, 12, 15], "handle_face_dir_im": [9, 12, 15], "handle_face_dir_ip": [9, 12, 15], "handle_face_dir_jm": [9, 12, 15], "handle_face_dir_jp": [9, 12, 15], "input_valu": [9, 12], "assign_hm_paramet": [9, 12, 16], "assign_standard_valu": [9, 12, 16], "get_number_of_lin": [9, 12, 16], "initialize_valu": [9, 12, 16], "process_input": [9, 12, 16], "read_refer": [9, 12, 16], "read_the_first_part": [9, 12, 16], "properties_build": [9, 12], "add_lost_pv_to_all_cel": [9, 12, 17], "add_lost_pv_to_all_eq_cel": [9, 12, 17], "add_lost_pv_to_all_fip_cel": [9, 12, 17], "add_lost_pv_to_boundary_cel": [9, 12, 17], "coarser_properti": [9, 12, 17], "identify_removed_pilar": [9, 12, 17], "identify_removed_pilars_zdir": [9, 12, 17], "initialize_properti": [9, 12, 17], "runs_execut": [9, 12], "utilii": [13, 14, 15, 16, 17, 18], "necessari": [13, 14], "variabl": [13, 16], "dic": [13, 14, 15, 16, 17, 18], "method": [13, 14, 15, 17], "arg": [13, 14, 15, 16, 17, 18], "dict": [13, 14, 15, 16, 17, 18], "global": [13, 14, 15, 16, 17, 18], "dictionari": [13, 14, 15, 16, 17, 18], "none": [13, 14, 18], "tabl": 13, "scrip": 14, "diffeent": 14, "ind": [14, 16], "i_d": 14, "list": [14, 16], "int": [14, 15, 16, 17], "its": 14, "increas": 14, "shift": 14, "cluster": 14, "zcord": 14, "nrwo": 14, "splite": 14, "row": 14, "map": [14, 15], "clusmin": 14, "clusmax": 14, "rmv": 14, "sure": 14, "nor": 14, "destroi": 14, "panda": 14, "datafram": 14, "mask": 14, "segment": 14, "ir": 14, "zcorn": 14, "coordin": 14, "corner": [14, 15], "d_z": 14, "z_t": 14, "z_b": 14, "z_b_t": 14, "arrai": [14, 17], "float": [14, 18], "dz": 14, "bottom": 14, "identifi": [14, 17], "point": [14, 15], "cell_index": 15, "face": 15, "refer": [15, 17], "requiri": 16, "lol": 16, "num_lin": 16, "inject": 16, "obtain": 16, "dic1": 16, "local": 16, "in_fil": 16, "str": 16, "quantiti": 16, "uncoars": 16, "29": 16, "inx": 17, "num": 17, "below": 19, "check": 19, "out": 19, "csp": 19, "spe11": 19, "benchmark": 19, "dynam": 19, "quick": 19, "vtk": 19, "expans": 19, "co2": 19, "horda": 19, "platform": 19, "leakag": 19, "remedi": 19, "microbi": 19, "induc": 19, "calcit": 19, "precipit": 19, "open": 19, "imag": 19, "cfd": 19, "microsystem": 19}, "objects": {"": [[9, 0, 0, "-", "pycopm"]], "pycopm": [[10, 0, 0, "-", "core"], [12, 0, 0, "-", "utils"]], "pycopm.core": [[11, 0, 0, "-", "pycopm"]], "pycopm.core.pycopm": [[11, 1, 1, "", "load_parser"], [11, 1, 1, "", "main"], [11, 1, 1, "", "pycopm"]], "pycopm.utils": [[13, 0, 0, "-", "files_writer"], [14, 0, 0, "-", "generate_coarser_files"], [15, 0, 0, "-", "grid_builder"], [16, 0, 0, "-", "input_values"], [17, 0, 0, "-", "properties_builder"], [18, 0, 0, "-", "runs_executer"]], "pycopm.utils.files_writer": [[13, 1, 1, "", "coarser_files"], [13, 1, 1, "", "ert_files"], [13, 1, 1, "", "grid_features"], [13, 1, 1, "", "opm_properties"], [13, 1, 1, "", "write_let_tables"]], "pycopm.utils.generate_coarser_files": [[14, 1, 1, "", "create_deck"], [14, 1, 1, "", "find_neighbors"], [14, 1, 1, "", "get_ijk"], [14, 1, 1, "", "handle_clusters"], [14, 1, 1, "", "handle_cp_grid"], [14, 1, 1, "", "handle_fault"], [14, 1, 1, "", "handle_grid_props"], [14, 1, 1, "", "handle_mapaxes"], [14, 1, 1, "", "handle_oper"], [14, 1, 1, "", "handle_props"], [14, 1, 1, "", "handle_pv"], [14, 1, 1, "", "handle_regions"], [14, 1, 1, "", "handle_segmented_wells"], [14, 1, 1, "", "handle_wells"], [14, 1, 1, "", "handle_zcorn"], [14, 1, 1, "", "map_ijk"], [14, 1, 1, "", "map_properties"], [14, 1, 1, "", "process_the_deck"], [14, 1, 1, "", "write_grid"], [14, 1, 1, "", "write_props"]], "pycopm.utils.grid_builder": [[15, 1, 1, "", "coarser_grid"], [15, 1, 1, "", "handle_face_dir_im"], [15, 1, 1, "", "handle_face_dir_ip"], [15, 1, 1, "", "handle_face_dir_jm"], [15, 1, 1, "", "handle_face_dir_jp"], [15, 1, 1, "", "handle_faults"]], "pycopm.utils.input_values": [[16, 1, 1, "", "assign_hm_parameters"], [16, 1, 1, "", "assign_standard_values"], [16, 1, 1, "", "get_number_of_lines"], [16, 1, 1, "", "initialize_values"], [16, 1, 1, "", "process_input"], [16, 1, 1, "", "read_reference"], [16, 1, 1, "", "read_the_first_part"]], "pycopm.utils.properties_builder": [[17, 1, 1, "", "add_lost_pv_to_all_cells"], [17, 1, 1, "", "add_lost_pv_to_all_eq_cells"], [17, 1, 1, "", "add_lost_pv_to_all_fip_cells"], [17, 1, 1, "", "add_lost_pv_to_boundary_cells"], [17, 1, 1, "", "coarser_properties"], [17, 1, 1, "", "identify_removed_pilars"], [17, 1, 1, "", "identify_removed_pilars_zdir"], [17, 1, 1, "", "initialize_properties"]], "pycopm.utils.runs_executer": [[18, 1, 1, "", "plotting"], [18, 1, 1, "", "simulations"]]}, "objtypes": {"0": "py:module", "1": "py:function"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "function", "Python function"]}, "titleterms": {"about": 0, "pycopm": [0, 1, 4, 7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18], "python": [1, 5], "api": 1, "configur": [2, 3, 8], "file": [2, 3, 8], "exampl": 3, "via": [3, 8], "opm": [3, 5, 8], "flow": [3, 5, 8], "deck": [3, 8], "hello": 3, "world": 3, "spe10": 3, "smeaheia": 3, "drogon": 3, "norn": 3, "welcom": 4, "": 4, "document": 4, "indic": 4, "tabl": 4, "instal": 5, "packag": [5, 9, 10, 12], "sourc": 5, "build": 5, "linux": 5, "window": 5, "maco": 5, "introduct": 6, "concept": 6, "roadmap": 6, "overview": 6, "output": 8, "folder": 8, "an": 8, "input": 8, "subpackag": 9, "modul": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18], "content": [9, 10, 12], "core": [10, 11], "submodul": [10, 12], "util": [12, 13, 14, 15, 16, 17, 18], "files_writ": 13, "generate_coarser_fil": 14, "grid_build": 15, "input_valu": 16, "properties_build": 17, "runs_execut": 18, "relat": 19, "pyopmspe11": 19, "pyopmnearwel": 19, "plopm": 19, "exprecc": 19, "ad": 19, "micp": 19, "pymm": 19}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 60}, "alltitles": {"About pycopm": [[0, "about-pycopm"]], "pycopm Python API": [[1, "pycopm-python-api"]], "pycopm": [[1, "pycopm"], [7, "pycopm"]], "Configuration file": [[2, "configuration-file"]], "Examples": [[3, "examples"]], "Via configuration files": [[3, "via-configuration-files"], [8, "via-configuration-files"]], "Via OPM Flow decks": [[3, "via-opm-flow-decks"]], "Hello world": [[3, "hello-world"]], "SPE10": [[3, "spe10"]], "Smeaheia": [[3, "smeaheia"]], "Drogon": [[3, "drogon"]], "Norne": [[3, "norne"]], "Welcome to pycopm\u2019s documentation!": [[4, "welcome-to-pycopm-s-documentation"]], "Indices and tables": [[4, "indices-and-tables"]], "Installation": [[5, "installation"]], "Python package": [[5, "python-package"]], "OPM Flow": [[5, "opm-flow"]], "Source build in Linux/Windows": [[5, "source-build-in-linux-windows"]], "Source build in macOS": [[5, "source-build-in-macos"]], "Introduction": [[6, "introduction"]], "Concept": [[6, "concept"]], "Roadmap": [[6, "roadmap"]], "Overview": [[6, "overview"]], "Output folder": [[8, "output-folder"]], "Via an OPM Flow input deck": [[8, "via-an-opm-flow-input-deck"]], "pycopm package": [[9, "pycopm-package"]], "Subpackages": [[9, "subpackages"]], "Module contents": [[9, "module-pycopm"], [10, "module-pycopm.core"], [12, "module-pycopm.utils"]], "pycopm.core package": [[10, "pycopm-core-package"]], "Submodules": [[10, "submodules"], [12, "submodules"]], "pycopm.core.pycopm module": [[11, "module-pycopm.core.pycopm"]], "pycopm.utils package": [[12, "pycopm-utils-package"]], "pycopm.utils.files_writer module": [[13, "module-pycopm.utils.files_writer"]], "pycopm.utils.generate_coarser_files module": [[14, "module-pycopm.utils.generate_coarser_files"]], "pycopm.utils.grid_builder module": [[15, "module-pycopm.utils.grid_builder"]], "pycopm.utils.input_values module": [[16, "module-pycopm.utils.input_values"]], "pycopm.utils.properties_builder module": [[17, "module-pycopm.utils.properties_builder"]], "pycopm.utils.runs_executer module": [[18, "module-pycopm.utils.runs_executer"]], "Related": [[19, "related"]], "pyopmspe11": [[19, "pyopmspe11"]], "pyopmnearwell": [[19, "pyopmnearwell"]], "plopm": [[19, "plopm"]], "expreccs": [[19, "expreccs"]], "ad-micp": [[19, "ad-micp"]], "pymm": [[19, "pymm"]]}, "indexentries": {"module": [[9, "module-pycopm"], [10, "module-pycopm.core"], [11, "module-pycopm.core.pycopm"], [12, "module-pycopm.utils"], [13, "module-pycopm.utils.files_writer"], [14, "module-pycopm.utils.generate_coarser_files"], [15, "module-pycopm.utils.grid_builder"], [16, "module-pycopm.utils.input_values"], [17, "module-pycopm.utils.properties_builder"], [18, "module-pycopm.utils.runs_executer"]], "pycopm": [[9, "module-pycopm"]], "pycopm.core": [[10, "module-pycopm.core"]], "load_parser() (in module pycopm.core.pycopm)": [[11, "pycopm.core.pycopm.load_parser"]], "main() (in module pycopm.core.pycopm)": [[11, "pycopm.core.pycopm.main"]], "pycopm() (in module pycopm.core.pycopm)": [[11, "pycopm.core.pycopm.pycopm"]], "pycopm.core.pycopm": [[11, "module-pycopm.core.pycopm"]], "pycopm.utils": [[12, "module-pycopm.utils"]], "coarser_files() (in module pycopm.utils.files_writer)": [[13, "pycopm.utils.files_writer.coarser_files"]], "ert_files() (in module pycopm.utils.files_writer)": [[13, "pycopm.utils.files_writer.ert_files"]], "grid_features() (in module pycopm.utils.files_writer)": [[13, "pycopm.utils.files_writer.grid_features"]], "opm_properties() (in module pycopm.utils.files_writer)": [[13, "pycopm.utils.files_writer.opm_properties"]], "pycopm.utils.files_writer": [[13, "module-pycopm.utils.files_writer"]], "write_let_tables() (in module pycopm.utils.files_writer)": [[13, "pycopm.utils.files_writer.write_let_tables"]], "create_deck() (in module pycopm.utils.generate_coarser_files)": [[14, "pycopm.utils.generate_coarser_files.create_deck"]], "find_neighbors() (in module pycopm.utils.generate_coarser_files)": [[14, "pycopm.utils.generate_coarser_files.find_neighbors"]], "get_ijk() (in module pycopm.utils.generate_coarser_files)": [[14, "pycopm.utils.generate_coarser_files.get_ijk"]], "handle_clusters() (in module pycopm.utils.generate_coarser_files)": [[14, "pycopm.utils.generate_coarser_files.handle_clusters"]], "handle_cp_grid() (in module pycopm.utils.generate_coarser_files)": [[14, "pycopm.utils.generate_coarser_files.handle_cp_grid"]], "handle_fault() (in module pycopm.utils.generate_coarser_files)": [[14, "pycopm.utils.generate_coarser_files.handle_fault"]], "handle_grid_props() (in module pycopm.utils.generate_coarser_files)": [[14, "pycopm.utils.generate_coarser_files.handle_grid_props"]], "handle_mapaxes() (in module pycopm.utils.generate_coarser_files)": [[14, "pycopm.utils.generate_coarser_files.handle_mapaxes"]], "handle_oper() (in module pycopm.utils.generate_coarser_files)": [[14, "pycopm.utils.generate_coarser_files.handle_oper"]], "handle_props() (in module pycopm.utils.generate_coarser_files)": [[14, "pycopm.utils.generate_coarser_files.handle_props"]], "handle_pv() (in module pycopm.utils.generate_coarser_files)": [[14, "pycopm.utils.generate_coarser_files.handle_pv"]], "handle_regions() (in module pycopm.utils.generate_coarser_files)": [[14, "pycopm.utils.generate_coarser_files.handle_regions"]], "handle_segmented_wells() (in module pycopm.utils.generate_coarser_files)": [[14, "pycopm.utils.generate_coarser_files.handle_segmented_wells"]], "handle_wells() (in module pycopm.utils.generate_coarser_files)": [[14, "pycopm.utils.generate_coarser_files.handle_wells"]], "handle_zcorn() (in module pycopm.utils.generate_coarser_files)": [[14, "pycopm.utils.generate_coarser_files.handle_zcorn"]], "map_ijk() (in module pycopm.utils.generate_coarser_files)": [[14, "pycopm.utils.generate_coarser_files.map_ijk"]], "map_properties() (in module pycopm.utils.generate_coarser_files)": [[14, "pycopm.utils.generate_coarser_files.map_properties"]], "process_the_deck() (in module pycopm.utils.generate_coarser_files)": [[14, "pycopm.utils.generate_coarser_files.process_the_deck"]], "pycopm.utils.generate_coarser_files": [[14, "module-pycopm.utils.generate_coarser_files"]], "write_grid() (in module pycopm.utils.generate_coarser_files)": [[14, "pycopm.utils.generate_coarser_files.write_grid"]], "write_props() (in module pycopm.utils.generate_coarser_files)": [[14, "pycopm.utils.generate_coarser_files.write_props"]], "coarser_grid() (in module pycopm.utils.grid_builder)": [[15, "pycopm.utils.grid_builder.coarser_grid"]], "handle_face_dir_im() (in module pycopm.utils.grid_builder)": [[15, "pycopm.utils.grid_builder.handle_face_dir_im"]], "handle_face_dir_ip() (in module pycopm.utils.grid_builder)": [[15, "pycopm.utils.grid_builder.handle_face_dir_ip"]], "handle_face_dir_jm() (in module pycopm.utils.grid_builder)": [[15, "pycopm.utils.grid_builder.handle_face_dir_jm"]], "handle_face_dir_jp() (in module pycopm.utils.grid_builder)": [[15, "pycopm.utils.grid_builder.handle_face_dir_jp"]], "handle_faults() (in module pycopm.utils.grid_builder)": [[15, "pycopm.utils.grid_builder.handle_faults"]], "pycopm.utils.grid_builder": [[15, "module-pycopm.utils.grid_builder"]], "assign_hm_parameters() (in module pycopm.utils.input_values)": [[16, "pycopm.utils.input_values.assign_hm_parameters"]], "assign_standard_values() (in module pycopm.utils.input_values)": [[16, "pycopm.utils.input_values.assign_standard_values"]], "get_number_of_lines() (in module pycopm.utils.input_values)": [[16, "pycopm.utils.input_values.get_number_of_lines"]], "initialize_values() (in module pycopm.utils.input_values)": [[16, "pycopm.utils.input_values.initialize_values"]], "process_input() (in module pycopm.utils.input_values)": [[16, "pycopm.utils.input_values.process_input"]], "pycopm.utils.input_values": [[16, "module-pycopm.utils.input_values"]], "read_reference() (in module pycopm.utils.input_values)": [[16, "pycopm.utils.input_values.read_reference"]], "read_the_first_part() (in module pycopm.utils.input_values)": [[16, "pycopm.utils.input_values.read_the_first_part"]], "add_lost_pv_to_all_cells() (in module pycopm.utils.properties_builder)": [[17, "pycopm.utils.properties_builder.add_lost_pv_to_all_cells"]], "add_lost_pv_to_all_eq_cells() (in module pycopm.utils.properties_builder)": [[17, "pycopm.utils.properties_builder.add_lost_pv_to_all_eq_cells"]], "add_lost_pv_to_all_fip_cells() (in module pycopm.utils.properties_builder)": [[17, "pycopm.utils.properties_builder.add_lost_pv_to_all_fip_cells"]], "add_lost_pv_to_boundary_cells() (in module pycopm.utils.properties_builder)": [[17, "pycopm.utils.properties_builder.add_lost_pv_to_boundary_cells"]], "coarser_properties() (in module pycopm.utils.properties_builder)": [[17, "pycopm.utils.properties_builder.coarser_properties"]], "identify_removed_pilars() (in module pycopm.utils.properties_builder)": [[17, "pycopm.utils.properties_builder.identify_removed_pilars"]], "identify_removed_pilars_zdir() (in module pycopm.utils.properties_builder)": [[17, "pycopm.utils.properties_builder.identify_removed_pilars_zdir"]], "initialize_properties() (in module pycopm.utils.properties_builder)": [[17, "pycopm.utils.properties_builder.initialize_properties"]], "pycopm.utils.properties_builder": [[17, "module-pycopm.utils.properties_builder"]], "plotting() (in module pycopm.utils.runs_executer)": [[18, "pycopm.utils.runs_executer.plotting"]], "pycopm.utils.runs_executer": [[18, "module-pycopm.utils.runs_executer"]], "simulations() (in module pycopm.utils.runs_executer)": [[18, "pycopm.utils.runs_executer.simulations"]]}}) \ No newline at end of file diff --git a/docs/text/introduction.rst b/docs/text/introduction.rst index 3388bdb..3768ab3 100644 --- a/docs/text/introduction.rst +++ b/docs/text/introduction.rst @@ -41,8 +41,9 @@ where -z Vector of z-coarsening, see the description for -x ('' by default). -a Use `min`, `max`, or `mode` to scale the actnum, e.g., min makes the new coarser cell inactive if at least one cell is inactive, while max makes it active it at least one cell is active (`mode` by default). -n Use `min`, `max`, or `mode` to scale endnum, eqlnum, fipnum, fluxnum, imbnum, miscnum, multnum, pvtnum, rocknum, and satnum (`mode` by default). --s Use `min`, `max`, or `mean` to scale permx, permy, permz, poro, swatinit, and all mult(-)xyz ('' by default, i.e., using the arithmetic average for permx/permy, harmonic average for permz, and the mean for the rest). +-s Use `min`, `max`, or `mean` to scale permx, permy, permz, poro, swatinit, and all mult(-)xyz ('' by default, i.e., using the arithmetic average for permx/permy, harmonic average for permz, mean for mult(-)xyz, and the pore volume weighted mean for the rest). -p Add the removed pore volume to the closest coarser cells (`0` by default, `1` to enable). +-r Remove CONFACT and KH from COMPDAT (`1`) and also remove PEQVR (`2`) (ITEM 13, the last entry) to compute the well transmisibility connections internally in OPM Flow using the grid properties (`2` by default; `0` to not remove). -j Tuning parameter to avoid creation of neighbouring connections in the coarser model where there are discontinuities between cells along the z direction, e.g., around faults ('' by default, i.e., nothing corrected; if need it, try with values of the order of 1). -m Execute a dry run on the input deck to generate the static properties ('prep'), generate only the coarse files ('deck'), only exectute a dry run on the generated coarse model ('dry'), 'prep_deck', 'deck_dry', or do all ('all') (`prep_deck` by default). -w Name of the generated deck ('' by default, i.e., the name of the input deck plus _PYCOPM.DATA). diff --git a/src/pycopm/core/pycopm.py b/src/pycopm/core/pycopm.py index 7bf44de..4d48135 100644 --- a/src/pycopm/core/pycopm.py +++ b/src/pycopm/core/pycopm.py @@ -33,6 +33,7 @@ def pycopm(): dic["mode"] = cmdargs["mode"].strip() # What to run dic["label"] = cmdargs["label"].strip() # Prefix to the generted inc files dic["ijk"] = cmdargs["ijk"].strip() # ijk indices to map to the coarse model + dic["remove"] = int(cmdargs["remove"].strip()) # Remove CONFACT and KH dic["encoding"] = cmdargs["encoding"].strip() dic["pvcorr"] = int(cmdargs["pvcorr"]) dic["cijk"] = "yes" @@ -177,7 +178,8 @@ def load_parser(): default="", help="Use 'min', 'max', or 'mean' to scale permx, permy, permz, poro, swatinit, and all " "mult(-)xyz ('' by default, i.e., using the arithmetic average for permx/permy, harmonic" - " average for permz, and the mean for the rest).", + " average for permz, mean for mult(-)xyz, and the pore volume weighted mean for the " + "rest).", ) parser.add_argument( "-p", @@ -185,6 +187,14 @@ def load_parser(): default=0, help="Add the removed pore volume to the closest coarser cells ('0' by default).", ) + parser.add_argument( + "-r", + "--remove", + default="2", + help="Remove CONFACT and KH from COMPDAT (1) and also remove PEQVR (2) (ITEM 13, the " + "last entry) to compute the well transmisibility connections internally in OPM Flow " + "using the grid properties ('2' by default; '0' to not remove).", + ) parser.add_argument( "-j", "--jump", diff --git a/src/pycopm/utils/generate_coarser_files.py b/src/pycopm/utils/generate_coarser_files.py index 8be07aa..26585f0 100644 --- a/src/pycopm/utils/generate_coarser_files.py +++ b/src/pycopm/utils/generate_coarser_files.py @@ -72,7 +72,7 @@ def create_deck(dic): ) sys.exit() dic["field"] = "generic" - dic["props"] = ["poro", "permx", "permy", "permz"] + dic["props"] = ["permx", "permy", "permz", "poro"] dic["base"] = dic["props"] + ["grid"] dic["regions"] = [] dic["grids"] = [] @@ -137,16 +137,17 @@ def create_deck(dic): n ] if not dic["show"]: - dic["permx"][cell.global_index] = ( - dic["ini"].iget_kw("PERMX")[0][n] * d_z[cell.global_index] - ) - dic["permy"][cell.global_index] = ( - dic["ini"].iget_kw("PERMY")[0][n] * d_z[cell.global_index] - ) - if dic["ini"].iget_kw("PERMZ")[0][n] != 0: + dic["permx"][cell.global_index] *= d_z[cell.global_index] + dic["permy"][cell.global_index] *= d_z[cell.global_index] + if dic["permz"][cell.global_index] != 0: dic["permz"][cell.global_index] = ( - d_z[cell.global_index] / dic["ini"].iget_kw("PERMZ")[0][n] + d_z[cell.global_index] / dic["permz"][cell.global_index] ) + dic["poro"][cell.global_index] *= dic["porv"][cell.global_index] + if "swatinit" in dic["props"]: + dic["swatinit"][cell.global_index] *= dic["porv"][ + cell.global_index + ] n += 1 # Coarsening @@ -229,24 +230,26 @@ def map_properties(dic, actnum, d_z, z_t, z_b, z_b_t): else: rmv = 0 * dz_c + 1 dic["actnum_c"] = [int(val) for val in clust] - c_c = pd.Series(dic["porv"]).groupby(dic["con"]).sum() - dic["porv_c"] = [f"{val}" for val in c_c] + p_vs = pd.Series(dic["porv"]).groupby(dic["con"]).sum() + dic["porv_c"] = [f"{val}" for val in p_vs] for name in dic["props"]: if not dic["show"]: + c_c = pd.Series(dic[name]).groupby(dic["con"]).sum() if name in ["permx", "permy"]: - c_c = pd.Series(dic[name]).groupby(dic["con"]).sum() dic[f"{name}_c"] = [ f"{val/h_t}" if h_t * val > 0 else "0" for val, h_t in zip(c_c, h_tot) ] elif name == "permz": - c_c = pd.Series(dic[name]).groupby(dic["con"]).sum() dic["permz_c"] = [ f"{h_t/val}" if h_t * val > 0 else "0" for val, h_t in zip(c_c, h_tot) ] + elif name in ["poro", "swatinit"]: + dic[f"{name}_c"] = [ + f"{val/p_v}" if p_v > 0 else "0" for val, p_v in zip(c_c, p_vs) + ] else: - c_c = pd.Series(dic[name]).groupby(dic["con"]).sum() dic[f"{name}_c"] = [ f"{val/fre}" if fre > 0 else "0" for val, fre in zip(c_c, freq) ] @@ -877,6 +880,12 @@ def handle_segmented_wells(dic, nrwo): edit[2] = str(dic["jc"][int(edit[2])]) edit[3] = str(dic["kc"][int(edit[3])]) edit[4] = str(dic["kc"][int(edit[4])]) + if dic["remove"] > 0 and len(edit) > 7: + edit[7] = "1*" + if dic["remove"] > 0 and len(edit) > 9: + edit[9] = "1*" + if dic["remove"] > 1 and len(edit) > 12: + edit[-2] = "" dic["lol"].append(" ".join(edit)) return True if dic["compsegs"]: