From 17a85930ebc156ef2c5bf863946172881bff256b Mon Sep 17 00:00:00 2001
From: william <william>
Date: Mon, 7 Apr 2014 10:23:02 +0100
Subject: [PATCH] ENH: twoPhaseEulerFoam: added new interfacial models

---
 .../interfacialModels/Make/files              |   2 +
 .../TomiyamaAspectRatio/TomiyamaAspectRatio.C |  81 ++++++++++++
 .../TomiyamaAspectRatio/TomiyamaAspectRatio.H | 108 ++++++++++++++++
 .../TomiyamaWallLubrication.C                 |  97 ++++++++++++++
 .../TomiyamaWallLubrication.H                 | 118 ++++++++++++++++++
 5 files changed, 406 insertions(+)
 create mode 100644 applications/solvers/multiphase/twoPhaseEulerFoam/interfacialModels/aspectRatioModels/TomiyamaAspectRatio/TomiyamaAspectRatio.C
 create mode 100644 applications/solvers/multiphase/twoPhaseEulerFoam/interfacialModels/aspectRatioModels/TomiyamaAspectRatio/TomiyamaAspectRatio.H
 create mode 100644 applications/solvers/multiphase/twoPhaseEulerFoam/interfacialModels/wallLubricationModels/TomiyamaWallLubrication/TomiyamaWallLubrication.C
 create mode 100644 applications/solvers/multiphase/twoPhaseEulerFoam/interfacialModels/wallLubricationModels/TomiyamaWallLubrication/TomiyamaWallLubrication.H

diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/interfacialModels/Make/files b/applications/solvers/multiphase/twoPhaseEulerFoam/interfacialModels/Make/files
index 7e0281758ef..81bccf253c4 100644
--- a/applications/solvers/multiphase/twoPhaseEulerFoam/interfacialModels/Make/files
+++ b/applications/solvers/multiphase/twoPhaseEulerFoam/interfacialModels/Make/files
@@ -40,6 +40,7 @@ wallLubricationModels/wallLubricationModel/newWallLubricationModel.C
 wallLubricationModels/noWallLubrication/noWallLubrication.C
 wallLubricationModels/Antal/Antal.C
 wallLubricationModels/Frank/Frank.C
+wallLubricationModels/TomiyamaWallLubrication/TomiyamaWallLubrication.C
 
 turbulentDispersionModels/turbulentDispersionModel/turbulentDispersionModel.C
 turbulentDispersionModels/turbulentDispersionModel/newTurbulentDispersionModel.C
@@ -51,6 +52,7 @@ turbulentDispersionModels/Gosman/Gosman.C
 aspectRatioModels/aspectRatioModel/aspectRatioModel.C
 aspectRatioModels/aspectRatioModel/newAspectRatioModel.C
 aspectRatioModels/constantAspectRatio/constantAspectRatio.C
+aspectRatioModels/TomiyamaAspectRatio/TomiyamaAspectRatio.C
 aspectRatioModels/VakhrushevEfremov/VakhrushevEfremov.C
 aspectRatioModels/Wellek/Wellek.C
 
diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/interfacialModels/aspectRatioModels/TomiyamaAspectRatio/TomiyamaAspectRatio.C b/applications/solvers/multiphase/twoPhaseEulerFoam/interfacialModels/aspectRatioModels/TomiyamaAspectRatio/TomiyamaAspectRatio.C
new file mode 100644
index 00000000000..6e74101407f
--- /dev/null
+++ b/applications/solvers/multiphase/twoPhaseEulerFoam/interfacialModels/aspectRatioModels/TomiyamaAspectRatio/TomiyamaAspectRatio.C
@@ -0,0 +1,81 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2014 OpenFOAM Foundation
+     \\/     M anipulation  |
+-------------------------------------------------------------------------------
+License
+    This file is part of OpenFOAM.
+
+    OpenFOAM is free software: you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+    for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
+
+\*---------------------------------------------------------------------------*/
+
+#include "TomiyamaAspectRatio.H"
+#include "orderedPhasePair.H"
+#include "addToRunTimeSelectionTable.H"
+
+// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace aspectRatioModels
+{
+    defineTypeNameAndDebug(TomiyamaAspectRatio, 0);
+    addToRunTimeSelectionTable
+    (
+        aspectRatioModel,
+        TomiyamaAspectRatio,
+        dictionary
+    );
+}
+}
+
+
+// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
+
+Foam::aspectRatioModels::TomiyamaAspectRatio::TomiyamaAspectRatio
+(
+    const dictionary& dict,
+    const orderedPhasePair& pair
+)
+:
+    aspectRatioModel(dict, pair),
+    yWall_(pair.phase1().mesh().lookupObject<volScalarField>("yWall"))
+{}
+
+
+// * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
+
+Foam::aspectRatioModels::TomiyamaAspectRatio::~TomiyamaAspectRatio()
+{}
+
+
+// * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * * //
+
+Foam::tmp<Foam::volScalarField>
+Foam::aspectRatioModels::TomiyamaAspectRatio::E() const
+{
+    return
+        pair_.Eo()
+       *max
+       (
+           scalar(1) - 0.35*yWall_/pair_.dispersed().d(),
+           scalar(0.65)
+       );
+}
+
+
+// ************************************************************************* //
diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/interfacialModels/aspectRatioModels/TomiyamaAspectRatio/TomiyamaAspectRatio.H b/applications/solvers/multiphase/twoPhaseEulerFoam/interfacialModels/aspectRatioModels/TomiyamaAspectRatio/TomiyamaAspectRatio.H
new file mode 100644
index 00000000000..ba32d21c678
--- /dev/null
+++ b/applications/solvers/multiphase/twoPhaseEulerFoam/interfacialModels/aspectRatioModels/TomiyamaAspectRatio/TomiyamaAspectRatio.H
@@ -0,0 +1,108 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2014 OpenFOAM Foundation
+     \\/     M anipulation  |
+-------------------------------------------------------------------------------
+License
+    This file is part of OpenFOAM.
+
+    OpenFOAM is free software: you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+    for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
+
+Class
+    Foam::aspectRatioModels::TomiyamaAspectRatio
+
+Description
+    Aspect ratio model of Tomiyama.
+
+    Reference:
+    \verbatim
+        "Implementation and Comparison of Correlations for interfacial Forces
+        in a Gas-Liquid System within an Euler-Euler Framework"
+        M Otromke
+        PhD Thesis
+        April 2013
+    \endverbatim
+
+SourceFiles
+    TomiyamaAspectRatio.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef TomiyamaAspectRatio_H
+#define TomiyamaAspectRatio_H
+
+#include "aspectRatioModel.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace aspectRatioModels
+{
+
+/*---------------------------------------------------------------------------*\
+                       Class TomiyamaAspectRatio Declaration
+\*---------------------------------------------------------------------------*/
+
+class TomiyamaAspectRatio
+:
+    public aspectRatioModel
+{
+private:
+
+    // Private data
+
+        //- Wall distance
+        const volScalarField& yWall_;
+
+
+public:
+
+    //- Runtime type information
+    TypeName("Tomiyama");
+
+
+    // Constructors
+
+        //- Construct from a dictionary and an ordered phase pair
+        TomiyamaAspectRatio
+        (
+            const dictionary& dict,
+            const orderedPhasePair& pair
+        );
+
+
+    //- Destructor
+    virtual ~TomiyamaAspectRatio();
+
+
+    // Member Functions
+
+        //- Aspect ratio
+        virtual tmp<volScalarField> E() const;
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace aspectRatioModels
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/interfacialModels/wallLubricationModels/TomiyamaWallLubrication/TomiyamaWallLubrication.C b/applications/solvers/multiphase/twoPhaseEulerFoam/interfacialModels/wallLubricationModels/TomiyamaWallLubrication/TomiyamaWallLubrication.C
new file mode 100644
index 00000000000..09e45c32f38
--- /dev/null
+++ b/applications/solvers/multiphase/twoPhaseEulerFoam/interfacialModels/wallLubricationModels/TomiyamaWallLubrication/TomiyamaWallLubrication.C
@@ -0,0 +1,97 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2014 OpenFOAM Foundation
+     \\/     M anipulation  |
+-------------------------------------------------------------------------------
+License
+    This file is part of OpenFOAM.
+
+    OpenFOAM is free software: you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+    for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
+
+\*---------------------------------------------------------------------------*/
+
+#include "TomiyamaWallLubrication.H"
+#include "phasePair.H"
+#include "fvc.H"
+#include "addToRunTimeSelectionTable.H"
+
+// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace wallLubricationModels
+{
+    defineTypeNameAndDebug(TomiyamaWallLubrication, 0);
+    addToRunTimeSelectionTable
+    (
+        wallLubricationModel,
+        TomiyamaWallLubrication,
+        dictionary
+    );
+}
+}
+
+
+// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
+
+Foam::wallLubricationModels::TomiyamaWallLubrication::TomiyamaWallLubrication
+(
+    const dictionary& dict,
+    const phasePair& pair
+)
+:
+    wallLubricationModel(dict, pair),
+    D_("Cwd", dimLength, dict.lookup("D"))
+{}
+
+
+// * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
+
+Foam::wallLubricationModels::TomiyamaWallLubrication::~TomiyamaWallLubrication()
+{}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+Foam::tmp<Foam::volVectorField>
+Foam::wallLubricationModels::TomiyamaWallLubrication::F() const
+{
+    volVectorField Ur(pair_.Ur());
+    volVectorField nWall(- fvc::grad(yWall_));
+    nWall /= mag(nWall) + SMALL;
+
+    volScalarField Eo(pair_.Eo());
+
+    return
+        (
+            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)
+          + pos(Eo - 33.0)*0.179
+        )
+       *0.5
+       *pair_.dispersed().d()
+       *(
+            1/sqr(yWall_)
+          - 1/sqr(D_ - yWall_)
+        )
+       *pair_.dispersed()
+       *pair_.continuous().rho()
+       *magSqr(Ur - (Ur & nWall)*nWall)
+       *nWall;
+}
+
+
+// ************************************************************************* //
diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/interfacialModels/wallLubricationModels/TomiyamaWallLubrication/TomiyamaWallLubrication.H b/applications/solvers/multiphase/twoPhaseEulerFoam/interfacialModels/wallLubricationModels/TomiyamaWallLubrication/TomiyamaWallLubrication.H
new file mode 100644
index 00000000000..24377af8963
--- /dev/null
+++ b/applications/solvers/multiphase/twoPhaseEulerFoam/interfacialModels/wallLubricationModels/TomiyamaWallLubrication/TomiyamaWallLubrication.H
@@ -0,0 +1,118 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2014 OpenFOAM Foundation
+     \\/     M anipulation  |
+-------------------------------------------------------------------------------
+License
+    This file is part of OpenFOAM.
+
+    OpenFOAM is free software: you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+    for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
+
+Class
+    Foam::wallLubricationModels::TomiyamaWallLubrication
+
+Description
+    Wall lubrication model of Tomiyama.
+
+    References:
+    \verbatim
+        "Implementation and Comparison of Correlations for interfacial Forces
+        in a Gas-Liquid System within an Euler-Euler Framework"
+        M Otromke
+        PhD Thesis
+        April 2013
+    \endverbatim
+
+    \verbatim
+        "Struggle with Computational Bubble Dynamics"
+        A Tomiyama
+        Multiphase Science and Technology
+        Volume 10, Issue 4, Pages 369-405, 1998
+    \endverbatim
+
+SourceFiles
+    TomiyamaWallLubrication.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef TomiyamaWallLubrication_H
+#define TomiyamaWallLubrication_H
+
+#include "wallLubricationModel.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+
+class phasePair;
+
+namespace wallLubricationModels
+{
+
+/*---------------------------------------------------------------------------*\
+                            Class TomiyamaWallLubrication Declaration
+\*---------------------------------------------------------------------------*/
+
+class TomiyamaWallLubrication
+:
+    public wallLubricationModel
+{
+private:
+
+    // Private data
+
+        //- Characteristic channel dimension
+        const dimensionedScalar D_;
+
+
+public:
+
+    //- Runtime type information
+    TypeName("Tomiyama");
+
+
+    // Constructors
+
+        //- Construct from components
+        TomiyamaWallLubrication
+        (
+            const dictionary& dict,
+            const phasePair& pair
+        );
+
+
+    //- Destructor
+    virtual ~TomiyamaWallLubrication();
+
+
+    // Member Functions
+
+        //- Wall lubrication force
+        tmp<volVectorField> F() const;
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace wallLubricationModels
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
-- 
GitLab