{"id":274,"date":"2015-10-29T12:04:32","date_gmt":"2015-10-29T12:04:32","guid":{"rendered":"http:\/\/95.85.43.55\/?page_id=274"},"modified":"2024-10-03T10:01:11","modified_gmt":"2024-10-03T10:01:11","slug":"opm-modules","status":"publish","type":"page","link":"https:\/\/opm-project.org\/?page_id=274","title":{"rendered":"Modules"},"content":{"rendered":"<h1>Module structure<\/h1>\n<p>Each repository on GitHub is considered a separate module. The dependency relations between them are not completely trivial, and change over time.<\/p>\n<p>The figure below shows the current module structure. After the 2024.04 release, the opm-models module was folded into and merged with opm-simulators.<\/p>\n<p><a href=\"http:\/\/opm-project.org\/wp-content\/uploads\/2024\/10\/modules.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-1772\" src=\"http:\/\/opm-project.org\/wp-content\/uploads\/2024\/10\/modules-300x137.png\" alt=\"\" width=\"300\" height=\"137\" srcset=\"https:\/\/opm-project.org\/wp-content\/uploads\/2024\/10\/modules-300x137.png 300w, https:\/\/opm-project.org\/wp-content\/uploads\/2024\/10\/modules-1024x466.png 1024w, https:\/\/opm-project.org\/wp-content\/uploads\/2024\/10\/modules-768x350.png 768w, https:\/\/opm-project.org\/wp-content\/uploads\/2024\/10\/modules.png 1355w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<h3>Releases 2023.04 \u2013 2024.04<\/h3>\n<p>After the 2022.10 release, the opm-material module was folded into and merged with opm-common.<\/p>\n<p><a href=\"http:\/\/opm-project.org\/wp-content\/uploads\/2022\/12\/modules.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1559\" src=\"http:\/\/opm-project.org\/wp-content\/uploads\/2022\/12\/modules.png\" alt=\"modules\" width=\"677\" height=\"426\" \/><\/a><\/p>\n<h3>Releases 2019.10\u20132022.10<\/h3>\n<p>After the\u00a02019.04 release, the ewoms module was\u00a0renamed opm-models.<\/p>\n<p><a href=\"http:\/\/opm-project.org\/wp-content\/uploads\/2019\/09\/modules-2019-09.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1257\" src=\"http:\/\/opm-project.org\/wp-content\/uploads\/2019\/09\/modules-2019-09.png\" alt=\"modules-2019-09\" width=\"774\" height=\"426\" \/><\/a><\/p>\n<h3>Release 2018.04, 2018.10 and 2019.04<\/h3>\n<p>After\u00a0the 2017.10 release the opm-core module was\u00a0removed, and the modules opm-parser and opm-output were\u00a0folded into opm-common.<\/p>\n<p><a href=\"\/\/opm-project.org\/wp-content\/uploads\/2018\/03\/modules-2018-03.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-1112 size-full\" src=\"\/\/opm-project.org\/wp-content\/uploads\/2018\/03\/modules-2018-03.png\" alt=\"\" width=\"774\" height=\"426\" \/><\/a><\/p>\n<h3>Release 2017.04 and 2017.10<\/h3>\n<p>The figure below shows the situation for the releases in 2017.<\/p>\n<figure id=\"attachment_768\" aria-describedby=\"caption-attachment-768\" style=\"width: 1010px\" class=\"wp-caption alignnone\"><a href=\"\/\/opm-project.org\/wp-content\/uploads\/2016\/12\/modules-2016-12.png\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-768 size-full\" src=\"\/\/opm-project.org\/wp-content\/uploads\/2016\/12\/modules-2016-12.png\" alt=\"modules-2016-12\" width=\"1010\" height=\"663\" \/><\/a><figcaption id=\"caption-attachment-768\" class=\"wp-caption-text\">The modules with dependencies,\u00a02017.04 and 2017.10<\/figcaption><\/figure>\n<p>There are two changes since the previous\u00a0release, namely that opm-simulators now depend on ewoms, and that opm-core now depends on opm-grid instead of the other way around.<\/p>\n<h3>Release 2016.10<\/h3>\n<p>The figure below shows the situation for release 2016.10.<\/p>\n<figure id=\"attachment_730\" aria-describedby=\"caption-attachment-730\" style=\"width: 505px\" class=\"wp-caption alignnone\"><a href=\"\/\/opm-project.org\/wp-content\/uploads\/2016\/10\/modules-release-2016.10.png\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-730 size-full\" src=\"\/\/opm-project.org\/wp-content\/uploads\/2016\/10\/modules-release-2016.10.png\" alt=\"\" width=\"505\" height=\"326\" \/><\/a><figcaption id=\"caption-attachment-730\" class=\"wp-caption-text\">The modules with dependencies as of release 2016.10<\/figcaption><\/figure>\n<p>The most important change since the release before\u00a0is that opm-output no longer depends on opm-core, in fact the opposite is true: opm-core now depends on opm-output.<\/p>\n<h3>Release 2016.04<\/h3>\n<p>The figure below shows the situation for release 2016.04.<\/p>\n<figure id=\"attachment_637\" aria-describedby=\"caption-attachment-637\" style=\"width: 945px\" class=\"wp-caption alignnone\"><a href=\"\/\/opm-project.org\/wp-content\/uploads\/2016\/04\/modules.png\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-637 size-full\" src=\"\/\/opm-project.org\/wp-content\/uploads\/2016\/04\/modules.png\" alt=\"modules-2016.04\" width=\"945\" height=\"534\" \/><\/a><figcaption id=\"caption-attachment-637\" class=\"wp-caption-text\">The modules with dependencies as of release 2016.04<\/figcaption><\/figure>\n<h3>Module descriptions<\/h3>\n<p>The current set of modules are:<\/p>\n<ul>\n<li><strong>opm-common<\/strong><br \/>\nContains the OPM build system (<a href=\"https:\/\/cmake.org\">CMake<\/a> modules and scripts), as well as some basic, common C++ code (error macros, logging facilities and minor utilities). Also contains three major features:<\/p>\n<ul>\n<li><em>Eclipse deck parser<\/em> (formerly in the separate module opm-parser)<br \/>\nReading industry-standard reservoir simulation input decks (Eclipse format), including complex schedules, as well as multipliers and modifiers.<\/li>\n<li><em>Eclipse binary format I\/O<\/em> (formerly in the separate module opm-output)<br \/>\nFacilities for creating output in various formats from simulator programs, in particular\u00a0Eclipse summary and restart files.<\/li>\n<li><em>Properties for fluids and materials<\/em>, including saturation functions, pvt properties etc. for black-oil compositional and CO2 simulations.<\/li>\n<\/ul>\n<\/li>\n<li><strong>opm-grid<\/strong><br \/>\nContains CpGrid, a corner-point grid class, and PolyhedralGrid, a grid class for general polyhedral unstructured grids. Both using the <a href=\"https:\/\/www.dune-project.org\">Dune<\/a> grid interface. Also now contains the UnstructuredGrid C struct and associated functions, functions for processing corner-point grids, the GridManager class and other grid utilities.<\/li>\n<li><strong>opm-simulators<br \/>\n<\/strong>The <em>Flow<\/em> reservoir simulator is in this module, including discretization and assembly. Also contains various support classes for simulator codes such as well treatment, aquifers and linear solvers.<\/li>\n<li><strong>opm-upscaling<\/strong><br \/>\nVarious utilities and solvers used for flow-based upscaling of both permeability (single-phase upscaling) and relative permeability (two-phase upscaling), including capability for steady-state upscaling.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Module structure Each repository on GitHub is considered a separate module. The dependency relations between them are not completely trivial, and change over time. The figure below shows the current module structure. After the 2024.04 release, the opm-models module was folded into and merged with opm-simulators. Releases 2023.04 \u2013 2024.04 After the 2022.10 release, the &hellip; <a href=\"https:\/\/opm-project.org\/?page_id=274\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Modules<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":5,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"_links":{"self":[{"href":"https:\/\/opm-project.org\/index.php?rest_route=\/wp\/v2\/pages\/274"}],"collection":[{"href":"https:\/\/opm-project.org\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/opm-project.org\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/opm-project.org\/index.php?rest_route=\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/opm-project.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=274"}],"version-history":[{"count":39,"href":"https:\/\/opm-project.org\/index.php?rest_route=\/wp\/v2\/pages\/274\/revisions"}],"predecessor-version":[{"id":1775,"href":"https:\/\/opm-project.org\/index.php?rest_route=\/wp\/v2\/pages\/274\/revisions\/1775"}],"wp:attachment":[{"href":"https:\/\/opm-project.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=274"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}