/*---------------------------------------------------------------------------*\
  ==  == ====== ====   ====    |
                    \\     ||  | Multiphase Code Repository by HZDR
  ======   //   ||  || ===//   | Website: https://doi.org/10.14278/rodare.767
  ||  ||  //    ||  // || \\   | License: GPL-3.0-or-later
  ==  == ====== ====   ==  ==  |
-------------------------------------------------------------------------------
License
    This file is part of the Multiphase Code Repository by HZDR.

    Copyright (C) 2025 by Helmholtz-Zentrum Dresden-Rossendorf e.V. (HZDR),
    Website: https://hzdr.de

    Multiphase Code Repository by HZDR is based on the free software for
    computational fluid dynamics (CFD) from the OpenFOAM Foundation.
    Copyright (C) 2025 by OpenFOAM Foundation, Website: https://openfoam.org

    If you are interested in which files are original OpenFOAM Foundation
    files, which OpenFOAM Foundation files were modified, and which files were
    newly created, see FILES.md.

    Multiphase Code Repository by HZDR 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.

    Multiphase Code Repository by HZDR 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 the Multiphase Code Repository by HZDR. If not, see
    <http://www.gnu.org/licenses/>.

Class
    Foam::wallLubricationModels::Shi

Description
    Wall lubrication model of Shi et al. (2021).

    References:
    The original model introduced by (Eq. 6a, b and c):
    \verbatim
        Takemura, F. & Magnaudet, J. (2003)
        The transverse force on clean and contaminated bubbles rising near a
        vertical wall at moderate Reynolds number.
        Journal of Fluid Mechanics, 495, 235-253.
    \endverbatim

    with modifications and low-Re correction from (Eq. 20, 24, 25b, 26 and 36):
    \verbatim
        Shi, P., Rzehak, R., Lucas, D., & Magnaudet, J. (2021)
        Drag and lift forces on a rigid sphere immersed in a wall-bounded
        linear shear flow.
        Physical Review Fluids, 6, 104309.
    \endverbatim

    Note that the slip-induced transverse force in a fluid at rest at
    moderate-to-large Re with assumption for Low-Re wall-bounded shear flow is
    implemented. Also the model is based on data for 0.1 <= Re <= 100. For
    Re < 100, the model is corrected by a pre-factor. For Re >= 100, the model
    coefficient becomes independent of Re. Therefore, Re is bounded in this
    range. Furthermore, a conversion is required from Takemura & Magnaudet
    (2003) definition of \f$C_{W}^{*}\f$ to OpenFOAM's definition of
    \f$C_{W}\f$:

    \f[
        \frac{\vec{F}_{W}}{\vec{F}_{W}^{*}}
        = \frac
          {
              C_{W} \frac{\pi}{3} d_P^2 \rho_L u_{rel}^2 \vec{n}
          }
          {
              C_{W}^{*} \frac{\pi}{8} d_P^2 \rho_L u_{rel}^2 \vec{n}
          }
        = 1
    \f]

SourceFiles
    Shi.C

\*---------------------------------------------------------------------------*/

#ifndef Shi_H
#define Shi_H

#include "dispersedWallLubricationModel.H"

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

namespace Foam
{

namespace wallLubricationModels
{

/*---------------------------------------------------------------------------*\
                             Class Shi Declaration
\*---------------------------------------------------------------------------*/

class Shi
:
    public dispersedWallLubricationModel
{
    // Private Data

        //- Residual Reynolds Number
        const dimensionedScalar residualRe_;


public:

    //- Runtime type information
    TypeName("Shi");


    // Constructors

        //- Construct from components
        Shi
        (
            const dictionary& dict,
            const phaseInterface& interface
        );


    //- Destructor
    virtual ~Shi();


    // Member Functions

        //- Return phase-intensive wall lubrication force
        tmp<volVectorField> Fi() const;
};


// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

} // End namespace wallLubricationModels
} // End namespace Foam

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

#endif

// ************************************************************************* //
