pyopmspe11.visualization.data module

Script to write the benchmark data

class pyopmspe11.visualization.data.BenchmarkConfig(outfol: str, case: str, mode: str, lower: bool, deckfol: str, flowfol: str, where: str, nxyz: ndarray[tuple[Any, ...], dtype[_ScalarT]], dims: list, denset: ndarray[tuple[Any, ...], dtype[_ScalarT]], sparset: float, nocellsrepgrid: int)

Bases: object

Paths and benchmark settings

case: str
deckfol: str
denset: ndarray[tuple[Any, ...], dtype[_ScalarT]]
dims: list
flowfol: str
lower: bool
mode: str
nocellsrepgrid: int
nxyz: ndarray[tuple[Any, ...], dtype[_ScalarT]]
outfol: str
sparset: float
where: str
class pyopmspe11.visualization.data.SimulationData(simres: str, unrst: ERst, init: EclFile, egrid: EGrid, smspec: ESmry, times: list, timesumary: list, timeini: float, noskiprst: int, norst: int, porv: ndarray[tuple[Any, ...], dtype[_ScalarT]], porva: ndarray[tuple[Any, ...], dtype[_ScalarT]], actind: list, immiscible: bool, isothermal: bool, cornpoint: bool, nocellst: int, nocellsa: int, dof: int, nocellsxz: int, simdim: list)

Bases: object

Simulation data

actind: list
cornpoint: bool
dof: int
egrid: EGrid
immiscible: bool
init: EclFile
isothermal: bool
nocellsa: int
nocellst: int
nocellsxz: int
norst: int
noskiprst: int
porv: ndarray[tuple[Any, ...], dtype[_ScalarT]]
porva: ndarray[tuple[Any, ...], dtype[_ScalarT]]
simdim: list
simres: str
smspec: ESmry
timeini: float
times: list
timesumary: list
unrst: ERst
pyopmspe11.visualization.data.build_config_from_args(cmdargs: dict) BenchmarkConfig

Prepare the methods according to the spe11x case

pyopmspe11.visualization.data.build_dense_reference_grid(cfg: BenchmarkConfig) tuple[ndarray[tuple[Any, ...], dtype[_ScalarT]], ndarray[tuple[Any, ...], dtype[_ScalarT]], ndarray[tuple[Any, ...], dtype[_ScalarT]], ndarray[tuple[Any, ...], dtype[_ScalarT]], ndarray[tuple[Any, ...], dtype[_ScalarT]], ndarray[tuple[Any, ...], dtype[_ScalarT]]]

Build reporting grid coordinates

pyopmspe11.visualization.data.build_dense_schedule(cfg: BenchmarkConfig, sim: SimulationData) tuple[list, int]

Compute restart indices for dense output

pyopmspe11.visualization.data.build_dense_static(cfg: BenchmarkConfig, sim: SimulationData) tuple[list, int, tuple[ndarray[tuple[Any, ...], dtype[_ScalarT]], ndarray[tuple[Any, ...], dtype[_ScalarT]], ndarray[tuple[Any, ...], dtype[_ScalarT]], ndarray[tuple[Any, ...], dtype[_ScalarT]], ndarray[tuple[Any, ...], dtype[_ScalarT]], ndarray[tuple[Any, ...], dtype[_ScalarT]]], tuple[list[list[list[int | float]]], ndarray[tuple[Any, ...], dtype[_ScalarT]]], ndarray[tuple[Any, ...], dtype[_ScalarT]]]

Build static dense grid data

pyopmspe11.visualization.data.build_dense_step(cfg: BenchmarkConfig, sim: SimulationData, mapping: tuple[list[list[list[int | float]]], ndarray[tuple[Any, ...], dtype[_ScalarT]]], restart_index: int, actindr: ndarray[tuple[Any, ...], dtype[_ScalarT]]) dict

Build dense data for one restart

pyopmspe11.visualization.data.build_detailed_series(sim: SimulationData, metrics: dict, detail_info: ndarray[tuple[Any, ...], dtype[_ScalarT]], infotimes: ndarray[tuple[Any, ...], dtype[_ScalarT]], interp_fgmip: interp1d, cpu: list) list

Build detailed time series rows

pyopmspe11.visualization.data.build_fast_dense_mapping(cfg: BenchmarkConfig, sim: SimulationData, dx: ndarray[tuple[Any, ...], dtype[_ScalarT]], dz: ndarray[tuple[Any, ...], dtype[_ScalarT]]) tuple[list[list[list[int | float]]], ndarray[tuple[Any, ...], dtype[_ScalarT]]]

Fast sim-to-report mapping for aligned grids

pyopmspe11.visualization.data.build_general_dense_mapping(cfg: BenchmarkConfig, sim: SimulationData, refgrid: tuple[ndarray[tuple[Any, ...], dtype[_ScalarT]], ndarray[tuple[Any, ...], dtype[_ScalarT]], ndarray[tuple[Any, ...], dtype[_ScalarT]], ndarray[tuple[Any, ...], dtype[_ScalarT]], ndarray[tuple[Any, ...], dtype[_ScalarT]], ndarray[tuple[Any, ...], dtype[_ScalarT]]], geometry: tuple[ndarray[tuple[Any, ...], dtype[_ScalarT]], ndarray[tuple[Any, ...], dtype[_ScalarT]], list]) tuple[list[list[list[int | float]]], ndarray[tuple[Any, ...], dtype[_ScalarT]]]

General sim-to-report mapping using geometry

pyopmspe11.visualization.data.build_performance_data(cfg: BenchmarkConfig, sim: SimulationData) dict

Build performance CSV data

pyopmspe11.visualization.data.build_sparse_data(cfg: BenchmarkConfig, sim: SimulationData) dict

Build sparse benchmark data

pyopmspe11.visualization.data.build_summary_data(cfg: BenchmarkConfig, sim: SimulationData, fipnum: list, groups: dict) dict

Build sparse summary time series

pyopmspe11.visualization.data.build_time_series(sim: SimulationData, times_data: ndarray[tuple[Any, ...], dtype[_ScalarT]], metrics: dict, map_info: ndarray[tuple[Any, ...], dtype[_ScalarT]], map_summary: ndarray[tuple[Any, ...], dtype[_ScalarT]], interp_fgmip: interp1d, cpu: list) list

Build time series rows

pyopmspe11.visualization.data.can_use_fast_dense_mapping(cfg: BenchmarkConfig, sim: SimulationData, dx: ndarray[tuple[Any, ...], dtype[_ScalarT]], dz: ndarray[tuple[Any, ...], dtype[_ScalarT]]) bool

Check if fast dense mapping can be used

pyopmspe11.visualization.data.compute_cpu_times(cfg: BenchmarkConfig, sim: SimulationData, times_det: ndarray[tuple[Any, ...], dtype[_ScalarT]]) tuple[list, ndarray[tuple[Any, ...], dtype[_ScalarT]], ndarray[tuple[Any, ...], dtype[_ScalarT]]]

Compute CPU times

pyopmspe11.visualization.data.compute_m_c(cfg: BenchmarkConfig, sim: SimulationData, fipnum: list, dx: ndarray[tuple[Any, ...], dtype[_ScalarT]], dy: ndarray[tuple[Any, ...], dtype[_ScalarT]], dz: ndarray[tuple[Any, ...], dtype[_ScalarT]]) list

Compute Box C variation

pyopmspe11.visualization.data.dense_data(cfg: BenchmarkConfig, sim: SimulationData) None

Generate dense benchmark data

pyopmspe11.visualization.data.extract_boundary_pressures(cfg: BenchmarkConfig, sim: SimulationData, fipnum: list) tuple[list, list]

Extract boundary pressures

pyopmspe11.visualization.data.extract_sim_geometry(cfg: BenchmarkConfig, sim: SimulationData) tuple[ndarray[tuple[Any, ...], dtype[_ScalarT]], ndarray[tuple[Any, ...], dtype[_ScalarT]], ndarray[tuple[Any, ...], dtype[_ScalarT]], list, ndarray[tuple[Any, ...], dtype[_ScalarT]]]

Extract simulation geometry

pyopmspe11.visualization.data.extract_solver_metrics(infosteps: ndarray[tuple[Any, ...], dtype[_ScalarT]], tags: list) dict

Extract solver metrics

pyopmspe11.visualization.data.generate_arrays(cfg: BenchmarkConfig, sim: SimulationData, names: list, restart_index: int, actindr: ndarray[tuple[Any, ...], dtype[_ScalarT]]) dict

Populate dense arrays for one restart

pyopmspe11.visualization.data.get_fip_groups(cfg: BenchmarkConfig) dict

Define FIP groups

pyopmspe11.visualization.data.get_header(cfg: BenchmarkConfig, sim: SimulationData, i: int) tuple[str, list[str]]

Get the CSV header for spe11x

pyopmspe11.visualization.data.handle_inactive_mapping(cfg: BenchmarkConfig, sim: SimulationData, cell_ind: list[list[list[int | float]]]) ndarray[tuple[Any, ...], dtype[_ScalarT]]

Identify inactive reporting-grid cells

pyopmspe11.visualization.data.handle_performance_spatial(cfg: BenchmarkConfig, sim: SimulationData, rstno: list, refgrid: tuple[ndarray[tuple[Any, ...], dtype[_ScalarT]], ndarray[tuple[Any, ...], dtype[_ScalarT]], ndarray[tuple[Any, ...], dtype[_ScalarT]], ndarray[tuple[Any, ...], dtype[_ScalarT]], ndarray[tuple[Any, ...], dtype[_ScalarT]], ndarray[tuple[Any, ...], dtype[_ScalarT]]], mapping: tuple[list, ndarray[tuple[Any, ...], dtype[_ScalarT]]], actindr: ndarray[tuple[Any, ...], dtype[_ScalarT]]) None

Create performance spatial maps

pyopmspe11.visualization.data.handle_post_mapping(cfg: BenchmarkConfig, sim: SimulationData, refgrid: tuple[ndarray[tuple[Any, ...], dtype[_ScalarT]], ndarray[tuple[Any, ...], dtype[_ScalarT]], ndarray[tuple[Any, ...], dtype[_ScalarT]], ndarray[tuple[Any, ...], dtype[_ScalarT]], ndarray[tuple[Any, ...], dtype[_ScalarT]], ndarray[tuple[Any, ...], dtype[_ScalarT]]], mapping: tuple[list[list[list[int | float]]], ndarray[tuple[Any, ...], dtype[_ScalarT]]], simycent: ndarray[tuple[Any, ...], dtype[_ScalarT]], satnum: ndarray[tuple[Any, ...], dtype[_ScalarT]]) tuple[list[list[list[int | float]]], ndarray[tuple[Any, ...], dtype[_ScalarT]], ndarray[tuple[Any, ...], dtype[_ScalarT]]]

Post-process mapping

pyopmspe11.visualization.data.handle_yaxis_mapping_extensive(cfg: BenchmarkConfig, sim: SimulationData, cell_ind: list[list[list[int | float]]], simycent: ndarray[tuple[Any, ...], dtype[_ScalarT]], refyvert: ndarray[tuple[Any, ...], dtype[_ScalarT]]) list[list[list[int | float]]]

Extend indices for y direction (extensive)

pyopmspe11.visualization.data.handle_yaxis_mapping_intensive(cfg: BenchmarkConfig, sim: SimulationData, cell_cent: ndarray[tuple[Any, ...], dtype[_ScalarT]], refycent: ndarray[tuple[Any, ...], dtype[_ScalarT]], simycent: ndarray[tuple[Any, ...], dtype[_ScalarT]]) ndarray[tuple[Any, ...], dtype[_ScalarT]]

Extend representative cell indices for y direction (intensive)

pyopmspe11.visualization.data.init_performance_arrays(sim: SimulationData, names: tuple[str, str, str, str]) dict

Initialize performance arrays

pyopmspe11.visualization.data.interpolate_sparse(times_data: ndarray[tuple[Any, ...], dtype[_ScalarT]], sim: SimulationData, summary: dict, m_c: list) dict

Interpolate sparse outputs

pyopmspe11.visualization.data.main(argv=None) None

Postprocess simulation results into benchmark CSVs

pyopmspe11.visualization.data.map_performance_to_report_grid(cfg: BenchmarkConfig, sim: SimulationData, arrays: dict, cell_ind: list, delta_t: float, pore_volume: ndarray[tuple[Any, ...], dtype[_ScalarT]], valid: ndarray[tuple[Any, ...], dtype[_ScalarT]]) dict

Map simulation grid to reporting grid

pyopmspe11.visualization.data.map_to_report_grid(sim: SimulationData, mapping: tuple[list[list[list[int | float]]], ndarray[tuple[Any, ...], dtype[_ScalarT]]], arrays: dict) None

Map simulation arrays to reporting grid

pyopmspe11.visualization.data.performance(cfg: BenchmarkConfig, sim: SimulationData) None

Generate benchmark performance data

pyopmspe11.visualization.data.populate_performance_arrays(sim: SimulationData, arrays: dict, step_index: int) None

Populate performance arrays

pyopmspe11.visualization.data.read_infostep(cfg: BenchmarkConfig, sim: SimulationData) tuple[list, ndarray[tuple[Any, ...], dtype[_ScalarT]]]

Read INFOSTEP file

pyopmspe11.visualization.data.read_simulations(cfg: BenchmarkConfig) SimulationData

Use opm Python package to read the results

pyopmspe11.visualization.data.sparse_data(cfg: BenchmarkConfig, sim: SimulationData) None

Generate sparse benchmark data

pyopmspe11.visualization.data.static_map_performance_spatial(cfg: BenchmarkConfig, sim: SimulationData, cell_ind: list, counter: ndarray[tuple[Any, ...], dtype[_ScalarT]], pore_volume: ndarray[tuple[Any, ...], dtype[_ScalarT]]) tuple[list, ndarray[tuple[Any, ...], dtype[_ScalarT]], ndarray[tuple[Any, ...], dtype[_ScalarT]], ndarray[tuple[Any, ...], dtype[_ScalarT]]]

Map static quantities for performance spatial data

pyopmspe11.visualization.data.write_dense_csv(cfg: BenchmarkConfig, sim: SimulationData, refgrid: tuple[ndarray[tuple[Any, ...], dtype[_ScalarT]], ndarray[tuple[Any, ...], dtype[_ScalarT]], ndarray[tuple[Any, ...], dtype[_ScalarT]], ndarray[tuple[Any, ...], dtype[_ScalarT]], ndarray[tuple[Any, ...], dtype[_ScalarT]], ndarray[tuple[Any, ...], dtype[_ScalarT]]], dense_step: dict, step_index: int) None

Write dense spatial CSV

pyopmspe11.visualization.data.write_dense_performance_spatial(cfg: BenchmarkConfig, refg: dict, cvol_refg: ndarray[tuple[Any, ...], dtype[_ScalarT]], arat_refg: ndarray[tuple[Any, ...], dtype[_ScalarT]], refxcent: ndarray[tuple[Any, ...], dtype[_ScalarT]], refycent: ndarray[tuple[Any, ...], dtype[_ScalarT]], refzcent: ndarray[tuple[Any, ...], dtype[_ScalarT]], i: int) None

Write dense performance spatial CSV

pyopmspe11.visualization.data.write_performance_csv(cfg: BenchmarkConfig, perf: dict) None

Write performance CSV files

pyopmspe11.visualization.data.write_sparse_csv(cfg: BenchmarkConfig, sparse: dict) None

Write sparse CSV