fmu-pem 0.0.2__tar.gz → 0.0.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {fmu_pem-0.0.2 → fmu_pem-0.0.4}/.gitignore +11 -0
- {fmu_pem-0.0.2 → fmu_pem-0.0.4}/ERT/run_pem.ert +11 -10
- {fmu_pem-0.0.2 → fmu_pem-0.0.4}/PKG-INFO +19 -11
- {fmu_pem-0.0.2 → fmu_pem-0.0.4}/README.md +16 -9
- {fmu_pem-0.0.2 → fmu_pem-0.0.4}/SECURITY.md +2 -2
- fmu_pem-0.0.4/documentation/docs/.vitepress/config.mts +59 -0
- fmu_pem-0.0.4/documentation/docs/difference-properties.md +28 -0
- fmu_pem-0.0.4/documentation/docs/effective-mineral-properties.md +48 -0
- fmu_pem-0.0.4/documentation/docs/effective-pressure.md +38 -0
- fmu_pem-0.0.4/documentation/docs/ert-configuration.md +18 -0
- fmu_pem-0.0.4/documentation/docs/ert.tmLanguage.json +155 -0
- fmu_pem-0.0.4/documentation/docs/fluid-properties.md +210 -0
- fmu_pem-0.0.4/documentation/docs/images/The-phase-transition-diagram-of-carbon-dioxide.png +0 -0
- fmu_pem-0.0.4/documentation/docs/images/brine_properties.png +0 -0
- fmu_pem-0.0.4/documentation/docs/images/brine_properties_complete.png +0 -0
- fmu_pem-0.0.4/documentation/docs/images/bulk_modulus_vs_brine_salinity.png +0 -0
- fmu_pem-0.0.4/documentation/docs/images/bulk_modulus_vs_quartz_fraction.png +0 -0
- fmu_pem-0.0.4/documentation/docs/images/co2_properties_complete.png +0 -0
- fmu_pem-0.0.4/documentation/docs/images/co2_properties_meshgrid.png +0 -0
- fmu_pem-0.0.4/documentation/docs/images/density_vs_brine_salinity.png +0 -0
- fmu_pem-0.0.4/documentation/docs/images/fluid_density_comparison.png +0 -0
- fmu_pem-0.0.4/documentation/docs/images/gas_properties_complete.png +0 -0
- fmu_pem-0.0.4/documentation/docs/images/isotope_analysis.png +0 -0
- fmu_pem-0.0.4/documentation/docs/images/oil_properties_complete.png +0 -0
- fmu_pem-0.0.4/documentation/docs/images/shear_modulus_vs_quartz_fraction.png +0 -0
- fmu_pem-0.0.4/documentation/docs/images/wood_brie.png +0 -0
- fmu_pem-0.0.4/documentation/docs/import-sim-results.md +90 -0
- {fmu_pem-0.0.2 → fmu_pem-0.0.4}/documentation/docs/index.md +4 -1
- fmu_pem-0.0.4/documentation/docs/mineral-properties.md +25 -0
- fmu_pem-0.0.4/documentation/docs/model-file-formats.md +124 -0
- {fmu_pem-0.0.2 → fmu_pem-0.0.4}/documentation/docs/pem-configuration.md +44 -15
- fmu_pem-0.0.4/documentation/docs/saturated-rock.md +183 -0
- fmu_pem-0.0.4/documentation/docs/save-results.md +24 -0
- fmu_pem-0.0.4/documentation/docs/use-cases.md +52 -0
- {fmu_pem-0.0.2 → fmu_pem-0.0.4}/documentation/docs/yaml-edit/YamlEdit.tsx +19 -6
- fmu_pem-0.0.4/documentation/docs/yaml-validation.md +20 -0
- {fmu_pem-0.0.2 → fmu_pem-0.0.4}/documentation/package-lock.json +435 -15
- {fmu_pem-0.0.2 → fmu_pem-0.0.4}/documentation/package.json +1 -0
- {fmu_pem-0.0.2 → fmu_pem-0.0.4}/pyproject.toml +5 -1
- fmu_pem-0.0.4/scripts/brie_test.ipynb +93 -0
- fmu_pem-0.0.4/scripts/brine_properties.ipynb +273 -0
- fmu_pem-0.0.4/scripts/co2_properties.ipynb +392 -0
- fmu_pem-0.0.4/scripts/eff_min_props.ipynb +152 -0
- fmu_pem-0.0.4/scripts/gas_properties.ipynb +227 -0
- fmu_pem-0.0.4/scripts/oil_properties.ipynb +272 -0
- {fmu_pem-0.0.2 → fmu_pem-0.0.4}/src/fmu/pem/__init__.py +2 -0
- fmu_pem-0.0.4/src/fmu/pem/__main__.py +106 -0
- {fmu_pem-0.0.2 → fmu_pem-0.0.4}/src/fmu/pem/forward_models/pem_model.py +21 -26
- {fmu_pem-0.0.2 → fmu_pem-0.0.4}/src/fmu/pem/pem_functions/__init__.py +2 -2
- fmu_pem-0.0.4/src/fmu/pem/pem_functions/density.py +49 -0
- fmu_pem-0.0.4/src/fmu/pem/pem_functions/effective_pressure.py +273 -0
- fmu_pem-0.0.4/src/fmu/pem/pem_functions/estimate_saturated_rock.py +282 -0
- fmu_pem-0.0.4/src/fmu/pem/pem_functions/fluid_properties.py +488 -0
- {fmu_pem-0.0.2 → fmu_pem-0.0.4}/src/fmu/pem/pem_functions/mineral_properties.py +77 -74
- fmu_pem-0.0.4/src/fmu/pem/pem_functions/pressure_sensitivity.py +430 -0
- fmu_pem-0.0.4/src/fmu/pem/pem_functions/regression_models.py +293 -0
- fmu_pem-0.0.4/src/fmu/pem/pem_functions/run_friable_model.py +188 -0
- fmu_pem-0.0.4/src/fmu/pem/pem_functions/run_patchy_cement_model.py +182 -0
- fmu_pem-0.0.2/src/fmu/pem/pem_functions/run_t_matrix_and_pressure.py → fmu_pem-0.0.4/src/fmu/pem/pem_functions/run_t_matrix_model.py +48 -27
- {fmu_pem-0.0.2 → fmu_pem-0.0.4}/src/fmu/pem/pem_utilities/__init__.py +30 -10
- {fmu_pem-0.0.2 → fmu_pem-0.0.4}/src/fmu/pem/pem_utilities/cumsum_properties.py +29 -37
- {fmu_pem-0.0.2 → fmu_pem-0.0.4}/src/fmu/pem/pem_utilities/delta_cumsum_time.py +8 -13
- fmu_pem-0.0.4/src/fmu/pem/pem_utilities/enum_defs.py +127 -0
- {fmu_pem-0.0.2 → fmu_pem-0.0.4}/src/fmu/pem/pem_utilities/export_routines.py +84 -72
- fmu_pem-0.0.4/src/fmu/pem/pem_utilities/fipnum_pvtnum_utilities.py +217 -0
- fmu_pem-0.0.4/src/fmu/pem/pem_utilities/import_config.py +119 -0
- fmu_pem-0.0.4/src/fmu/pem/pem_utilities/import_routines.py +150 -0
- fmu_pem-0.0.4/src/fmu/pem/pem_utilities/pem_class_definitions.py +171 -0
- fmu_pem-0.0.4/src/fmu/pem/pem_utilities/pem_config_validation.py +730 -0
- fmu_pem-0.0.4/src/fmu/pem/pem_utilities/rpm_models.py +575 -0
- {fmu_pem-0.0.2 → fmu_pem-0.0.4}/src/fmu/pem/pem_utilities/update_grid.py +3 -2
- {fmu_pem-0.0.2 → fmu_pem-0.0.4}/src/fmu/pem/pem_utilities/utils.py +90 -38
- fmu_pem-0.0.4/src/fmu/pem/run_pem.py +116 -0
- {fmu_pem-0.0.2 → fmu_pem-0.0.4}/src/fmu/pem/version.py +16 -3
- {fmu_pem-0.0.2 → fmu_pem-0.0.4}/src/fmu_pem.egg-info/PKG-INFO +19 -11
- {fmu_pem-0.0.2 → fmu_pem-0.0.4}/src/fmu_pem.egg-info/SOURCES.txt +45 -4
- {fmu_pem-0.0.2 → fmu_pem-0.0.4}/src/fmu_pem.egg-info/requires.txt +2 -1
- {fmu_pem-0.0.2 → fmu_pem-0.0.4}/tests/conftest.py +5 -8
- fmu_pem-0.0.4/tests/data/ert/model/run_pem_condensate.ert +14 -0
- fmu_pem-0.0.4/tests/data/ert/model/run_pem_no_condensate.ert +14 -0
- fmu_pem-0.0.4/tests/data/share/results/grids/eclipsegrid_pem.roff +0 -0
- fmu_pem-0.0.4/tests/data/sim2seis/input/pem/simgrid--carbfraction.roff +0 -0
- fmu_pem-0.0.4/tests/data/sim2seis/input/pem/simgrid--coalfraction.roff +0 -0
- fmu_pem-0.0.4/tests/data/sim2seis/input/pem/simgrid--vsh.roff +0 -0
- fmu_pem-0.0.4/tests/data/sim2seis/model/pem_config_condensate.yml +193 -0
- fmu_pem-0.0.4/tests/data/sim2seis/model/pem_config_condensate_multi.yml +182 -0
- fmu_pem-0.0.4/tests/data/sim2seis/model/pem_config_no_condensate.yml +195 -0
- fmu_pem-0.0.4/tests/data/sim2seis/model/vp_exp_model.pkl +0 -0
- fmu_pem-0.0.4/tests/data/sim2seis/model/vs_exp_model.pkl +0 -0
- fmu_pem-0.0.4/tests/test_config_file_validation.py +113 -0
- fmu_pem-0.0.4/tests/test_density.py +110 -0
- fmu_pem-0.0.4/tests/test_ert_hooks.py +137 -0
- fmu_pem-0.0.4/tests/test_ert_hooks_condensate.py +121 -0
- fmu_pem-0.0.4/tests/test_fipnum_and_pvtnum.py +83 -0
- fmu_pem-0.0.4/tests/test_fipnum_pvtnum_utilities.py +117 -0
- fmu_pem-0.0.4/tests/test_fluids.py +351 -0
- {fmu_pem-0.0.2 → fmu_pem-0.0.4}/tests/test_friable.py +30 -27
- {fmu_pem-0.0.2 → fmu_pem-0.0.4}/tests/test_patchy_cement.py +31 -27
- fmu_pem-0.0.4/tests/test_pem.py +105 -0
- fmu_pem-0.0.4/tests/test_pressure_sensitivity.py +650 -0
- fmu_pem-0.0.4/tests/test_regression.py +581 -0
- {fmu_pem-0.0.2 → fmu_pem-0.0.4}/tests/test_t_matrix.py +54 -46
- {fmu_pem-0.0.2 → fmu_pem-0.0.4}/tests/test_utils.py +22 -15
- fmu_pem-0.0.2/documentation/docs/.vitepress/config.mts +0 -30
- fmu_pem-0.0.2/documentation/docs/ert-configuration.md +0 -15
- fmu_pem-0.0.2/src/fmu/pem/__main__.py +0 -53
- fmu_pem-0.0.2/src/fmu/pem/pem_functions/density.py +0 -55
- fmu_pem-0.0.2/src/fmu/pem/pem_functions/effective_pressure.py +0 -169
- fmu_pem-0.0.2/src/fmu/pem/pem_functions/estimate_saturated_rock.py +0 -90
- fmu_pem-0.0.2/src/fmu/pem/pem_functions/fluid_properties.py +0 -286
- fmu_pem-0.0.2/src/fmu/pem/pem_functions/regression_models.py +0 -261
- fmu_pem-0.0.2/src/fmu/pem/pem_functions/run_friable_model.py +0 -119
- fmu_pem-0.0.2/src/fmu/pem/pem_functions/run_patchy_cement_model.py +0 -120
- fmu_pem-0.0.2/src/fmu/pem/pem_utilities/enum_defs.py +0 -70
- fmu_pem-0.0.2/src/fmu/pem/pem_utilities/import_config.py +0 -93
- fmu_pem-0.0.2/src/fmu/pem/pem_utilities/import_routines.py +0 -162
- fmu_pem-0.0.2/src/fmu/pem/pem_utilities/pem_class_definitions.py +0 -113
- fmu_pem-0.0.2/src/fmu/pem/pem_utilities/pem_config_validation.py +0 -538
- fmu_pem-0.0.2/src/fmu/pem/pem_utilities/rpm_models.py +0 -202
- fmu_pem-0.0.2/src/fmu/pem/run_pem.py +0 -98
- fmu_pem-0.0.2/tests/data/ert/model/run_pem_condensate.ert +0 -11
- fmu_pem-0.0.2/tests/data/ert/model/run_pem_no_condensate.ert +0 -11
- fmu_pem-0.0.2/tests/data/sim2seis/input/pem/simgrid--ntg_pem.roff +0 -0
- fmu_pem-0.0.2/tests/data/sim2seis/input/pem/simgrid.roff +0 -0
- fmu_pem-0.0.2/tests/data/sim2seis/model/pem_config_condensate.yml +0 -125
- fmu_pem-0.0.2/tests/data/sim2seis/model/pem_config_no_condensate.yml +0 -126
- fmu_pem-0.0.2/tests/data/sim2seis/model/vp_exp_model.pkl +0 -0
- fmu_pem-0.0.2/tests/data/sim2seis/model/vs_exp_model.pkl +0 -0
- fmu_pem-0.0.2/tests/test_config_file_validation.py +0 -33
- fmu_pem-0.0.2/tests/test_dry_rock.py +0 -49
- fmu_pem-0.0.2/tests/test_ert_hooks.py +0 -201
- fmu_pem-0.0.2/tests/test_ert_hooks_condensate.py +0 -173
- fmu_pem-0.0.2/tests/test_pem.py +0 -18
- fmu_pem-0.0.2/tests/test_regression.py +0 -141
- {fmu_pem-0.0.2 → fmu_pem-0.0.4}/.github/workflows/build_test_deploy.yml +0 -0
- {fmu_pem-0.0.2 → fmu_pem-0.0.4}/.pre-commit-config.yaml +0 -0
- {fmu_pem-0.0.2 → fmu_pem-0.0.4}/LICENSE +0 -0
- {fmu_pem-0.0.2 → fmu_pem-0.0.4}/documentation/docs/public/fmu_logo_dark_mode.svg +0 -0
- {fmu_pem-0.0.2 → fmu_pem-0.0.4}/documentation/docs/public/fmu_logo_light_mode.svg +0 -0
- {fmu_pem-0.0.2 → fmu_pem-0.0.4}/documentation/docs/yaml-edit/schema.tsx +0 -0
- {fmu_pem-0.0.2 → fmu_pem-0.0.4}/setup.cfg +0 -0
- {fmu_pem-0.0.2 → fmu_pem-0.0.4}/src/fmu/__init__.py +0 -0
- {fmu_pem-0.0.2 → fmu_pem-0.0.4}/src/fmu/pem/forward_models/__init__.py +0 -0
- {fmu_pem-0.0.2 → fmu_pem-0.0.4}/src/fmu/pem/hook_implementations/__init__.py +0 -0
- {fmu_pem-0.0.2 → fmu_pem-0.0.4}/src/fmu/pem/hook_implementations/jobs.py +0 -0
- {fmu_pem-0.0.2 → fmu_pem-0.0.4}/src/fmu_pem.egg-info/dependency_links.txt +0 -0
- {fmu_pem-0.0.2 → fmu_pem-0.0.4}/src/fmu_pem.egg-info/entry_points.txt +0 -0
- {fmu_pem-0.0.2 → fmu_pem-0.0.4}/src/fmu_pem.egg-info/top_level.txt +0 -0
- {fmu_pem-0.0.2 → fmu_pem-0.0.4}/tests/__init__.py +0 -0
- {fmu_pem-0.0.2 → fmu_pem-0.0.4}/tests/data/fmuconfig/output/global_variables.yml +0 -0
- {fmu_pem-0.0.2 → fmu_pem-0.0.4}/tests/data/fmuconfig/output/global_variables_pred.yml +0 -0
- {fmu_pem-0.0.2 → fmu_pem-0.0.4}/tests/data/sim2seis/input/pem/ECLIPSE.EGRID +0 -0
- {fmu_pem-0.0.2 → fmu_pem-0.0.4}/tests/data/sim2seis/input/pem/ECLIPSE.INIT +0 -0
- {fmu_pem-0.0.2 → fmu_pem-0.0.4}/tests/data/sim2seis/input/pem/ECLIPSE.UNRST +0 -0
- {fmu_pem-0.0.2 → fmu_pem-0.0.4}/tests/data/sim2seis/input/pem/export_grid.roff +0 -0
- {fmu_pem-0.0.2 → fmu_pem-0.0.4}/tests/data/sim2seis/input/pem/export_prop.roff +0 -0
- {fmu_pem-0.0.2 → fmu_pem-0.0.4}/tests/data/sim2seis/model/carbonate_pressure_model_vp_exp.pkl +0 -0
- {fmu_pem-0.0.2 → fmu_pem-0.0.4}/tests/data/sim2seis/model/carbonate_pressure_model_vs_exp.pkl +0 -0
- {fmu_pem-0.0.2 → fmu_pem-0.0.4}/tests/data/sim2seis/model/t_mat_params_exp.pkl +0 -0
- {fmu_pem-0.0.2 → fmu_pem-0.0.4}/tests/data/sim2seis/model/t_mat_params_petec.pkl +0 -0
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
/.venv/
|
|
2
|
+
/venv/
|
|
3
|
+
/venv_external/
|
|
2
4
|
/.vscode/
|
|
3
5
|
# Local debug scripts etc
|
|
4
6
|
Notebooks_and_scripts/
|
|
@@ -9,6 +11,9 @@ Notebooks/
|
|
|
9
11
|
/dist/
|
|
10
12
|
/src/fmu_pem.egg-info/
|
|
11
13
|
**/__pycache__/
|
|
14
|
+
**/*_cache/
|
|
15
|
+
/.idea/
|
|
16
|
+
/.vscode/
|
|
12
17
|
src/fmu/pem/version.py
|
|
13
18
|
|
|
14
19
|
# npm and node relevant build files
|
|
@@ -19,3 +24,9 @@ dist
|
|
|
19
24
|
fmu-pem-schema.json
|
|
20
25
|
**/.vitepress/dist
|
|
21
26
|
**/.vitepress/cache
|
|
27
|
+
/ERT/storage/
|
|
28
|
+
/ERT/logs/
|
|
29
|
+
/ERT/.runpath_list
|
|
30
|
+
/logs/
|
|
31
|
+
/tests/data/sim2seis/input/pem/venv_ext/
|
|
32
|
+
scripts/debug_lines.py
|
|
@@ -7,7 +7,8 @@
|
|
|
7
7
|
|
|
8
8
|
DEFINE <USER> $USER
|
|
9
9
|
DEFINE <SCRATCH> /scratch/fmu
|
|
10
|
-
DEFINE <CONFIG_PATH> /private/hfle/drogon_hfle/dev/
|
|
10
|
+
DEFINE <CONFIG_PATH> /private/hfle/drogon_hfle/dev/sim2seis/model
|
|
11
|
+
DEFINE <MODEL_PATH> /private/hfle/drogon_hfle/dev/sim2seis/model
|
|
11
12
|
|
|
12
13
|
NUM_REALIZATIONS 1
|
|
13
14
|
RUNPATH <SCRATCH>/<USER>/fmu_sim2seis_pem/realization-<IENS>/iter-<ITER>
|
|
@@ -15,11 +16,9 @@ RUNPATH <SCRATCH>/<USER>/fmu_sim2seis_pem/realization-<IENS>/iter-<ITER>
|
|
|
15
16
|
-- Copy required input files for the PEM, directories are automatically created by COPY_FILE
|
|
16
17
|
FORWARD_MODEL COPY_FILE(<FROM>=<CONFIG_PATH>/../../fmuconfig/output/global_variables.yml, <TO>=<RUNPATH>/fmuconfig/output/global_variables.yml)
|
|
17
18
|
FORWARD_MODEL COPY_FILE(<FROM>=<CONFIG_PATH>/../../fmuconfig/output/global_variables_pred.yml, <TO>=<RUNPATH>/fmuconfig/output/global_variables_pred.yml)
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
FORWARD_MODEL
|
|
21
|
-
FORWARD_MODEL COPY_FILE(<FROM>=<CONFIG_PATH>/../../sim2seis/input/pem/export_grid.roff, <TO>=<RUNPATH>/sim2seis/input/pem/export_grid.roff)
|
|
22
|
-
FORWARD_MODEL COPY_FILE(<FROM>=<CONFIG_PATH>/../../sim2seis/input/pem/export_prop.roff, <TO>=<RUNPATH>/sim2seis/input/pem/export_prop.roff)
|
|
19
|
+
|
|
20
|
+
-- Copy the input file directory, it can vary which volume fraction files that are included in the PEM run
|
|
21
|
+
FORWARD_MODEL COPY_DIRECTORY(<FROM>=<CONFIG_PATH>/../../sim2seis/input/pem, <TO>=<RUNPATH>/sim2seis/input)
|
|
23
22
|
|
|
24
23
|
-- Copy all model files in ../../sim2seis/model for flexibility. The PEM .yml file (new_pem_config.yml) is
|
|
25
24
|
-- always required, .pkl model files are required if tmatrix model is used in the PEM
|
|
@@ -30,12 +29,14 @@ FORWARD_MODEL MAKE_DIRECTORY(<DIRECTORY> = <RUNPATH>/sim2seis/output/pem)
|
|
|
30
29
|
FORWARD_MODEL MAKE_DIRECTORY(<DIRECTORY> = <RUNPATH>/share/results/grids)
|
|
31
30
|
|
|
32
31
|
-- Create start directory
|
|
33
|
-
FORWARD_MODEL MAKE_DIRECTORY(<DIRECTORY> = <RUNPATH>/
|
|
32
|
+
FORWARD_MODEL MAKE_DIRECTORY(<DIRECTORY> = <RUNPATH>/sim2seis/model)
|
|
34
33
|
|
|
35
34
|
-- PEM parameter setting
|
|
36
|
-
DEFINE <
|
|
37
|
-
DEFINE <RELPATH_PEM> <RUNPATH>/sim2seis/model
|
|
35
|
+
DEFINE <PEM_CONFIGDIR> <RUNPATH>/sim2seis/model
|
|
38
36
|
DEFINE <PEM_CONFIG_FILE_NAME> new_pem_config.yml
|
|
37
|
+
DEFINE <GLOBAL_PATH> ../../fmuconfig/output
|
|
38
|
+
DEFINE <GLOBAL_CONFIG_FILE> global_variables.yml
|
|
39
|
+
DEFINE <MOD_PREFIX> HIST
|
|
39
40
|
|
|
40
41
|
-- Run the PEM
|
|
41
|
-
FORWARD_MODEL PEM(<
|
|
42
|
+
FORWARD_MODEL PEM(<CONFIG_DIR>=<PEM_CONFIGDIR>, <CONFIG_FILE>=<PEM_CONFIG_FILE_NAME>, <GLOBAL_DIR>=<GLOBAL_PATH>, <GLOBAL_FILE>=<GLOBAL_CONFIG_FILE>, <MODEL_DIR>=<MODEL_PATH>, <MOD_DATE_PREFIX>=<MOD_PREFIX>)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: fmu-pem
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.4
|
|
4
4
|
Summary: pem
|
|
5
5
|
License: GNU GENERAL PUBLIC LICENSE
|
|
6
6
|
Version 3, 29 June 2007
|
|
@@ -695,7 +695,8 @@ Requires-Dist: xtgeo>=4.7.1
|
|
|
695
695
|
Requires-Dist: fmu-tools
|
|
696
696
|
Requires-Dist: fmu-config
|
|
697
697
|
Requires-Dist: fmu-dataio
|
|
698
|
-
Requires-Dist:
|
|
698
|
+
Requires-Dist: fmu-datamodels
|
|
699
|
+
Requires-Dist: rock-physics-open>=0.3.3
|
|
699
700
|
Requires-Dist: PyYAML>=6.0.1
|
|
700
701
|
Requires-Dist: pydantic
|
|
701
702
|
Requires-Dist: ert>=14.1.10
|
|
@@ -716,7 +717,8 @@ Requires-Dist: sphinx_rtd_theme; extra == "docs"
|
|
|
716
717
|
Dynamic: license-file
|
|
717
718
|
|
|
718
719
|
> [!WARNING]
|
|
719
|
-
> `fmu-pem` is not yet qualified technology, and as of today only applicable for
|
|
720
|
+
> `fmu-pem` is not yet qualified technology, and as of today only applicable for
|
|
721
|
+
selected pilot test fields.
|
|
720
722
|
|
|
721
723
|
**[📚 User documentation](https://equinor.github.io/fmu-pem/)**
|
|
722
724
|
|
|
@@ -731,25 +733,28 @@ based on the [rock-physics-open](https://github.com/equinor/rock-physics-open) l
|
|
|
731
733
|
|
|
732
734
|
To install `fmu-pem`, first activate a virtual environment, then type:
|
|
733
735
|
|
|
734
|
-
```
|
|
736
|
+
```shell
|
|
735
737
|
pip install fmu-pem
|
|
736
738
|
```
|
|
737
739
|
|
|
738
740
|
The PEM is controlled by parameter settings in a *yaml-file*, given as part of the
|
|
739
|
-
command line arguments, or by the workflow parameter if it is run as an ERT forward
|
|
741
|
+
command line arguments, or by the workflow parameter if it is run as an ERT forward
|
|
742
|
+
model.
|
|
740
743
|
|
|
741
744
|
### Calibration of rock physics models
|
|
742
745
|
|
|
743
746
|
Calibration of the rock physics models is normally carried out in
|
|
744
747
|
[RokDoc](https://www.ikonscience.com/rokdoc-geoprediction-software-platform/)
|
|
745
|
-
prior to running the PEM. Fluid and mineral properties can be found in the RokDoc
|
|
746
|
-
from LFP logs, if they are available.
|
|
748
|
+
prior to running the PEM. Fluid and mineral properties can be found in the RokDoc
|
|
749
|
+
project, or from LFP logs, if they are available.
|
|
747
750
|
|
|
748
|
-
> [!NOTE]
|
|
749
|
-
> The fluid models contained in this module may not cover all possible cases. Gas
|
|
750
|
-
> or reservoir pressure under hydrocarbon bubble point will
|
|
751
|
+
> [!NOTE]
|
|
752
|
+
> The fluid models contained in this module may not cover all possible cases. Gas
|
|
753
|
+
condensate, very heavy oil, > or reservoir pressure under hydrocarbon bubble point will
|
|
754
|
+
need additional proprietary code to run.
|
|
751
755
|
>
|
|
752
756
|
> Equinor users can install additional proprietary models using
|
|
757
|
+
|
|
753
758
|
> ```bash
|
|
754
759
|
> pip install "git+ssh://git@github.com/equinor/rock-physics"`
|
|
755
760
|
> ```
|
|
@@ -757,10 +762,13 @@ from LFP logs, if they are available.
|
|
|
757
762
|
## How to develop fmu-pem?
|
|
758
763
|
|
|
759
764
|
Developing the user interface can be done by:
|
|
765
|
+
|
|
760
766
|
```bash
|
|
761
767
|
cd ./documentation
|
|
762
768
|
npm ci # Install dependencies
|
|
763
769
|
npm run create-json-schema # Extract JSON schema from Python code
|
|
764
770
|
npm run docs:dev # Start local development server
|
|
765
771
|
```
|
|
766
|
-
|
|
772
|
+
|
|
773
|
+
The JSON schema itself (type, title, description etc.) comes from the corresponding
|
|
774
|
+
Pydantic models in the Python code.
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
> [!WARNING]
|
|
2
|
-
> `fmu-pem` is not yet qualified technology, and as of today only applicable for
|
|
2
|
+
> `fmu-pem` is not yet qualified technology, and as of today only applicable for
|
|
3
|
+
selected pilot test fields.
|
|
3
4
|
|
|
4
5
|
**[📚 User documentation](https://equinor.github.io/fmu-pem/)**
|
|
5
6
|
|
|
@@ -14,25 +15,28 @@ based on the [rock-physics-open](https://github.com/equinor/rock-physics-open) l
|
|
|
14
15
|
|
|
15
16
|
To install `fmu-pem`, first activate a virtual environment, then type:
|
|
16
17
|
|
|
17
|
-
```
|
|
18
|
+
```shell
|
|
18
19
|
pip install fmu-pem
|
|
19
20
|
```
|
|
20
21
|
|
|
21
22
|
The PEM is controlled by parameter settings in a *yaml-file*, given as part of the
|
|
22
|
-
command line arguments, or by the workflow parameter if it is run as an ERT forward
|
|
23
|
+
command line arguments, or by the workflow parameter if it is run as an ERT forward
|
|
24
|
+
model.
|
|
23
25
|
|
|
24
26
|
### Calibration of rock physics models
|
|
25
27
|
|
|
26
28
|
Calibration of the rock physics models is normally carried out in
|
|
27
29
|
[RokDoc](https://www.ikonscience.com/rokdoc-geoprediction-software-platform/)
|
|
28
|
-
prior to running the PEM. Fluid and mineral properties can be found in the RokDoc
|
|
29
|
-
from LFP logs, if they are available.
|
|
30
|
+
prior to running the PEM. Fluid and mineral properties can be found in the RokDoc
|
|
31
|
+
project, or from LFP logs, if they are available.
|
|
30
32
|
|
|
31
|
-
> [!NOTE]
|
|
32
|
-
> The fluid models contained in this module may not cover all possible cases. Gas
|
|
33
|
-
> or reservoir pressure under hydrocarbon bubble point will
|
|
33
|
+
> [!NOTE]
|
|
34
|
+
> The fluid models contained in this module may not cover all possible cases. Gas
|
|
35
|
+
condensate, very heavy oil, > or reservoir pressure under hydrocarbon bubble point will
|
|
36
|
+
need additional proprietary code to run.
|
|
34
37
|
>
|
|
35
38
|
> Equinor users can install additional proprietary models using
|
|
39
|
+
|
|
36
40
|
> ```bash
|
|
37
41
|
> pip install "git+ssh://git@github.com/equinor/rock-physics"`
|
|
38
42
|
> ```
|
|
@@ -40,10 +44,13 @@ from LFP logs, if they are available.
|
|
|
40
44
|
## How to develop fmu-pem?
|
|
41
45
|
|
|
42
46
|
Developing the user interface can be done by:
|
|
47
|
+
|
|
43
48
|
```bash
|
|
44
49
|
cd ./documentation
|
|
45
50
|
npm ci # Install dependencies
|
|
46
51
|
npm run create-json-schema # Extract JSON schema from Python code
|
|
47
52
|
npm run docs:dev # Start local development server
|
|
48
53
|
```
|
|
49
|
-
|
|
54
|
+
|
|
55
|
+
The JSON schema itself (type, title, description etc.) comes from the corresponding
|
|
56
|
+
Pydantic models in the Python code.
|
|
@@ -2,10 +2,10 @@ If you discover a security vulnerability in this project, please follow the step
|
|
|
2
2
|
|
|
3
3
|
### For "non-critical" issues
|
|
4
4
|
|
|
5
|
-
- **Alternative A:**
|
|
5
|
+
- **Alternative A:**
|
|
6
6
|
Create a GitHub issue for the vulnerability. Avoid putting sensitive information in the issue.
|
|
7
7
|
|
|
8
|
-
- **Alternative B:**
|
|
8
|
+
- **Alternative B:**
|
|
9
9
|
Send an email to the projects maintainer describing the issue.
|
|
10
10
|
|
|
11
11
|
### For "critical" and time sensitive issues
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import {readFileSync} from "fs"
|
|
2
|
+
import {defineConfig} from 'vitepress'
|
|
3
|
+
|
|
4
|
+
// Copied from https://github.com/equinor/vscode-lang-ert/blob/master/syntaxes/ert.tmLanguage.json
|
|
5
|
+
const ertLanguageGrammar = JSON.parse(readFileSync("./docs/ert.tmLanguage.json"))
|
|
6
|
+
|
|
7
|
+
// https://vitepress.dev/reference/site-config
|
|
8
|
+
export default defineConfig({
|
|
9
|
+
title: "FMU PEM",
|
|
10
|
+
description: "User documentation for using fmu-pem",
|
|
11
|
+
head: [
|
|
12
|
+
["link", {rel: "stylesheet", href: "https://unpkg.com/tailwindcss@^2/dist/tailwind.min.css"}]
|
|
13
|
+
],
|
|
14
|
+
markdown: {
|
|
15
|
+
math: true,
|
|
16
|
+
languages: [ertLanguageGrammar]
|
|
17
|
+
},
|
|
18
|
+
themeConfig: {
|
|
19
|
+
// https://vitepress.dev/reference/default-theme-config
|
|
20
|
+
nav: [
|
|
21
|
+
{text: 'Home', link: '/'},
|
|
22
|
+
],
|
|
23
|
+
logo: {light: "/fmu_logo_light_mode.svg", dark: "/fmu_logo_dark_mode.svg"},
|
|
24
|
+
sidebar: [
|
|
25
|
+
{
|
|
26
|
+
text: 'Setup',
|
|
27
|
+
items: [
|
|
28
|
+
{
|
|
29
|
+
text: "fmu-PEM manual", link: "/use-cases", items: [
|
|
30
|
+
{text: 'Read and validate YAML file', link: '/yaml-validation'},
|
|
31
|
+
{text: 'Import reservoir simulator results', link: '/import-sim-results'},
|
|
32
|
+
{text: 'Estimate effective mineral properties', link: '/effective-mineral-properties'},
|
|
33
|
+
{text: 'Estimate effective fluid properties', link: '/fluid-properties'},
|
|
34
|
+
{text: 'Estimate effective pressure', link: '/effective-pressure'},
|
|
35
|
+
{text: 'Estimate saturated rock properties', link: '/saturated-rock'},
|
|
36
|
+
{text: '(Optional) estimate difference properties', link: '/difference-properties'},
|
|
37
|
+
{text: 'Save intermediate (optional) and final estimates', link: '/save-results'},
|
|
38
|
+
{text: 'Model file formats', link: '/model-file-formats'},
|
|
39
|
+
]
|
|
40
|
+
},
|
|
41
|
+
{text: 'ERT configuration', link: '/ert-configuration'},
|
|
42
|
+
{text: 'PEM configuration', link: '/pem-configuration'}
|
|
43
|
+
]
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
text: 'Developer Documentation',
|
|
47
|
+
items: [
|
|
48
|
+
{text: 'Zone-Aware Fluid Properties', link: '/zone-aware-fluids'},
|
|
49
|
+
{text: 'Zone-Based Saturated Rock Properties', link: '/zone-based-saturated-rock'},
|
|
50
|
+
{text: 'Zone Implementation Roadmap', link: '/zone-implementation-roadmap'}
|
|
51
|
+
]
|
|
52
|
+
}
|
|
53
|
+
],
|
|
54
|
+
socialLinks: [
|
|
55
|
+
{icon: 'github', link: 'https://github.com/equinor/fmu-pem'}
|
|
56
|
+
]
|
|
57
|
+
},
|
|
58
|
+
ignoreDeadLinks: true
|
|
59
|
+
})
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# Calculate difference properties
|
|
2
|
+
|
|
3
|
+
`fmu-pem` is normally used for estimating 4D seismic response, and difference between simulator model time steps
|
|
4
|
+
can be more important than absolute values. In `fmu-sim2seis` workflow, the difference is calculated from absolute
|
|
5
|
+
values in a set of `Vp`, `Vs` and `Rho` parameters, ref. [Save results](./save-results.md). Additional difference
|
|
6
|
+
parameters can be generated in `fmu-pem` for QC or calibration purposes.
|
|
7
|
+
|
|
8
|
+
A section in the YAML configuration file specifies which parameters are selected for difference calculation, and
|
|
9
|
+
what kind of difference attributes should be estimated:
|
|
10
|
+
|
|
11
|
+
```yaml
|
|
12
|
+
# For 4D parameters: settings for which difference parameters to calculate
|
|
13
|
+
diff_calculation:
|
|
14
|
+
AI: [diffpercent, ratio]
|
|
15
|
+
SI: [diffpercent, ratio]
|
|
16
|
+
VPVS: [ratio]
|
|
17
|
+
TWTPP: [diff]
|
|
18
|
+
DENS: [diffpercent]
|
|
19
|
+
VP: [diffpercent]
|
|
20
|
+
VS: [diffpercent]
|
|
21
|
+
SWAT: [diff]
|
|
22
|
+
SGAS: [diff]
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
For convenience, it is possible to calculate differences of input parameter, as well, as in the example above for
|
|
26
|
+
`SWAT` and `SGAS`. The three difference attributes that can be selected, are `diff`, `diffpercent` and `ratio`.
|
|
27
|
+
|
|
28
|
+
In the FMU directory structure, the difference estimates are stored in `share/results/grids`.
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# Effective mineral properties
|
|
2
|
+
|
|
3
|
+
A volume of rock will generally consist of several minerals, each having its own elastic properties. To calculate
|
|
4
|
+
the overall elastic properties of the volume, we need to know the elastic properties of each mineral, the volume
|
|
5
|
+
fractions of the minerals, and we must have a model for how to mix the volume fractions.
|
|
6
|
+
|
|
7
|
+
Default values for the elastic properties of the most common minerals are provided in `fmu-pem`, but they should
|
|
8
|
+
be verified in each case. Shale is often given as the effective mineral properties of a combination of constituents,
|
|
9
|
+
and it can range from a soft marine clay to a stiff, quartz-rich silt.
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
| Mineral | Density [kg/m^3] | Bulk modulus [GPa] | Shear modulus [GPa] |
|
|
13
|
+
|------------|------------------|--------------------|---------------------|
|
|
14
|
+
| Quartz | 2650.0 | 36.8 | 44.0 |
|
|
15
|
+
| Shale | 2680.0 | 25.0 | 12.0 |
|
|
16
|
+
| Calcite | 2710.0 | 76.8 | 32.0 |
|
|
17
|
+
| Dolomite | 2870.0 | 94.9 | 45.0 |
|
|
18
|
+
| Stevensite | 2490.0 | 32.5 | 45.0 |
|
|
19
|
+
|
|
20
|
+
<span id="table-1-mineral-properties"><strong>Table 1:</strong> Default values of elastic properties for common minerals.</span>
|
|
21
|
+
|
|
22
|
+
More mineral properties can be found in the **Rock Physics Handbook**.
|
|
23
|
+
|
|
24
|
+
Mavko, G., Mukerji, T., & Dvorkin, J. (2020). *The Rock Physics Handbook* (3rd ed.). Cambridge University Press.
|
|
25
|
+
|
|
26
|
+
## Volume fractions
|
|
27
|
+
|
|
28
|
+
Please make sure that the section on [volume fractions](./import-sim-results.md) is understood, and that the `YAML` file
|
|
29
|
+
contains information about all minerals that should be included in the PEM, and also if they are defined as volume
|
|
30
|
+
fractions or mineral fractions.
|
|
31
|
+
|
|
32
|
+
## Mix models for effective mineral properties
|
|
33
|
+
|
|
34
|
+
Two models for mixing minerals are available in `fmu-pem`: **Hashin-Shtrikman** and **Voigt-Reuss-Hill** average. The
|
|
35
|
+
difference between them is illustrated in [Figure 1](figure-1-bulk-modulus) and [Figure 2](figure-2-shear-modulus)
|
|
36
|
+
below. In this example, quartz is mixed with a soft marine clay in different proportions. As shown, there is negligible
|
|
37
|
+
difference in effective bulk modulus properties when selecting either Hashin-Shtrikman average or Voigt-Reuss-Hill average.
|
|
38
|
+
The upper and lower bounds of both methods are also included in the plots. The bounds for Hashin-Shtrikman are notably
|
|
39
|
+
narrower than for Voigt and Reuss bounds, with the latter representing the stiffest and softest theoretical combinations,
|
|
40
|
+
respectively.
|
|
41
|
+
|
|
42
|
+
<img src="./images/bulk_modulus_vs_quartz_fraction.png">
|
|
43
|
+
<span id="figure-1-bulk-modulus"><strong>Figure 1:</strong> Bulk modulus for a mix of quartz and marine clay.</span>
|
|
44
|
+
<br><br>
|
|
45
|
+
|
|
46
|
+
<img src="./images/shear_modulus_vs_quartz_fraction.png">
|
|
47
|
+
<span id="figure-2-shear-modulus"><strong>Figure 2:</strong> Shear modulus for a mix of quartz and marine clay.</span>
|
|
48
|
+
<br><br>
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# Effective pressure
|
|
2
|
+
|
|
3
|
+
The matrix of porous rocks will be affected by the effective stress in terms of porosity, permeability and elastic
|
|
4
|
+
moduli. In this context, we simplify it to regard elastic moduli to be stress sensitive, and to keep porosity
|
|
5
|
+
constant. `fmu-pem` does not include any modelling of permeability.
|
|
6
|
+
|
|
7
|
+
Although effective pressure is the commonly used term, it is somewhat inaccurate, and effective stress is more correct.
|
|
8
|
+
In the `fmu-pem` case, we simplify the stress tensor to an isotropic pressure. To estimate effective pressure, we need to
|
|
9
|
+
know the overburden pressure and the formation pressure at all grid cells. Formation pressure is provided by the
|
|
10
|
+
reservoir simulator model, but overburden pressure is not available there. The best source for overburden pressure is
|
|
11
|
+
provided by drilling or operational geology disciplines, and for most fields, it will be a single one-dimensional model,
|
|
12
|
+
or in some cases one model per structure in the field. The relationship between overburden, formation and effective
|
|
13
|
+
pressures is given as:
|
|
14
|
+
|
|
15
|
+
$$P_{eff} = P_{ob} - \alpha \cdot P_f$$
|
|
16
|
+
|
|
17
|
+
where $\alpha$ is the formation factor, also known as the Biot coefficient.
|
|
18
|
+
|
|
19
|
+
## Variation with time
|
|
20
|
+
|
|
21
|
+
As formation pressure is reduced by depletion, the effective pressure will vary with time. In `fmu-pem`, the effective
|
|
22
|
+
pressure is estimated for each time step in the reservoir simulator **.UNRST** file.
|
|
23
|
+
|
|
24
|
+
## Implementation in `fmu-pem`
|
|
25
|
+
|
|
26
|
+
Two versions of estimation of effective pressure are included in `fmu-pem`: either a constant overburden pressure at
|
|
27
|
+
top reservoir, or a linear depth trend. Formation factor is set to 1.0. These are the settings in the YAML config file:
|
|
28
|
+
|
|
29
|
+
```yaml
|
|
30
|
+
# Overburden pressure may be set to a constant, but the estimation is improved by using a depth trend
|
|
31
|
+
# Unit is Pa
|
|
32
|
+
pressure:
|
|
33
|
+
type: trend
|
|
34
|
+
intercept: 20.0e6
|
|
35
|
+
gradient: 9174.3
|
|
36
|
+
# type: constant
|
|
37
|
+
# value: 50000000.0
|
|
38
|
+
```
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# ERT configuration file
|
|
2
|
+
|
|
3
|
+
You can include `fmu-pem` in your ERT setup by including the following snippet:
|
|
4
|
+
|
|
5
|
+
````ert
|
|
6
|
+
-- Define your variables:
|
|
7
|
+
DEFINE <CONFIG_PATH> <RUNPATH>/sim2seis/model
|
|
8
|
+
DEFINE <PEM_CONFIG_FILE_NAME> pem_config.yml
|
|
9
|
+
DEFINE <GLOBAL_CONFIG_DIR> ../../fmuconfig/output
|
|
10
|
+
DEFINE <GLOBAL_CONFIG_FILE> global_variables.yml
|
|
11
|
+
DEFINE <MODEL_PATH> /my_fmu_structure/sim2seis/model
|
|
12
|
+
DEFINE <MOD_PREFIX> HIST
|
|
13
|
+
|
|
14
|
+
-- Run the pre-installed ERT forward model:
|
|
15
|
+
FORWARD_MODEL PEM(<CONFIG_DIR>=<CONFIG_PATH>, <CONFIG_FILE>=<PEM_CONFIG_FILE_NAME>, <GLOBAL_DIR>=<GLOBAL_CONFIG_DIR>, <GLOBAL_FILE>=<GLOBAL_CONFIG_FILE>, <MODEL_DIR>=<MODEL_PATH>, <MOD_DATE_PREFIX>=<MOD_PREFIX>)
|
|
16
|
+
````
|
|
17
|
+
|
|
18
|
+
On the next page you will get help on setting up your `pem_config.yml`.
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json",
|
|
3
|
+
"name": "ert",
|
|
4
|
+
"patterns": [
|
|
5
|
+
{
|
|
6
|
+
"include": "#sections"
|
|
7
|
+
},
|
|
8
|
+
{
|
|
9
|
+
"include": "#comments"
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"include": "#keywords"
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"include": "#important"
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"include": "#variables"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"include": "#parameters"
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"include": "#strings"
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"include": "#entities"
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"include": "#endcomments"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"include": "#numbers"
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
"include": "#symbols"
|
|
37
|
+
}
|
|
38
|
+
],
|
|
39
|
+
"repository": {
|
|
40
|
+
"keywords": {
|
|
41
|
+
"patterns": [
|
|
42
|
+
{
|
|
43
|
+
"name": "keyword.ert",
|
|
44
|
+
"match": "^[A-Z][_A-Z0-9]*"
|
|
45
|
+
}
|
|
46
|
+
]
|
|
47
|
+
},
|
|
48
|
+
"entities": {
|
|
49
|
+
"patterns": [
|
|
50
|
+
{
|
|
51
|
+
"name": "entity.name.function.ert",
|
|
52
|
+
"match": "[A-Z0-9][._A-Z0-9]*(?=\\()"
|
|
53
|
+
}
|
|
54
|
+
]
|
|
55
|
+
},
|
|
56
|
+
"parameters": {
|
|
57
|
+
"patterns": [
|
|
58
|
+
{
|
|
59
|
+
"name": "variable.parameter.ert",
|
|
60
|
+
"match": "\\s[$A-Z][_A-Z0-9]*(?=\\s)"
|
|
61
|
+
}
|
|
62
|
+
]
|
|
63
|
+
},
|
|
64
|
+
"important": {
|
|
65
|
+
"patterns": [
|
|
66
|
+
{
|
|
67
|
+
"name": "support.type.property-name.json",
|
|
68
|
+
"match": "<RUNPATH>|<CONFIG_PATH>"
|
|
69
|
+
}
|
|
70
|
+
]
|
|
71
|
+
},
|
|
72
|
+
"variables": {
|
|
73
|
+
"patterns": [
|
|
74
|
+
{
|
|
75
|
+
"name": "entity.name.type.ert",
|
|
76
|
+
"match": "<[A-Z][_A-Z0-9]*>"
|
|
77
|
+
}
|
|
78
|
+
]
|
|
79
|
+
},
|
|
80
|
+
"strings": {
|
|
81
|
+
"name": "string.quoted.double.ert",
|
|
82
|
+
"begin": "\"",
|
|
83
|
+
"end": "\"",
|
|
84
|
+
"patterns": [
|
|
85
|
+
{
|
|
86
|
+
"name": "constant.character.escape.ert",
|
|
87
|
+
"match": "\\\\."
|
|
88
|
+
}
|
|
89
|
+
]
|
|
90
|
+
},
|
|
91
|
+
"linecomments": {
|
|
92
|
+
"patterns": [
|
|
93
|
+
{
|
|
94
|
+
"name": "comment.line.double-dash.ert",
|
|
95
|
+
"match": "^--.*$"
|
|
96
|
+
}
|
|
97
|
+
]
|
|
98
|
+
},
|
|
99
|
+
"endcomments": {
|
|
100
|
+
"patterns": [
|
|
101
|
+
{
|
|
102
|
+
"name": "comment.ert",
|
|
103
|
+
"match": "--.*$"
|
|
104
|
+
}
|
|
105
|
+
]
|
|
106
|
+
},
|
|
107
|
+
"sections": {
|
|
108
|
+
"patterns": [
|
|
109
|
+
{
|
|
110
|
+
"name": "string.ert",
|
|
111
|
+
"match": "--\\sWorkflows"
|
|
112
|
+
}
|
|
113
|
+
]
|
|
114
|
+
},
|
|
115
|
+
"numbers": {
|
|
116
|
+
"patterns": [
|
|
117
|
+
{
|
|
118
|
+
"match": "(?x)\n(?<!\\$)(?:\n (?:\\b[0-9]+(\\.)[0-9]+[eE][+-]?[0-9]+\\b)| # 1.1E+3\n (?:\\b[0-9]+(\\.)[eE][+-]?[0-9]+\\b)| # 1.E+3\n (?:\\B(\\.)[0-9]+[eE][+-]?[0-9]+\\b)| # .1E+3\n (?:\\b[0-9]+[eE][+-]?[0-9]+\\b)| # 1E+3\n (?:\\b[0-9]+(\\.)[0-9]+\\b)| # 1.1\n (?:\\b[0-9]+(\\.)\\B)| # 1.\n (?:\\B(\\.)[0-9]+\\b)| # .1\n (?:\\b[0-9]+\\b(?!\\.)) # 1\n)(?!\\$)",
|
|
119
|
+
"captures": {
|
|
120
|
+
"0": {
|
|
121
|
+
"name": "constant.numeric.decimal.ert"
|
|
122
|
+
},
|
|
123
|
+
"1": {
|
|
124
|
+
"name": "meta.delimiter.decimal.period.ert"
|
|
125
|
+
},
|
|
126
|
+
"2": {
|
|
127
|
+
"name": "meta.delimiter.decimal.period.ert"
|
|
128
|
+
},
|
|
129
|
+
"3": {
|
|
130
|
+
"name": "meta.delimiter.decimal.period.ert"
|
|
131
|
+
},
|
|
132
|
+
"4": {
|
|
133
|
+
"name": "meta.delimiter.decimal.period.ert"
|
|
134
|
+
},
|
|
135
|
+
"5": {
|
|
136
|
+
"name": "meta.delimiter.decimal.period.ert"
|
|
137
|
+
},
|
|
138
|
+
"6": {
|
|
139
|
+
"name": "meta.delimiter.decimal.period.ert"
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
]
|
|
144
|
+
},
|
|
145
|
+
"symbols": {
|
|
146
|
+
"patterns": [
|
|
147
|
+
{
|
|
148
|
+
"match": "=|\/|\\(|\\)|,",
|
|
149
|
+
"name": "storage.type.ert"
|
|
150
|
+
}
|
|
151
|
+
]
|
|
152
|
+
}
|
|
153
|
+
},
|
|
154
|
+
"scopeName": "source.ert"
|
|
155
|
+
}
|