diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md index d4744fce46..8d6cc64947 100644 --- a/CONTRIBUTORS.md +++ b/CONTRIBUTORS.md @@ -9,6 +9,7 @@ It is likely incomplete... - Yu Ankun - Tetsuo Aoyagi - Akira Azami +- Pete Bachant - William Bainbridge - Gabriel Barajas - Kutalmis Bercin diff --git a/src/fvOptions/sources/derived/actuationDiskSource/actuationDiskSource.C b/src/fvOptions/sources/derived/actuationDiskSource/actuationDiskSource.C index 5ecac54e41..13105085df 100644 --- a/src/fvOptions/sources/derived/actuationDiskSource/actuationDiskSource.C +++ b/src/fvOptions/sources/derived/actuationDiskSource/actuationDiskSource.C @@ -90,6 +90,8 @@ void Foam::fv::actuationDiskSource::writeFileHeader(Ostream& os) writeFile::writeCommented(os, "P"); } + writeFile::writeCommented(os, "diskDir"); + os << endl; } @@ -208,14 +210,7 @@ Foam::fv::actuationDiskSource::actuationDiskSource scalarMinMax::ge(VSMALL) ) ), - diskDir_ - ( - coeffs_.getCheck - ( - "diskDir", - [&](const vector& vec){ return mag(vec) > VSMALL; } - ).normalise() - ), + diskDir_(Function1::New("diskDir", coeffs_, &mesh)), UvsCpPtr_(Function1::New("Cp", coeffs_, &mesh)), UvsCtPtr_(Function1::New("Ct", coeffs_, &mesh)), monitorCells_() @@ -237,6 +232,25 @@ Foam::fv::actuationDiskSource::actuationDiskSource // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // +Foam::vector Foam::fv::actuationDiskSource::diskDir() const +{ + const scalar t = mesh_.time().timeOutputValue(); + const vector dir(diskDir_->value(t)); + const scalar magDir = Foam::mag(dir); + + if (magDir < SMALL) + { + FatalErrorInFunction + << "Actuator disk surface-normal vector is zero: " << dir + << " at time=" << t + << exit(FatalError); + } + + // normalised: + return dir/magDir; +} + + void Foam::fv::actuationDiskSource::addSup ( fvMatrix& eqn, @@ -295,19 +309,10 @@ bool Foam::fv::actuationDiskSource::read(const dictionary& dict) << exit(FatalIOError); } - dict.readIfPresent("diskDir", diskDir_); - diskDir_.normalise(); - if (mag(diskDir_) < VSMALL) - { - FatalIOErrorInFunction(dict) - << "Actuator disk surface-normal vector is zero: " - << "diskDir = " << diskDir_ - << exit(FatalIOError); - } + // TBD: runTime re-reading of "diskDir" ? return true; } - return false; } diff --git a/src/fvOptions/sources/derived/actuationDiskSource/actuationDiskSource.H b/src/fvOptions/sources/derived/actuationDiskSource/actuationDiskSource.H index 18304a5330..dea4009435 100644 --- a/src/fvOptions/sources/derived/actuationDiskSource/actuationDiskSource.H +++ b/src/fvOptions/sources/derived/actuationDiskSource/actuationDiskSource.H @@ -170,7 +170,7 @@ Usage type | Type name: actuationDiskSource | word | yes | - diskArea | Actuator disk planar surface area | scalar | yes | - diskDir | Surface-normal vector of the actuator disk pointing downstream | vector | yes | - + --> pointing downstream | Function1 | yes | - Cp | Power coefficient | Function1 | yes | - Ct | Thrust coefficient | Function1 | yes | - monitorMethod | Type of incoming velocity monitoring method