Merge pull request #1004 from andlaus/fix_undefined_behaviour

avoid relying on undefined behaviour
This commit is contained in:
Atgeirr Flø Rasmussen
2017-01-09 12:49:03 +01:00
committed by GitHub
2 changed files with 9 additions and 5 deletions

View File

@@ -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);
} }

View File

@@ -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.");
} }