2022-10-07 09:04:40 -05:00
/*
2023-09-09 16:02:09 -05:00
Copyright 2022 2023 Inria , Bretagne – Atlantique Research Center
2022-10-07 09:04:40 -05:00
Copyright 2022 SINTEF Digital , Mathematics and Cybernetics .
This file is part of the Open Porous Media project ( OPM ) .
OPM is free software : you can redistribute it and / or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation , either version 3 of the License , or
( at your option ) any later version .
OPM is distributed in the hope that it will be useful ,
but WITHOUT ANY WARRANTY ; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
GNU General Public License for more details .
You should have received a copy of the GNU General Public License
along with OPM . If not , see < http : //www.gnu.org/licenses/>.
*/
# include <string>
namespace Opm : : DamarisOutput
{
/*
Below is the XML file for Damaris that is supported by Damaris .
The entries in the map below will be filled by corresponding Damaris
Keywords .
2023-09-09 16:02:09 -05:00
N . B . Ensure all text items that are to be replaced are quoted with double quotes
e . g . unit = " _REPLACE_UNIT_ "
* not * unit = _REPLACE_UNIT_
2022-10-07 09:04:40 -05:00
*/
std : : string initDamarisXmlFile ( )
{
std : : string init_damaris = R " V0G0N(<?xml version= " 1.0 " ?>
2023-09-22 16:23:29 -05:00
< simulation name = " _SIM_NAME_ " language = " c " xmlns = " http://damaris.gforge.inria.fr/damaris/model " >
2022-10-07 09:04:40 -05:00
< architecture >
< domains count = " 1 " / >
< dedicated cores = " _DC_REGEX_ " nodes = " _DN_REGEX_ " / >
2023-12-13 10:50:05 -06:00
< buffer name = " _SHMEM_NAME_ " size = " _SHMEM_BUFFER_BYTES_REGEX_ " / >
2022-10-07 09:04:40 -05:00
< placement / >
< queue name = " queue " size = " 300 " / >
< / architecture >
2023-09-22 16:23:29 -05:00
< data >
2022-10-07 09:04:40 -05:00
< parameter name = " n_elements_total " type = " int " value = " 1 " / >
< parameter name = " n_elements_local " type = " int " value = " 1 " / >
< parameter name = " n " type = " int " value = " 1 " / >
2023-09-22 16:23:29 -05:00
< layout name = " zonal_layout_usmesh_integer " type = " int " dimensions = " n_elements_local " global = " n_elements_total " comment = " For the field data e.g. Pressure " / >
2023-11-11 02:22:30 -06:00
< variable name = " GLOBAL_CELL_INDEX " layout = " zonal_layout_usmesh_integer " type = " scalar " visualizable = " false " time - varying = " false " centering = " zonal " store = " _MYSTORE_OR_EMPTY_REGEX_ " script = " _MAKE_AVAILABLE_IN_PYTHON_ " / >
2023-09-22 16:23:29 -05:00
< layout name = " zonal_layout_usmesh " type = " double " dimensions = " n_elements_local " global = " n_elements_total " comment = " For the field data e.g. Pressure " / >
2023-09-25 14:03:34 -05:00
< variable name = " PRESSURE " layout = " zonal_layout_usmesh " type = " scalar " visualizable = " true " mesh = " us_mesh " unit = " _PRESSURE_UNIT_ " centering = " zonal " select - file = " GLOBAL_CELL_INDEX " store = " _MYSTORE_OR_EMPTY_REGEX_ " script = " _MAKE_AVAILABLE_IN_PYTHON_ " / >
2023-09-22 16:23:29 -05:00
2022-10-07 09:04:40 -05:00
_MORE_VARIABLES_REGEX_
2023-12-14 03:27:05 -06:00
< variable name = " MPI_RANK " layout = " zonal_layout_usmesh_integer " type = " scalar " visualizable = " true " mesh = " us_mesh " unit = " rank " centering = " zonal " store = " _MYSTORE_MESH_OR_EMPTY_REGEX_ " time - varying = " false " select - file = " GLOBAL_CELL_INDEX " script = " _MAKE_AVAILABLE_IN_PYTHON_ " comment = " The MPI rank of each cell " / >
2023-09-09 16:02:09 -05:00
2023-09-22 16:23:29 -05:00
< variable name = " KRNSW_GO " layout = " zonal_layout_usmesh " type = " scalar " visualizable = " true " mesh = " # " unit = " " centering = " zonal " time - varying = " true " select - file = " GLOBAL_CELL_INDEX " store = " # " script = " # " / >
< variable name = " KRNSW_OW " layout = " zonal_layout_usmesh " type = " scalar " visualizable = " true " mesh = " # " unit = " " centering = " zonal " time - varying = " true " select - file = " GLOBAL_CELL_INDEX " store = " # " script = " # " / >
< variable name = " PCSWM_GO " layout = " zonal_layout_usmesh " type = " scalar " visualizable = " true " mesh = " # " unit = " " centering = " zonal " time - varying = " true " select - file = " GLOBAL_CELL_INDEX " store = " # " script = " # " / >
< variable name = " PCSWM_OW " layout = " zonal_layout_usmesh " type = " scalar " visualizable = " true " mesh = " # " unit = " " centering = " zonal " time - varying = " true " select - file = " GLOBAL_CELL_INDEX " store = " # " script = " # " / >
< variable name = " PPCW " layout = " zonal_layout_usmesh " type = " scalar " visualizable = " true " mesh = " # " unit = " Bar " centering = " zonal " time - varying = " true " select - file = " GLOBAL_CELL_INDEX " store = " # " script = " # " / >
< variable name = " RS " layout = " zonal_layout_usmesh " type = " scalar " visualizable = " true " mesh = " # " unit = " Bar " centering = " zonal " time - varying = " true " select - file = " GLOBAL_CELL_INDEX " store = " # " script = " # " comment = " Dissolved Gas units Gas Oil Ratio " / >
< variable name = " RV " layout = " zonal_layout_usmesh " type = " scalar " visualizable = " true " mesh = " # " unit = " Bar " centering = " zonal " time - varying = " true " select - file = " GLOBAL_CELL_INDEX " store = " # " script = " # " / >
< variable name = " SOMAX " layout = " zonal_layout_usmesh " type = " scalar " visualizable = " true " mesh = " # " unit = " " centering = " zonal " time - varying = " true " select - file = " GLOBAL_CELL_INDEX " store = " # " script = " # " / >
2023-09-09 16:02:09 -05:00
< variable name = " 1OVERBG " layout = " zonal_layout_usmesh " type = " scalar " visualizable = " true " mesh = " # " unit = " " centering = " zonal " time - varying = " true " select - file = " GLOBAL_CELL_INDEX " store = " # " script = " # " / >
< variable name = " 1OVERBO " layout = " zonal_layout_usmesh " type = " scalar " visualizable = " true " mesh = " # " unit = " " centering = " zonal " time - varying = " true " select - file = " GLOBAL_CELL_INDEX " store = " # " script = " # " / >
< variable name = " 1OVERBW " layout = " zonal_layout_usmesh " type = " scalar " visualizable = " true " mesh = " # " unit = " " centering = " zonal " time - varying = " true " select - file = " GLOBAL_CELL_INDEX " store = " # " script = " # " / >
< variable name = " GASKR " layout = " zonal_layout_usmesh " type = " scalar " visualizable = " true " mesh = " # " unit = " " centering = " zonal " time - varying = " true " select - file = " GLOBAL_CELL_INDEX " store = " # " script = " # " / >
< variable name = " GAS_DEN " layout = " zonal_layout_usmesh " type = " scalar " visualizable = " true " mesh = " # " unit = " " centering = " zonal " time - varying = " true " select - file = " GLOBAL_CELL_INDEX " store = " # " script = " # " / >
< variable name = " GAS_VISC " layout = " zonal_layout_usmesh " type = " scalar " visualizable = " true " mesh = " # " unit = " " centering = " zonal " time - varying = " true " select - file = " GLOBAL_CELL_INDEX " store = " # " script = " # " / >
< variable name = " OILKR " layout = " zonal_layout_usmesh " type = " scalar " visualizable = " true " mesh = " # " unit = " " centering = " zonal " time - varying = " true " select - file = " GLOBAL_CELL_INDEX " store = " # " script = " # " / >
< variable name = " OIL_DEN " layout = " zonal_layout_usmesh " type = " scalar " visualizable = " true " mesh = " # " unit = " " centering = " zonal " time - varying = " true " select - file = " GLOBAL_CELL_INDEX " store = " # " script = " # " / >
< variable name = " OIL_VISC " layout = " zonal_layout_usmesh " type = " scalar " visualizable = " true " mesh = " # " unit = " " centering = " zonal " time - varying = " true " select - file = " GLOBAL_CELL_INDEX " store = " # " script = " # " / >
< variable name = " WATKR " layout = " zonal_layout_usmesh " type = " scalar " visualizable = " true " mesh = " # " unit = " " centering = " zonal " time - varying = " true " select - file = " GLOBAL_CELL_INDEX " store = " # " script = " # " / >
< variable name = " WAT_DEN " layout = " zonal_layout_usmesh " type = " scalar " visualizable = " true " mesh = " # " unit = " " centering = " zonal " time - varying = " true " select - file = " GLOBAL_CELL_INDEX " store = " # " script = " # " / >
< variable name = " WAT_VISC " layout = " zonal_layout_usmesh " type = " scalar " visualizable = " true " mesh = " # " unit = " " centering = " zonal " time - varying = " true " select - file = " GLOBAL_CELL_INDEX " store = " # " script = " # " / >
< variable name = " 2FBF " layout = " zonal_layout_usmesh " type = " scalar " visualizable = " true " mesh = " # " unit = " " centering = " zonal " time - varying = " true " select - file = " GLOBAL_CELL_INDEX " store = " # " script = " # " / >
< variable name = " 4FBF " layout = " zonal_layout_usmesh " type = " scalar " visualizable = " true " mesh = " # " unit = " " centering = " zonal " time - varying = " true " select - file = " GLOBAL_CELL_INDEX " store = " # " script = " # " / >
< variable name = " DFBF " layout = " zonal_layout_usmesh " type = " scalar " visualizable = " true " mesh = " # " unit = " " centering = " zonal " time - varying = " true " select - file = " GLOBAL_CELL_INDEX " store = " # " script = " # " / >
< variable name = " GCDI " layout = " zonal_layout_usmesh " type = " scalar " visualizable = " true " mesh = " # " unit = " " centering = " zonal " time - varying = " true " select - file = " GLOBAL_CELL_INDEX " store = " # " script = " # " / >
< variable name = " GCDM " layout = " zonal_layout_usmesh " type = " scalar " visualizable = " true " mesh = " # " unit = " " centering = " zonal " time - varying = " true " select - file = " GLOBAL_CELL_INDEX " store = " # " script = " # " / >
< variable name = " GIP " layout = " zonal_layout_usmesh " type = " scalar " visualizable = " true " mesh = " # " unit = " " centering = " zonal " time - varying = " true " select - file = " GLOBAL_CELL_INDEX " store = " # " script = " # " / >
< variable name = " GIPG " layout = " zonal_layout_usmesh " type = " scalar " visualizable = " true " mesh = " # " unit = " " centering = " zonal " time - varying = " true " select - file = " GLOBAL_CELL_INDEX " store = " # " script = " # " / >
< variable name = " GIPL " layout = " zonal_layout_usmesh " type = " scalar " visualizable = " true " mesh = " # " unit = " " centering = " zonal " time - varying = " true " select - file = " GLOBAL_CELL_INDEX " store = " # " script = " # " / >
< variable name = " GIPR " layout = " zonal_layout_usmesh " type = " scalar " visualizable = " true " mesh = " # " unit = " " centering = " zonal " time - varying = " true " select - file = " GLOBAL_CELL_INDEX " store = " # " script = " # " / >
2024-04-12 08:31:22 -05:00
< variable name = " GKDI " layout = " zonal_layout_usmesh " type = " scalar " visualizable = " true " mesh = " # " unit = " " centering = " zonal " time - varying = " true " select - file = " GLOBAL_CELL_INDEX " store = " # " script = " # " / >
< variable name = " GKDM " layout = " zonal_layout_usmesh " type = " scalar " visualizable = " true " mesh = " # " unit = " " centering = " zonal " time - varying = " true " select - file = " GLOBAL_CELL_INDEX " store = " # " script = " # " / >
< variable name = " GKMO " layout = " zonal_layout_usmesh " type = " scalar " visualizable = " true " mesh = " # " unit = " " centering = " zonal " time - varying = " true " select - file = " GLOBAL_CELL_INDEX " store = " # " script = " # " / >
< variable name = " GKTR " layout = " zonal_layout_usmesh " type = " scalar " visualizable = " true " mesh = " # " unit = " " centering = " zonal " time - varying = " true " select - file = " GLOBAL_CELL_INDEX " store = " # " script = " # " / >
< variable name = " GMDS " layout = " zonal_layout_usmesh " type = " scalar " visualizable = " true " mesh = " # " unit = " " centering = " zonal " time - varying = " true " select - file = " GLOBAL_CELL_INDEX " store = " # " script = " # " / >
< variable name = " GMGP " layout = " zonal_layout_usmesh " type = " scalar " visualizable = " true " mesh = " # " unit = " " centering = " zonal " time - varying = " true " select - file = " GLOBAL_CELL_INDEX " store = " # " script = " # " / >
< variable name = " GMIP " layout = " zonal_layout_usmesh " type = " scalar " visualizable = " true " mesh = " # " unit = " " centering = " zonal " time - varying = " true " select - file = " GLOBAL_CELL_INDEX " store = " # " script = " # " / >
< variable name = " GMMO " layout = " zonal_layout_usmesh " type = " scalar " visualizable = " true " mesh = " # " unit = " " centering = " zonal " time - varying = " true " select - file = " GLOBAL_CELL_INDEX " store = " # " script = " # " / >
< variable name = " GMTR " layout = " zonal_layout_usmesh " type = " scalar " visualizable = " true " mesh = " # " unit = " " centering = " zonal " time - varying = " true " select - file = " GLOBAL_CELL_INDEX " store = " # " script = " # " / >
2023-09-09 16:02:09 -05:00
< variable name = " HTOF " layout = " zonal_layout_usmesh " type = " scalar " visualizable = " true " mesh = " # " unit = " " centering = " zonal " time - varying = " true " select - file = " GLOBAL_CELL_INDEX " store = " # " script = " # " / >
< variable name = " OIP " layout = " zonal_layout_usmesh " type = " scalar " visualizable = " true " mesh = " # " unit = " " centering = " zonal " time - varying = " true " select - file = " GLOBAL_CELL_INDEX " store = " # " script = " # " / >
< variable name = " OIPG " layout = " zonal_layout_usmesh " type = " scalar " visualizable = " true " mesh = " # " unit = " " centering = " zonal " time - varying = " true " select - file = " GLOBAL_CELL_INDEX " store = " # " script = " # " / >
< variable name = " OIPL " layout = " zonal_layout_usmesh " type = " scalar " visualizable = " true " mesh = " # " unit = " " centering = " zonal " time - varying = " true " select - file = " GLOBAL_CELL_INDEX " store = " # " script = " # " / >
< variable name = " OIPR " layout = " zonal_layout_usmesh " type = " scalar " visualizable = " true " mesh = " # " unit = " " centering = " zonal " time - varying = " true " select - file = " GLOBAL_CELL_INDEX " store = " # " script = " # " / >
< variable name = " RPV " layout = " zonal_layout_usmesh " type = " scalar " visualizable = " true " mesh = " # " unit = " " centering = " zonal " time - varying = " true " select - file = " GLOBAL_CELL_INDEX " store = " # " script = " # " / >
< variable name = " S36F " layout = " zonal_layout_usmesh " type = " scalar " visualizable = " true " mesh = " # " unit = " " centering = " zonal " time - varying = " true " select - file = " GLOBAL_CELL_INDEX " store = " # " script = " # " / >
< variable name = " SEAF " layout = " zonal_layout_usmesh " type = " scalar " visualizable = " true " mesh = " # " unit = " " centering = " zonal " time - varying = " true " select - file = " GLOBAL_CELL_INDEX " store = " # " script = " # " / >
< variable name = " SGAS " layout = " zonal_layout_usmesh " type = " scalar " visualizable = " true " mesh = " # " unit = " " centering = " zonal " time - varying = " true " select - file = " GLOBAL_CELL_INDEX " store = " # " script = " # " / >
< variable name = " SIP " layout = " zonal_layout_usmesh " type = " scalar " visualizable = " true " mesh = " # " unit = " " centering = " zonal " time - varying = " true " select - file = " GLOBAL_CELL_INDEX " store = " # " script = " # " / >
< variable name = " SWAT " layout = " zonal_layout_usmesh " type = " scalar " visualizable = " true " mesh = " # " unit = " " centering = " zonal " time - varying = " true " select - file = " GLOBAL_CELL_INDEX " store = " # " script = " # " / >
< variable name = " TFBF " layout = " zonal_layout_usmesh " type = " scalar " visualizable = " true " mesh = " # " unit = " " centering = " zonal " time - varying = " true " select - file = " GLOBAL_CELL_INDEX " store = " # " script = " # " / >
< variable name = " WCD " layout = " zonal_layout_usmesh " type = " scalar " visualizable = " true " mesh = " # " unit = " " centering = " zonal " time - varying = " true " select - file = " GLOBAL_CELL_INDEX " store = " # " script = " # " / >
< variable name = " WIP " layout = " zonal_layout_usmesh " type = " scalar " visualizable = " true " mesh = " # " unit = " " centering = " zonal " time - varying = " true " select - file = " GLOBAL_CELL_INDEX " store = " # " script = " # " / >
< variable name = " WIPG " layout = " zonal_layout_usmesh " type = " scalar " visualizable = " true " mesh = " # " unit = " " centering = " zonal " time - varying = " true " select - file = " GLOBAL_CELL_INDEX " store = " # " script = " # " / >
< variable name = " WIPL " layout = " zonal_layout_usmesh " type = " scalar " visualizable = " true " mesh = " # " unit = " " centering = " zonal " time - varying = " true " select - file = " GLOBAL_CELL_INDEX " store = " # " script = " # " / >
< variable name = " WIPR " layout = " zonal_layout_usmesh " type = " scalar " visualizable = " true " mesh = " # " unit = " " centering = " zonal " time - varying = " true " select - file = " GLOBAL_CELL_INDEX " store = " # " script = " # " / >
2023-09-22 16:23:29 -05:00
2023-09-09 16:02:09 -05:00
< parameter name = " n_coords_local " type = " int " value = " 1 " / >
< layout name = " n_coords_layout " type = " double " dimensions = " n_coords_local " comment = " For the individual x, y and z coordinates of the mesh vertices, these values are referenced in the topologies/topo/subelements/connectivity_pg data " / >
< group name = " coordset/coords/values " >
2023-12-12 14:48:17 -06:00
< variable name = " x " layout = " n_coords_layout " type = " scalar " visualizable = " false " unit = " m " script = " _MAKE_AVAILABLE_IN_PYTHON_ " time - varying = " false " store = " _MYSTORE_MESH_OR_EMPTY_REGEX_ " / >
< variable name = " y " layout = " n_coords_layout " type = " scalar " visualizable = " false " unit = " m " script = " _MAKE_AVAILABLE_IN_PYTHON_ " time - varying = " false " store = " _MYSTORE_MESH_OR_EMPTY_REGEX_ " / >
< variable name = " z " layout = " n_coords_layout " type = " scalar " visualizable = " false " unit = " m " script = " _MAKE_AVAILABLE_IN_PYTHON_ " time - varying = " false " store = " _MYSTORE_MESH_OR_EMPTY_REGEX_ " / >
2023-09-09 16:02:09 -05:00
< / group >
2023-09-22 16:23:29 -05:00
2023-09-09 16:02:09 -05:00
< parameter name = " n_connectivity_ph " type = " int " value = " 1 " / >
< layout name = " n_connections_layout_ph " type = " int " dimensions = " n_connectivity_ph " comment = " Layout for connectivities " / >
< parameter name = " n_offsets_types_ph " type = " int " value = " 1 " / >
2023-12-11 14:30:18 -06:00
< layout name = " n_offsets_layout_ph " type = " int " dimensions = " n_offsets_types_ph " comment = " Layout for the offsets_ph " / >
2023-09-09 16:02:09 -05:00
< layout name = " n_types_layout_ph " type = " char " dimensions = " n_offsets_types_ph " comment = " Layout for the types_ph " / >
< group name = " topologies/topo/elements " >
2023-12-12 14:48:17 -06:00
< variable name = " connectivity " layout = " n_connections_layout_ph " type = " scalar " visualizable = " false " script = " _MAKE_AVAILABLE_IN_PYTHON_ " time - varying = " false " store = " _MYSTORE_MESH_OR_EMPTY_REGEX_ " / >
< variable name = " offsets " layout = " n_offsets_layout_ph " type = " scalar " visualizable = " false " script = " _MAKE_AVAILABLE_IN_PYTHON_ " time - varying = " false " store = " _MYSTORE_MESH_OR_EMPTY_REGEX_ " / >
< variable name = " types " layout = " n_types_layout_ph " type = " scalar " visualizable = " false " script = " _MAKE_AVAILABLE_IN_PYTHON_ " time - varying = " false " store = " _MYSTORE_MESH_OR_EMPTY_REGEX_ " / >
2023-09-09 16:02:09 -05:00
< / group >
2023-09-22 16:23:29 -05:00
< mesh name = " us_mesh " type = " unstructured " topology = " 3 " time - varying = " false "
2023-09-09 16:02:09 -05:00
comment = " This Mesh definition is for connection with Paraview.
This definition references the variables that define an unstructured mesh specified above . " >
< coord name = " coordset/coords/values/x " unit = " m " / >
< coord name = " coordset/coords/values/y " unit = " m " / >
< coord name = " coordset/coords/values/z " unit = " m " / >
< vertex_global_id name = " # " offset = " 0 " / >
< element_offsets name = " topologies/topo/elements/offsets " / >
< section_types name = " topologies/topo/elements/types " / >
< section_sizes name = " # " / >
< section_connectivity name = " topologies/topo/elements/connectivity " / >
< polyhedral_cell_faces_connectivity name = " # " / >
< polyhedral_cell_faces_offsets name = " # " / >
< polyhedral_n_faces_per_cell name = " # " / >
< / mesh >
2023-09-22 16:23:29 -05:00
2022-10-07 09:04:40 -05:00
< / data >
< storage >
< store name = " MyStore " type = " HDF5 " >
< option key = " FileMode " > _File_Mode < / option >
< option key = " XDMFMode " > NoIteration < / option >
< option key = " FilesPath " > _PATH_REGEX_ / < / option >
< / store >
< / storage >
2023-09-09 16:02:09 -05:00
< scripts >
2023-11-11 02:22:30 -06:00
< _DISABLEPYTHONSTART_pyscript name = " PythonScript " file = " _PYTHON_SCRIPT_ " language = " python " frequency = " 1 " scheduler - file = " _DASK_SCHEDULER_FILE_ " nthreads = " 0 " keep - workers = " no " / _DISABLEPYTHONFIN_ >
2023-09-09 16:02:09 -05:00
< / scripts >
2023-09-23 15:24:11 -05:00
< _DISABLEPARAVIEWSTART_paraview update - frequency = " 1 " write - vtk = " 0 " write - vtk - binary = " false " >
2023-09-22 16:23:29 -05:00
< script > _PARAVIEW_PYTHON_SCRIPT_ < / script >
2023-09-23 15:24:11 -05:00
< / paraview _DISABLEPARAVIEWFIN_ >
2023-09-09 16:02:09 -05:00
2022-10-07 09:04:40 -05:00
< actions >
< / actions >
2023-09-25 14:03:34 -05:00
< log FileName = " _PATH_REGEX_/damaris_log/_SIM_NAME_ " RotationSize = " 5 " LogFormat = " [%TimeStamp%]: %Message% " Flush = " _LOG_FLUSH_ " LogLevel = " _LOG_LEVEL_ " / >
2022-10-07 09:04:40 -05:00
< / simulation > ) V0G0N " ;
return init_damaris ;
}
} // namespace Opm::DamarisOutput