/*---------------------------------------------------------------------------*\ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | \\ / A nd | www.openfoam.com \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2024 OpenCFD Ltd. ------------------------------------------------------------------------------- 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 . Class Foam::TomiyamaDragForce Group grpLagrangianIntermediateForceSubModels Description Particle-drag model wherein drag forces (per unit carrier-fluid velocity) are dynamically computed using empirical expressions based on their level of contamination. \f[ \mathrm{F}_\mathrm{D} = \frac{3}{4} \frac{\mu_c\,\mathrm{C}_\mathrm{D}\,\mathrm{Re}_p}{\rho_p \, d_p^2} \f] For pure systems: \f[ \mathrm{C}_\mathrm{D} = \max\left[ \min\left(\frac{16}{Re}(1+0.15Re^{0.687}), \frac{48}{Re}\right), \frac{8}{3}\frac{Eo}{Eo+4} \right] \f] For slightly contaminated systems: \f[ \mathrm{C}_\mathrm{D} = \max\left[ \min\left(\frac{24}{Re}(1+0.15Re^{0.687}), \frac{72}{Re}\right), \frac{8}{3}\frac{Eo}{Eo+4} \right] \f] For fully contaminated systems: \f[ \mathrm{C}_\mathrm{D} = \max\left[ \frac{24}{Re}(1+0.15Re^{0.687}), \frac{8}{3}\frac{Eo}{Eo+4} \right] \f] where \vartable \mathrm{F}_\mathrm{D} | Drag force per carrier-fluid velocity [kg/s] \mathrm{C}_\mathrm{D} | Particle drag coefficient \mathrm{Re}_p | Particle Reynolds number \rho_p | Particle mass density \mu_c | Dynamic viscosity of carrier at the cell occupying particle d_p | Particle diameter \rho_c | Density of carrier at the cell occupying particle \mathbf{u}_\mathrm{rel} | Relative velocity between particle and carrier Eo | Eotvos number \endvartable Constraints: - Applicable to bubbles with a spatially homogeneous distribution. References: \verbatim Tomiyama, A., Kataoka, I., Zun, I., & Sakaguchi, T. (1998). Drag coefficients of single bubbles under normal and micro gravity conditions. JSME International Journal Series B Fluids and Thermal Engineering, 41(2), 472-479. \endverbatim Usage Minimal example by using \c constant/\: \verbatim subModels { particleForces { tomiyamaDrag { // Mandatory entries sigma ; contamination ; // pure | slight | full } } } \endverbatim where the entries mean: \table Property | Description | Type | Reqd | Deflt type | Type name: tomiyamaDrag | word | yes | - sigma | Surface tension | scalar | yes | - contamination | Contamination type | word | yes | - \endtable Options for the \c contamination entry: \verbatim pure | Pure systems slight | Slightly contaminated systems full | Fully contaminated systems \endverbatim Note - \f$\mathrm{F}_\mathrm{D}\f$ is weighted with the particle mass/density at the stage of a function return, so that it can later be normalised with the effective mass, if necessary (e.g. when using virtual-mass forces). SourceFiles TomiyamaDragForce.C \*---------------------------------------------------------------------------*/ #ifndef TomiyamaDragForce_H #define TomiyamaDragForce_H #include "ParticleForce.H" #include "Enum.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // namespace Foam { /*---------------------------------------------------------------------------*\ Class TomiyamaDragForce Declaration \*---------------------------------------------------------------------------*/ template class TomiyamaDragForce : public ParticleForce { public: // Public Enumerations //- Options for the contamination types enum contaminationType : char { PURE = 0, //!< "Pure systems" SLIGHT, //!< "Slightly contaminated systems" FULL //!< "Fully contaminated systems" }; //- Names for the contaminationType options static const Enum contaminationTypeNames; private: // Private Data //- Surface tension const scalar sigma_; //- Contamination type option const contaminationType contaminationType_; // Private Member Functions //- Drag coefficient multiplied by Reynolds number scalar CdRe(const scalar Re) const; public: //- Runtime type information TypeName("TomiyamaDrag"); // Constructors //- Construct from mesh TomiyamaDragForce ( CloudType& owner, const fvMesh& mesh, const dictionary& dict ); //- Copy construct TomiyamaDragForce(const TomiyamaDragForce& df); //- Construct and return a clone virtual autoPtr> clone() const { return autoPtr> ( new TomiyamaDragForce(*this) ); } //- No copy assignment void operator=(const TomiyamaDragForce&) = delete; //- Destructor virtual ~TomiyamaDragForce() = default; // Member Functions // Evaluation //- Calculate the coupled force virtual forceSuSp calcCoupled ( const typename CloudType::parcelType& p, const typename CloudType::parcelType::trackingData& td, const scalar dt, const scalar mass, const scalar Re, const scalar muc ) const; }; // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // } // End namespace Foam // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // #ifdef NoRepository #include "TomiyamaDragForce.C" #endif // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // #endif // ************************************************************************* //