40 m.
diag()[cells[i]] *= porosity_;
41 m.
source()[cells[i]] *= porosity_;
47 template<
class RhoFieldType>
48 void Foam::porousZone::addPowerLawResistance
53 const RhoFieldType&
rho,
57 const scalar C0 = C0_;
58 const scalar C1m1b2 = (C1_ - 1.0)/2.0;
63 V[cells[i]]*rho[cells[i]]*C0*
pow(
magSqr(U[cells[i]]), C1m1b2);
68 template<
class RhoFieldType>
69 void Foam::porousZone::addViscousInertialResistance
75 const RhoFieldType& rho,
80 const tensor& D = D_.value();
81 const tensor& F = F_.value();
85 tensor dragCoeff = mu[cells[i]]*D + (rho[cells[i]]*
mag(U[cells[i]]))*F;
86 scalar isoDragCoeff =
tr(dragCoeff);
88 Udiag[cells[i]] += V[cells[i]]*isoDragCoeff;
90 V[cells[i]]*((dragCoeff -
I*isoDragCoeff) & U[cells[i]]);
95 template<
class RhoFieldType>
96 void Foam::porousZone::addPowerLawResistance
100 const RhoFieldType& rho,
104 const scalar C0 = C0_;
105 const scalar C1m1b2 = (C1_ - 1.0)/2.0;
109 AU[cells[i]] = AU[cells[i]]
110 +
I*(rho[cells[i]]*C0*
pow(
magSqr(U[cells[i]]), C1m1b2));
115 template<
class RhoFieldType>
116 void Foam::porousZone::addViscousInertialResistance
120 const RhoFieldType& rho,
125 const tensor& D = D_.value();
126 const tensor& F = F_.value();
130 AU[cells[i]] += mu[cells[i]]*D + (rho[cells[i]]*
mag(U[cells[i]]))*F;