mirror of
https://github.com/OPM/opm-upscaling.git
synced 2025-02-25 18:45:23 -06:00
Upscaling utilities: Use raw property vectors where appropriate
We need access to the raw, unconverted property vectors to use the existing algorithm for defining (e.g.,) capillary pressure ranges. This subtle point was missed during the initial transition to using the opm-parser module for input handling.
This commit is contained in:
@@ -350,7 +350,7 @@ try
|
||||
// Calculate minimum and maximum water volume in each cell based on input pc-curves per rock type
|
||||
// Create single-phase upscaling object to get poro and perm values from the grid
|
||||
Opm::DeckConstPtr subdeck = ch.subDeck();
|
||||
std::vector<double> perms = subdeck->getKeyword("PERMX")->getSIDoubleData();
|
||||
std::vector<double> perms = subdeck->getKeyword("PERMX")->getRawDoubleData();
|
||||
Opm::SinglePhaseUpscaler upscaler;
|
||||
upscaler.init(subdeck, bctype, minpermSI,
|
||||
residual_tolerance, linsolver_verbosity, linsolver_type, false);
|
||||
|
||||
@@ -352,8 +352,8 @@ try
|
||||
const int points = atoi(options["points"].c_str());
|
||||
|
||||
vector<int> satnums = deck->getKeyword("SATNUM")->getIntData();
|
||||
vector<double> poros = deck->getKeyword("PORO")->getSIDoubleData();
|
||||
vector<double> permxs = deck->getKeyword("PERMX")->getSIDoubleData();
|
||||
vector<double> poros = deck->getKeyword("PORO")->getRawDoubleData();
|
||||
vector<double> permxs = deck->getKeyword("PERMX")->getRawDoubleData();
|
||||
const double minPerm = atof(options["minPerm"].c_str());
|
||||
const double minPoro = atof(options["minPoro"].c_str());
|
||||
|
||||
|
||||
@@ -398,9 +398,9 @@ try
|
||||
usageandexit();
|
||||
}
|
||||
|
||||
vector<double> poros = deck->getKeyword("PORO")->getSIDoubleData();
|
||||
vector<double> permxs = deck->getKeyword("PERMX")->getSIDoubleData();
|
||||
vector<double> zcorns = deck->getKeyword("ZCORN")->getSIDoubleData();
|
||||
vector<double> poros = deck->getKeyword("PORO")->getRawDoubleData();
|
||||
vector<double> permxs = deck->getKeyword("PERMX")->getRawDoubleData();
|
||||
vector<double> zcorns = deck->getKeyword("ZCORN")->getRawDoubleData();
|
||||
|
||||
Opm::DeckRecordConstPtr specgridRecord = deck->getKeyword("SPECGRID")->getRecord(0);
|
||||
int x_res = specgridRecord->getItem("NX")->getInt(0);
|
||||
@@ -412,8 +412,8 @@ try
|
||||
|
||||
if (deck->hasKeyword("PERMY") && deck->hasKeyword("PERMZ")) {
|
||||
anisotropic_input = true;
|
||||
permys = deck->getKeyword("PERMY")->getSIDoubleData();
|
||||
permzs = deck->getKeyword("PERMZ")->getSIDoubleData();
|
||||
permys = deck->getKeyword("PERMY")->getRawDoubleData();
|
||||
permzs = deck->getKeyword("PERMZ")->getRawDoubleData();
|
||||
if (isMaster) cout << "Info: PERMY and PERMZ present, going into anisotropic input mode, no J-functions\n";
|
||||
if (isMaster) cout << " Options -relPermCurve and -jFunctionCurve is meaningless.\n";
|
||||
}
|
||||
|
||||
@@ -391,16 +391,16 @@ try
|
||||
exit(1);
|
||||
}
|
||||
|
||||
vector<double> poros = deck->getKeyword("PORO")->getSIDoubleData();
|
||||
vector<double> permxs = deck->getKeyword("PERMX")->getSIDoubleData();
|
||||
vector<double> poros = deck->getKeyword("PORO")->getRawDoubleData();
|
||||
vector<double> permxs = deck->getKeyword("PERMX")->getRawDoubleData();
|
||||
|
||||
// Load anisotropic (only diagonal supported) input if present in grid
|
||||
vector<double> permys, permzs;
|
||||
|
||||
if (deck->hasKeyword("PERMY") && deck->hasKeyword("PERMZ")) {
|
||||
anisotropic_input = true;
|
||||
permys = deck->getKeyword("PERMY")->getSIDoubleData();
|
||||
permzs = deck->getKeyword("PERMZ")->getSIDoubleData();
|
||||
permys = deck->getKeyword("PERMY")->getRawDoubleData();
|
||||
permzs = deck->getKeyword("PERMZ")->getRawDoubleData();
|
||||
if (isMaster) cout << "Info: PERMY and PERMZ present, going into anisotropic input mode, no J-functions\n";
|
||||
if (isMaster) cout << " Options -relPermCurve and -jFunctionCurve is meaningless.\n";
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user