mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
pressureInletOutletVelocity BC: Corrected parallel handling of tangentialVelocity
This commit is contained in:
@ -40,7 +40,8 @@ pressureInletOutletVelocityFvPatchVectorField
|
|||||||
:
|
:
|
||||||
mixedFvPatchVectorField(p, iF),
|
mixedFvPatchVectorField(p, iF),
|
||||||
phiName_("phi"),
|
phiName_("phi"),
|
||||||
rhoName_("rho")
|
rhoName_("rho"),
|
||||||
|
applyTangentialVelocity_(false)
|
||||||
{
|
{
|
||||||
refValue() = *this;
|
refValue() = *this;
|
||||||
refGrad() = vector::zero;
|
refGrad() = vector::zero;
|
||||||
@ -59,9 +60,10 @@ pressureInletOutletVelocityFvPatchVectorField
|
|||||||
:
|
:
|
||||||
mixedFvPatchVectorField(ptf, p, iF, mapper),
|
mixedFvPatchVectorField(ptf, p, iF, mapper),
|
||||||
phiName_(ptf.phiName_),
|
phiName_(ptf.phiName_),
|
||||||
rhoName_(ptf.rhoName_)
|
rhoName_(ptf.rhoName_),
|
||||||
|
applyTangentialVelocity_(ptf.applyTangentialVelocity_)
|
||||||
{
|
{
|
||||||
if (ptf.tangentialVelocity_.size())
|
if (applyTangentialVelocity_)
|
||||||
{
|
{
|
||||||
tangentialVelocity_ = mapper(ptf.tangentialVelocity_);
|
tangentialVelocity_ = mapper(ptf.tangentialVelocity_);
|
||||||
}
|
}
|
||||||
@ -78,12 +80,15 @@ pressureInletOutletVelocityFvPatchVectorField
|
|||||||
:
|
:
|
||||||
mixedFvPatchVectorField(p, iF),
|
mixedFvPatchVectorField(p, iF),
|
||||||
phiName_(dict.lookupOrDefault<word>("phi", "phi")),
|
phiName_(dict.lookupOrDefault<word>("phi", "phi")),
|
||||||
rhoName_(dict.lookupOrDefault<word>("rho", "rho"))
|
rhoName_(dict.lookupOrDefault<word>("rho", "rho")),
|
||||||
|
applyTangentialVelocity_(false)
|
||||||
{
|
{
|
||||||
fvPatchVectorField::operator=(vectorField("value", dict, p.size()));
|
fvPatchVectorField::operator=(vectorField("value", dict, p.size()));
|
||||||
|
|
||||||
if (dict.found("tangentialVelocity"))
|
if (dict.found("tangentialVelocity"))
|
||||||
{
|
{
|
||||||
|
applyTangentialVelocity_ = true;
|
||||||
|
|
||||||
setTangentialVelocity
|
setTangentialVelocity
|
||||||
(
|
(
|
||||||
vectorField("tangentialVelocity", dict, p.size())
|
vectorField("tangentialVelocity", dict, p.size())
|
||||||
@ -108,7 +113,8 @@ pressureInletOutletVelocityFvPatchVectorField
|
|||||||
mixedFvPatchVectorField(pivpvf),
|
mixedFvPatchVectorField(pivpvf),
|
||||||
phiName_(pivpvf.phiName_),
|
phiName_(pivpvf.phiName_),
|
||||||
rhoName_(pivpvf.rhoName_),
|
rhoName_(pivpvf.rhoName_),
|
||||||
tangentialVelocity_(pivpvf.tangentialVelocity_)
|
tangentialVelocity_(pivpvf.tangentialVelocity_),
|
||||||
|
applyTangentialVelocity_(pivpvf.applyTangentialVelocity_)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
@ -122,7 +128,8 @@ pressureInletOutletVelocityFvPatchVectorField
|
|||||||
mixedFvPatchVectorField(pivpvf, iF),
|
mixedFvPatchVectorField(pivpvf, iF),
|
||||||
phiName_(pivpvf.phiName_),
|
phiName_(pivpvf.phiName_),
|
||||||
rhoName_(pivpvf.rhoName_),
|
rhoName_(pivpvf.rhoName_),
|
||||||
tangentialVelocity_(pivpvf.tangentialVelocity_)
|
tangentialVelocity_(pivpvf.tangentialVelocity_),
|
||||||
|
applyTangentialVelocity_(pivpvf.applyTangentialVelocity_)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
@ -143,7 +150,7 @@ void Foam::pressureInletOutletVelocityFvPatchVectorField::autoMap
|
|||||||
)
|
)
|
||||||
{
|
{
|
||||||
mixedFvPatchVectorField::autoMap(m);
|
mixedFvPatchVectorField::autoMap(m);
|
||||||
if (tangentialVelocity_.size())
|
if (applyTangentialVelocity_)
|
||||||
{
|
{
|
||||||
tangentialVelocity_.autoMap(m);
|
tangentialVelocity_.autoMap(m);
|
||||||
}
|
}
|
||||||
@ -158,7 +165,7 @@ void Foam::pressureInletOutletVelocityFvPatchVectorField::rmap
|
|||||||
{
|
{
|
||||||
mixedFvPatchVectorField::rmap(ptf, addr);
|
mixedFvPatchVectorField::rmap(ptf, addr);
|
||||||
|
|
||||||
if (tangentialVelocity_.size())
|
if (applyTangentialVelocity_)
|
||||||
{
|
{
|
||||||
const pressureInletOutletVelocityFvPatchVectorField& tiptf =
|
const pressureInletOutletVelocityFvPatchVectorField& tiptf =
|
||||||
refCast<const pressureInletOutletVelocityFvPatchVectorField>(ptf);
|
refCast<const pressureInletOutletVelocityFvPatchVectorField>(ptf);
|
||||||
@ -208,7 +215,7 @@ void Foam::pressureInletOutletVelocityFvPatchVectorField::updateCoeffs()
|
|||||||
<< exit(FatalError);
|
<< exit(FatalError);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (tangentialVelocity_.size())
|
if (applyTangentialVelocity_)
|
||||||
{
|
{
|
||||||
// Adjust the tangential velocity to conserve kinetic energy
|
// Adjust the tangential velocity to conserve kinetic energy
|
||||||
// of the entrained fluid
|
// of the entrained fluid
|
||||||
@ -235,7 +242,7 @@ void Foam::pressureInletOutletVelocityFvPatchVectorField::write
|
|||||||
fvPatchVectorField::write(os);
|
fvPatchVectorField::write(os);
|
||||||
writeEntryIfDifferent<word>(os, "phi", "phi", phiName_);
|
writeEntryIfDifferent<word>(os, "phi", "phi", phiName_);
|
||||||
writeEntryIfDifferent<word>(os, "rho", "rho", rhoName_);
|
writeEntryIfDifferent<word>(os, "rho", "rho", rhoName_);
|
||||||
if (tangentialVelocity_.size())
|
if (applyTangentialVelocity_)
|
||||||
{
|
{
|
||||||
tangentialVelocity_.writeEntry("tangentialVelocity", os);
|
tangentialVelocity_.writeEntry("tangentialVelocity", os);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -99,6 +99,8 @@ protected:
|
|||||||
//- Optional tangential velocity component
|
//- Optional tangential velocity component
|
||||||
vectorField tangentialVelocity_;
|
vectorField tangentialVelocity_;
|
||||||
|
|
||||||
|
bool applyTangentialVelocity_;
|
||||||
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
|
|||||||
@ -33,6 +33,8 @@ License
|
|||||||
void Foam::rotatingPressureInletOutletVelocityFvPatchVectorField::
|
void Foam::rotatingPressureInletOutletVelocityFvPatchVectorField::
|
||||||
calcTangentialVelocity()
|
calcTangentialVelocity()
|
||||||
{
|
{
|
||||||
|
applyTangentialVelocity_ = true;
|
||||||
|
|
||||||
const scalar t = this->db().time().timeOutputValue();
|
const scalar t = this->db().time().timeOutputValue();
|
||||||
vector om = omega_->value(t);
|
vector om = omega_->value(t);
|
||||||
|
|
||||||
@ -70,9 +72,7 @@ rotatingPressureInletOutletVelocityFvPatchVectorField
|
|||||||
:
|
:
|
||||||
pressureInletOutletVelocityFvPatchVectorField(ptf, p, iF, mapper),
|
pressureInletOutletVelocityFvPatchVectorField(ptf, p, iF, mapper),
|
||||||
omega_(ptf.omega_().clone().ptr())
|
omega_(ptf.omega_().clone().ptr())
|
||||||
{
|
{}
|
||||||
calcTangentialVelocity();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
Foam::rotatingPressureInletOutletVelocityFvPatchVectorField::
|
Foam::rotatingPressureInletOutletVelocityFvPatchVectorField::
|
||||||
|
|||||||
Reference in New Issue
Block a user