From de6cf63e50ca9921a1da0a74ac3bab7f88a3f57c Mon Sep 17 00:00:00 2001 From: Markus Blatt Date: Mon, 26 Oct 2015 10:28:42 +0100 Subject: [PATCH 1/3] Allow the rock properties to be zero initialized without a deck. This is needed in parallel runs where the rock properties will not be read from the deck but be communicated from a master process. Nevertheless we need to be able to initialize the data structures with the correct container size. In addition we need to be able to change the container values from opm-autodiff's BlackoilPropsDataHandle. --- opm/core/props/rock/RockFromDeck.cpp | 7 +++++++ opm/core/props/rock/RockFromDeck.hpp | 8 +++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/opm/core/props/rock/RockFromDeck.cpp b/opm/core/props/rock/RockFromDeck.cpp index 91af70a8..58e63496 100644 --- a/opm/core/props/rock/RockFromDeck.cpp +++ b/opm/core/props/rock/RockFromDeck.cpp @@ -72,6 +72,13 @@ namespace Opm { } + RockFromDeck::RockFromDeck(std::size_t number_of_cells) + : porosity_(number_of_cells, 0), + permeability_(number_of_cells*9, 0.0), + permfield_valid_(number_of_cells, false) + { + } + void RockFromDeck::init(Opm::EclipseStateConstPtr eclState, int number_of_cells, const int* global_cell, const int* cart_dims) diff --git a/opm/core/props/rock/RockFromDeck.hpp b/opm/core/props/rock/RockFromDeck.hpp index c0ad9de3..0e202d35 100644 --- a/opm/core/props/rock/RockFromDeck.hpp +++ b/opm/core/props/rock/RockFromDeck.hpp @@ -31,10 +31,16 @@ namespace Opm class RockFromDeck { + // BlackoilPropsDataHandle needs mutable + // access to porosity and permeability + friend class BlackoilPropsDataHandle; + public: /// Default constructor. RockFromDeck(); - + /// Creates rock properties with zero porosity and permeability + /// \param number_of_cells The number of cells + RockFromDeck(std::size_t number_of_cells); /// Initialize from deck and cell mapping. /// \param eclState The EclipseState (processed deck) produced by the opm-parser code /// \param number_of_cells The number of cells in the grid. From bd760d3e61c2d1911619ae800ef6df8f0505f605 Mon Sep 17 00:00:00 2001 From: Markus Blatt Date: Wed, 28 Oct 2015 13:14:56 +0100 Subject: [PATCH 2/3] Added comment about 9 entries in permeability tensor. --- opm/core/props/rock/RockFromDeck.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/opm/core/props/rock/RockFromDeck.cpp b/opm/core/props/rock/RockFromDeck.cpp index 58e63496..fe1a847e 100644 --- a/opm/core/props/rock/RockFromDeck.cpp +++ b/opm/core/props/rock/RockFromDeck.cpp @@ -74,6 +74,7 @@ namespace Opm RockFromDeck::RockFromDeck(std::size_t number_of_cells) : porosity_(number_of_cells, 0), + // full permeability tensor in 3D stores 9 scalars permeability_(number_of_cells*9, 0.0), permfield_valid_(number_of_cells, false) { From b12708785c1256958a67e2abfe5ba19b5fec6e43 Mon Sep 17 00:00:00 2001 From: Markus Blatt Date: Wed, 28 Oct 2015 13:19:42 +0100 Subject: [PATCH 3/3] Make constructor taking one argument explicit. --- opm/core/props/rock/RockFromDeck.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opm/core/props/rock/RockFromDeck.hpp b/opm/core/props/rock/RockFromDeck.hpp index 0e202d35..670f0fb8 100644 --- a/opm/core/props/rock/RockFromDeck.hpp +++ b/opm/core/props/rock/RockFromDeck.hpp @@ -40,7 +40,7 @@ namespace Opm RockFromDeck(); /// Creates rock properties with zero porosity and permeability /// \param number_of_cells The number of cells - RockFromDeck(std::size_t number_of_cells); + explicit RockFromDeck(std::size_t number_of_cells); /// Initialize from deck and cell mapping. /// \param eclState The EclipseState (processed deck) produced by the opm-parser code /// \param number_of_cells The number of cells in the grid.