diff --git a/src/finiteVolume/fields/fvPatchFields/derived/flowRateInletVelocity/flowRateInletVelocityFvPatchVectorField.C b/src/finiteVolume/fields/fvPatchFields/derived/flowRateInletVelocity/flowRateInletVelocityFvPatchVectorField.C index 5bc42d46c6..35d3b3fe5b 100644 --- a/src/finiteVolume/fields/fvPatchFields/derived/flowRateInletVelocity/flowRateInletVelocityFvPatchVectorField.C +++ b/src/finiteVolume/fields/fvPatchFields/derived/flowRateInletVelocity/flowRateInletVelocityFvPatchVectorField.C @@ -161,6 +161,12 @@ void Foam::flowRateInletVelocityFvPatchVectorField::updateValues const vectorField n(patch().nf()); + scalar flowRate = flowRate_->value(t); + if (flowRate == 0) + { + flowRate = SMALL + } + if (extrapolateProfile_) { vectorField Up(this->patchInternalField()); @@ -174,7 +180,6 @@ void Foam::flowRateInletVelocityFvPatchVectorField::updateValues // Remove any reverse flow nUp = min(nUp, scalar(0)); - const scalar flowRate = flowRate_->value(t); const scalar estimatedFlowRate = -gSum(rho*(this->patch().magSf()*nUp)); if (estimatedFlowRate/flowRate > 0.5) @@ -194,7 +199,7 @@ void Foam::flowRateInletVelocityFvPatchVectorField::updateValues } else { - const scalar avgU = -flowRate_->value(t)/gSum(rho*patch().magSf()); + const scalar avgU = -flowRate/gSum(rho*patch().magSf()); operator==(avgU*n); } } diff --git a/src/finiteVolume/fields/fvPatchFields/derived/flowRateOutletVelocity/flowRateOutletVelocityFvPatchVectorField.C b/src/finiteVolume/fields/fvPatchFields/derived/flowRateOutletVelocity/flowRateOutletVelocityFvPatchVectorField.C index 126158e7c4..24233380f3 100644 --- a/src/finiteVolume/fields/fvPatchFields/derived/flowRateOutletVelocity/flowRateOutletVelocityFvPatchVectorField.C +++ b/src/finiteVolume/fields/fvPatchFields/derived/flowRateOutletVelocity/flowRateOutletVelocityFvPatchVectorField.C @@ -163,7 +163,12 @@ void Foam::flowRateOutletVelocityFvPatchVectorField::updateValues // Remove any reverse flow nUp = max(nUp, scalar(0)); - const scalar flowRate = flowRate_->value(t); + scalar flowRate = stabilize(flowRate_->value(t),SMALL); + + if (flowRate == 0) + { + flowRate = SMALL + } const scalar estimatedFlowRate = gSum(rho*(this->patch().magSf()*nUp)); if (estimatedFlowRate/flowRate > 0.5)