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:
objectPaths 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:
objectSimulation 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