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, dims: list, denset: NDArray, sparset: float, nocellsrepgrid: int)

Bases: object

Paths and benchmark settings

case: str
deckfol: str
denset: NDArray
dims: list
flowfol: str
lower: bool
mode: str
nocellsrepgrid: int
nxyz: NDArray
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, porva: NDArray, 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
porva: NDArray
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, NDArray, NDArray, NDArray, NDArray, NDArray]

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, NDArray, NDArray, NDArray, NDArray, NDArray], tuple[list[list[list[int | float]]], NDArray], NDArray]

Build static dense grid data

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

Build dense data for one restart

pyopmspe11.visualization.data.build_detailed_series(sim: SimulationData, metrics: dict, detail_info: NDArray, infotimes: NDArray, interp_fgmip: interp1d, cpu: list) list

Build detailed time series rows

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

Fast sim-to-report mapping for aligned grids

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

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, metrics: dict, map_info: NDArray, map_summary: NDArray, interp_fgmip: interp1d, cpu: list) list

Build time series rows

pyopmspe11.visualization.data.can_use_fast_dense_mapping(cfg: BenchmarkConfig, sim: SimulationData, dx: NDArray, dz: NDArray) bool

Check if fast dense mapping can be used

pyopmspe11.visualization.data.compute_cpu_times(cfg: BenchmarkConfig, sim: SimulationData, times_det: NDArray) tuple[list, NDArray, NDArray]

Compute CPU times

pyopmspe11.visualization.data.compute_m_c(cfg: BenchmarkConfig, sim: SimulationData, fipnum: list, dx: NDArray, dy: NDArray, dz: NDArray) 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, NDArray, NDArray, list, NDArray]

Extract simulation geometry

pyopmspe11.visualization.data.extract_solver_metrics(infosteps: NDArray, tags: list) dict

Extract solver metrics

pyopmspe11.visualization.data.generate_arrays(cfg: BenchmarkConfig, sim: SimulationData, names: list, restart_index: int, actindr: NDArray) 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

Identify inactive reporting-grid cells

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

Create performance spatial maps

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

Post-process mapping

pyopmspe11.visualization.data.handle_yaxis_mapping_extensive(cfg: BenchmarkConfig, sim: SimulationData, cell_ind: list[list[list[int | float]]], simycent: NDArray, refyvert: NDArray) 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, refycent: NDArray, simycent: NDArray) NDArray

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, 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, valid: NDArray) dict

Map simulation grid to reporting grid

pyopmspe11.visualization.data.map_to_report_grid(sim: SimulationData, mapping: tuple[list[list[list[int | float]]], NDArray], 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]

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, pore_volume: NDArray) tuple[list, NDArray, NDArray, NDArray]

Map static quantities for performance spatial data

pyopmspe11.visualization.data.write_dense_csv(cfg: BenchmarkConfig, sim: SimulationData, refgrid: tuple[NDArray, NDArray, NDArray, NDArray, NDArray, NDArray], 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, arat_refg: NDArray, refxcent: NDArray, refycent: NDArray, refzcent: NDArray, 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