diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/Allwclean b/applications/solvers/multiphase/multiphaseEulerFoam/Allwclean deleted file mode 100755 index 727191ec35..0000000000 --- a/applications/solvers/multiphase/multiphaseEulerFoam/Allwclean +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/sh -cd ${0%/*} || exit 1 # Run from this directory - -wclean libso multiphaseSystem -wclean libso interfacialModels -wclean - -#------------------------------------------------------------------------------ diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/Allwmake b/applications/solvers/multiphase/multiphaseEulerFoam/Allwmake deleted file mode 100755 index c731f57210..0000000000 --- a/applications/solvers/multiphase/multiphaseEulerFoam/Allwmake +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/sh -cd ${0%/*} || exit 1 # Run from this directory - -# Parse arguments for library compilation -. $WM_PROJECT_DIR/wmake/scripts/AllwmakeParseArguments - -wmake $targetType multiphaseSystem -wmake $targetType interfacialModels -wmake $targetType - -#------------------------------------------------------------------------------ diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/CourantNo.H b/applications/solvers/multiphase/multiphaseEulerFoam/CourantNo.H deleted file mode 100644 index c9d0a81230..0000000000 --- a/applications/solvers/multiphase/multiphaseEulerFoam/CourantNo.H +++ /dev/null @@ -1,60 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2011-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 . - -Global - CourantNo - -Description - Calculates and outputs the mean and maximum Courant Numbers. - -\*---------------------------------------------------------------------------*/ - -scalar CoNum = 0.0; -scalar meanCoNum = 0.0; - -if (mesh.nInternalFaces()) -{ - scalarField sumPhi - ( - fvc::surfaceSum(mag(phi))().primitiveField() - ); - - forAllIter(PtrDictionary, fluid.phases(), iter) - { - sumPhi = max - ( - sumPhi, - fvc::surfaceSum(mag(iter().phi()))().primitiveField() - ); - } - - CoNum = 0.5*gMax(sumPhi/mesh.V().field())*runTime.deltaTValue(); - - meanCoNum = - 0.5*(gSum(sumPhi)/gSum(mesh.V().field()))*runTime.deltaTValue(); -} - -Info<< "Courant Number mean: " << meanCoNum - << " max: " << CoNum << endl; - -// ************************************************************************* // diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/DDtU.H b/applications/solvers/multiphase/multiphaseEulerFoam/DDtU.H deleted file mode 100644 index 04b66a307a..0000000000 --- a/applications/solvers/multiphase/multiphaseEulerFoam/DDtU.H +++ /dev/null @@ -1,11 +0,0 @@ -forAllIter(PtrDictionary, fluid.phases(), iter) -{ - phaseModel& phase = iter(); - - phase.DDtU() = - fvc::ddt(phase.U()) - + fvc::div(phase.phi(), phase.U()) - - fvc::div(phase.phi())*phase.U(); - - MRF.addAcceleration(phase.U(), phase.DDtU()); -} diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/MRFCorrectBCs.H b/applications/solvers/multiphase/multiphaseEulerFoam/MRFCorrectBCs.H deleted file mode 100644 index e871719cd8..0000000000 --- a/applications/solvers/multiphase/multiphaseEulerFoam/MRFCorrectBCs.H +++ /dev/null @@ -1,6 +0,0 @@ - forAllIter(PtrDictionary, fluid.phases(), iter) - { - MRF.correctBoundaryVelocity(iter().U()); - } - - MRF.correctBoundaryVelocity(U); diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/Make/files b/applications/solvers/multiphase/multiphaseEulerFoam/Make/files deleted file mode 100644 index f71c44324a..0000000000 --- a/applications/solvers/multiphase/multiphaseEulerFoam/Make/files +++ /dev/null @@ -1,3 +0,0 @@ -multiphaseEulerFoam.C - -EXE = $(FOAM_APPBIN)/multiphaseEulerFoam diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/Make/options b/applications/solvers/multiphase/multiphaseEulerFoam/Make/options deleted file mode 100644 index 9a8547b64e..0000000000 --- a/applications/solvers/multiphase/multiphaseEulerFoam/Make/options +++ /dev/null @@ -1,22 +0,0 @@ -EXE_INC = \ - -ImultiphaseSystem/lnInclude \ - -ImultiphaseFixedFluxPressure \ - -IinterfacialModels/lnInclude \ - -I$(LIB_SRC)/transportModels/lnInclude \ - -I$(LIB_SRC)/twoPhaseModels/interfaceProperties/lnInclude \ - -I$(LIB_SRC)/MomentumTransportModels/momentumTransportModels/lnInclude \ - -I$(LIB_SRC)/MomentumTransportModels/incompressible/lnInclude \ - -I$(LIB_SRC)/finiteVolume/lnInclude \ - -I$(LIB_SRC)/meshTools/lnInclude - - -EXE_LIBS = \ - -lmultiphaseSystem \ - -linterfaceProperties \ - -lincompressibleTransportModels \ - -lcompressibleMultiphaseEulerianInterfacialModels \ - -lmomentumTransportModels \ - -lincompressibleMomentumTransportModels \ - -lfiniteVolume \ - -lfvOptions \ - -lmeshTools diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/TEqns.H b/applications/solvers/multiphase/multiphaseEulerFoam/TEqns.H deleted file mode 100644 index 427a5f0b4c..0000000000 --- a/applications/solvers/multiphase/multiphaseEulerFoam/TEqns.H +++ /dev/null @@ -1,36 +0,0 @@ -{ - volScalarField kByCp1("kByCp1", alpha1*(k1/Cp1/rho1 + sqr(Ct)*nut2/Prt)); - volScalarField kByCp2("kByCp2", alpha2*(k2/Cp2/rho2 + nut2/Prt)); - - fvScalarMatrix T1Eqn - ( - fvm::ddt(alpha1, T1) - + fvm::div(alphaPhi1, T1) - - fvm::laplacian(kByCp1, T1) - == - heatTransferCoeff*T2/Cp1/rho1 - - fvm::Sp(heatTransferCoeff/Cp1/rho1, T1) - + alpha1*Dp1Dt/Cp1/rho1 - ); - - fvScalarMatrix T2Eqn - ( - fvm::ddt(alpha2, T2) - + fvm::div(alphaPhi2, T2) - - fvm::laplacian(kByCp2, T2) - == - heatTransferCoeff*T1/Cp2/rho2 - - fvm::Sp(heatTransferCoeff/Cp2/rho2, T2) - + alpha2*Dp2Dt/Cp2/rho2 - ); - - T1Eqn.relax(); - T1Eqn.solve(); - - T2Eqn.relax(); - T2Eqn.solve(); - - // Update compressibilities - psi1 = 1.0/(R1*T1); - psi2 = 1.0/(R2*T2); -} diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/UEqns.H b/applications/solvers/multiphase/multiphaseEulerFoam/UEqns.H deleted file mode 100644 index e3b1278641..0000000000 --- a/applications/solvers/multiphase/multiphaseEulerFoam/UEqns.H +++ /dev/null @@ -1,62 +0,0 @@ -#include "MRFCorrectBCs.H" - -PtrList UEqns(fluid.phases().size()); -autoPtr dragCoeffs(fluid.dragCoeffs()); - -int phasei = 0; -forAllIter(PtrDictionary, fluid.phases(), iter) -{ - phaseModel& phase = iter(); - const volScalarField& alpha = phase; - volVectorField& U = phase.U(); - - volScalarField nuEff(turbulence->nut() + iter().nu()); - - UEqns.set - ( - phasei, - new fvVectorMatrix - ( - fvm::ddt(alpha, U) - + fvm::div(phase.alphaPhi(), U) - - + (alpha/phase.rho())*fluid.Cvm(phase)* - ( - fvm::ddt(U) - + fvm::div(phase.phi(), U) - - fvm::Sp(fvc::div(phase.phi()), U) - ) - - - fvm::laplacian(alpha*nuEff, U) - - fvc::div - ( - alpha*(nuEff*dev(T(fvc::grad(U))) /*- ((2.0/3.0)*I)*k*/), - "div(Rc)" - ) - == - //- fvm::Sp(fluid.dragCoeff(phase, dragCoeffs())/phase.rho(), U) - //- (alpha*phase.rho())*fluid.lift(phase) - //+ - (alpha/phase.rho())*fluid.Svm(phase) - - fvm::Sp - ( - slamDampCoeff - *max - ( - mag(U()) - maxSlamVelocity, - dimensionedScalar(dimVelocity, 0) - ) - /pow(mesh.V(), 1.0/3.0), - U - ) - ) - ); - MRF.addAcceleration - ( - alpha*(1 + (1/phase.rho())*fluid.Cvm(phase)), - UEqns[phasei] - ); - // UEqns[phasei].relax(); - - phasei++; -} diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/correctPhi.H b/applications/solvers/multiphase/multiphaseEulerFoam/correctPhi.H deleted file mode 100644 index f032f02072..0000000000 --- a/applications/solvers/multiphase/multiphaseEulerFoam/correctPhi.H +++ /dev/null @@ -1,12 +0,0 @@ -CorrectPhi -( - U, - phi, - p_rgh, - dimensionedScalar("rAUf", dimTime/rho.dimensions(), 1), - geometricZeroField(), - pimple, - true -); - -#include "continuityErrs.H" diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/createFields.H b/applications/solvers/multiphase/multiphaseEulerFoam/createFields.H deleted file mode 100644 index 0ff777fd1c..0000000000 --- a/applications/solvers/multiphase/multiphaseEulerFoam/createFields.H +++ /dev/null @@ -1,107 +0,0 @@ -Info<< "Reading field p_rgh\n" << endl; -volScalarField p_rgh -( - IOobject - ( - "p_rgh", - runTime.timeName(), - mesh, - IOobject::MUST_READ, - IOobject::AUTO_WRITE - ), - mesh -); - -volVectorField U -( - IOobject - ( - "U", - runTime.timeName(), - mesh, - IOobject::NO_READ, - IOobject::AUTO_WRITE - ), - mesh, - dimensionedVector(dimVelocity, Zero) -); - -surfaceScalarField phi -( - IOobject - ( - "phi", - runTime.timeName(), - mesh, - IOobject::NO_READ, - IOobject::AUTO_WRITE - ), - mesh, - dimensionedScalar(dimArea*dimVelocity, 0) -); - -multiphaseSystem fluid(U, phi); - -forAllIter(PtrDictionary, fluid.phases(), iter) -{ - phaseModel& phase = iter(); - const volScalarField& alpha = phase; - - U += alpha*phase.U(); - phi += fvc::interpolate(alpha)*phase.phi(); -} - - -volScalarField rho -( - IOobject - ( - "rho", - runTime.timeName(), - mesh, - IOobject::NO_READ, - IOobject::AUTO_WRITE - ), - fluid.rho() -); - - -// Construct incompressible turbulence model -autoPtr turbulence -( - incompressible::momentumTransportModel::New(U, phi, fluid) -); - - -#include "readGravitationalAcceleration.H" -#include "readhRef.H" -#include "gh.H" - - -volScalarField p -( - IOobject - ( - "p", - runTime.timeName(), - mesh, - IOobject::NO_READ, - IOobject::AUTO_WRITE - ), - p_rgh + rho*gh -); - -label pRefCell = 0; -scalar pRefValue = 0.0; -setRefCell -( - p, - p_rgh, - pimple.dict(), - pRefCell, - pRefValue -); -mesh.setFluxRequired(p_rgh.name()); - - -#include "createMRFZones.H" diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/createMRFZones.H b/applications/solvers/multiphase/multiphaseEulerFoam/createMRFZones.H deleted file mode 100644 index ea04f3efa0..0000000000 --- a/applications/solvers/multiphase/multiphaseEulerFoam/createMRFZones.H +++ /dev/null @@ -1,8 +0,0 @@ - IOMRFZoneList MRF(mesh); - - forAllIter(PtrDictionary, fluid.phases(), iter) - { - MRF.correctBoundaryVelocity(iter().U()); - } - - MRF.correctBoundaryVelocity(U); diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/Make/files b/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/Make/files deleted file mode 100644 index ff81afc634..0000000000 --- a/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/Make/files +++ /dev/null @@ -1,17 +0,0 @@ -dragModels/dragModel/dragModel.C -dragModels/dragModel/newDragModel.C -dragModels/Ergun/Ergun.C -dragModels/GidaspowErgunWenYu/GidaspowErgunWenYu.C -dragModels/GidaspowSchillerNaumann/GidaspowSchillerNaumann.C -dragModels/SchillerNaumann/SchillerNaumann.C -dragModels/Gibilaro/Gibilaro.C -dragModels/WenYu/WenYu.C -dragModels/SyamlalOBrien/SyamlalOBrien.C -dragModels/blended/blended.C -dragModels/interface/interface.C - -heatTransferModels/heatTransferModel/heatTransferModel.C -heatTransferModels/heatTransferModel/newHeatTransferModel.C -heatTransferModels/RanzMarshall/RanzMarshall.C - -LIB = $(FOAM_LIBBIN)/libcompressibleMultiphaseEulerianInterfacialModels diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/Make/options b/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/Make/options deleted file mode 100644 index 682a236843..0000000000 --- a/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/Make/options +++ /dev/null @@ -1,6 +0,0 @@ -EXE_INC = \ - -I../multiphaseSystem/lnInclude \ - -I$(LIB_SRC)/finiteVolume/lnInclude - -LIB_LIBS = \ - -lmultiphaseSystem diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/dragModels/Ergun/Ergun.C b/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/dragModels/Ergun/Ergun.C deleted file mode 100644 index 49fa0269ac..0000000000 --- a/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/dragModels/Ergun/Ergun.C +++ /dev/null @@ -1,82 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2011-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 "Ergun.H" -#include "addToRunTimeSelectionTable.H" - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -namespace Foam -{ -namespace dragModels -{ - defineTypeNameAndDebug(Ergun, 0); - - addToRunTimeSelectionTable - ( - dragModel, - Ergun, - dictionary - ); -} -} - - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -Foam::dragModels::Ergun::Ergun -( - const dictionary& interfaceDict, - const phaseModel& phase1, - const phaseModel& phase2 -) -: - dragModel(interfaceDict, phase1, phase2) -{} - - -// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // - -Foam::dragModels::Ergun::~Ergun() -{} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -Foam::tmp Foam::dragModels::Ergun::K -( - const volScalarField& Ur -) const -{ - volScalarField alpha2(max(phase2_, scalar(1.0e-6))); - - return - 150.0*phase1_*phase2_.nu()*phase2_.rho() - /sqr(alpha2*phase1_.d()) - + 1.75*phase2_.rho()*Ur/(alpha2*phase1_.d()); -} - - -// ************************************************************************* // diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/dragModels/Ergun/Ergun.H b/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/dragModels/Ergun/Ergun.H deleted file mode 100644 index 3db5b19056..0000000000 --- a/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/dragModels/Ergun/Ergun.H +++ /dev/null @@ -1,95 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2011-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::dragModels::Ergun - -Description - H, Enwald, E. Peirano, A-E Almstedt - 'Eulerian Two-Phase Flow Theory Applied to Fluidization' - Int. J. Multiphase Flow, Vol. 22, Suppl, pp. 21-66 (1996) - Eq. 104, p. 42 - -SourceFiles - Ergun.C - -\*---------------------------------------------------------------------------*/ - -#ifndef Ergun_H -#define Ergun_H - -#include "dragModel.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace dragModels -{ - -/*---------------------------------------------------------------------------*\ - Class Ergun Declaration -\*---------------------------------------------------------------------------*/ - -class Ergun -: - public dragModel -{ - -public: - - //- Runtime type information - TypeName("Ergun"); - - - // Constructors - - //- Construct from components - Ergun - ( - const dictionary& interfaceDict, - const phaseModel& phase1, - const phaseModel& phase2 - ); - - - //- Destructor - virtual ~Ergun(); - - - // Member Functions - - tmp K(const volScalarField& Ur) const; -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace dragModels -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/dragModels/Gibilaro/Gibilaro.C b/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/dragModels/Gibilaro/Gibilaro.C deleted file mode 100644 index 16089e7156..0000000000 --- a/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/dragModels/Gibilaro/Gibilaro.C +++ /dev/null @@ -1,81 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2011-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 "Gibilaro.H" -#include "addToRunTimeSelectionTable.H" - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -namespace Foam -{ -namespace dragModels -{ - defineTypeNameAndDebug(Gibilaro, 0); - - addToRunTimeSelectionTable - ( - dragModel, - Gibilaro, - dictionary - ); -} -} - - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -Foam::dragModels::Gibilaro::Gibilaro -( - const dictionary& interfaceDict, - const phaseModel& phase1, - const phaseModel& phase2 -) -: - dragModel(interfaceDict, phase1, phase2) -{} - - -// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // - -Foam::dragModels::Gibilaro::~Gibilaro() -{} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -Foam::tmp Foam::dragModels::Gibilaro::K -( - const volScalarField& Ur -) const -{ - volScalarField alpha2(max(phase2_, scalar(1.0e-6))); - volScalarField bp(pow(alpha2, -2.8)); - volScalarField Re(max(alpha2*Ur*phase1_.d()/phase2_.nu(), scalar(1.0e-3))); - - return (17.3/Re + scalar(0.336))*phase2_.rho()*Ur*bp/phase1_.d(); -} - - -// ************************************************************************* // diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/dragModels/Gibilaro/Gibilaro.H b/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/dragModels/Gibilaro/Gibilaro.H deleted file mode 100644 index 25c1ac0e02..0000000000 --- a/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/dragModels/Gibilaro/Gibilaro.H +++ /dev/null @@ -1,95 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2011-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::dragModels::Gibilaro - -Description - H, Enwald, E. Peirano, A-E Almstedt - 'Eulerian Two-Phase Flow Theory Applied to Fluidization' - Int. J. Multiphase Flow, Vol. 22, Suppl, pp. 21-66 (1996) - Eq. 106, p. 43 - -SourceFiles - Gibilaro.C - -\*---------------------------------------------------------------------------*/ - -#ifndef Gibilaro_H -#define Gibilaro_H - -#include "dragModel.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace dragModels -{ - -/*---------------------------------------------------------------------------*\ - Class Gibilaro Declaration -\*---------------------------------------------------------------------------*/ - -class Gibilaro -: - public dragModel -{ - -public: - - //- Runtime type information - TypeName("Gibilaro"); - - - // Constructors - - //- Construct from components - Gibilaro - ( - const dictionary& interfaceDict, - const phaseModel& phase1, - const phaseModel& phase2 - ); - - - //- Destructor - virtual ~Gibilaro(); - - - // Member Functions - - tmp K(const volScalarField& Ur) const; -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace dragModels -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/dragModels/GidaspowErgunWenYu/GidaspowErgunWenYu.C b/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/dragModels/GidaspowErgunWenYu/GidaspowErgunWenYu.C deleted file mode 100644 index 929abc1a57..0000000000 --- a/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/dragModels/GidaspowErgunWenYu/GidaspowErgunWenYu.C +++ /dev/null @@ -1,98 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2011-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 "GidaspowErgunWenYu.H" -#include "addToRunTimeSelectionTable.H" - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -namespace Foam -{ -namespace dragModels -{ - defineTypeNameAndDebug(GidaspowErgunWenYu, 0); - - addToRunTimeSelectionTable - ( - dragModel, - GidaspowErgunWenYu, - dictionary - ); -} -} - - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -Foam::dragModels::GidaspowErgunWenYu::GidaspowErgunWenYu -( - const dictionary& interfaceDict, - const phaseModel& phase1, - const phaseModel& phase2 -) -: - dragModel(interfaceDict, phase1, phase2) -{} - - -// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // - -Foam::dragModels::GidaspowErgunWenYu::~GidaspowErgunWenYu() -{} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -Foam::tmp Foam::dragModels::GidaspowErgunWenYu::K -( - const volScalarField& Ur -) const -{ - volScalarField alpha2(max(phase2_, scalar(1.0e-6))); - volScalarField d(phase1_.d()); - volScalarField bp(pow(alpha2, -2.65)); - volScalarField Re(max(Ur*d/phase2_.nu(), scalar(1.0e-3))); - - volScalarField Cds - ( - neg(Re - 1000)*(24.0*(1.0 + 0.15*pow(Re, 0.687))/Re) - + pos0(Re - 1000)*0.44 - ); - - // Wen and Yu (1966) - return - ( - pos0(alpha2 - 0.8) - *(0.75*Cds*phase2_.rho()*Ur*bp/d) - + neg(alpha2 - 0.8) - *( - 150.0*phase1_*phase2_.nu()*phase2_.rho()/(sqr(alpha2*d)) - + 1.75*phase2_.rho()*Ur/(alpha2*d) - ) - ); -} - - -// ************************************************************************* // diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/dragModels/GidaspowErgunWenYu/GidaspowErgunWenYu.H b/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/dragModels/GidaspowErgunWenYu/GidaspowErgunWenYu.H deleted file mode 100644 index f0a2e6330a..0000000000 --- a/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/dragModels/GidaspowErgunWenYu/GidaspowErgunWenYu.H +++ /dev/null @@ -1,93 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2011-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::dragModels::GidaspowErgunWenYu - -Description - D. Gidaspow, Multiphase flow and fluidization, - Academic Press, New York, 1994. - -SourceFiles - GidaspowErgunWenYu.C - -\*---------------------------------------------------------------------------*/ - -#ifndef GidaspowErgunWenYu_H -#define GidaspowErgunWenYu_H - -#include "dragModel.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace dragModels -{ - -/*---------------------------------------------------------------------------*\ - Class GidaspowErgunWenYu Declaration -\*---------------------------------------------------------------------------*/ - -class GidaspowErgunWenYu -: - public dragModel -{ - -public: - - //- Runtime type information - TypeName("GidaspowErgunWenYu"); - - - // Constructors - - //- Construct from components - GidaspowErgunWenYu - ( - const dictionary& interfaceDict, - const phaseModel& phase1, - const phaseModel& phase2 - ); - - - //- Destructor - virtual ~GidaspowErgunWenYu(); - - - // Member Functions - - tmp K(const volScalarField& Ur) const; -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace dragModels -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/dragModels/GidaspowSchillerNaumann/GidaspowSchillerNaumann.C b/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/dragModels/GidaspowSchillerNaumann/GidaspowSchillerNaumann.C deleted file mode 100644 index 940367f440..0000000000 --- a/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/dragModels/GidaspowSchillerNaumann/GidaspowSchillerNaumann.C +++ /dev/null @@ -1,87 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2011-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 "GidaspowSchillerNaumann.H" -#include "addToRunTimeSelectionTable.H" - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -namespace Foam -{ -namespace dragModels -{ - defineTypeNameAndDebug(GidaspowSchillerNaumann, 0); - - addToRunTimeSelectionTable - ( - dragModel, - GidaspowSchillerNaumann, - dictionary - ); -} -} - - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -Foam::dragModels::GidaspowSchillerNaumann::GidaspowSchillerNaumann -( - const dictionary& interfaceDict, - const phaseModel& phase1, - const phaseModel& phase2 -) -: - dragModel(interfaceDict, phase1, phase2) -{} - - -// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // - -Foam::dragModels::GidaspowSchillerNaumann::~GidaspowSchillerNaumann() -{} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -Foam::tmp Foam::dragModels::GidaspowSchillerNaumann::K -( - const volScalarField& Ur -) const -{ - volScalarField alpha2(max(phase2_, scalar(1e-6))); - volScalarField bp(pow(alpha2, -2.65)); - - volScalarField Re(max(alpha2*Ur*phase1_.d()/phase2_.nu(), scalar(1.0e-3))); - volScalarField Cds - ( - neg(Re - 1000)*(24.0*(1.0 + 0.15*pow(Re, 0.687))/Re) - + pos0(Re - 1000)*0.44 - ); - - return 0.75*Cds*phase2_.rho()*Ur*bp/phase1_.d(); -} - - -// ************************************************************************* // diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/dragModels/GidaspowSchillerNaumann/GidaspowSchillerNaumann.H b/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/dragModels/GidaspowSchillerNaumann/GidaspowSchillerNaumann.H deleted file mode 100644 index 5b7bb03d4b..0000000000 --- a/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/dragModels/GidaspowSchillerNaumann/GidaspowSchillerNaumann.H +++ /dev/null @@ -1,102 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2011-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::dragModels::GidaspowSchillerNaumann - -Description - H, Enwald, E. Peirano, A-E Almstedt - 'Eulerian Two-Phase Flow Theory Applied to Fluidization' - Int. J. Multiphase Flow, Vol. 22, Suppl, pp. 21-66 (1996) - Eq. 86-87, p. 40 - - This is identical to the Wen and Yu, Rowe model Table 3.6 p.56 in - the Ph.D. thesis of Berend van Wachem - 'Derivation, Implementation and Validation - of - Computer Simulation Models - for Gas-Solid Fluidized Beds' - -SourceFiles - GidaspowSchillerNaumann.C - -\*---------------------------------------------------------------------------*/ - -#ifndef GidaspowSchillerNaumann_H -#define GidaspowSchillerNaumann_H - -#include "dragModel.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace dragModels -{ - -/*---------------------------------------------------------------------------*\ - Class GidaspowSchillerNaumann Declaration -\*---------------------------------------------------------------------------*/ - -class GidaspowSchillerNaumann -: - public dragModel -{ - -public: - - //- Runtime type information - TypeName("GidaspowSchillerNaumann"); - - - // Constructors - - //- Construct from components - GidaspowSchillerNaumann - ( - const dictionary& interfaceDict, - const phaseModel& phase1, - const phaseModel& phase2 - ); - - - //- Destructor - virtual ~GidaspowSchillerNaumann(); - - - // Member Functions - - tmp K(const volScalarField& Ur) const; -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace dragModels -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/dragModels/SchillerNaumann/SchillerNaumann.C b/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/dragModels/SchillerNaumann/SchillerNaumann.C deleted file mode 100644 index c3432955b7..0000000000 --- a/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/dragModels/SchillerNaumann/SchillerNaumann.C +++ /dev/null @@ -1,84 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2011-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 "SchillerNaumann.H" -#include "addToRunTimeSelectionTable.H" - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -namespace Foam -{ -namespace dragModels -{ - defineTypeNameAndDebug(SchillerNaumann, 0); - - addToRunTimeSelectionTable - ( - dragModel, - SchillerNaumann, - dictionary - ); -} -} - - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -Foam::dragModels::SchillerNaumann::SchillerNaumann -( - const dictionary& interfaceDict, - const phaseModel& phase1, - const phaseModel& phase2 -) -: - dragModel(interfaceDict, phase1, phase2) -{} - - -// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // - -Foam::dragModels::SchillerNaumann::~SchillerNaumann() -{} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -Foam::tmp Foam::dragModels::SchillerNaumann::K -( - const volScalarField& Ur -) const -{ - volScalarField Re(max(Ur*phase1_.d()/phase2_.nu(), scalar(1.0e-3))); - volScalarField Cds - ( - neg(Re - 1000)*(24.0*(1.0 + 0.15*pow(Re, 0.687))/Re) - + pos0(Re - 1000)*0.44 - ); - - return 0.75*Cds*phase2_.rho()*Ur/phase1_.d(); -} - - -// ************************************************************************* // diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/dragModels/SchillerNaumann/SchillerNaumann.H b/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/dragModels/SchillerNaumann/SchillerNaumann.H deleted file mode 100644 index 0d99489543..0000000000 --- a/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/dragModels/SchillerNaumann/SchillerNaumann.H +++ /dev/null @@ -1,91 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2011-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::dragModels::SchillerNaumann - -Description - -SourceFiles - SchillerNaumann.C - -\*---------------------------------------------------------------------------*/ - -#ifndef SchillerNaumann_H -#define SchillerNaumann_H - -#include "dragModel.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace dragModels -{ - -/*---------------------------------------------------------------------------*\ - Class SchillerNaumann Declaration -\*---------------------------------------------------------------------------*/ - -class SchillerNaumann -: - public dragModel -{ - -public: - - //- Runtime type information - TypeName("SchillerNaumann"); - - - // Constructors - - //- Construct from components - SchillerNaumann - ( - const dictionary& interfaceDict, - const phaseModel& phase1, - const phaseModel& phase2 - ); - - - //- Destructor - virtual ~SchillerNaumann(); - - - // Member Functions - - tmp K(const volScalarField& Ur) const; -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace dragModels -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/dragModels/SyamlalOBrien/SyamlalOBrien.C b/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/dragModels/SyamlalOBrien/SyamlalOBrien.C deleted file mode 100644 index de2c2e5298..0000000000 --- a/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/dragModels/SyamlalOBrien/SyamlalOBrien.C +++ /dev/null @@ -1,97 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2011-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 "SyamlalOBrien.H" -#include "addToRunTimeSelectionTable.H" - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -namespace Foam -{ -namespace dragModels -{ - defineTypeNameAndDebug(SyamlalOBrien, 0); - - addToRunTimeSelectionTable - ( - dragModel, - SyamlalOBrien, - dictionary - ); -} -} - - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -Foam::dragModels::SyamlalOBrien::SyamlalOBrien -( - const dictionary& interfaceDict, - const phaseModel& phase1, - const phaseModel& phase2 -) -: - dragModel(interfaceDict, phase1, phase2) -{} - - -// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // - -Foam::dragModels::SyamlalOBrien::~SyamlalOBrien() -{} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -Foam::tmp Foam::dragModels::SyamlalOBrien::K -( - const volScalarField& Ur -) const -{ - volScalarField alpha2(max(phase2_, scalar(1.0e-6))); - volScalarField A(pow(alpha2, 4.14)); - volScalarField B - ( - neg(alpha2 - 0.85)*(0.8*pow(alpha2, 1.28)) - + pos0(alpha2 - 0.85)*(pow(alpha2, 2.65)) - ); - - volScalarField Re(max(Ur*phase1_.d()/phase2_.nu(), scalar(1.0e-3))); - - volScalarField Vr - ( - 0.5* - ( - A - 0.06*Re + sqrt(sqr(0.06*Re) + 0.12*Re*(2.0*B - A) + sqr(A)) - ) - ); - - volScalarField Cds(sqr(0.63 + 4.8*sqrt(Vr/Re))); - - return 0.75*Cds*phase2_.rho()*Ur/(phase1_.d()*sqr(Vr)); -} - - -// ************************************************************************* // diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/dragModels/SyamlalOBrien/SyamlalOBrien.H b/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/dragModels/SyamlalOBrien/SyamlalOBrien.H deleted file mode 100644 index d9c52087ea..0000000000 --- a/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/dragModels/SyamlalOBrien/SyamlalOBrien.H +++ /dev/null @@ -1,94 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2011-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::dragModels::SyamlalOBrien - -Description - Syamlal, M., Rogers, W. and O'Brien, T. J. (1993) MFIX documentation, - Theory Guide. Technical Note DOE/METC-94/1004. Morgantown, West Virginia, - USA. - -SourceFiles - SyamlalOBrien.C - -\*---------------------------------------------------------------------------*/ - -#ifndef SyamlalOBrien_H -#define SyamlalOBrien_H - -#include "dragModel.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace dragModels -{ - -/*---------------------------------------------------------------------------*\ - Class SyamlalOBrien Declaration -\*---------------------------------------------------------------------------*/ - -class SyamlalOBrien -: - public dragModel -{ - -public: - - //- Runtime type information - TypeName("SyamlalOBrien"); - - - // Constructors - - //- Construct from components - SyamlalOBrien - ( - const dictionary& interfaceDict, - const phaseModel& phase1, - const phaseModel& phase2 - ); - - - //- Destructor - virtual ~SyamlalOBrien(); - - - // Member Functions - - tmp K(const volScalarField& Ur) const; -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace dragModels -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/dragModels/WenYu/WenYu.C b/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/dragModels/WenYu/WenYu.C deleted file mode 100644 index a708b03ade..0000000000 --- a/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/dragModels/WenYu/WenYu.C +++ /dev/null @@ -1,87 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2011-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 "WenYu.H" -#include "addToRunTimeSelectionTable.H" - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -namespace Foam -{ -namespace dragModels -{ - defineTypeNameAndDebug(WenYu, 0); - - addToRunTimeSelectionTable - ( - dragModel, - WenYu, - dictionary - ); -} -} - - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -Foam::dragModels::WenYu::WenYu -( - const dictionary& interfaceDict, - const phaseModel& phase1, - const phaseModel& phase2 -) -: - dragModel(interfaceDict, phase1, phase2) -{} - - -// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // - -Foam::dragModels::WenYu::~WenYu() -{} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -Foam::tmp Foam::dragModels::WenYu::K -( - const volScalarField& Ur -) const -{ - volScalarField alpha2(max(phase2_, scalar(1.0e-6))); - volScalarField bp(pow(alpha2, -2.65)); - - volScalarField Re(max(Ur*phase1_.d()/phase2_.nu(), scalar(1.0e-3))); - volScalarField Cds - ( - neg(Re - 1000)*(24.0*(1.0 + 0.15*pow(Re, 0.687))/Re) - + pos0(Re - 1000)*0.44 - ); - - return 0.75*Cds*phase2_.rho()*Ur*bp/phase1_.d(); -} - - -// ************************************************************************* // diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/dragModels/WenYu/WenYu.H b/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/dragModels/WenYu/WenYu.H deleted file mode 100644 index 062f317aef..0000000000 --- a/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/dragModels/WenYu/WenYu.H +++ /dev/null @@ -1,105 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2011-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::dragModels::WenYu - -Description - H, Enwald, E. Peirano, A-E Almstedt - 'Eulerian Two-Phase Flow Theory Applied to Fluidization' - Int. J. Multiphase Flow, Vol. 22, Suppl, pp. 21-66 (1996) - Eq. 86-87, p. 40 - - This is identical to the Wen and Yu, Rowe model Table 3.6 p.56 in - the Ph.D. thesis of Berend van Wachem - 'Derivation, Implementation and Validation - of - Computer Simulation Models - for Gas-Solid Fluidized Beds' - - NB: The difference between the Gidaspow-version is the void-fraction - in the Re-number - -SourceFiles - WenYu.C - -\*---------------------------------------------------------------------------*/ - -#ifndef WenYu_H -#define WenYu_H - -#include "dragModel.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace dragModels -{ - -/*---------------------------------------------------------------------------*\ - Class WenYu Declaration -\*---------------------------------------------------------------------------*/ - -class WenYu -: - public dragModel -{ - -public: - - //- Runtime type information - TypeName("WenYu"); - - - // Constructors - - //- Construct from components - WenYu - ( - const dictionary& interfaceDict, - const phaseModel& phase1, - const phaseModel& phase2 - ); - - - //- Destructor - virtual ~WenYu(); - - - // Member Functions - - tmp K(const volScalarField& Ur) const; -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace dragModels -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/dragModels/blended/blended.C b/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/dragModels/blended/blended.C deleted file mode 100644 index 7ed1126c9c..0000000000 --- a/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/dragModels/blended/blended.C +++ /dev/null @@ -1,79 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2011-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 "blended.H" -#include "addToRunTimeSelectionTable.H" - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -namespace Foam -{ -namespace dragModels -{ - defineTypeNameAndDebug(blended, 0); - - addToRunTimeSelectionTable - ( - dragModel, - blended, - dictionary - ); -} -} - - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -Foam::dragModels::blended::blended -( - const dictionary& interfaceDict, - const phaseModel& phase1, - const phaseModel& phase2 -) -: - dragModel(interfaceDict, phase1, phase2), - dragModel1_(New(interfaceDict.subDict(phase1.name()), phase1, phase2)), - dragModel2_(New(interfaceDict.subDict(phase2.name()), phase2, phase1)) -{} - - -// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // - -Foam::dragModels::blended::~blended() -{} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -Foam::tmp Foam::dragModels::blended::K -( - const volScalarField& Ur -) const -{ - return phase2()*dragModel1_->K(Ur) + phase1()*dragModel2_->K(Ur); -} - - -// ************************************************************************* // diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/dragModels/blended/blended.H b/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/dragModels/blended/blended.H deleted file mode 100644 index 5e4c3e4e1c..0000000000 --- a/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/dragModels/blended/blended.H +++ /dev/null @@ -1,99 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2011-2019 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::dragModels::blended - -Description - Blends two drag models based on the phase fractions to handle - phase-inversion. - -SourceFiles - blended.C - -\*---------------------------------------------------------------------------*/ - -#ifndef blended_H -#define blended_H - -#include "dragModel.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace dragModels -{ - -/*---------------------------------------------------------------------------*\ - Class blended Declaration -\*---------------------------------------------------------------------------*/ - -class blended -: - public dragModel -{ - // Private Data - - // The two drag models to be blended - autoPtr dragModel1_; - autoPtr dragModel2_; - - -public: - - //- Runtime type information - TypeName("blended"); - - - // Constructors - - //- Construct from components - blended - ( - const dictionary& interfaceDict, - const phaseModel& phase1, - const phaseModel& phase2 - ); - - - //- Destructor - virtual ~blended(); - - - // Member Functions - - tmp K(const volScalarField& Ur) const; -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace dragModels -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/dragModels/dragModel/dragModel.C b/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/dragModels/dragModel/dragModel.C deleted file mode 100644 index 29d585f6f0..0000000000 --- a/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/dragModels/dragModel/dragModel.C +++ /dev/null @@ -1,70 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2011-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 "dragModel.H" - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -namespace Foam -{ - defineTypeNameAndDebug(dragModel, 0); - defineRunTimeSelectionTable(dragModel, dictionary); -} - - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -Foam::dragModel::dragModel -( - const dictionary& interfaceDict, - const phaseModel& phase1, - const phaseModel& phase2 -) -: - interfaceDict_(interfaceDict), - phase1_(phase1), - phase2_(phase2), - residualPhaseFraction_ - ( - "residualPhaseFraction", - dimless, - interfaceDict.lookup("residualPhaseFraction") - ), - residualSlip_ - ( - "residualSlip", - dimVelocity, - interfaceDict.lookup("residualSlip") - ) -{} - - -// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // - -Foam::dragModel::~dragModel() -{} - - -// ************************************************************************* // diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/dragModels/dragModel/dragModel.H b/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/dragModels/dragModel/dragModel.H deleted file mode 100644 index 70a359d56d..0000000000 --- a/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/dragModels/dragModel/dragModel.H +++ /dev/null @@ -1,152 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2011-2019 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::dragModel - -Description - -SourceFiles - dragModel.C - newDragModel.C - -\*---------------------------------------------------------------------------*/ - -#ifndef dragModel_H -#define dragModel_H - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#include "dictionary.H" -#include "phaseModel.H" -#include "runTimeSelectionTables.H" - -namespace Foam -{ - -/*---------------------------------------------------------------------------*\ - Class dragModel Declaration -\*---------------------------------------------------------------------------*/ - -class dragModel -{ -protected: - - // Protected data - - const dictionary& interfaceDict_; - const phaseModel& phase1_; - const phaseModel& phase2_; - dimensionedScalar residualPhaseFraction_; - dimensionedScalar residualSlip_; - -public: - - //- Runtime type information - TypeName("dragModel"); - - - // Declare runtime construction - - declareRunTimeSelectionTable - ( - autoPtr, - dragModel, - dictionary, - ( - const dictionary& interfaceDict, - const phaseModel& phase1, - const phaseModel& phase2 - ), - (interfaceDict, phase1, phase2) - ); - - - // Constructors - - dragModel - ( - const dictionary& interfaceDict, - const phaseModel& phase1, - const phaseModel& phase2 - ); - - - //- Destructor - virtual ~dragModel(); - - - // Selectors - - static autoPtr New - ( - const dictionary& interfaceDict, - const phaseModel& phase1, - const phaseModel& phase2 - ); - - - // Member Functions - - const phaseModel& phase1() const - { - return phase1_; - } - - const phaseModel& phase2() const - { - return phase2_; - } - - const dimensionedScalar& residualPhaseFraction() const - { - return residualPhaseFraction_; - } - - const dimensionedScalar& residualSlip() const - { - return residualSlip_; - } - - //- The dragfunction K used in the momentum eq. - // ddt(alpha1*rho1*U1) + ... = ... alpha1*alpha2*K*(U1-U2) - // ddt(alpha2*rho2*U2) + ... = ... alpha1*alpha2*K*(U2-U1) - // ********************************** NB! ***************************** - // for numerical reasons alpha1 and alpha2 has been - // extracted from the dragFunction K, - // so you MUST divide K by alpha1*alpha2 when implementing the drag - // function - // ********************************** NB! ***************************** - virtual tmp K(const volScalarField& Ur) const = 0; -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/dragModels/dragModel/newDragModel.C b/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/dragModels/dragModel/newDragModel.C deleted file mode 100644 index 7022672ee3..0000000000 --- a/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/dragModels/dragModel/newDragModel.C +++ /dev/null @@ -1,61 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2011-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 "dragModel.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -Foam::autoPtr Foam::dragModel::New -( - const dictionary& interfaceDict, - const phaseModel& phase1, - const phaseModel& phase2 -) -{ - word dragModelType(interfaceDict.lookup("type")); - - Info << "Selecting dragModel for phase " - << phase1.name() - << ": " - << dragModelType << endl; - - dictionaryConstructorTable::iterator cstrIter = - dictionaryConstructorTablePtr_->find(dragModelType); - - if (cstrIter == dictionaryConstructorTablePtr_->end()) - { - FatalErrorInFunction - << "Unknown dragModelType type " - << dragModelType << endl << endl - << "Valid dragModel types are : " << endl - << dictionaryConstructorTablePtr_->sortedToc() - << exit(FatalError); - } - - return cstrIter()(interfaceDict, phase1, phase2); -} - - -// ************************************************************************* // diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/dragModels/interface/interface.C b/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/dragModels/interface/interface.C deleted file mode 100644 index 923a29139d..0000000000 --- a/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/dragModels/interface/interface.C +++ /dev/null @@ -1,82 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2011-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 "interface.H" -#include "addToRunTimeSelectionTable.H" - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -namespace Foam -{ -namespace dragModels -{ - defineTypeNameAndDebug(interface, 0); - - addToRunTimeSelectionTable - ( - dragModel, - interface, - dictionary - ); -} -} - - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -Foam::dragModels::interface::interface -( - const dictionary& interfaceDict, - const phaseModel& phase1, - const phaseModel& phase2 -) -: - dragModel(interfaceDict, phase1, phase2) -{} - - -// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // - -Foam::dragModels::interface::~interface() -{} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -Foam::tmp Foam::dragModels::interface::K -( - const volScalarField& Ur -) const -{ - return volScalarField::New - ( - "K", - Ur.mesh(), - dimensionedScalar(dimDensity/dimTime, 0) - ); -} - - -// ************************************************************************* // diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/dragModels/interface/interface.H b/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/dragModels/interface/interface.H deleted file mode 100644 index e0a46e517c..0000000000 --- a/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/dragModels/interface/interface.H +++ /dev/null @@ -1,92 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2011-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::dragModels::interface - -Description - Drag between phase separated by a VoF resolved interface. - -SourceFiles - interface.C - -\*---------------------------------------------------------------------------*/ - -#ifndef interface_H -#define interface_H - -#include "dragModel.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace dragModels -{ - -/*---------------------------------------------------------------------------*\ - Class interface Declaration -\*---------------------------------------------------------------------------*/ - -class interface -: - public dragModel -{ - -public: - - //- Runtime type information - TypeName("interface"); - - - // Constructors - - //- Construct from components - interface - ( - const dictionary& interfaceDict, - const phaseModel& phase1, - const phaseModel& phase2 - ); - - - //- Destructor - virtual ~interface(); - - - // Member Functions - - tmp K(const volScalarField& Ur) const; -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace dragModels -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/heatTransferModels/RanzMarshall/RanzMarshall.C b/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/heatTransferModels/RanzMarshall/RanzMarshall.C deleted file mode 100644 index 07039ea014..0000000000 --- a/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/heatTransferModels/RanzMarshall/RanzMarshall.C +++ /dev/null @@ -1,83 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2011-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 "RanzMarshall.H" -#include "addToRunTimeSelectionTable.H" - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -namespace Foam -{ -namespace heatTransferModels -{ - defineTypeNameAndDebug(RanzMarshall, 0); - - addToRunTimeSelectionTable - ( - heatTransferModel, - RanzMarshall, - dictionary - ); -} -} - - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -Foam::heatTransferModels::RanzMarshall::RanzMarshall -( - const dictionary& interfaceDict, - const volScalarField& alpha1, - const phaseModel& phase1, - const phaseModel& phase2 -) -: - heatTransferModel(interfaceDict, alpha1, phase1, phase2) -{} - - -// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // - -Foam::heatTransferModels::RanzMarshall::~RanzMarshall() -{} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -Foam::tmp Foam::heatTransferModels::RanzMarshall::K -( - const volScalarField& Ur -) const -{ - volScalarField Re(max(Ur*phase1_.d()/phase2_.nu(), scalar(1.0e-3))); - dimensionedScalar Prb = - phase2_.rho()*phase2_.nu()*phase2_.Cp()/phase2_.kappa(); - volScalarField Nu(scalar(2) + 0.6*sqrt(Re)*cbrt(Prb)); - - return 6.0*phase2_.kappa()*Nu/sqr(phase1_.d()); -} - - -// ************************************************************************* // diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/heatTransferModels/RanzMarshall/RanzMarshall.H b/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/heatTransferModels/RanzMarshall/RanzMarshall.H deleted file mode 100644 index ebf1f8b555..0000000000 --- a/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/heatTransferModels/RanzMarshall/RanzMarshall.H +++ /dev/null @@ -1,92 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2011-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::heatTransferModels::RanzMarshall - -Description - -SourceFiles - RanzMarshall.C - -\*---------------------------------------------------------------------------*/ - -#ifndef RanzMarshall_H -#define RanzMarshall_H - -#include "heatTransferModel.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace heatTransferModels -{ - -/*---------------------------------------------------------------------------*\ - Class RanzMarshall Declaration -\*---------------------------------------------------------------------------*/ - -class RanzMarshall -: - public heatTransferModel -{ - -public: - - //- Runtime type information - TypeName("RanzMarshall"); - - - // Constructors - - //- Construct from components - RanzMarshall - ( - const dictionary& interfaceDict, - const volScalarField& alpha1, - const phaseModel& phase1, - const phaseModel& phase2 - ); - - - //- Destructor - virtual ~RanzMarshall(); - - - // Member Functions - - tmp K(const volScalarField& Ur) const; -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace heatTransferModels -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/heatTransferModels/heatTransferModel/heatTransferModel.C b/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/heatTransferModels/heatTransferModel/heatTransferModel.C deleted file mode 100644 index a790fa300b..0000000000 --- a/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/heatTransferModels/heatTransferModel/heatTransferModel.C +++ /dev/null @@ -1,60 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2011-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 "heatTransferModel.H" - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -namespace Foam -{ - defineTypeNameAndDebug(heatTransferModel, 0); - defineRunTimeSelectionTable(heatTransferModel, dictionary); -} - - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -Foam::heatTransferModel::heatTransferModel -( - const dictionary& interfaceDict, - const volScalarField& alpha1, - const phaseModel& phase1, - const phaseModel& phase2 -) -: - interfaceDict_(interfaceDict), - alpha1_(alpha1), - phase1_(phase1), - phase2_(phase2) -{} - - -// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // - -Foam::heatTransferModel::~heatTransferModel() -{} - - -// ************************************************************************* // diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/heatTransferModels/heatTransferModel/heatTransferModel.H b/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/heatTransferModels/heatTransferModel/heatTransferModel.H deleted file mode 100644 index 46188a1317..0000000000 --- a/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/heatTransferModels/heatTransferModel/heatTransferModel.H +++ /dev/null @@ -1,135 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2011-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::heatTransferModel - -Description - -SourceFiles - heatTransferModel.C - newHeatTransferModel.C - -\*---------------------------------------------------------------------------*/ - -#ifndef heatTransferModel_H -#define heatTransferModel_H - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#include "dictionary.H" -#include "phaseModel.H" -#include "runTimeSelectionTables.H" - -namespace Foam -{ - -/*---------------------------------------------------------------------------*\ - Class heatTransferModel Declaration -\*---------------------------------------------------------------------------*/ - -class heatTransferModel -{ -protected: - - // Protected data - - const dictionary& interfaceDict_; - const volScalarField& alpha1_; - const phaseModel& phase1_; - const phaseModel& phase2_; - - -public: - - //- Runtime type information - TypeName("heatTransferModel"); - - - // Declare runtime construction - - declareRunTimeSelectionTable - ( - autoPtr, - heatTransferModel, - dictionary, - ( - const dictionary& interfaceDict, - const volScalarField& alpha1, - const phaseModel& phase1, - const phaseModel& phase2 - ), - (interfaceDict, alpha1, phase1, phase2) - ); - - - // Constructors - - heatTransferModel - ( - const dictionary& interfaceDict, - const volScalarField& alpha1, - const phaseModel& phase1, - const phaseModel& phase2 - ); - - - //- Destructor - virtual ~heatTransferModel(); - - - // Selectors - - static autoPtr New - ( - const dictionary& interfaceDict, - const volScalarField& alpha1, - const phaseModel& phase1, - const phaseModel& phase2 - ); - - - // Member Functions - - //- The heat-transfer function K used in the enthalpy eq. - // ddt(alpha1*rho1*ha) + ... = ... alpha1*alpha2*K*(Ta - Tb) - // ddt(alpha2*rho2*hb) + ... = ... alpha1*alpha2*K*(Tb - Ta) - // ********************************** NB! ***************************** - // for numerical reasons alpha1 and alpha2 has been - // extracted from the heat-transfer function K, - // so you MUST divide K by alpha1*alpha2 when implementing the - // heat-transfer function - // ********************************** NB! ***************************** - virtual tmp K(const volScalarField& Ur) const = 0; -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/heatTransferModels/heatTransferModel/newHeatTransferModel.C b/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/heatTransferModels/heatTransferModel/newHeatTransferModel.C deleted file mode 100644 index c49eba1f18..0000000000 --- a/applications/solvers/multiphase/multiphaseEulerFoam/interfacialModels/heatTransferModels/heatTransferModel/newHeatTransferModel.C +++ /dev/null @@ -1,65 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2011-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 "heatTransferModel.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -Foam::autoPtr Foam::heatTransferModel::New -( - const dictionary& interfaceDict, - const volScalarField& alpha1, - const phaseModel& phase1, - const phaseModel& phase2 -) -{ - word heatTransferModelType - ( - interfaceDict.lookup("heatTransferModel" + phase1.name()) - ); - - Info<< "Selecting heatTransferModel for phase " - << phase1.name() - << ": " - << heatTransferModelType << endl; - - dictionaryConstructorTable::iterator cstrIter = - dictionaryConstructorTablePtr_->find(heatTransferModelType); - - if (cstrIter == dictionaryConstructorTablePtr_->end()) - { - FatalErrorInFunction - << "Unknown heatTransferModelType type " - << heatTransferModelType << endl << endl - << "Valid heatTransferModel types are : " << endl - << dictionaryConstructorTablePtr_->sortedToc() - << exit(FatalError); - } - - return cstrIter()(interfaceDict, alpha1, phase1, phase2); -} - - -// ************************************************************************* // diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseEulerFoam.C b/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseEulerFoam.C deleted file mode 100644 index 1613df6f4a..0000000000 --- a/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseEulerFoam.C +++ /dev/null @@ -1,121 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2011-2020 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 . - -Application - multiphaseEulerFoam - -Description - Solver for a system of many incompressible fluid phases including - heat-transfer. - -\*---------------------------------------------------------------------------*/ - -#include "fvCFD.H" -#include "multiphaseSystem.H" -#include "phaseModel.H" -#include "dragModel.H" -#include "heatTransferModel.H" -#include "singlePhaseTransportModel.H" -#include "kinematicMomentumTransportModel.H" -#include "pimpleControl.H" -#include "IOMRFZoneList.H" -#include "CorrectPhi.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -int main(int argc, char *argv[]) -{ - #include "postProcess.H" - - #include "setRootCaseLists.H" - #include "createTime.H" - #include "createMesh.H" - #include "createControl.H" - #include "createFields.H" - #include "initContinuityErrs.H" - #include "createTimeControls.H" - #include "correctPhi.H" - #include "CourantNo.H" - #include "setInitialDeltaT.H" - - scalar slamDampCoeff - ( - fluid.lookupOrDefault("slamDampCoeff", 1) - ); - - dimensionedScalar maxSlamVelocity - ( - "maxSlamVelocity", - dimVelocity, - fluid.lookupOrDefault("maxSlamVelocity", great) - ); - - turbulence->validate(); - - // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - - Info<< "\nStarting time loop\n" << endl; - - while (pimple.run(runTime)) - { - #include "readTimeControls.H" - #include "CourantNo.H" - #include "setDeltaT.H" - - runTime++; - Info<< "Time = " << runTime.timeName() << nl << endl; - - // --- Pressure-velocity PIMPLE corrector loop - while (pimple.loop()) - { - turbulence->correct(); - fluid.solve(); - rho = fluid.rho(); - #include "zonePhaseVolumes.H" - - //#include "TEqns.H" - #include "UEqns.H" - - // --- Pressure corrector loop - while (pimple.correct()) - { - #include "pEqn.H" - } - - #include "DDtU.H" - } - - runTime.write(); - - Info<< "ExecutionTime = " - << runTime.elapsedCpuTime() - << " s\n\n" << endl; - } - - Info<< "End\n" << endl; - - return 0; -} - - -// ************************************************************************* // diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/Make/files b/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/Make/files deleted file mode 100644 index e14922c0e3..0000000000 --- a/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/Make/files +++ /dev/null @@ -1,10 +0,0 @@ -phaseModel/phaseModel.C -diameterModels/diameterModel/diameterModel.C -diameterModels/diameterModel/newDiameterModel.C -diameterModels/constantDiameter/constantDiameter.C -diameterModels/isothermalDiameter/isothermalDiameter.C - -alphaContactAngle/alphaContactAngleFvPatchScalarField.C -multiphaseSystem.C - -LIB = $(FOAM_LIBBIN)/libmultiphaseSystem diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/Make/options b/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/Make/options deleted file mode 100644 index c6c00b2d3b..0000000000 --- a/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/Make/options +++ /dev/null @@ -1,13 +0,0 @@ -EXE_INC = \ - -I../interfacialModels/lnInclude \ - -IalphaContactAngle \ - -I$(LIB_SRC)/transportModels/lnInclude \ - -I$(LIB_SRC)/twoPhaseModels/interfaceProperties/lnInclude \ - -I$(LIB_SRC)/finiteVolume/lnInclude \ - -I$(LIB_SRC)/meshTools/lnInclude - -LIB_LIBS = \ - -linterfaceProperties \ - -lincompressibleTransportModels \ - -lfiniteVolume \ - -lmeshTools diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/alphaContactAngle/alphaContactAngleFvPatchScalarField.C b/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/alphaContactAngle/alphaContactAngleFvPatchScalarField.C deleted file mode 100644 index 42bc40bec1..0000000000 --- a/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/alphaContactAngle/alphaContactAngleFvPatchScalarField.C +++ /dev/null @@ -1,145 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2011-2019 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 "alphaContactAngleFvPatchScalarField.H" -#include "addToRunTimeSelectionTable.H" -#include "fvPatchFieldMapper.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - -alphaContactAngleFvPatchScalarField::interfaceThetaProps::interfaceThetaProps -( - Istream& is -) -: - theta0_(readScalar(is)), - uTheta_(readScalar(is)), - thetaA_(readScalar(is)), - thetaR_(readScalar(is)) -{} - - -Istream& operator>> -( - Istream& is, - alphaContactAngleFvPatchScalarField::interfaceThetaProps& tp -) -{ - is >> tp.theta0_ >> tp.uTheta_ >> tp.thetaA_ >> tp.thetaR_; - return is; -} - - -Ostream& operator<< -( - Ostream& os, - const alphaContactAngleFvPatchScalarField::interfaceThetaProps& tp -) -{ - os << tp.theta0_ << token::SPACE - << tp.uTheta_ << token::SPACE - << tp.thetaA_ << token::SPACE - << tp.thetaR_; - - return os; -} - - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -alphaContactAngleFvPatchScalarField::alphaContactAngleFvPatchScalarField -( - const fvPatch& p, - const DimensionedField& iF -) -: - zeroGradientFvPatchScalarField(p, iF) -{} - - -alphaContactAngleFvPatchScalarField::alphaContactAngleFvPatchScalarField -( - const alphaContactAngleFvPatchScalarField& gcpsf, - const fvPatch& p, - const DimensionedField& iF, - const fvPatchFieldMapper& mapper -) -: - zeroGradientFvPatchScalarField(gcpsf, p, iF, mapper), - thetaProps_(gcpsf.thetaProps_) -{} - - -alphaContactAngleFvPatchScalarField::alphaContactAngleFvPatchScalarField -( - const fvPatch& p, - const DimensionedField& iF, - const dictionary& dict -) -: - zeroGradientFvPatchScalarField(p, iF), - thetaProps_(dict.lookup("thetaProperties")) -{ - evaluate(); -} - - -alphaContactAngleFvPatchScalarField::alphaContactAngleFvPatchScalarField -( - const alphaContactAngleFvPatchScalarField& gcpsf, - const DimensionedField& iF -) -: - zeroGradientFvPatchScalarField(gcpsf, iF), - thetaProps_(gcpsf.thetaProps_) -{} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -void alphaContactAngleFvPatchScalarField::write(Ostream& os) const -{ - fvPatchScalarField::write(os); - writeEntry(os, "thetaProperties", thetaProps_); - writeEntry(os, "value", *this); -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -makePatchTypeField -( - fvPatchScalarField, - alphaContactAngleFvPatchScalarField -); - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// ************************************************************************* // diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/alphaContactAngle/alphaContactAngleFvPatchScalarField.H b/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/alphaContactAngle/alphaContactAngleFvPatchScalarField.H deleted file mode 100644 index 171bd8e8e6..0000000000 --- a/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/alphaContactAngle/alphaContactAngleFvPatchScalarField.H +++ /dev/null @@ -1,215 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2011-2019 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::alphaContactAngleFvPatchScalarField - -Description - Contact-angle boundary condition for multi-phase interface-capturing - simulations. Used in conjunction with multiphaseSystem. - -SourceFiles - alphaContactAngleFvPatchScalarField.C - -\*---------------------------------------------------------------------------*/ - -#ifndef alphaContactAngleFvPatchScalarField_H -#define alphaContactAngleFvPatchScalarField_H - -#include "zeroGradientFvPatchFields.H" -#include "multiphaseSystem.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - -/*---------------------------------------------------------------------------*\ - Class alphaContactAngleFvPatch Declaration -\*---------------------------------------------------------------------------*/ - -class alphaContactAngleFvPatchScalarField -: - public zeroGradientFvPatchScalarField -{ -public: - - class interfaceThetaProps - { - //- Equilibrium contact angle - scalar theta0_; - - //- Dynamic contact angle velocity scale - scalar uTheta_; - - //- Limiting advancing contact angle - scalar thetaA_; - - //- Limiting receding contact angle - scalar thetaR_; - - - public: - - // Constructors - interfaceThetaProps() - {} - - interfaceThetaProps(Istream&); - - - // Member Functions - - //- Return the equilibrium contact angle theta0 - scalar theta0(bool matched=true) const - { - if (matched) return theta0_; - else return 180.0 - theta0_; - } - - //- Return the dynamic contact angle velocity scale - scalar uTheta() const - { - return uTheta_; - } - - //- Return the limiting advancing contact angle - scalar thetaA(bool matched=true) const - { - if (matched) return thetaA_; - else return 180.0 - thetaA_; - } - - //- Return the limiting receding contact angle - scalar thetaR(bool matched=true) const - { - if (matched) return thetaR_; - else return 180.0 - thetaR_; - } - - - // IO functions - - friend Istream& operator>>(Istream&, interfaceThetaProps&); - friend Ostream& operator<<(Ostream&, const interfaceThetaProps&); - }; - - typedef HashTable - < - interfaceThetaProps, - multiphaseSystem::interfacePair, - multiphaseSystem::interfacePair::symmHash - > thetaPropsTable; - - -private: - - // Private Data - - thetaPropsTable thetaProps_; - - -public: - - //- Runtime type information - TypeName("alphaContactAngle"); - - - // Constructors - - //- Construct from patch and internal field - alphaContactAngleFvPatchScalarField - ( - const fvPatch&, - const DimensionedField& - ); - - //- Construct from patch, internal field and dictionary - alphaContactAngleFvPatchScalarField - ( - const fvPatch&, - const DimensionedField&, - const dictionary& - ); - - //- Construct by mapping given alphaContactAngleFvPatchScalarField - // onto a new patch - alphaContactAngleFvPatchScalarField - ( - const alphaContactAngleFvPatchScalarField&, - const fvPatch&, - const DimensionedField&, - const fvPatchFieldMapper& - ); - - //- Construct and return a clone - virtual tmp clone() const - { - return tmp - ( - new alphaContactAngleFvPatchScalarField(*this) - ); - } - - //- Construct as copy setting internal field reference - alphaContactAngleFvPatchScalarField - ( - const alphaContactAngleFvPatchScalarField&, - const DimensionedField& - ); - - //- Construct and return a clone setting internal field reference - virtual tmp clone - ( - const DimensionedField& iF - ) const - { - return tmp - ( - new alphaContactAngleFvPatchScalarField(*this, iF) - ); - } - - - // Member Functions - - //- Return the contact angle properties - const thetaPropsTable& thetaProps() const - { - return thetaProps_; - } - - //- Write - virtual void write(Ostream&) const; -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/diameterModels/constantDiameter/constantDiameter.C b/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/diameterModels/constantDiameter/constantDiameter.C deleted file mode 100644 index 8b99843048..0000000000 --- a/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/diameterModels/constantDiameter/constantDiameter.C +++ /dev/null @@ -1,79 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2011-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 "constantDiameter.H" -#include "addToRunTimeSelectionTable.H" - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -namespace Foam -{ -namespace diameterModels -{ - defineTypeNameAndDebug(constant, 0); - - addToRunTimeSelectionTable - ( - diameterModel, - constant, - dictionary - ); -} -} - - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -Foam::diameterModels::constant::constant -( - const dictionary& dict, - const phaseModel& phase -) -: - diameterModel(dict, phase), - d_("d", dimLength, dict) -{} - - -// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // - -Foam::diameterModels::constant::~constant() -{} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -Foam::tmp Foam::diameterModels::constant::d() const -{ - return volScalarField::New - ( - "d", - phase_.U().mesh(), - d_ - ); -} - - -// ************************************************************************* // diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/diameterModels/constantDiameter/constantDiameter.H b/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/diameterModels/constantDiameter/constantDiameter.H deleted file mode 100644 index 3950e15cd8..0000000000 --- a/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/diameterModels/constantDiameter/constantDiameter.H +++ /dev/null @@ -1,96 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2011-2019 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::constant - -Description - Constant dispersed-phase particle diameter model. - -SourceFiles - constant.C - -\*---------------------------------------------------------------------------*/ - -#ifndef constantDiameter_H -#define constantDiameter_H - -#include "diameterModel.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace diameterModels -{ - -/*---------------------------------------------------------------------------*\ - Class constant Declaration -\*---------------------------------------------------------------------------*/ - -class constant -: - public diameterModel -{ - // Private Data - - //- The constant diameter of the phase - dimensionedScalar d_; - - -public: - - //- Runtime type information - TypeName("constant"); - - - // Constructors - - //- Construct from components - constant - ( - const dictionary& dict, - const phaseModel& phase - ); - - - //- Destructor - virtual ~constant(); - - - // Member Functions - - tmp d() const; -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace diameterModels -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/diameterModels/diameterModel/diameterModel.C b/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/diameterModels/diameterModel/diameterModel.C deleted file mode 100644 index 78dff80b68..0000000000 --- a/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/diameterModels/diameterModel/diameterModel.C +++ /dev/null @@ -1,56 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2011-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 "diameterModel.H" - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -namespace Foam -{ - defineTypeNameAndDebug(diameterModel, 0); - defineRunTimeSelectionTable(diameterModel, dictionary); -} - - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -Foam::diameterModel::diameterModel -( - const dictionary& dict, - const phaseModel& phase -) -: - dict_(dict), - phase_(phase) -{} - - -// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // - -Foam::diameterModel::~diameterModel() -{} - - -// ************************************************************************* // diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/diameterModels/diameterModel/diameterModel.H b/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/diameterModels/diameterModel/diameterModel.H deleted file mode 100644 index 51cb97476a..0000000000 --- a/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/diameterModels/diameterModel/diameterModel.H +++ /dev/null @@ -1,120 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2011-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::diameterModel - -Description - Abstract base-class for dispersed-phase particle diameter models. - -SourceFiles - diameterModel.C - newDiameterModel.C - -\*---------------------------------------------------------------------------*/ - -#ifndef diameterModel_H -#define diameterModel_H - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#include "dictionary.H" -#include "phaseModel.H" -#include "runTimeSelectionTables.H" - -namespace Foam -{ - -/*---------------------------------------------------------------------------*\ - Class diameterModel Declaration -\*---------------------------------------------------------------------------*/ - -class diameterModel -{ -protected: - - // Protected data - - const dictionary& dict_; - const phaseModel& phase_; - - -public: - - //- Runtime type information - TypeName("diameterModel"); - - - // Declare runtime construction - - declareRunTimeSelectionTable - ( - autoPtr, - diameterModel, - dictionary, - ( - const dictionary& dict, - const phaseModel& phase - ), - (dict, phase) - ); - - - // Constructors - - diameterModel - ( - const dictionary& dict, - const phaseModel& phase - ); - - - //- Destructor - virtual ~diameterModel(); - - - // Selectors - - static autoPtr New - ( - const dictionary& dict, - const phaseModel& phase - ); - - - // Member Functions - - //- Return the phase mean diameter field - virtual tmp d() const = 0; -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/diameterModels/diameterModel/newDiameterModel.C b/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/diameterModels/diameterModel/newDiameterModel.C deleted file mode 100644 index ac20183f37..0000000000 --- a/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/diameterModels/diameterModel/newDiameterModel.C +++ /dev/null @@ -1,67 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2011-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 "diameterModel.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -Foam::autoPtr Foam::diameterModel::New -( - const dictionary& dict, - const phaseModel& phase -) -{ - word diameterModelType - ( - dict.lookup("diameterModel") - ); - - Info << "Selecting diameterModel for phase " - << phase.name() - << ": " - << diameterModelType << endl; - - dictionaryConstructorTable::iterator cstrIter = - dictionaryConstructorTablePtr_->find(diameterModelType); - - if (cstrIter == dictionaryConstructorTablePtr_->end()) - { - FatalErrorInFunction - << "Unknown diameterModelType type " - << diameterModelType << endl << endl - << "Valid diameterModel types are : " << endl - << dictionaryConstructorTablePtr_->sortedToc() - << exit(FatalError); - } - - return cstrIter() - ( - dict.optionalSubDict(diameterModelType + "Coeffs"), - phase - ); -} - - -// ************************************************************************* // diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/diameterModels/isothermalDiameter/isothermalDiameter.C b/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/diameterModels/isothermalDiameter/isothermalDiameter.C deleted file mode 100644 index 2d1b28cd92..0000000000 --- a/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/diameterModels/isothermalDiameter/isothermalDiameter.C +++ /dev/null @@ -1,80 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2011-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 "isothermalDiameter.H" -#include "addToRunTimeSelectionTable.H" - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -namespace Foam -{ -namespace diameterModels -{ - defineTypeNameAndDebug(isothermal, 0); - - addToRunTimeSelectionTable - ( - diameterModel, - isothermal, - dictionary - ); -} -} - - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -Foam::diameterModels::isothermal::isothermal -( - const dictionary& dict, - const phaseModel& phase -) -: - diameterModel(dict, phase), - d0_("d0", dimLength, dict), - p0_("p0", dimPressure, dict) -{} - - -// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // - -Foam::diameterModels::isothermal::~isothermal() -{} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -Foam::tmp Foam::diameterModels::isothermal::d() const -{ - const volScalarField& p = phase_.U().db().lookupObject - ( - "p" - ); - - return d0_*pow(p0_/p, 1.0/3.0); -} - - -// ************************************************************************* // diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/diameterModels/isothermalDiameter/isothermalDiameter.H b/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/diameterModels/isothermalDiameter/isothermalDiameter.H deleted file mode 100644 index f922e9cfaf..0000000000 --- a/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/diameterModels/isothermalDiameter/isothermalDiameter.H +++ /dev/null @@ -1,99 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2011-2019 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::isothermal - -Description - Isothermal dispersed-phase particle diameter model. - -SourceFiles - isothermal.C - -\*---------------------------------------------------------------------------*/ - -#ifndef isothermalDiameter_H -#define isothermalDiameter_H - -#include "diameterModel.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace diameterModels -{ - -/*---------------------------------------------------------------------------*\ - Class isothermal Declaration -\*---------------------------------------------------------------------------*/ - -class isothermal -: - public diameterModel -{ - // Private Data - - //- Reference diameter for the isothermal expansion - dimensionedScalar d0_; - - //- Reference pressure for the isothermal expansion - dimensionedScalar p0_; - - -public: - - //- Runtime type information - TypeName("isothermal"); - - - // Constructors - - //- Construct from components - isothermal - ( - const dictionary& dict, - const phaseModel& phase - ); - - - //- Destructor - virtual ~isothermal(); - - - // Member Functions - - tmp d() const; -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace diameterModels -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/multiphaseSystem.C b/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/multiphaseSystem.C deleted file mode 100644 index fde14904b4..0000000000 --- a/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/multiphaseSystem.C +++ /dev/null @@ -1,933 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2011-2020 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 "multiphaseSystem.H" -#include "alphaContactAngleFvPatchScalarField.H" -#include "unitConversion.H" -#include "fixedValueFvsPatchFields.H" -#include "Time.H" -#include "subCycle.H" -#include "MULES.H" -#include "surfaceInterpolate.H" -#include "fvcGrad.H" -#include "fvcSnGrad.H" -#include "fvcDiv.H" -#include "fvcFlux.H" -#include "fvcAverage.H" - - -// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // - -void Foam::multiphaseSystem::calcAlphas() -{ - scalar level = 0.0; - alphas_ == 0.0; - - forAllIter(PtrDictionary, phases_, iter) - { - alphas_ += level*iter(); - level += 1.0; - } -} - - -void Foam::multiphaseSystem::solveAlphas() -{ - PtrList alphaPhiCorrs(phases_.size()); - int phasei = 0; - - forAllIter(PtrDictionary, phases_, iter) - { - phaseModel& phase = iter(); - volScalarField& alpha1 = phase; - - alphaPhiCorrs.set - ( - phasei, - new surfaceScalarField - ( - "phi" + alpha1.name() + "Corr", - fvc::flux - ( - phi_, - phase, - "div(phi," + alpha1.name() + ')' - ) - ) - ); - - surfaceScalarField& alphaPhiCorr = alphaPhiCorrs[phasei]; - - forAllIter(PtrDictionary, phases_, iter2) - { - phaseModel& phase2 = iter2(); - volScalarField& alpha2 = phase2; - - if (&phase2 == &phase) continue; - - surfaceScalarField phir(phase.phi() - phase2.phi()); - - scalarCoeffSymmTable::const_iterator cAlpha - ( - cAlphas_.find(interfacePair(phase, phase2)) - ); - - if (cAlpha != cAlphas_.end()) - { - surfaceScalarField phic - ( - (mag(phi_) + mag(phir))/mesh_.magSf() - ); - - phir += min(cAlpha()*phic, max(phic))*nHatf(phase, phase2); - } - - word phirScheme - ( - "div(phir," + alpha2.name() + ',' + alpha1.name() + ')' - ); - - alphaPhiCorr += fvc::flux - ( - -fvc::flux(-phir, phase2, phirScheme), - phase, - phirScheme - ); - } - - phase.correctInflowOutflow(alphaPhiCorr); - - MULES::limit - ( - 1.0/mesh_.time().deltaT().value(), - geometricOneField(), - phase, - phi_, - alphaPhiCorr, - zeroField(), - zeroField(), - oneField(), - zeroField(), - true - ); - - phasei++; - } - - MULES::limitSum(alphaPhiCorrs); - - volScalarField sumAlpha - ( - IOobject - ( - "sumAlpha", - mesh_.time().timeName(), - mesh_ - ), - mesh_, - dimensionedScalar(dimless, 0) - ); - - phasei = 0; - - forAllIter(PtrDictionary, phases_, iter) - { - phaseModel& phase = iter(); - - surfaceScalarField& alphaPhi = alphaPhiCorrs[phasei]; - alphaPhi += upwind(mesh_, phi_).flux(phase); - phase.correctInflowOutflow(alphaPhi); - - MULES::explicitSolve - ( - geometricOneField(), - phase, - alphaPhi - ); - - phase.alphaPhi() = alphaPhi; - - Info<< phase.name() << " volume fraction, min, max = " - << phase.weightedAverage(mesh_.V()).value() - << ' ' << min(phase).value() - << ' ' << max(phase).value() - << endl; - - sumAlpha += phase; - - phasei++; - } - - Info<< "Phase-sum volume fraction, min, max = " - << sumAlpha.weightedAverage(mesh_.V()).value() - << ' ' << min(sumAlpha).value() - << ' ' << max(sumAlpha).value() - << endl; - - // Correct the sum of the phase-fractions to avoid 'drift' - volScalarField sumCorr(1.0 - sumAlpha); - forAllIter(PtrDictionary, phases_, iter) - { - phaseModel& phase = iter(); - volScalarField& alpha = phase; - alpha += alpha*sumCorr; - } - - calcAlphas(); -} - - -Foam::tmp Foam::multiphaseSystem::nHatfv -( - const volScalarField& alpha1, - const volScalarField& alpha2 -) const -{ - /* - // Cell gradient of alpha - volVectorField gradAlpha = - alpha2*fvc::grad(alpha1) - alpha1*fvc::grad(alpha2); - - // Interpolated face-gradient of alpha - surfaceVectorField gradAlphaf = fvc::interpolate(gradAlpha); - */ - - surfaceVectorField gradAlphaf - ( - fvc::interpolate(alpha2)*fvc::interpolate(fvc::grad(alpha1)) - - fvc::interpolate(alpha1)*fvc::interpolate(fvc::grad(alpha2)) - ); - - // Face unit interface normal - return gradAlphaf/(mag(gradAlphaf) + deltaN_); -} - - -Foam::tmp Foam::multiphaseSystem::nHatf -( - const volScalarField& alpha1, - const volScalarField& alpha2 -) const -{ - // Face unit interface normal flux - return nHatfv(alpha1, alpha2) & mesh_.Sf(); -} - - -// Correction for the boundary condition on the unit normal nHat on -// walls to produce the correct contact angle. - -// The dynamic contact angle is calculated from the component of the -// velocity on the direction of the interface, parallel to the wall. - -void Foam::multiphaseSystem::correctContactAngle -( - const phaseModel& phase1, - const phaseModel& phase2, - surfaceVectorField::Boundary& nHatb -) const -{ - const volScalarField::Boundary& gbf - = phase1.boundaryField(); - - const fvBoundaryMesh& boundary = mesh_.boundary(); - - forAll(boundary, patchi) - { - if (isA(gbf[patchi])) - { - const alphaContactAngleFvPatchScalarField& acap = - refCast(gbf[patchi]); - - vectorField& nHatPatch = nHatb[patchi]; - - vectorField AfHatPatch - ( - mesh_.Sf().boundaryField()[patchi] - /mesh_.magSf().boundaryField()[patchi] - ); - - alphaContactAngleFvPatchScalarField::thetaPropsTable:: - const_iterator tp = - acap.thetaProps().find(interfacePair(phase1, phase2)); - - if (tp == acap.thetaProps().end()) - { - FatalErrorInFunction - << "Cannot find interface " << interfacePair(phase1, phase2) - << "\n in table of theta properties for patch " - << acap.patch().name() - << exit(FatalError); - } - - bool matched = (tp.key().first() == phase1.name()); - - scalar theta0 = degToRad(tp().theta0(matched)); - scalarField theta(boundary[patchi].size(), theta0); - - scalar uTheta = tp().uTheta(); - - // Calculate the dynamic contact angle if required - if (uTheta > small) - { - scalar thetaA = degToRad(tp().thetaA(matched)); - scalar thetaR = degToRad(tp().thetaR(matched)); - - // Calculated the component of the velocity parallel to the wall - vectorField Uwall - ( - phase1.U().boundaryField()[patchi].patchInternalField() - - phase1.U().boundaryField()[patchi] - ); - Uwall -= (AfHatPatch & Uwall)*AfHatPatch; - - // Find the direction of the interface parallel to the wall - vectorField nWall - ( - nHatPatch - (AfHatPatch & nHatPatch)*AfHatPatch - ); - - // Normalise nWall - nWall /= (mag(nWall) + small); - - // Calculate Uwall resolved normal to the interface parallel to - // the interface - scalarField uwall(nWall & Uwall); - - theta += (thetaA - thetaR)*tanh(uwall/uTheta); - } - - - // Reset nHatPatch to correspond to the contact angle - - scalarField a12(nHatPatch & AfHatPatch); - - scalarField b1(cos(theta)); - - scalarField b2(nHatPatch.size()); - - forAll(b2, facei) - { - b2[facei] = cos(acos(a12[facei]) - theta[facei]); - } - - scalarField det(1.0 - a12*a12); - - scalarField a((b1 - a12*b2)/det); - scalarField b((b2 - a12*b1)/det); - - nHatPatch = a*AfHatPatch + b*nHatPatch; - - nHatPatch /= (mag(nHatPatch) + deltaN_.value()); - } - } -} - - -Foam::tmp Foam::multiphaseSystem::K -( - const phaseModel& phase1, - const phaseModel& phase2 -) const -{ - tmp tnHatfv = nHatfv(phase1, phase2); - - correctContactAngle(phase1, phase2, tnHatfv.ref().boundaryFieldRef()); - - // Simple expression for curvature - return -fvc::div(tnHatfv & mesh_.Sf()); -} - - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -Foam::multiphaseSystem::multiphaseSystem -( - const volVectorField& U, - const surfaceScalarField& phi -) -: - IOdictionary - ( - IOobject - ( - "transportProperties", - U.time().constant(), - U.db(), - IOobject::MUST_READ_IF_MODIFIED, - IOobject::NO_WRITE - ) - ), - - phases_(lookup("phases"), phaseModel::iNew(U.mesh())), - - mesh_(U.mesh()), - phi_(phi), - - alphas_ - ( - IOobject - ( - "alphas", - mesh_.time().timeName(), - mesh_, - IOobject::NO_READ, - IOobject::AUTO_WRITE - ), - mesh_, - dimensionedScalar(dimless, 0) - ), - - sigmas_(lookup("sigmas")), - dimSigma_(1, 0, -2, 0, 0), - cAlphas_(lookup("interfaceCompression")), - Cvms_(lookup("virtualMass")), - deltaN_ - ( - "deltaN", - 1e-8/pow(average(mesh_.V()), 1.0/3.0) - ) -{ - calcAlphas(); - alphas_.write(); - - interfaceDictTable dragModelsDict(lookup("drag")); - - forAllConstIter(interfaceDictTable, dragModelsDict, iter) - { - dragModels_.insert - ( - iter.key(), - dragModel::New - ( - iter(), - *phases_.lookup(iter.key().first()), - *phases_.lookup(iter.key().second()) - ).ptr() - ); - } - - forAllConstIter(PtrDictionary, phases_, iter1) - { - const phaseModel& phase1 = iter1(); - - forAllConstIter(PtrDictionary, phases_, iter2) - { - const phaseModel& phase2 = iter2(); - - if (&phase2 != &phase1) - { - scalarCoeffSymmTable::const_iterator sigma - ( - sigmas_.find(interfacePair(phase1, phase2)) - ); - - if (sigma != sigmas_.end()) - { - scalarCoeffSymmTable::const_iterator cAlpha - ( - cAlphas_.find(interfacePair(phase1, phase2)) - ); - - if (cAlpha == cAlphas_.end()) - { - WarningInFunction - << "Compression coefficient not specified for " - "phase pair (" - << phase1.name() << ' ' << phase2.name() - << ") for which a surface tension " - "coefficient is specified" - << endl; - } - } - } - } - } -} - - -// * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * // - -Foam::tmp Foam::multiphaseSystem::rho() const -{ - PtrDictionary::const_iterator iter = phases_.begin(); - - tmp trho = iter()*iter().rho(); - volScalarField& rho = trho.ref(); - - for (++iter; iter != phases_.end(); ++iter) - { - rho += iter()*iter().rho(); - } - - return trho; -} - - -Foam::tmp -Foam::multiphaseSystem::rho(const label patchi) const -{ - PtrDictionary::const_iterator iter = phases_.begin(); - - tmp trho = iter().boundaryField()[patchi]*iter().rho().value(); - scalarField& rho = trho.ref(); - - for (++iter; iter != phases_.end(); ++iter) - { - rho += iter().boundaryField()[patchi]*iter().rho().value(); - } - - return trho; -} - - -Foam::tmp Foam::multiphaseSystem::nu() const -{ - PtrDictionary::const_iterator iter = phases_.begin(); - - tmp tmu = iter()*(iter().rho()*iter().nu()); - volScalarField& mu = tmu.ref(); - - for (++iter; iter != phases_.end(); ++iter) - { - mu += iter()*(iter().rho()*iter().nu()); - } - - return tmu/rho(); -} - - -Foam::tmp -Foam::multiphaseSystem::nu(const label patchi) const -{ - PtrDictionary::const_iterator iter = phases_.begin(); - - tmp tmu = - iter().boundaryField()[patchi] - *(iter().rho().value()*iter().nu().value()); - scalarField& mu = tmu.ref(); - - for (++iter; iter != phases_.end(); ++iter) - { - mu += - iter().boundaryField()[patchi] - *(iter().rho().value()*iter().nu().value()); - } - - return tmu/rho(patchi); -} - - -Foam::tmp Foam::multiphaseSystem::Cvm -( - const phaseModel& phase -) const -{ - tmp tCvm - ( - volScalarField::New - ( - "Cvm", - mesh_, - dimensionedScalar(dimensionSet(1, -3, 0, 0, 0), 0) - ) - ); - - forAllConstIter(PtrDictionary, phases_, iter) - { - const phaseModel& phase2 = iter(); - - if (&phase2 != &phase) - { - scalarCoeffTable::const_iterator Cvm - ( - Cvms_.find(interfacePair(phase, phase2)) - ); - - if (Cvm != Cvms_.end()) - { - tCvm.ref() += Cvm()*phase2.rho()*phase2; - } - else - { - Cvm = Cvms_.find(interfacePair(phase2, phase)); - - if (Cvm != Cvms_.end()) - { - tCvm.ref() += Cvm()*phase.rho()*phase2; - } - } - } - } - - return tCvm; -} - - -Foam::tmp Foam::multiphaseSystem::Svm -( - const phaseModel& phase -) const -{ - tmp tSvm - ( - volVectorField::New - ( - "Svm", - mesh_, - dimensionedVector(dimensionSet(1, -2, -2, 0, 0), Zero) - ) - ); - - forAllConstIter(PtrDictionary, phases_, iter) - { - const phaseModel& phase2 = iter(); - - if (&phase2 != &phase) - { - scalarCoeffTable::const_iterator Cvm - ( - Cvms_.find(interfacePair(phase, phase2)) - ); - - if (Cvm != Cvms_.end()) - { - tSvm.ref() += Cvm()*phase2.rho()*phase2*phase2.DDtU(); - } - else - { - Cvm = Cvms_.find(interfacePair(phase2, phase)); - - if (Cvm != Cvms_.end()) - { - tSvm.ref() += Cvm()*phase.rho()*phase2*phase2.DDtU(); - } - } - } - } - - volVectorField::Boundary& SvmBf = - tSvm.ref().boundaryFieldRef(); - - // Remove virtual mass at fixed-flux boundaries - forAll(phase.phi().boundaryField(), patchi) - { - if - ( - isA - ( - phase.phi().boundaryField()[patchi] - ) - ) - { - SvmBf[patchi] = Zero; - } - } - - return tSvm; -} - - -Foam::autoPtr -Foam::multiphaseSystem::dragCoeffs() const -{ - autoPtr dragCoeffsPtr(new dragCoeffFields); - - forAllConstIter(dragModelTable, dragModels_, iter) - { - const dragModel& dm = *iter(); - - volScalarField* Kptr = - ( - max - ( - // fvc::average(dm.phase1()*dm.phase2()), - // fvc::average(dm.phase1())*fvc::average(dm.phase2()), - dm.phase1()*dm.phase2(), - dm.residualPhaseFraction() - ) - *dm.K - ( - max - ( - mag(dm.phase1().U() - dm.phase2().U()), - dm.residualSlip() - ) - ) - ).ptr(); - - volScalarField::Boundary& Kbf = Kptr->boundaryFieldRef(); - - // Remove drag at fixed-flux boundaries - forAll(dm.phase1().phi().boundaryField(), patchi) - { - if - ( - isA - ( - dm.phase1().phi().boundaryField()[patchi] - ) - ) - { - Kbf[patchi] = 0.0; - } - } - - dragCoeffsPtr().insert(iter.key(), Kptr); - } - - return dragCoeffsPtr; -} - - -Foam::tmp Foam::multiphaseSystem::dragCoeff -( - const phaseModel& phase, - const dragCoeffFields& dragCoeffs -) const -{ - tmp tdragCoeff - ( - volScalarField::New - ( - "dragCoeff", - mesh_, - dimensionedScalar(dimensionSet(1, -3, -1, 0, 0), 0) - ) - ); - - dragModelTable::const_iterator dmIter = dragModels_.begin(); - dragCoeffFields::const_iterator dcIter = dragCoeffs.begin(); - for - ( - ; - dmIter != dragModels_.end() && dcIter != dragCoeffs.end(); - ++dmIter, ++dcIter - ) - { - if - ( - &phase == &dmIter()->phase1() - || &phase == &dmIter()->phase2() - ) - { - tdragCoeff.ref() += *dcIter(); - } - } - - return tdragCoeff; -} - - -Foam::tmp Foam::multiphaseSystem::surfaceTension -( - const phaseModel& phase1 -) const -{ - tmp tSurfaceTension - ( - surfaceScalarField::New - ( - "surfaceTension", - mesh_, - dimensionedScalar(dimensionSet(1, -2, -2, 0, 0), 0) - ) - ); - - forAllConstIter(PtrDictionary, phases_, iter) - { - const phaseModel& phase2 = iter(); - - if (&phase2 != &phase1) - { - scalarCoeffSymmTable::const_iterator sigma - ( - sigmas_.find(interfacePair(phase1, phase2)) - ); - - if (sigma != sigmas_.end()) - { - tSurfaceTension.ref() += - dimensionedScalar(dimSigma_, sigma()) - *fvc::interpolate(K(phase1, phase2))* - ( - fvc::interpolate(phase2)*fvc::snGrad(phase1) - - fvc::interpolate(phase1)*fvc::snGrad(phase2) - ); - } - } - } - - return tSurfaceTension; -} - - -Foam::tmp -Foam::multiphaseSystem::nearInterface() const -{ - tmp tnearInt - ( - volScalarField::New - ( - "nearInterface", - mesh_, - dimensionedScalar(dimless, 0) - ) - ); - - forAllConstIter(PtrDictionary, phases_, iter) - { - tnearInt.ref() = - max(tnearInt(), pos0(iter() - 0.01)*pos0(0.99 - iter())); - } - - return tnearInt; -} - - -void Foam::multiphaseSystem::solve() -{ - forAllIter(PtrDictionary, phases_, iter) - { - iter().correct(); - } - - const Time& runTime = mesh_.time(); - - const dictionary& alphaControls = mesh_.solverDict("alpha"); - label nAlphaSubCycles(alphaControls.lookup