Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #include "actuationDiskSource.H"
00028 #include <finiteVolume/volFields.H>
00029 #include <finiteVolume/fvMatrix.H>
00030 #include <finiteVolume/fvm.H>
00031
00032
00033
00034 template<class RhoFieldType>
00035 void Foam::actuationDiskSource::addActuationDiskAxialInertialResistance
00036 (
00037 vectorField& Usource,
00038 const labelList& cells,
00039 const scalarField& V,
00040 const RhoFieldType& rho,
00041 const vectorField& U
00042 ) const
00043 {
00044 scalar a = 1.0 - Cp_/Ct_;
00045 scalar totVol = 0.0;
00046 scalarField T(cells.size());
00047 vector uniDiskDir = diskDir_/mag(diskDir_);
00048 tensor E(tensor::zero);
00049 E.xx() = uniDiskDir.x();
00050 E.yy() = uniDiskDir.y();
00051 E.zz() = uniDiskDir.z();
00052 vectorField U1 = (1.0 - a)*U;
00053 forAll(cells, i)
00054 {
00055 totVol += V[cells[i]];
00056 T[i] = 2.0*rho[cells[i]]*diskArea_*mag(U1[cells[i]])*a/(1.0 - a);
00057 }
00058 forAll(cells, i)
00059 {
00060 Usource[cells[i]] += ((V[cells[i]]/totVol)*T[i]*E) & U1[cells[i]];
00061 }
00062 }
00063
00064
00065