entrainmentPressureFvPatchScalarField: Added support for mass-flux -> velocity conversion

so that the entrainmentPressure BC can be applied to compressible and multiphase
cases.
This commit is contained in:
Henry Weller
2021-12-03 14:47:56 +00:00
parent f52d8694a3
commit 85e548df23
2 changed files with 28 additions and 17 deletions

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Copyright (C) 2011-2020 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2021 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -82,17 +82,17 @@ Foam::dynamicPressureFvPatchScalarField::dynamicPressureFvPatchScalarField
Foam::dynamicPressureFvPatchScalarField::dynamicPressureFvPatchScalarField
(
const dynamicPressureFvPatchScalarField& ptf,
const dynamicPressureFvPatchScalarField& psf,
const fvPatch& p,
const DimensionedField<scalar, volMesh>& iF,
const fvPatchFieldMapper& mapper
)
:
fixedValueFvPatchScalarField(ptf, p, iF, mapper),
rhoName_(ptf.rhoName_),
psiName_(ptf.psiName_),
gamma_(ptf.gamma_),
p0_(mapper(ptf.p0_))
fixedValueFvPatchScalarField(psf, p, iF, mapper),
rhoName_(psf.rhoName_),
psiName_(psf.psiName_),
gamma_(psf.gamma_),
p0_(mapper(psf.p0_))
{}
@ -124,16 +124,16 @@ void Foam::dynamicPressureFvPatchScalarField::autoMap
void Foam::dynamicPressureFvPatchScalarField::rmap
(
const fvPatchScalarField& ptf,
const fvPatchScalarField& psf,
const labelList& addr
)
{
fixedValueFvPatchScalarField::rmap(ptf, addr);
fixedValueFvPatchScalarField::rmap(psf, addr);
const dynamicPressureFvPatchScalarField& tiptf =
refCast<const dynamicPressureFvPatchScalarField>(ptf);
const dynamicPressureFvPatchScalarField& dpsf =
refCast<const dynamicPressureFvPatchScalarField>(psf);
p0_.rmap(tiptf.p0_, addr);
p0_.rmap(dpsf.p0_, addr);
}
@ -168,7 +168,7 @@ void Foam::dynamicPressureFvPatchScalarField::updateCoeffs
if (gamma_ > 1)
{
scalar gM1ByG = (gamma_ - 1)/gamma_;
const scalar gM1ByG = (gamma_ - 1)/gamma_;
operator==(p0p/pow(scalar(1) + psip*gM1ByG*Kp, 1/gM1ByG));
}

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Copyright (C) 2020 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2020-2021 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -85,12 +85,23 @@ entrainmentPressureFvPatchScalarField
void Foam::entrainmentPressureFvPatchScalarField::updateCoeffs()
{
const surfaceScalarField& phi =
db().lookupObject<surfaceScalarField>(phiName_);
const fvsPatchField<scalar>& phip =
patch().lookupPatchField<surfaceScalarField, scalar>(phiName_);
patch().patchField<surfaceScalarField, scalar>(phi);
const scalarField Unp(phip/patch().magSf());
scalarField Unp(phip/patch().magSf());
dynamicPressureFvPatchScalarField::updateCoeffs(p0_, - 0.5*Unp*mag(Unp));
if (phi.dimensions() == dimMassFlux)
{
const fvPatchField<scalar>& rhop =
patch().lookupPatchField<volScalarField, scalar>(rhoName_);
Unp /= rhop;
}
dynamicPressureFvPatchScalarField::updateCoeffs(p0_, -0.5*Unp*mag(Unp));
}