diff --git a/src/fvOptions/sources/derived/rotorDiskSource/bladeModel/bladeModel.C b/src/fvOptions/sources/derived/rotorDiskSource/bladeModel/bladeModel.C index 490e8f49511e306200471246e4c39974d3390fda..0f8978c4eea7d59b4d31003338f477137c840d6e 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 1719768a0b54a0757a6cbb9203b2c82d78252fab..f07821c27bce5454a50bad45c098b932f335a858 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 5ad69108ea6bf910d0256d7fc7d46ffd5f206df9..75f6c6c1c9522b4161df894e6114def6701104f0 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)) ); }