Use new FieldProps constructor to get ACTNUM.

This commit is contained in:
Atgeirr Flø Rasmussen
2022-06-14 13:51:29 +02:00
parent f5a2f6de74
commit eca8583358
5 changed files with 11 additions and 10 deletions

View File

@@ -21,6 +21,7 @@
#define _USE_MATH_DEFINES #define _USE_MATH_DEFINES
#include <opm/input/eclipse/EclipseState/Grid/EclipseGrid.hpp> #include <opm/input/eclipse/EclipseState/Grid/EclipseGrid.hpp>
#include <opm/input/eclipse/EclipseState/Grid/FieldProps.hpp>
#include <opm/common/ErrorMacros.hpp> #include <opm/common/ErrorMacros.hpp>
#include <opm/common/OpmLog/OpmLog.hpp> #include <opm/common/OpmLog/OpmLog.hpp>
@@ -1171,8 +1172,9 @@ EclipseGrid::EclipseGrid(const Deck& deck, const int * actnum)
std::vector<int> actnumVector; std::vector<int> actnumVector;
if (deck.hasKeyword<ParserKeywords::ACTNUM>()) { if (deck.hasKeyword<ParserKeywords::ACTNUM>()) {
const auto& actnumKeyword = deck.get<ParserKeywords::ACTNUM>().back(); EclipseGrid topologyOnlyGrid(static_cast<GridDims&>(*this));
actnumVector = actnumKeyword.getIntData(); FieldProps fp(deck, topologyOnlyGrid);
actnumVector = fp.actnum();
if (actnumVector.size() != this->getCartesianSize()) if (actnumVector.size() != this->getCartesianSize())
throw std::invalid_argument("ACTNUM vector has wrong size"); throw std::invalid_argument("ACTNUM vector has wrong size");

View File

@@ -15,6 +15,9 @@
You should have received a copy of the GNU General Public License along with You should have received a copy of the GNU General Public License along with
OPM. If not, see <http://www.gnu.org/licenses/>. OPM. If not, see <http://www.gnu.org/licenses/>.
*/ */
#include <opm/input/eclipse/EclipseState/Grid/FieldProps.hpp>
#include <functional> #include <functional>
#include <algorithm> #include <algorithm>
#include <unordered_map> #include <unordered_map>
@@ -46,7 +49,6 @@
#include <opm/input/eclipse/EclipseState/Aquifer/NumericalAquifer/NumericalAquifers.hpp> #include <opm/input/eclipse/EclipseState/Aquifer/NumericalAquifer/NumericalAquifers.hpp>
#include <opm/input/eclipse/EclipseState/Tables/TableManager.hpp> #include <opm/input/eclipse/EclipseState/Tables/TableManager.hpp>
#include "FieldProps.hpp"
#include "Operate.hpp" #include "Operate.hpp"
@@ -501,7 +503,7 @@ FieldProps::FieldProps(const Deck& deck, const EclipseGrid& grid) :
nz(grid.getNZ()), nz(grid.getNZ()),
m_phases(), m_phases(),
m_satfuncctrl(deck), m_satfuncctrl(deck),
m_actnum(1, global_size), // NB! activates all at start! m_actnum(global_size, 1), // NB! activates all at start!
cell_volume(), // NB! empty for this purpose. cell_volume(), // NB! empty for this purpose.
cell_depth(), // NB! empty for this purpose. cell_depth(), // NB! empty for this purpose.
m_default_region(default_region_keyword(deck)), m_default_region(default_region_keyword(deck)),
@@ -1205,8 +1207,7 @@ void FieldProps::scanGRIDSectionOnlyACTNUM(const GRIDSection& grid_section) {
this->handle_keyword(keyword, box); this->handle_keyword(keyword, box);
} }
} }
const auto& processed_actnum_fielddata = this->int_data.at("ACTNUM"); m_actnum = this->int_data.at("ACTNUM").data;
this->reset_actnum(processed_actnum_fielddata.data);
} }
void FieldProps::scanEDITSection(const EDITSection& edit_section) { void FieldProps::scanEDITSection(const EDITSection& edit_section) {

View File

@@ -20,14 +20,12 @@
#include <opm/input/eclipse/Deck/Deck.hpp> #include <opm/input/eclipse/Deck/Deck.hpp>
#include <opm/input/eclipse/Deck/DeckKeyword.hpp> #include <opm/input/eclipse/Deck/DeckKeyword.hpp>
#include <opm/input/eclipse/EclipseState/Grid/EclipseGrid.hpp> #include <opm/input/eclipse/EclipseState/Grid/EclipseGrid.hpp>
#include <opm/input/eclipse/EclipseState/Grid/FieldProps.hpp>
#include <opm/input/eclipse/EclipseState/Grid/FieldPropsManager.hpp> #include <opm/input/eclipse/EclipseState/Grid/FieldPropsManager.hpp>
#include <opm/input/eclipse/EclipseState/Runspec.hpp> #include <opm/input/eclipse/EclipseState/Runspec.hpp>
#include <opm/common/utility/Serializer.hpp> #include <opm/common/utility/Serializer.hpp>
#include <opm/input/eclipse/EclipseState/Aquifer/NumericalAquifer/NumericalAquifers.hpp> #include <opm/input/eclipse/EclipseState/Aquifer/NumericalAquifer/NumericalAquifers.hpp>
#include "FieldProps.hpp"
namespace Opm { namespace Opm {

View File

@@ -48,7 +48,7 @@
#include <opm/input/eclipse/EclipseState/Runspec.hpp> #include <opm/input/eclipse/EclipseState/Runspec.hpp>
#include <opm/input/eclipse/Schedule/Schedule.hpp> #include <opm/input/eclipse/Schedule/Schedule.hpp>
#include "src/opm/input/eclipse/EclipseState/Grid/FieldProps.hpp" #include <opm/input/eclipse/EclipseState/Grid/FieldProps.hpp>
using namespace Opm; using namespace Opm;