diff --git a/src/fvOptions/sources/derived/rotorDiskSource/bladeModel/bladeModel.C b/src/fvOptions/sources/derived/rotorDiskSource/bladeModel/bladeModel.C index 490e8f495..0f8978c4e 100644 --- a/src/fvOptions/sources/derived/rotorDiskSource/bladeModel/bladeModel.C +++ b/src/fvOptions/sources/derived/rotorDiskSource/bladeModel/bladeModel.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -29,7 +29,6 @@ License #include "vector.H" #include "IFstream.H" - // * * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * // bool Foam::bladeModel::readFromFile() const @@ -58,12 +57,18 @@ void Foam::bladeModel::interpolateWeights } else { - while ((values[i2] < xIn) && (i2 < nElem)) + while ((i2 < nElem) && (values[i2] < xIn)) { i2++; } - if (i2 == nElem) + if (i2 == 0) + { + i1 = i2; + ddx = 0.0; + return; + } + else if (i2 == nElem) { i2 = nElem - 1; i1 = i2; @@ -101,7 +106,6 @@ Foam::bladeModel::bladeModel(const dictionary& dict) dict.lookup("data") >> data; } - if (data.size() > 0) { profileName_.setSize(data.size()); diff --git a/src/fvOptions/sources/derived/rotorDiskSource/profileModel/lookup/lookupProfile.C b/src/fvOptions/sources/derived/rotorDiskSource/profileModel/lookup/lookupProfile.C index 1719768a0..f07821c27 100644 --- a/src/fvOptions/sources/derived/rotorDiskSource/profileModel/lookup/lookupProfile.C +++ b/src/fvOptions/sources/derived/rotorDiskSource/profileModel/lookup/lookupProfile.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -60,12 +60,18 @@ void Foam::lookupProfile::interpolateWeights } else { - while ((values[i2] < xIn) && (i2 < nElem)) + while ((i2 < nElem) && (values[i2] < xIn)) { i2++; } - if (i2 == nElem) + if (i2 == 0) + { + i1 = i2; + ddx = 0.0; + return; + } + else if (i2 == nElem) { i2 = nElem - 1; i1 = i2; diff --git a/tutorials/incompressible/simpleFoam/rotorDisk/system/fvOptions b/tutorials/incompressible/simpleFoam/rotorDisk/system/fvOptions index 5ad69108e..75f6c6c1c 100644 --- a/tutorials/incompressible/simpleFoam/rotorDisk/system/fvOptions +++ b/tutorials/incompressible/simpleFoam/rotorDisk/system/fvOptions @@ -64,8 +64,8 @@ disk { data ( - (profile1 (0.1 -6 0.1)) - (profile1 (0.25 -6 0.1)) + (profile1 (0.1 -6 0.02)) + (profile1 (0.25 -6 0.02)) ); }