From bbb5a8086a1327a0614528537a0682f9d361d7f3 Mon Sep 17 00:00:00 2001 From: Henry Weller <http://cfd.direct> Date: Tue, 19 Jan 2016 15:26:42 +0000 Subject: [PATCH] reactingEulerFoam/interfacialModels/wallLubricationModels: Apply zero-gradient condition at walls --- .../wallLubricationModels/Antal/Antal.C | 8 +++--- .../wallLubricationModels/Frank/Frank.C | 8 +++--- .../TomiyamaWallLubrication.C | 8 +++--- .../wallLubricationModel.C | 26 ++++++++++++++++++- .../wallLubricationModel.H | 8 +++++- 5 files changed, 47 insertions(+), 11 deletions(-) diff --git a/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/wallLubricationModels/Antal/Antal.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/wallLubricationModels/Antal/Antal.C index 0b2c7b50129..80cdae42c73 100644 --- a/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/wallLubricationModels/Antal/Antal.C +++ b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/wallLubricationModels/Antal/Antal.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2014-2015 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2014-2016 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -72,7 +72,8 @@ Foam::tmp<Foam::volVectorField> Foam::wallLubricationModels::Antal::Fi() const const volVectorField& n(nWall()); - return + return zeroGradWalls + ( max ( dimensionedScalar("zero", dimless/dimLength, 0), @@ -80,7 +81,8 @@ Foam::tmp<Foam::volVectorField> Foam::wallLubricationModels::Antal::Fi() const ) *pair_.continuous().rho() *magSqr(Ur - (Ur & n)*n) - *n; + *n + ); } diff --git a/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/wallLubricationModels/Frank/Frank.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/wallLubricationModels/Frank/Frank.C index 0b9065a1a9d..6fc19401658 100644 --- a/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/wallLubricationModels/Frank/Frank.C +++ b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/wallLubricationModels/Frank/Frank.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2014-2015 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2014-2016 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -77,7 +77,8 @@ Foam::tmp<Foam::volVectorField> Foam::wallLubricationModels::Frank::Fi() const volScalarField Eo(pair_.Eo()); volScalarField yTilde(y/(Cwc_*pair_.dispersed().d())); - return + return zeroGradWalls + ( ( pos(Eo - 1.0)*neg(Eo - 5.0)*exp(-0.933*Eo + 0.179) + pos(Eo - 5.0)*neg(Eo - 33.0)*(0.00599*Eo - 0.0187) @@ -90,7 +91,8 @@ Foam::tmp<Foam::volVectorField> Foam::wallLubricationModels::Frank::Fi() const ) *pair_.continuous().rho() *magSqr(Ur - (Ur & n)*n) - *n; + *n + ); } diff --git a/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/wallLubricationModels/TomiyamaWallLubrication/TomiyamaWallLubrication.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/wallLubricationModels/TomiyamaWallLubrication/TomiyamaWallLubrication.C index 9209c5108cd..f6a14929003 100644 --- a/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/wallLubricationModels/TomiyamaWallLubrication/TomiyamaWallLubrication.C +++ b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/wallLubricationModels/TomiyamaWallLubrication/TomiyamaWallLubrication.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2014-2015 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2014-2016 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -75,7 +75,8 @@ Foam::wallLubricationModels::TomiyamaWallLubrication::Fi() const volScalarField Eo(pair_.Eo()); - return + return zeroGradWalls + ( ( pos(Eo - 1.0)*neg(Eo - 5.0)*exp(-0.933*Eo + 0.179) + pos(Eo - 5.0)*neg(Eo - 33.0)*(0.00599*Eo - 0.0187) @@ -89,7 +90,8 @@ Foam::wallLubricationModels::TomiyamaWallLubrication::Fi() const ) *pair_.continuous().rho() *magSqr(Ur - (Ur & n)*n) - *n; + *n + ); } diff --git a/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/wallLubricationModels/wallLubricationModel/wallLubricationModel.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/wallLubricationModels/wallLubricationModel/wallLubricationModel.C index 2f3cb1aaa03..fb755c63471 100644 --- a/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/wallLubricationModels/wallLubricationModel/wallLubricationModel.C +++ b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/wallLubricationModels/wallLubricationModel/wallLubricationModel.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2014-2015 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2014-2016 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -26,6 +26,7 @@ License #include "wallLubricationModel.H" #include "phasePair.H" #include "surfaceInterpolate.H" +#include "wallFvPatch.H" // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // @@ -38,6 +39,29 @@ namespace Foam const Foam::dimensionSet Foam::wallLubricationModel::dimF(1, -2, -2, 0, 0); +// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // + +Foam::tmp<Foam::volVectorField> Foam::wallLubricationModel::zeroGradWalls +( + tmp<volVectorField> tFi +) const +{ + volVectorField& Fi = tFi(); + const fvPatchList& patches = Fi.mesh().boundary(); + + forAll(patches, patchi) + { + if (isA<wallFvPatch>(patches[patchi])) + { + fvPatchVectorField& Fiw = Fi.boundaryField()[patchi]; + Fiw = Fiw.patchInternalField(); + } + } + + return tFi; +} + + // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // Foam::wallLubricationModel::wallLubricationModel diff --git a/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/wallLubricationModels/wallLubricationModel/wallLubricationModel.H b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/wallLubricationModels/wallLubricationModel/wallLubricationModel.H index b55415aeb62..53e8a916b60 100644 --- a/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/wallLubricationModels/wallLubricationModel/wallLubricationModel.H +++ b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/wallLubricationModels/wallLubricationModel/wallLubricationModel.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2014-2015 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2014-2016 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -63,6 +63,12 @@ protected: const phasePair& pair_; + // Protected member functions + + //- Zero-gradient wall-lubrication force at walls + tmp<volVectorField> zeroGradWalls(tmp<volVectorField>) const; + + public: //- Runtime type information -- GitLab