42 fixedValueFvPatchScalarField(
p, iF),
45 supplyMassFlowRate_(1.0),
46 supplyTotalTemperature_(300.0),
49 plenumDensityOld_(1.0),
50 plenumTemperature_(300.0),
51 plenumTemperatureOld_(300.0),
55 inletDischargeCoefficient_(1.0),
70 fixedValueFvPatchScalarField(
p, iF,
dict),
71 gamma_(
dict.get<scalar>(
"gamma")),
72 R_(
dict.get<scalar>(
"R")),
73 supplyMassFlowRate_(
dict.get<scalar>(
"supplyMassFlowRate")),
74 supplyTotalTemperature_(
dict.get<scalar>(
"supplyTotalTemperature")),
75 plenumVolume_(
dict.get<scalar>(
"plenumVolume")),
76 plenumDensity_(
dict.get<scalar>(
"plenumDensity")),
77 plenumTemperature_(
dict.get<scalar>(
"plenumTemperature")),
80 inletAreaRatio_(
dict.get<scalar>(
"inletAreaRatio")),
81 inletDischargeCoefficient_(
dict.get<scalar>(
"inletDischargeCoefficient")),
82 timeScale_(
dict.lookupOrDefault<scalar>(
"timeScale", 0)),
83 phiName_(
dict.lookupOrDefault<
word>(
"phi",
"phi")),
84 UName_(
dict.lookupOrDefault<
word>(
"U",
"U"))
86 hasRho_ =
dict.readIfPresent(
"rho", rho_);
98 fixedValueFvPatchScalarField(ptf,
p, iF, mapper),
101 supplyMassFlowRate_(ptf.supplyMassFlowRate_),
102 supplyTotalTemperature_(ptf.supplyTotalTemperature_),
103 plenumVolume_(ptf.plenumVolume_),
104 plenumDensity_(ptf.plenumDensity_),
105 plenumTemperature_(ptf.plenumTemperature_),
107 hasRho_(ptf.hasRho_),
108 inletAreaRatio_(ptf.inletAreaRatio_),
109 inletDischargeCoefficient_(ptf.inletDischargeCoefficient_),
110 timeScale_(ptf.timeScale_),
111 phiName_(ptf.phiName_),
121 fixedValueFvPatchScalarField(tppsf),
122 gamma_(tppsf.gamma_),
124 supplyMassFlowRate_(tppsf.supplyMassFlowRate_),
125 supplyTotalTemperature_(tppsf.supplyTotalTemperature_),
126 plenumVolume_(tppsf.plenumVolume_),
127 plenumDensity_(tppsf.plenumDensity_),
128 plenumTemperature_(tppsf.plenumTemperature_),
130 hasRho_(tppsf.hasRho_),
131 inletAreaRatio_(tppsf.inletAreaRatio_),
132 inletDischargeCoefficient_(tppsf.inletDischargeCoefficient_),
133 timeScale_(tppsf.timeScale_),
134 phiName_(tppsf.phiName_),
145 fixedValueFvPatchScalarField(tppsf, iF),
146 gamma_(tppsf.gamma_),
148 supplyMassFlowRate_(tppsf.supplyMassFlowRate_),
149 supplyTotalTemperature_(tppsf.supplyTotalTemperature_),
150 plenumVolume_(tppsf.plenumVolume_),
151 plenumDensity_(tppsf.plenumDensity_),
152 plenumTemperature_(tppsf.plenumTemperature_),
154 hasRho_(tppsf.hasRho_),
155 inletAreaRatio_(tppsf.inletAreaRatio_),
156 inletDischargeCoefficient_(tppsf.inletDischargeCoefficient_),
157 timeScale_(tppsf.timeScale_),
158 phiName_(tppsf.phiName_),
177 internalField().name()
185 const scalar dt = db().time().deltaTValue();
189 if (timeIndex_ != db().time().
timeIndex())
191 timeIndex_ = db().time().timeIndex();
192 plenumDensityOld_ = plenumDensity_;
193 plenumTemperatureOld_ = plenumTemperature_;
197 scalar massFlowRate(1.0);
202 massFlowRate = -
gSum(rho_*
phi);
207 <<
"The density must be specified when using a volumetric flux."
213 phi.internalField().dimensions()
220 <<
"The density must be not specified when using a mass flux."
231 <<
"dimensions of phi are not correct"
232 <<
"\n on patch " <<
patch().name()
233 <<
" of field " << internalField().name()
234 <<
" in file " << internalField().objectPath() <<
nl
239 const scalar cv = R_/(gamma_ - 1),
cp = R_*gamma_/(gamma_ - 1);
244 + (dt/plenumVolume_)*(supplyMassFlowRate_ - massFlowRate);
246 plenumTemperatureOld_
247 + (dt/(plenumDensity_*cv*plenumVolume_))
250 *(
cp*supplyTotalTemperature_ - cv*plenumTemperature_)
251 - massFlowRate*R_*plenumTemperature_
253 const scalar plenumPressure = plenumDensity_*R_*plenumTemperature_;
261 1.0 - (gamma_ - 1.0)*U_e/(2.0*gamma_*R_*plenumTemperature_)
267 (1.0 - r)/(r*r*inletDischargeCoefficient_*inletDischargeCoefficient_)
283 const scalar oneByFraction = timeScale_/dt;
284 const scalar fraction = oneByFraction < 1.0 ? 1.0 : 1.0/oneByFraction;
287 operator==((1.0 - fraction)*p_old + fraction*p_new);
288 fixedValueFvPatchScalarField::updateCoeffs();
297 os.
writeEntry(
"supplyMassFlowRate", supplyMassFlowRate_);
298 os.
writeEntry(
"supplyTotalTemperature", supplyTotalTemperature_);
300 os.
writeEntry(
"plenumDensity", plenumDensity_);
301 os.
writeEntry(
"plenumTemperature", plenumTemperature_);
306 os.
writeEntry(
"inletAreaRatio", inletAreaRatio_);
307 os.
writeEntry(
"inletDischargeCoefficient", inletDischargeCoefficient_);
311 writeEntry(
"value", os);