mirror of
https://github.com/OPM/opm-simulators.git
synced 2025-02-25 18:55:30 -06:00
Merge pull request #1004 from andlaus/fix_undefined_behaviour
avoid relying on undefined behaviour
This commit is contained in:
@@ -158,7 +158,7 @@ BlackoilPropsAdFromDeck::BlackoilPropsAdFromDeck(const BlackoilPropsAdFromDeck&
|
|||||||
|
|
||||||
phase_usage_ = phaseUsageFromDeck(deck);
|
phase_usage_ = phaseUsageFromDeck(deck);
|
||||||
|
|
||||||
if (! (&FluidSystem::oilPvt()) ) {
|
if (!FluidSystem::isInitialized()) {
|
||||||
// make sure that we don't initialize the fluid system twice
|
// make sure that we don't initialize the fluid system twice
|
||||||
FluidSystem::initFromDeck(deck, eclState);
|
FluidSystem::initFromDeck(deck, eclState);
|
||||||
}
|
}
|
||||||
|
@@ -260,24 +260,28 @@ namespace Opm
|
|||||||
dxOld = dx;
|
dxOld = dx;
|
||||||
|
|
||||||
switch (relaxType()) {
|
switch (relaxType()) {
|
||||||
case DAMPEN:
|
case DAMPEN: {
|
||||||
if (omega == 1.) {
|
if (omega == 1.) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
for (size_t i = 0; i < dx.size(); ++i) {
|
auto i = dx.size();
|
||||||
|
for (i = 0; i < dx.size(); ++i) {
|
||||||
dx[i] *= omega;
|
dx[i] *= omega;
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
case SOR:
|
}
|
||||||
|
case SOR: {
|
||||||
if (omega == 1.) {
|
if (omega == 1.) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
for (size_t i = 0; i < dx.size(); ++i) {
|
auto i = dx.size();
|
||||||
|
for (i = 0; i < dx.size(); ++i) {
|
||||||
dx[i] *= omega;
|
dx[i] *= omega;
|
||||||
tempDxOld[i] *= (1.-omega);
|
tempDxOld[i] *= (1.-omega);
|
||||||
dx[i] += tempDxOld[i];
|
dx[i] += tempDxOld[i];
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
OPM_THROW(std::runtime_error, "Can only handle DAMPEN and SOR relaxation type.");
|
OPM_THROW(std::runtime_error, "Can only handle DAMPEN and SOR relaxation type.");
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user