diff --git a/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/Make/files b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/Make/files index ba3fde4f0..00bf5cbb4 100644 --- a/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/Make/files +++ b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/Make/files @@ -19,6 +19,7 @@ diameterModels/velocityGroup/sizeGroup/sizeGroup.C populationBalanceModel/coalescenceModels/coalescenceModel/coalescenceModel.C populationBalanceModel/coalescenceModels/constantCoalescence/constantCoalescence.C +populationBalanceModel/coalescenceModels/CoulaloglouTavlaridesCoalescence/CoulaloglouTavlaridesCoalescence.C populationBalanceModel/coalescenceModels/hydrodynamic/hydrodynamic.C populationBalanceModel/binaryBreakupModels/binaryBreakupModel/binaryBreakupModel.C diff --git a/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/populationBalanceModel/coalescenceModels/CoulaloglouTavlaridesCoalescence/CoulaloglouTavlaridesCoalescence.C b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/populationBalanceModel/coalescenceModels/CoulaloglouTavlaridesCoalescence/CoulaloglouTavlaridesCoalescence.C new file mode 100644 index 000000000..e80209d4c --- /dev/null +++ b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/populationBalanceModel/coalescenceModels/CoulaloglouTavlaridesCoalescence/CoulaloglouTavlaridesCoalescence.C @@ -0,0 +1,94 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2018 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 . + +\*---------------------------------------------------------------------------*/ + +#include "CoulaloglouTavlaridesCoalescence.H" +#include "addToRunTimeSelectionTable.H" + +// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // + +namespace Foam +{ +namespace diameterModels +{ +namespace coalescenceModels +{ + defineTypeNameAndDebug(CoulaloglouTavlaridesCoalescence, 0); + addToRunTimeSelectionTable + ( + coalescenceModel, + CoulaloglouTavlaridesCoalescence, + dictionary + ); +} +} +} + + +// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // + +Foam::diameterModels::coalescenceModels::CoulaloglouTavlaridesCoalescence:: +CoulaloglouTavlaridesCoalescence +( + const populationBalanceModel& popBal, + const dictionary& dict +) +: + coalescenceModel(popBal, dict), + C1_("C1", dimless, dict.lookupOrDefault("C1", 2.8)), + C2_("C2", inv(dimArea), dict.lookupOrDefault("C2", 1.83e9)) +{} + + +// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // + +void +Foam::diameterModels::coalescenceModels::CoulaloglouTavlaridesCoalescence:: +addToCoalescenceRate +( + volScalarField& coalescenceRate, + const label i, + const label j +) +{ + const phaseModel& continuousPhase = popBal_.continuousPhase(); + const sizeGroup& fi = *popBal_.sizeGroups()[i]; + const sizeGroup& fj = *popBal_.sizeGroups()[j]; + + coalescenceRate += + C1_*(pow(fi.x(), 2.0/3.0) + pow(fj.x(), 2.0/3.0)) + *sqrt(pow(fi.x(), 2.0/9.0) + pow(fj.x(), 2.0/9.0)) + *cbrt(continuousTurbulence().epsilon())/(1 + popBal_.alphas()) + *exp + ( + - C2_*continuousPhase.mu()*continuousPhase.rho() + *continuousTurbulence().epsilon() + /sqr(sigma(fi.phase().name(), continuousPhase.name())) + /pow3(1 + popBal_.alphas()) + *pow4(cbrt(fi.x())*cbrt(fj.x())/(cbrt(fi.x()) + cbrt(fj.x()))) + ); +} + + +// ************************************************************************* // diff --git a/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/populationBalanceModel/coalescenceModels/CoulaloglouTavlaridesCoalescence/CoulaloglouTavlaridesCoalescence.H b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/populationBalanceModel/coalescenceModels/CoulaloglouTavlaridesCoalescence/CoulaloglouTavlaridesCoalescence.H new file mode 100644 index 000000000..9e7a24668 --- /dev/null +++ b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/populationBalanceModel/coalescenceModels/CoulaloglouTavlaridesCoalescence/CoulaloglouTavlaridesCoalescence.H @@ -0,0 +1,149 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2018 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 . + +Class + Foam::diameterModels::coalescenceModels::CoulaloglouTavlaridesCoalescence + +Description + Model of Coulaloglou and Tavlarides (1977). The coalescence rate is + calculated by + + \f[ + C_1 (v_i^{2/3} + v_j^{2/3}) (v_i^{2/9} + v_j^{2/9})^{1/2} + \frac{\epsilon_c^{1/3}}{1 + \alpha_d} + \text{exp} + \left[ + - C_2 \frac{\mu_c \rho_c}{\sigma^2} + \frac{\epsilon_c}{(1 + \alpha_d)^{3}} + \left( + \frac{v_i^{1/3} v_j^{1/3}}{v_i^{1/3} + v_j^{1/3}} + \right)^{4} + \right] + \f] + + where + + \vartable + \sigma | Surface tension [N/m] + v_i | Volume of bubble i [m3] + v_j | Volume of bubble j [m3] + \epsilon_c | Turbulent dissipation rate of continuous phase [m2/s3] + \alpha_d | Total void fraction of disperse phase [-] + \mu_c | Molecular dynamic viscosity of liquid phase [Pa s] + \rho_c | Density of continous phase [kg/m3] + \endvartable + + References: + \verbatim + "Description of interaction processes in agitated liquid-liquid + dispersions" + Coulaloglou, C.A., Tavlarides, L.L. + Chemical Engineering Science, Vol. 32, Issue 11, 1977, pp. 1289-1297 + Eq. 37, p. 1294 + \endverbatim + +Usage + \table + Property | Description | Required | Default value + C1 | Coefficient C1 | no | 2.8 + C2 | Coefficient C2 | no | 1.83e9 + \endtable + +SourceFiles + CoulaloglouTavlaridesCoalescence.C + +\*---------------------------------------------------------------------------*/ + +#ifndef CoulaloglouTavlaridesCoalescence_H +#define CoulaloglouTavlaridesCoalescence_H + +#include "coalescenceModel.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ +namespace diameterModels +{ +namespace coalescenceModels +{ + +/*---------------------------------------------------------------------------*\ + Class CoulaloglouTavlaridesCoalescence Declaration +\*---------------------------------------------------------------------------*/ + +class CoulaloglouTavlaridesCoalescence +: + public coalescenceModel +{ + // Private data + + //- Optional coefficient C1, defaults to 2.8 + dimensionedScalar C1_; + + //- Optional coefficient C2, defaults to 1.83e9 + dimensionedScalar C2_; + + +public: + + //- Runtime type information + TypeName("CoulaloglouTavlarides"); + + // Constructor + + CoulaloglouTavlaridesCoalescence + ( + const populationBalanceModel& popBal, + const dictionary& dict + ); + + + //- Destructor + virtual ~CoulaloglouTavlaridesCoalescence() + {} + + + // Member Functions + + //- Add to coalescenceRate + virtual void addToCoalescenceRate + ( + volScalarField& coalescenceRate, + const label i, + const label j + ); +}; + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace coalescenceModels +} // End namespace diameterModels +} // End namespace Foam + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* //