twoPhaseEulerFoam: Add partial-elimination to phase flux and velocity correction

Improves stability and convergence of systems in which drag dominates
e.g. small particles in high-speed gas flow.

Additionally a new ddtPhiCorr strategy is included in which correction
is applied only where the phases are nearly pure.  This reduces
staggering patters near the free-surface of bubble-column simulations.
This commit is contained in:
Henry
2015-04-05 21:18:28 +01:00
parent 3635171003
commit a6dded3ba5
5 changed files with 382 additions and 13 deletions

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2012-2014 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2012-2015 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -218,6 +218,17 @@ void Foam::MRFZoneList::makeRelative(surfaceScalarField& phi) const
}
Foam::tmp<Foam::surfaceScalarField> Foam::MRFZoneList::relative
(
const tmp<surfaceScalarField>& phi
) const
{
tmp<surfaceScalarField> rphi(phi.ptr());
makeRelative(rphi());
return rphi;
}
Foam::tmp<Foam::FieldField<Foam::fvsPatchField, Foam::scalar> >
Foam::MRFZoneList::relative
(
@ -266,6 +277,17 @@ void Foam::MRFZoneList::makeAbsolute(surfaceScalarField& phi) const
}
Foam::tmp<Foam::surfaceScalarField> Foam::MRFZoneList::absolute
(
const tmp<surfaceScalarField>& phi
) const
{
tmp<surfaceScalarField> rphi(phi.ptr());
makeAbsolute(rphi());
return rphi;
}
void Foam::MRFZoneList::makeAbsolute
(
const surfaceScalarField& rho,

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2012-2014 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2012-2015 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -118,12 +118,15 @@ public:
//- Make the given absolute velocity relative within the MRF region
void makeRelative(volVectorField& U) const;
//- Make the given relative velocity absolute within the MRF region
void makeAbsolute(volVectorField& U) const;
//- Make the given absolute flux relative within the MRF region
void makeRelative(surfaceScalarField& phi) const;
//- Return the given absolute flux relative within the MRF region
tmp<surfaceScalarField> relative
(
const tmp<surfaceScalarField>& phi
) const;
//- Return the given absolute boundary flux relative within
// the MRF region
tmp<FieldField<fvsPatchField, scalar> > relative
@ -138,9 +141,18 @@ public:
surfaceScalarField& phi
) const;
//- Make the given relative velocity absolute within the MRF region
void makeAbsolute(volVectorField& U) const;
//- Make the given relative flux absolute within the MRF region
void makeAbsolute(surfaceScalarField& phi) const;
//- Return the given relative flux absolute within the MRF region
tmp<surfaceScalarField> absolute
(
const tmp<surfaceScalarField>& phi
) const;
//- Make the given relative mass-flux absolute within the MRF region
void makeAbsolute
(