Go to the documentation of this file.
34 template<
class RhoFieldType>
41 const RhoFieldType&
rho,
45 scalar a = 1.0 - Cp_/Ct_;
47 const vector uniDiskDir = diskDir_/
mag(diskDir_);
50 E.
xx() = uniDiskDir.
x();
51 E.
yy() = uniDiskDir.
y();
52 E.
zz() = uniDiskDir.
z();
57 const vector avgCentre =
gSum(zoneCellVolumes*zoneCellCentres)/V();
58 const scalar maxR =
gMax(
mag(zoneCellCentres - avgCentre));
62 + radialCoeffs_[1]*
sqr(maxR)/2.0
63 + radialCoeffs_[2]*
pow4(maxR)/3.0;
66 scalar upRho = VGREAT;
67 if (upstreamCellId_ != -1)
69 upU =
U[upstreamCellId_];
70 upRho =
rho[upstreamCellId_];
75 scalar
T = 2.0*upRho*diskArea_*
mag(upU)*a*(1.0 - a);
82 *(radialCoeffs_[0] + radialCoeffs_[1]*r2 + radialCoeffs_[2]*
sqr(r2))
85 Usource[
cells[i]] += ((Vcells[
cells[i]]/V_)*Tr[i]*E) & upU;
91 <<
"Average centre: " << avgCentre <<
nl
92 <<
"Maximum radius: " << maxR <<
endl;
Templated 3D tensor derived from VectorSpace adding construction from 9 components,...
#define forAll(list, i)
Loop across all elements in list.
Ostream & endl(Ostream &os)
Add newline and flush stream.
Type gSum(const FieldField< Field, Type > &f)
dimensioned< scalar > mag(const dimensioned< Type > &)
void reduce(const List< UPstream::commsStruct > &comms, T &Value, const BinaryOp &bop, const int tag, const label comm)
dimensionedScalar pow4(const dimensionedScalar &ds)
Pre-declare SubField and related Field type.
Vector< scalar > vector
A scalar version of the templated Vector.
dimensionedSymmTensor sqr(const dimensionedVector &dv)
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
dimensioned< scalar > magSqr(const dimensioned< Type > &)
Type gMax(const FieldField< Field, Type > &f)
word name(const complex &)
Return a string representation of a complex.
void addRadialActuationDiskAxialInertialResistance(vectorField &Usource, const labelList &cells, const scalarField &V, const RhoFieldType &rho, const vectorField &U) const
Add resistance to the UEqn.