compressibleVoF: Consolidated library functionality

This commit is contained in:
Will Bainbridge
2022-11-09 15:55:33 +00:00
parent 4d900cfae3
commit 366e38d34a
124 changed files with 1035 additions and 476 deletions

View File

@ -1,8 +1,6 @@
#!/bin/sh
cd ${0%/*} || exit 1 # Run from this directory
wclean libso compressibleTwoPhaseMixture
wclean libso surfaceTensionModels
wclean libso compressibleInterPhaseTransportModel
wclean libso fvModels/VoFTurbulenceDamping

View File

@ -4,8 +4,6 @@ cd ${0%/*} || exit 1 # Run from this directory
# Parse arguments for library compilation
. $WM_PROJECT_DIR/wmake/scripts/AllwmakeParseArguments
wmake $targetType compressibleTwoPhaseMixture
wmake $targetType surfaceTensionModels
wmake $targetType compressibleInterPhaseTransportModel
wmake $targetType fvModels/VoFTurbulenceDamping

View File

@ -1,11 +1,14 @@
EXE_INC = \
-I$(FOAM_SOLVERS)/modules/fluid/fluidSolver/lnInclude \
-IcompressibleTwoPhaseMixture \
-IcompressibleInterPhaseTransportModel/lnInclude \
-I$(LIB_SRC)/physicalProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
-I$(LIB_SRC)/twoPhaseModels/twoPhaseMixture/lnInclude \
-I$(LIB_SRC)/twoPhaseModels/VoF \
-I$(LIB_SRC)/twoPhaseModels/interfaceCompression/lnInclude \
-I$(LIB_SRC)/twoPhaseModels/interfaceProperties/lnInclude \
-I$(LIB_SRC)/twoPhaseModels/twoPhaseMixture/lnInclude \
-I$(LIB_SRC)/twoPhaseModels/compressibleTwoPhaseMixture/lnInclude \
-I$(LIB_SRC)/twoPhaseModels/immiscibleCompressibleTwoPhaseMixture/lnInclude \
-I$(LIB_SRC)/MomentumTransportModels/momentumTransportModels/lnInclude \
-I$(LIB_SRC)/MomentumTransportModels/compressible/lnInclude \
-I$(LIB_SRC)/MomentumTransportModels/phaseCompressible/lnInclude \
@ -14,15 +17,14 @@ EXE_INC = \
LIB_LIBS = \
-lfluidSolver \
-lcompressibleTwoPhaseMixture \
-ltwoPhaseSurfaceTension \
-lfluidThermophysicalModels \
-ltwoPhaseMixture \
-ltwoPhaseProperties \
-linterfaceProperties \
-lcompressibleInterPhaseTransportModel \
-lphysicalProperties \
-lfluidThermophysicalModels \
-linterfaceCompression \
-lcompressibleInterfaceProperties \
-limmiscibleCompressibleTwoPhaseMixture \
-lfiniteVolume \
-lmeshTools \
-lfvModels \
-lfvConstraints \
-lmeshTools \
-lsampling

View File

@ -1,25 +1,22 @@
EXE_INC = \
-I../compressibleTwoPhaseMixture \
-I$(LIB_SRC)/physicalProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
-I$(LIB_SRC)/twoPhaseModels/twoPhaseMixture/lnInclude \
-I$(LIB_SRC)/twoPhaseModels/interfaceProperties/lnInclude \
-I$(LIB_SRC)/MomentumTransportModels/compressible/lnInclude \
-I$(LIB_SRC)/twoPhaseModels/twoPhaseMixture/lnInclude \
-I$(LIB_SRC)/twoPhaseModels/compressibleTwoPhaseMixture/lnInclude \
-I$(LIB_SRC)/twoPhaseModels/immiscibleCompressibleTwoPhaseMixture/lnInclude \
-I$(LIB_SRC)/MomentumTransportModels/momentumTransportModels/lnInclude \
-I$(LIB_SRC)/MomentumTransportModels/compressible/lnInclude \
-I$(LIB_SRC)/MomentumTransportModels/phaseCompressible/lnInclude \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude
LIB_LIBS = \
-lcompressibleTwoPhaseMixture \
-lphysicalProperties \
-lfluidThermophysicalModels \
-lspecie \
-ltwoPhaseMixture \
-ltwoPhaseProperties \
-linterfaceProperties \
-limmiscibleCompressibleTwoPhaseMixture \
-lmomentumTransportModels \
-lcompressibleMomentumTransportModels \
-lphaseCompressibleMomentumTransportModels \
-lphysicalProperties \
-lfiniteVolume \
-lmeshTools

View File

@ -45,7 +45,7 @@ SourceFiles
#define compressibleInterPhaseTransportModel_H
#include "twoPhaseMixture.H"
#include "compressibleTwoPhaseMixture.H"
#include "immiscibleCompressibleTwoPhaseMixture.H"
#include "compressibleMomentumTransportModels.H"
#include "phaseCompressibleMomentumTransportModel.H"

View File

@ -93,7 +93,7 @@ Foam::solvers::compressibleVoF::compressibleVoF(fvMesh& mesh)
linearInterpolate(U) & mesh.Sf()
),
mixture(U, phi),
mixture(U),
alpha1(mixture.alpha1()),

View File

@ -92,7 +92,7 @@ protected:
// Phase properties
//- The compressible two-phase mixture
compressibleTwoPhaseMixture mixture;
immiscibleCompressibleTwoPhaseMixture mixture;
//- Reference to the primary phase-fraction
volScalarField& alpha1;

View File

@ -1,9 +1,3 @@
cavitation/cavitationModel/cavitationModel.C
cavitation/cavitationModel/cavitationModelNew.C
cavitation/Kunz/Kunz.C
cavitation/Merkle/Merkle.C
cavitation/SchnerrSauer/SchnerrSauer.C
VoFCavitation.C
LIB = $(FOAM_LIBBIN)/libcompressibleVoFCavitation

View File

@ -1,19 +1,17 @@
EXE_INC = \
-I../../compressibleTwoPhaseMixture \
-I$(LIB_SRC)/physicalProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
-I$(LIB_SRC)/twoPhaseModels/twoPhaseMixture/lnInclude \
-I$(LIB_SRC)/twoPhaseModels/interfaceProperties/lnInclude \
-I$(LIB_SRC)/twoPhaseModels/twoPhaseMixture/lnInclude \
-I$(LIB_SRC)/twoPhaseModels/compressibleTwoPhaseMixture/lnInclude \
-I$(LIB_SRC)/twoPhaseModels/compressibleCavitation/lnInclude \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude
LIB_LIBS = \
-lcompressibleTwoPhaseMixture \
-lfluidThermophysicalModels \
-lspecie \
-lphysicalProperties \
-ltwoPhaseMixture \
-ltwoPhaseProperties \
-linterfaceProperties \
-lfluidThermophysicalModels \
-lcompressibleTwoPhaseMixture \
-lcompressibleCavitationModels \
-lfiniteVolume \
-lmeshTools

View File

@ -1,22 +1,18 @@
EXE_INC = \
-I../../compressibleTwoPhaseMixture \
-I$(LIB_SRC)/physicalProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
-I$(LIB_SRC)/twoPhaseModels/twoPhaseMixture/lnInclude \
-I$(LIB_SRC)/twoPhaseModels/interfaceProperties/lnInclude \
-I$(LIB_SRC)/twoPhaseModels/twoPhaseMixture/lnInclude \
-I$(LIB_SRC)/twoPhaseModels/compressibleTwoPhaseMixture/lnInclude \
-I$(LIB_SRC)/lagrangian/basic/lnInclude \
-I$(LIB_SRC)/lagrangian/parcel/lnInclude \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude
LIB_LIBS = \
-lcompressibleTwoPhaseMixture \
-lfluidThermophysicalModels \
-lspecie \
-ltwoPhaseMixture \
-ltwoPhaseProperties \
-linterfaceProperties \
-lphysicalProperties \
-lfluidThermophysicalModels \
-lcompressibleTwoPhaseMixture \
-llagrangian \
-llagrangianParcel \
-llagrangianParcelTurbulence \

View File

@ -1,19 +1,15 @@
EXE_INC = \
-I../../compressibleTwoPhaseMixture \
-I$(LIB_SRC)/physicalProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
-I$(LIB_SRC)/twoPhaseModels/twoPhaseMixture/lnInclude \
-I$(LIB_SRC)/twoPhaseModels/interfaceProperties/lnInclude \
-I$(LIB_SRC)/twoPhaseModels/twoPhaseMixture/lnInclude \
-I$(LIB_SRC)/twoPhaseModels/compressibleTwoPhaseMixture/lnInclude \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude
LIB_LIBS = \
-lcompressibleTwoPhaseMixture \
-lfluidThermophysicalModels \
-lspecie \
-lphysicalProperties \
-ltwoPhaseMixture \
-ltwoPhaseProperties \
-linterfaceProperties \
-lfluidThermophysicalModels \
-lcompressibleTwoPhaseMixture \
-lfiniteVolume \
-lmeshTools

View File

@ -1,22 +1,18 @@
EXE_INC = \
-I../../compressibleTwoPhaseMixture \
-I$(LIB_SRC)/physicalProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
-I$(LIB_SRC)/twoPhaseModels/twoPhaseMixture/lnInclude \
-I$(LIB_SRC)/twoPhaseModels/interfaceProperties/lnInclude \
-I$(LIB_SRC)/twoPhaseModels/twoPhaseMixture/lnInclude \
-I$(LIB_SRC)/twoPhaseModels/compressibleTwoPhaseMixture/lnInclude \
-I$(LIB_SRC)/regionModels/regionModel/lnInclude \
-I$(LIB_SRC)/regionModels/surfaceFilmModels/lnInclude \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude
LIB_LIBS = \
-lcompressibleTwoPhaseMixture \
-lfluidThermophysicalModels \
-lspecie \
-ltwoPhaseMixture \
-ltwoPhaseProperties \
-linterfaceProperties \
-lphysicalProperties \
-lfluidThermophysicalModels \
-lcompressibleTwoPhaseMixture \
-lsurfaceFilmModels \
-lfiniteVolume \
-lmeshTools

View File

@ -1,9 +1,10 @@
EXE_INC = \
-I../../compressibleTwoPhaseMixture \
-I$(LIB_SRC)/physicalProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
-I$(LIB_SRC)/twoPhaseModels/twoPhaseMixture/lnInclude \
-I$(LIB_SRC)/twoPhaseModels/interfaceProperties/lnInclude \
-I$(LIB_SRC)/twoPhaseModels/twoPhaseMixture/lnInclude \
-I$(LIB_SRC)/twoPhaseModels/compressibleTwoPhaseMixture/lnInclude \
-I$(LIB_SRC)/twoPhaseModels/immiscibleCompressibleTwoPhaseMixture/lnInclude \
-I$(LIB_SRC)/MomentumTransportModels/momentumTransportModels/lnInclude \
-I$(LIB_SRC)/MomentumTransportModels/compressible/lnInclude \
-I$(LIB_SRC)/MomentumTransportModels/phaseCompressible/lnInclude \
@ -11,14 +12,11 @@ EXE_INC = \
-I$(LIB_SRC)/meshTools/lnInclude
LIB_LIBS = \
-lcompressibleTwoPhaseMixture \
-lfluidThermophysicalModels \
-lspecie \
-lphysicalProperties \
-ltwoPhaseMixture \
-ltwoPhaseProperties \
-linterfaceProperties \
-lfluidThermophysicalModels \
-limmiscibleCompressibleTwoPhaseMixture \
-lmomentumTransportModels \
-lcompressibleMomentumTransportModels \
-lphaseCompressibleMomentumTransportModels \
-lfiniteVolume \
-lmeshTools

View File

@ -24,7 +24,7 @@ License
\*---------------------------------------------------------------------------*/
#include "VoFTurbulenceDamping.H"
#include "compressibleTwoPhaseMixture.H"
#include "immiscibleCompressibleTwoPhaseMixture.H"
#include "interfaceProperties.H"
#include "compressibleMomentumTransportModel.H"
#include "fvMatrix.H"
@ -66,7 +66,7 @@ Foam::fv::compressible::VoFTurbulenceDamping::VoFTurbulenceDamping
delta_("delta", dimLength, dict),
mixture_
(
mesh.lookupObject<compressibleTwoPhaseMixture>
mesh.lookupObject<immiscibleCompressibleTwoPhaseMixture>
(
"phaseProperties"
)

View File

@ -81,7 +81,7 @@ SourceFiles
namespace Foam
{
class compressibleTwoPhaseMixture;
class immiscibleCompressibleTwoPhaseMixture;
class interfaceProperties;
class compressibleMomentumTransportModel;
@ -111,7 +111,7 @@ class VoFTurbulenceDamping
dimensionedScalar delta_;
//- Reference to the mixture properties
const compressibleTwoPhaseMixture& mixture_;
const immiscibleCompressibleTwoPhaseMixture& mixture_;
//- Reference to the interface properties
const interfaceProperties& interface_;

View File

@ -1,3 +0,0 @@
liquidProperties/liquidPropertiesSurfaceTension.C
LIB = $(FOAM_LIBBIN)/libtwoPhaseSurfaceTension

View File

@ -1,8 +1,10 @@
EXE_INC = \
-I$(LIB_SRC)/physicalProperties/lnInclude \
-I$(LIB_SRC)/twoPhaseModels/incompressibleTwoPhaseMixture/lnInclude \
-I$(LIB_SRC)/twoPhaseModels/twoPhaseMixture/lnInclude \
-I$(LIB_SRC)/twoPhaseModels/VoF \
-I$(LIB_SRC)/twoPhaseModels/interfaceCompression/lnInclude \
-I$(LIB_SRC)/twoPhaseModels/interfaceProperties/lnInclude \
-I$(LIB_SRC)/twoPhaseModels/twoPhaseMixture/lnInclude \
-I$(LIB_SRC)/twoPhaseModels/incompressibleTwoPhaseMixture/lnInclude \
-I$(LIB_SRC)/MomentumTransportModels/momentumTransportModels/lnInclude \
-I$(LIB_SRC)/MomentumTransportModels/incompressible/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/barotropicCompressibilityModel/lnInclude \
@ -10,11 +12,13 @@ EXE_INC = \
-I$(LIB_SRC)/meshTools/lnInclude
EXE_LIBS = \
-lmomentumTransportModels \
-lphysicalProperties \
-linterfaceCompression \
-lincompressibleTwoPhaseMixture \
-lmomentumTransportModels \
-lincompressibleMomentumTransportModels \
-lbarotropicCompressibilityModel \
-lfiniteVolume \
-lmeshTools \
-lfvModels \
-lfvConstraints \
-lmeshTools
-lfvConstraints

View File

@ -61,7 +61,7 @@ surfaceScalarField rhoPhi
Info<< "Reading phaseProperties\n" << endl;
incompressibleTwoPhaseMixture mixture(U, phi);
incompressibleTwoPhaseMixture mixture(mesh);
volScalarField& alphav(mixture.alpha1());
alphav.oldTime();

View File

@ -4,7 +4,8 @@ EXE_INC = \
-IcompressibleMultiphaseMixture/lnInclude \
-I$(LIB_SRC)/physicalProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
-I$(LIB_SRC)/twoPhaseModels/twoPhaseMixture/lnInclude \
-I$(LIB_SRC)/twoPhaseModels/VoF \
-I$(LIB_SRC)/twoPhaseModels/interfaceCompression/lnInclude \
-I$(LIB_SRC)/twoPhaseModels/interfaceProperties/lnInclude \
-I$(LIB_SRC)/MomentumTransportModels/momentumTransportModels/lnInclude \
-I$(LIB_SRC)/MomentumTransportModels/compressible/lnInclude \
@ -13,8 +14,10 @@ EXE_INC = \
EXE_LIBS = \
-lcompressibleMultiphaseMixture \
-lphysicalProperties \
-lfluidThermophysicalModels \
-lspecie \
-linterfaceCompression \
-linterfaceProperties \
-lmomentumTransportModels \
-lcompressibleMomentumTransportModels \

View File

@ -6,6 +6,8 @@ EXE_INC = \
-I$(LIB_SRC)/meshTools/lnInclude \
-I$(LIB_SRC)/sampling/lnInclude \
-I$(LIB_SRC)/physicalProperties/lnInclude \
-I$(LIB_SRC)/twoPhaseModels/VoF \
-I$(LIB_SRC)/twoPhaseModels/interfaceCompression/lnInclude \
-I$(LIB_SRC)/twoPhaseModels/twoPhaseMixture/lnInclude \
-I$(LIB_SRC)/MomentumTransportModels/momentumTransportModels/lnInclude \
-I$(LIB_SRC)/MomentumTransportModels/compressible/lnInclude
@ -13,10 +15,13 @@ EXE_INC = \
EXE_LIBS = \
-ldriftFluxTransportModels \
-ldriftFluxRelativeVelocityModels \
-lphysicalProperties \
-linterfaceCompression \
-ltwoPhaseMixture \
-lmomentumTransportModels \
-lcompressibleMomentumTransportModels \
-lfiniteVolume \
-lmeshTools \
-lsampling \
-lfvModels \
-lfvConstraints \
-lmomentumTransportModels \
-lcompressibleMomentumTransportModels
-lfvConstraints

View File

@ -1,13 +1,12 @@
EXE_INC = \
-I../incompressibleTwoPhaseInteractingMixture \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/physicalProperties/lnInclude \
-I$(LIB_SRC)/twoPhaseModels/twoPhaseMixture/lnInclude \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude
LIB_LIBS = \
-ltwoPhaseMixture \
-lphysicalProperties \
-ltwoPhaseMixture \
-lfiniteVolume \
-lmeshTools

View File

@ -8,5 +8,6 @@ EXE_INC = \
LIB_LIBS = \
-lphysicalProperties \
-ltwoPhaseMixture \
-lfiniteVolume \
-lmeshTools

View File

@ -1,24 +1,29 @@
EXE_INC = \
-IincompressibleInterPhaseTransportModel/lnInclude \
-I$(LIB_SRC)/physicalProperties/lnInclude \
-I$(LIB_SRC)/twoPhaseModels/twoPhaseMixture/lnInclude \
-I$(LIB_SRC)/twoPhaseModels/VoF \
-I$(LIB_SRC)/twoPhaseModels/interfaceCompression/lnInclude \
-I$(LIB_SRC)/twoPhaseModels/interfaceProperties/lnInclude \
-I$(LIB_SRC)/twoPhaseModels/twoPhaseMixture/lnInclude \
-I$(LIB_SRC)/twoPhaseModels/incompressibleTwoPhaseMixture/lnInclude \
-I$(LIB_SRC)/twoPhaseModels/immiscibleIncompressibleTwoPhaseMixture/lnInclude \
-I$(LIB_SRC)/MomentumTransportModels/momentumTransportModels/lnInclude \
-I$(LIB_SRC)/MomentumTransportModels/incompressible/lnInclude \
-I$(LIB_SRC)/MomentumTransportModels/phaseIncompressible/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \
-I$(LIB_SRC)/sampling/lnInclude
EXE_LIBS = \
-lincompressibleInterPhaseTransportModel \
-lphysicalProperties \
-linterfaceCompression \
-limmiscibleIncompressibleTwoPhaseMixture \
-lmomentumTransportModels \
-lincompressibleMomentumTransportModels \
-lincompressibleInterPhaseTransportModel \
-lphaseIncompressibleMomentumTransportModels \
-lfiniteVolume \
-lmeshTools \
-lfvModels \
-lfvConstraints \
-lmeshTools
-lsampling

View File

@ -32,7 +32,7 @@ volVectorField U
Info<< "Reading phaseProperties\n" << endl;
immiscibleIncompressibleTwoPhaseMixture mixture(U, phi);
immiscibleIncompressibleTwoPhaseMixture mixture(U);
// Need to store rho for ddt(rho, U)

View File

@ -3,14 +3,13 @@ EXE_INC = \
-I$(LIB_SRC)/twoPhaseModels/twoPhaseMixture/lnInclude \
-I$(LIB_SRC)/twoPhaseModels/interfaceProperties/lnInclude \
-I$(LIB_SRC)/twoPhaseModels/incompressibleTwoPhaseMixture/lnInclude \
-I$(LIB_SRC)/twoPhaseModels/immiscibleIncompressibleTwoPhaseMixture/lnInclude \
-I$(LIB_SRC)/twoPhaseModels/cavitation/lnInclude \
-I$(LIB_SRC)/twoPhaseModels/incompressibleCavitation/lnInclude \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude
LIB_LIBS = \
-lphysicalProperties \
-limmiscibleIncompressibleTwoPhaseMixture \
-lcavitationModels \
-lincompressibleTwoPhaseMixture \
-lincompressibleCavitationModels \
-lfiniteVolume \
-lmeshTools

View File

@ -24,7 +24,7 @@ License
\*---------------------------------------------------------------------------*/
#include "VoFCavitation.H"
#include "immiscibleIncompressibleTwoPhaseMixture.H"
#include "incompressibleTwoPhaseMixture.H"
#include "fvcDdt.H"
#include "fvcDiv.H"
#include "fvmSup.H"
@ -62,7 +62,7 @@ Foam::fv::VoFCavitation::VoFCavitation
mixture_
(
mesh.lookupObjectRef<immiscibleIncompressibleTwoPhaseMixture>
mesh.lookupObjectRef<incompressibleTwoPhaseMixture>
(
"phaseProperties"
)

View File

@ -86,7 +86,7 @@ SourceFiles
namespace Foam
{
class immiscibleIncompressibleTwoPhaseMixture;
class incompressibleTwoPhaseMixture;
namespace fv
{
@ -102,7 +102,7 @@ class VoFCavitation
// Private Data
//- Reference to the mixture properties
const immiscibleIncompressibleTwoPhaseMixture& mixture_;
const incompressibleTwoPhaseMixture& mixture_;
autoPtr<cavitationModel> cavitation_;

View File

@ -12,8 +12,6 @@ EXE_INC = \
LIB_LIBS = \
-lphysicalProperties \
-limmiscibleIncompressibleTwoPhaseMixture \
-ltwoPhaseMixture \
-linterfaceProperties \
-lmomentumTransportModels \
-lincompressibleMomentumTransportModels \
-lfiniteVolume \

View File

@ -2,7 +2,8 @@ EXE_INC = \
-I. \
-I.. \
-I$(LIB_SRC)/physicalProperties/lnInclude \
-I$(LIB_SRC)/twoPhaseModels/twoPhaseMixture/lnInclude \
-I$(LIB_SRC)/twoPhaseModels/VoF \
-I$(LIB_SRC)/twoPhaseModels/interfaceCompression/lnInclude \
-I$(LIB_SRC)/twoPhaseModels/interfaceProperties/lnInclude \
-I$(LIB_SRC)/twoPhaseModels/twoPhaseProperties/alphaContactAngle/alphaContactAngle \
-IimmiscibleIncompressibleThreePhaseMixture \
@ -15,9 +16,9 @@ EXE_INC = \
-I$(LIB_SRC)/sampling/lnInclude
EXE_LIBS = \
-ltwoPhaseMixture \
-ltwoPhaseProperties \
-lphysicalProperties \
-linterfaceCompression \
-ltwoPhaseProperties \
-lmomentumTransportModels \
-lincompressibleMomentumTransportModels \
-lfiniteVolume \

View File

@ -30,7 +30,7 @@ volVectorField U
#include "createPhi.H"
immiscibleIncompressibleThreePhaseMixture mixture(U, phi);
immiscibleIncompressibleThreePhaseMixture mixture(U);
volScalarField& alpha1(mixture.alpha1());
volScalarField& alpha2(mixture.alpha2());

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Copyright (C) 2014-2018 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2014-2022 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -31,15 +31,11 @@ License
Foam::immiscibleIncompressibleThreePhaseMixture::
immiscibleIncompressibleThreePhaseMixture
(
const volVectorField& U,
const surfaceScalarField& phi
const volVectorField& U
)
:
incompressibleThreePhaseMixture(U, phi),
threePhaseInterfaceProperties
(
static_cast<incompressibleThreePhaseMixture&>(*this)
)
incompressibleThreePhaseMixture(U.mesh()),
threePhaseInterfaceProperties(*this, alpha1(), alpha2(), alpha3(), U)
{}

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Copyright (C) 2014-2018 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2014-2022 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -52,17 +52,12 @@ class immiscibleIncompressibleThreePhaseMixture
public incompressibleThreePhaseMixture,
public threePhaseInterfaceProperties
{
public:
// Constructors
//- Construct from components
immiscibleIncompressibleThreePhaseMixture
(
const volVectorField& U,
const surfaceScalarField& phi
);
//- Construct from the mixture velocity
immiscibleIncompressibleThreePhaseMixture(const volVectorField& U);
//- Destructor

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Copyright (C) 2011-2021 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2022 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -45,8 +45,7 @@ void Foam::incompressibleThreePhaseMixture::calcNu()
Foam::incompressibleThreePhaseMixture::incompressibleThreePhaseMixture
(
const volVectorField& U,
const surfaceScalarField& phi
const fvMesh& mesh
)
:
IOdictionary
@ -54,8 +53,8 @@ Foam::incompressibleThreePhaseMixture::incompressibleThreePhaseMixture
IOobject
(
"phaseProperties",
U.time().constant(),
U.db(),
mesh.time().constant(),
mesh,
IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
@ -70,12 +69,12 @@ Foam::incompressibleThreePhaseMixture::incompressibleThreePhaseMixture
IOobject
(
IOobject::groupName("alpha", phase1Name_),
U.time().timeName(),
U.mesh(),
mesh.time().timeName(),
mesh,
IOobject::MUST_READ,
IOobject::AUTO_WRITE
),
U.mesh()
mesh
),
alpha2_
@ -83,12 +82,12 @@ Foam::incompressibleThreePhaseMixture::incompressibleThreePhaseMixture
IOobject
(
IOobject::groupName("alpha", phase2Name_),
U.time().timeName(),
U.mesh(),
mesh.time().timeName(),
mesh,
IOobject::MUST_READ,
IOobject::AUTO_WRITE
),
U.mesh()
mesh
),
alpha3_
@ -96,33 +95,30 @@ Foam::incompressibleThreePhaseMixture::incompressibleThreePhaseMixture
IOobject
(
IOobject::groupName("alpha", phase3Name_),
U.time().timeName(),
U.mesh(),
mesh.time().timeName(),
mesh,
IOobject::MUST_READ,
IOobject::AUTO_WRITE
),
U.mesh()
mesh
),
U_(U),
phi_(phi),
nu_
(
IOobject
(
"nu",
U.time().timeName(),
U.db()
mesh.time().timeName(),
mesh
),
U.mesh(),
mesh,
dimensionedScalar(dimensionSet(0, 2, -1, 0, 0), 0),
calculatedFvPatchScalarField::typeName
),
nuModel1_(viscosityModel::New(U.mesh(), phase1Name_)),
nuModel2_(viscosityModel::New(U.mesh(), phase2Name_)),
nuModel3_(viscosityModel::New(U.mesh(), phase3Name_)),
nuModel1_(viscosityModel::New(mesh, phase1Name_)),
nuModel2_(viscosityModel::New(mesh, phase2Name_)),
nuModel3_(viscosityModel::New(mesh, phase3Name_)),
rho1_("rho", dimDensity, nuModel1_()),
rho2_("rho", dimDensity, nuModel2_()),

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Copyright (C) 2011-2021 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2022 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -64,9 +64,6 @@ class incompressibleThreePhaseMixture
volScalarField alpha2_;
volScalarField alpha3_;
const volVectorField& U_;
const surfaceScalarField& phi_;
volScalarField nu_;
autoPtr<viscosityModel> nuModel1_;
@ -88,12 +85,8 @@ public:
// Constructors
//- Construct from components
incompressibleThreePhaseMixture
(
const volVectorField& U,
const surfaceScalarField& phi
);
//- Construct from a mesh
incompressibleThreePhaseMixture(const fvMesh& mesh);
//- Destructor
@ -166,18 +159,6 @@ public:
return rho3_;
};
//- Return the velocity
const volVectorField& U() const
{
return U_;
}
//- Return the flux
const surfaceScalarField& phi() const
{
return phi_;
}
//- Return const-access to phase1 viscosityModel
const viscosityModel& nuModel1() const
{

View File

@ -38,29 +38,25 @@ void Foam::threePhaseInterfaceProperties::correctContactAngle
surfaceVectorField::Boundary& nHatb
) const
{
const volScalarField::Boundary& alpha1 =
mixture_.alpha1().boundaryField();
const volScalarField::Boundary& alpha2 =
mixture_.alpha2().boundaryField();
const volScalarField::Boundary& alpha3 =
mixture_.alpha3().boundaryField();
const volVectorField::Boundary& U =
mixture_.U().boundaryField();
const volScalarField::Boundary& alpha1Bf = alpha1_.boundaryField();
const volScalarField::Boundary& alpha2Bf = alpha2_.boundaryField();
const volScalarField::Boundary& alpha3Bf = alpha3_.boundaryField();
const volVectorField::Boundary& UBf = U_.boundaryField();
const fvMesh& mesh = mixture_.U().mesh();
const fvMesh& mesh = alpha1_.mesh();
const fvBoundaryMesh& boundary = mesh.boundary();
forAll(boundary, patchi)
{
if (isA<alphaContactAngleFvPatchScalarField>(alpha1[patchi]))
if (isA<alphaContactAngleFvPatchScalarField>(alpha1Bf[patchi]))
{
const alphaContactAngleFvPatchScalarField& a2cap =
refCast<const alphaContactAngleFvPatchScalarField>
(alpha2[patchi]);
(alpha2Bf[patchi]);
const alphaContactAngleFvPatchScalarField& a3cap =
refCast<const alphaContactAngleFvPatchScalarField>
(alpha3[patchi]);
(alpha3Bf[patchi]);
scalarField twoPhaseAlpha2(max(a2cap, scalar(0)));
scalarField twoPhaseAlpha3(max(a3cap, scalar(0)));
@ -79,8 +75,8 @@ void Foam::threePhaseInterfaceProperties::correctContactAngle
(
degToRad
(
twoPhaseAlpha2*(180 - a2cap.theta(U[patchi], nHatp))
+ twoPhaseAlpha3*(180 - a3cap.theta(U[patchi], nHatp))
twoPhaseAlpha2*(180 - a2cap.theta(UBf[patchi], nHatp))
+ twoPhaseAlpha3*(180 - a3cap.theta(UBf[patchi], nHatp))
)
);
@ -114,13 +110,11 @@ void Foam::threePhaseInterfaceProperties::correctContactAngle
void Foam::threePhaseInterfaceProperties::calculateK()
{
const volScalarField& alpha1 = mixture_.alpha1();
const fvMesh& mesh = alpha1.mesh();
const fvMesh& mesh = alpha1_.mesh();
const surfaceVectorField& Sf = mesh.Sf();
// Cell gradient of alpha
volVectorField gradAlpha(fvc::grad(alpha1));
volVectorField gradAlpha(fvc::grad(alpha1_));
// Interpolated face-gradient of alpha
surfaceVectorField gradAlphaf(fvc::interpolate(gradAlpha));
@ -148,24 +142,29 @@ void Foam::threePhaseInterfaceProperties::calculateK()
Foam::threePhaseInterfaceProperties::threePhaseInterfaceProperties
(
const incompressibleThreePhaseMixture& mixture
const IOdictionary& dict,
volScalarField& alpha1,
volScalarField& alpha2,
volScalarField& alpha3,
const volVectorField& U
)
:
mixture_(mixture),
alpha1_(alpha1),
alpha2_(alpha2),
alpha3_(alpha3),
U_(U),
cAlpha_
(
mixture.U().mesh().solution().solverDict
(
mixture_.alpha1().name()
).lookup<scalar>("cAlpha")
U.mesh().solution().solverDict(alpha1_.name()).lookup<scalar>("cAlpha")
),
sigma12_("sigma12", dimensionSet(1, 0, -2, 0, 0), mixture),
sigma13_("sigma13", dimensionSet(1, 0, -2, 0, 0), mixture),
sigma12_("sigma12", dimensionSet(1, 0, -2, 0, 0), dict),
sigma13_("sigma13", dimensionSet(1, 0, -2, 0, 0), dict),
deltaN_
(
"deltaN",
1e-8/pow(average(mixture.U().mesh().V()), 1.0/3.0)
1e-8/pow(average(U.mesh().V()), 1.0/3.0)
),
nHatf_
@ -173,10 +172,10 @@ Foam::threePhaseInterfaceProperties::threePhaseInterfaceProperties
IOobject
(
"nHatf",
mixture.alpha1().time().timeName(),
mixture.alpha1().mesh()
alpha1_.time().timeName(),
alpha1_.mesh()
),
mixture.alpha1().mesh(),
alpha1_.mesh(),
dimensionedScalar(dimArea, 0)
),
@ -185,10 +184,10 @@ Foam::threePhaseInterfaceProperties::threePhaseInterfaceProperties
IOobject
(
"interfaceProperties:K",
mixture.alpha1().time().timeName(),
mixture.alpha1().mesh()
alpha1_.time().timeName(),
alpha1_.mesh()
),
mixture.alpha1().mesh(),
alpha1_.mesh(),
dimensionedScalar(dimless/dimLength, 0)
)
{
@ -201,7 +200,7 @@ Foam::threePhaseInterfaceProperties::threePhaseInterfaceProperties
Foam::tmp<Foam::surfaceScalarField>
Foam::threePhaseInterfaceProperties::surfaceTensionForce() const
{
return fvc::interpolate(sigmaK())*fvc::snGrad(mixture_.alpha1());
return fvc::interpolate(sigmaK())*fvc::snGrad(alpha1_);
}
@ -210,8 +209,8 @@ Foam::threePhaseInterfaceProperties::nearInterface() const
{
return max
(
pos0(mixture_.alpha1() - 0.01)*pos0(0.99 - mixture_.alpha1()),
pos0(mixture_.alpha2() - 0.01)*pos0(0.99 - mixture_.alpha2())
pos0(alpha1_ - 0.01)*pos0(0.99 - alpha1_),
pos0(alpha2_ - 0.01)*pos0(0.99 - alpha2_)
);
}

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Copyright (C) 2011-2020 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2022 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -53,7 +53,17 @@ class threePhaseInterfaceProperties
{
// Private Data
const incompressibleThreePhaseMixture& mixture_;
//- Volume fraction of phase 1
volScalarField& alpha1_;
//- Volume fraction of phase 2
volScalarField& alpha2_;
//- Volume fraction of phase 3
volScalarField& alpha3_;
//- Mixture velocity
const volVectorField& U_;
//- Compression coefficient
scalar cAlpha_;
@ -67,7 +77,10 @@ class threePhaseInterfaceProperties
//- Stabilisation for normalisation of the interface normal
const dimensionedScalar deltaN_;
//- ...
surfaceScalarField nHatf_;
//- ...
volScalarField K_;
@ -89,10 +102,15 @@ public:
// Constructors
//- Construct from volume fraction field alpha and IOdictionary
//- Construct from dictionary, volume fraction fields and mixture
// velocity
threePhaseInterfaceProperties
(
const incompressibleThreePhaseMixture& mixture
const IOdictionary& dict,
volScalarField& alpha1,
volScalarField& alpha2,
volScalarField& alpha3,
const volVectorField& U
);
//- Disallow default bitwise copy construction
@ -104,6 +122,11 @@ public:
// Member Functions
inline const volVectorField& U() const
{
return U_;
}
scalar cAlpha() const
{
return cAlpha_;
@ -126,8 +149,8 @@ public:
tmp<volScalarField> sigma() const
{
volScalarField limitedAlpha2(max(mixture_.alpha2(), scalar(0)));
volScalarField limitedAlpha3(max(mixture_.alpha3(), scalar(0)));
volScalarField limitedAlpha2(max(alpha2_, scalar(0)));
volScalarField limitedAlpha3(max(alpha3_, scalar(0)));
return
(limitedAlpha2*sigma12_ + limitedAlpha3*sigma13_)

View File

@ -1,7 +1,8 @@
EXE_INC = \
-ImultiphaseMixture/lnInclude \
-I$(LIB_SRC)/physicalProperties/lnInclude \
-I$(LIB_SRC)/twoPhaseModels/twoPhaseMixture/lnInclude \
-I$(LIB_SRC)/twoPhaseModels/VoF \
-I$(LIB_SRC)/twoPhaseModels/interfaceCompression/lnInclude \
-I$(LIB_SRC)/twoPhaseModels/interfaceProperties/lnInclude \
-I$(LIB_SRC)/MomentumTransportModels/momentumTransportModels/lnInclude \
-I$(LIB_SRC)/MomentumTransportModels/incompressible/lnInclude \
@ -11,8 +12,9 @@ EXE_INC = \
EXE_LIBS = \
-lmultiphaseInterFoam \
-linterfaceProperties \
-lphysicalProperties \
-linterfaceCompression \
-linterfaceProperties \
-lmomentumTransportModels \
-lincompressibleMomentumTransportModels \
-lfiniteVolume \

View File

@ -1,21 +1,21 @@
EXE_INC = \
-I$(LIB_SRC)/physicalProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
-I$(LIB_SRC)/twoPhaseModels/interfaceCompression/lnInclude \
-I$(LIB_SRC)/MomentumTransportModels/momentumTransportModels/lnInclude \
-I$(LIB_SRC)/MomentumTransportModels/incompressible/lnInclude \
-I$(LIB_SRC)/MomentumTransportModels/compressible/lnInclude \
-I$(LIB_SRC)/twoPhaseModels/twoPhaseMixture/lnInclude \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude
LIB_LIBS = \
-lfluidThermophysicalModels \
-lphysicalProperties \
-lfluidThermophysicalModels \
-lspecie \
-linterfaceCompression \
-lmomentumTransportModels \
-lincompressibleMomentumTransportModels \
-lcompressibleMomentumTransportModels \
-ltwoPhaseMixture \
-lspecie \
-lfiniteVolume \
-lmeshTools \
-lfvModels \

View File

@ -4,11 +4,19 @@ cd ${0%/*} || exit 1 # Run from this directory
# Parse arguments for library compilation
. $WM_PROJECT_DIR/wmake/scripts/AllwmakeParseArguments
wmake $targetType twoPhaseMixture
wmake $targetType interfaceProperties
wmake $targetType interfaceCompression
wmake $targetType twoPhaseProperties
wmake $targetType interfaceProperties
wmake $targetType compressibleInterfaceProperties
wmake $targetType twoPhaseMixture
wmake $targetType incompressibleTwoPhaseMixture
wmake $targetType compressibleTwoPhaseMixture
wmake $targetType immiscibleIncompressibleTwoPhaseMixture
wmake $targetType cavitation
wmake $targetType immiscibleCompressibleTwoPhaseMixture
wmake $targetType incompressibleCavitation
wmake $targetType compressibleCavitation
#------------------------------------------------------------------------------

View File

@ -46,10 +46,10 @@ namespace cavitationModels
Foam::compressible::cavitationModels::Kunz::Kunz
(
const dictionary& dict,
const compressibleTwoPhaseMixture& mixture
const compressibleTwoPhases& phases
)
:
cavitationModel(dict, mixture),
cavitationModel(dict, phases),
UInf_("UInf", dimVelocity, dict),
tInf_("tInf", dimTime, dict),
@ -68,17 +68,17 @@ Foam::Pair<Foam::tmp<Foam::volScalarField::Internal>>
Foam::compressible::cavitationModels::Kunz::mDotAlphal() const
{
const volScalarField::Internal& p =
mixture_.alpha1().db().lookupObject<volScalarField>("p");
phases_.mesh().lookupObject<volScalarField>("p");
const volScalarField::Internal mcCoeff_(Cc_*mixture_.rho2()()/tInf_);
const volScalarField::Internal mcCoeff_(Cc_*phases_.rho2()()/tInf_);
const volScalarField::Internal mvCoeff_
(
Cv_*mixture_.rho2()()/(0.5*mixture_.rho1()()*sqr(UInf_)*tInf_)
Cv_*phases_.rho2()()/(0.5*phases_.rho1()()*sqr(UInf_)*tInf_)
);
const volScalarField::Internal limitedAlpha1
(
min(max(mixture_.alpha1()(), scalar(0)), scalar(1))
min(max(phases_.alpha1()(), scalar(0)), scalar(1))
);
return Pair<tmp<volScalarField::Internal>>
@ -95,17 +95,17 @@ Foam::Pair<Foam::tmp<Foam::volScalarField::Internal>>
Foam::compressible::cavitationModels::Kunz::mDotP() const
{
const volScalarField::Internal& p =
mixture_.alpha1().db().lookupObject<volScalarField>("p");
phases_.mesh().lookupObject<volScalarField>("p");
const volScalarField::Internal mcCoeff_(Cc_*mixture_.rho2()()/tInf_);
const volScalarField::Internal mcCoeff_(Cc_*phases_.rho2()()/tInf_);
const volScalarField::Internal mvCoeff_
(
Cv_*mixture_.rho2()()/(0.5*mixture_.rho1()()*sqr(UInf_)*tInf_)
Cv_*phases_.rho2()()/(0.5*phases_.rho1()()*sqr(UInf_)*tInf_)
);
const volScalarField::Internal limitedAlpha1
(
min(max(mixture_.alpha1()(), scalar(0)), scalar(1))
min(max(phases_.alpha1()(), scalar(0)), scalar(1))
);
return Pair<tmp<volScalarField::Internal>>

View File

@ -86,11 +86,11 @@ public:
// Constructors
//- Construct for mixture
//- Construct for phases
Kunz
(
const dictionary& dict,
const compressibleTwoPhaseMixture& mixture
const compressibleTwoPhases& phases
);

View File

@ -4,4 +4,4 @@ Kunz/Kunz.C
Merkle/Merkle.C
SchnerrSauer/SchnerrSauer.C
LIB = $(FOAM_LIBBIN)/libcavitationModels
LIB = $(FOAM_LIBBIN)/libcompressibleCavitationModels

View File

@ -0,0 +1,19 @@
EXE_INC = \
-I$(LIB_SRC)/physicalProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
-I$(LIB_SRC)/twoPhaseModels/twoPhaseMixture/lnInclude \
-I$(LIB_SRC)/twoPhaseModels/compressibleTwoPhaseMixture/lnInclude \
-I$(LIB_SRC)/twoPhaseModels/interfaceProperties/lnInclude \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude
LIB_LIBS = \
-lcompressibleTwoPhaseMixture \
-lfluidThermophysicalModels \
-lspecie \
-lphysicalProperties \
-ltwoPhaseMixture \
-ltwoPhaseProperties \
-linterfaceProperties \
-lfiniteVolume \
-lmeshTools

View File

@ -46,10 +46,10 @@ namespace cavitationModels
Foam::compressible::cavitationModels::Merkle::Merkle
(
const dictionary& dict,
const compressibleTwoPhaseMixture& mixture
const compressibleTwoPhases& phases
)
:
cavitationModel(dict, mixture),
cavitationModel(dict, phases),
UInf_("UInf", dimVelocity, dict),
tInf_("tInf", dimTime, dict),
@ -70,11 +70,11 @@ Foam::Pair<Foam::tmp<Foam::volScalarField::Internal>>
Foam::compressible::cavitationModels::Merkle::mDotAlphal() const
{
const volScalarField::Internal& p =
mixture_.alpha1().db().lookupObject<volScalarField>("p");
phases_.mesh().lookupObject<volScalarField>("p");
const volScalarField::Internal mvCoeff_
(
Cv_*mixture_.rho1()()/(0.5*sqr(UInf_)*tInf_*mixture_.rho2()())
Cv_*phases_.rho1()()/(0.5*sqr(UInf_)*tInf_*phases_.rho2()())
);
return Pair<tmp<volScalarField::Internal>>
@ -89,16 +89,16 @@ Foam::Pair<Foam::tmp<Foam::volScalarField::Internal>>
Foam::compressible::cavitationModels::Merkle::mDotP() const
{
const volScalarField::Internal& p =
mixture_.alpha1().db().lookupObject<volScalarField>("p");
phases_.mesh().lookupObject<volScalarField>("p");
const volScalarField::Internal limitedAlpha1
(
min(max(mixture_.alpha1()(), scalar(0)), scalar(1))
min(max(phases_.alpha1()(), scalar(0)), scalar(1))
);
const volScalarField::Internal mvCoeff_
(
Cv_*mixture_.rho1()()/(0.5*sqr(UInf_)*tInf_*mixture_.rho2()())
Cv_*phases_.rho1()()/(0.5*sqr(UInf_)*tInf_*phases_.rho2()())
);
return Pair<tmp<volScalarField::Internal>>

View File

@ -82,11 +82,11 @@ public:
// Constructors
//- Construct for mixture
//- Construct for phases
Merkle
(
const dictionary& dict,
const compressibleTwoPhaseMixture& mixture
const compressibleTwoPhases& phases
);

View File

@ -52,10 +52,10 @@ namespace cavitationModels
Foam::compressible::cavitationModels::SchnerrSauer::SchnerrSauer
(
const dictionary& dict,
const compressibleTwoPhaseMixture& mixture
const compressibleTwoPhases& phases
)
:
cavitationModel(dict, mixture),
cavitationModel(dict, phases),
n_("n", dimless/dimVolume, dict),
dNuc_("dNuc", dimLength, dict),
@ -101,17 +101,17 @@ Foam::compressible::cavitationModels::SchnerrSauer::pCoeff
{
const volScalarField::Internal limitedAlpha1
(
min(max(mixture_.alpha1()(), scalar(0)), scalar(1))
min(max(phases_.alpha1()(), scalar(0)), scalar(1))
);
const volScalarField::Internal rho
(
limitedAlpha1*mixture_.rho1()()
+ (scalar(1) - limitedAlpha1)*mixture_.rho2()()
limitedAlpha1*phases_.rho1()()
+ (scalar(1) - limitedAlpha1)*phases_.rho2()()
);
return
(3*mixture_.rho1()()*mixture_.rho2()())*sqrt(2/(3*mixture_.rho1()()))
(3*phases_.rho1()()*phases_.rho2()())*sqrt(2/(3*phases_.rho1()()))
*rRb(limitedAlpha1)/(rho*sqrt(mag(p - pSat()) + 0.01*pSat()));
}
@ -120,13 +120,13 @@ Foam::Pair<Foam::tmp<Foam::volScalarField::Internal>>
Foam::compressible::cavitationModels::SchnerrSauer::mDotAlphal() const
{
const volScalarField::Internal& p =
mixture_.alpha1().db().lookupObject<volScalarField>("p");
phases_.mesh().lookupObject<volScalarField>("p");
const volScalarField::Internal pCoeff(this->pCoeff(p));
const volScalarField::Internal limitedAlpha1
(
min(max(mixture_.alpha1()(), scalar(0)), scalar(1))
min(max(phases_.alpha1()(), scalar(0)), scalar(1))
);
return Pair<tmp<volScalarField::Internal>>
@ -142,13 +142,13 @@ Foam::Pair<Foam::tmp<Foam::volScalarField::Internal>>
Foam::compressible::cavitationModels::SchnerrSauer::mDotP() const
{
const volScalarField::Internal& p =
mixture_.alpha1().db().lookupObject<volScalarField>("p");
phases_.mesh().lookupObject<volScalarField>("p");
const volScalarField::Internal pCoeff(this->pCoeff(p));
const volScalarField::Internal limitedAlpha1
(
min(max(mixture_.alpha1()(), scalar(0)), scalar(1))
min(max(phases_.alpha1()(), scalar(0)), scalar(1))
);
const volScalarField::Internal apCoeff(limitedAlpha1*pCoeff);

View File

@ -102,11 +102,11 @@ public:
// Constructors
//- Construct for mixture
//- Construct for phases
SchnerrSauer
(
const dictionary& dict,
const compressibleTwoPhaseMixture& mixture
const compressibleTwoPhases& phases
);

View File

@ -43,10 +43,10 @@ namespace compressible
Foam::compressible::cavitationModel::cavitationModel
(
const dictionary& dict,
const compressibleTwoPhaseMixture& mixture
const compressibleTwoPhases& phases
)
:
mixture_(mixture),
phases_(phases),
pSat_("pSat", dimPressure, dict.lookup("pSat"))
{}

View File

@ -35,7 +35,7 @@ SourceFiles
#ifndef cavitationModel_H
#define cavitationModel_H
#include "compressibleTwoPhaseMixture.H"
#include "compressibleTwoPhases.H"
#include "fvMatricesFwd.H"
#include "Pair.H"
@ -57,7 +57,7 @@ protected:
// Protected data
//- Mixture properties
const compressibleTwoPhaseMixture& mixture_;
const compressibleTwoPhases& phases_;
//- Saturation vapour pressure
dimensionedScalar pSat_;
@ -78,19 +78,19 @@ public:
dictionary,
(
const dictionary& dict,
const compressibleTwoPhaseMixture& mixture
const compressibleTwoPhases& phases
),
(dict, mixture)
(dict, phases)
);
// Constructors
//- Construct for mixture
//- Construct for phases
cavitationModel
(
const dictionary& dict,
const compressibleTwoPhaseMixture& mixture
const compressibleTwoPhases& phases
);
@ -98,7 +98,7 @@ public:
static autoPtr<cavitationModel> New
(
const dictionary& dict,
const compressibleTwoPhaseMixture& mixture
const compressibleTwoPhases& phases
);

View File

@ -31,7 +31,7 @@ Foam::autoPtr<Foam::compressible::cavitationModel>
Foam::compressible::cavitationModel::New
(
const dictionary& dict,
const compressibleTwoPhaseMixture& mixture
const compressibleTwoPhases& phases
)
{
const word modelType(dict.lookup("model"));
@ -53,7 +53,7 @@ Foam::compressible::cavitationModel::New
return autoPtr<cavitationModel>
(
cstrIter()(dict.optionalSubDict(modelType + "Coeffs"), mixture)
cstrIter()(dict.optionalSubDict(modelType + "Coeffs"), phases)
);
}

View File

@ -0,0 +1,3 @@
surfaceTensionModels/liquidProperties/liquidPropertiesSurfaceTension.C
LIB = $(FOAM_LIBBIN)/libcompressibleInterfaceProperties

View File

@ -3,14 +3,15 @@ EXE_INC = \
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/thermophysicalProperties/lnInclude \
-I$(LIB_SRC)/twoPhaseModels/twoPhaseProperties/lnInclude \
-I$(LIB_SRC)/twoPhaseModels/interfaceProperties/lnInclude \
-I$(LIB_SRC)/finiteVolume/lnInclude
LIB_LIBS = \
-ltwoPhaseMixture \
-ltwoPhaseProperties \
-linterfaceProperties \
-lphysicalProperties \
-lfluidThermophysicalModels \
-lspecie \
-lthermophysicalProperties \
-ltwoPhaseProperties \
-linterfaceProperties \
-lfiniteVolume

View File

@ -1,3 +1,4 @@
compressibleTwoPhases.C
compressibleTwoPhaseMixture.C
LIB = $(FOAM_LIBBIN)/libcompressibleTwoPhaseMixture

View File

@ -1,14 +1,13 @@
EXE_INC = \
-I$(LIB_SRC)/physicalProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
-I$(LIB_SRC)/twoPhaseModels/twoPhaseMixture/lnInclude \
-I$(LIB_SRC)/twoPhaseModels/interfaceProperties/lnInclude \
-I$(LIB_SRC)/finiteVolume/lnInclude
LIB_LIBS = \
-lphysicalProperties \
-lfluidThermophysicalModels \
-lspecie \
-lphysicalProperties \
-ltwoPhaseMixture \
-linterfaceProperties \
-lfiniteVolume

View File

@ -37,12 +37,10 @@ namespace Foam
Foam::compressibleTwoPhaseMixture::compressibleTwoPhaseMixture
(
const volVectorField& U,
const surfaceScalarField& phi
const fvMesh& mesh
)
:
twoPhaseMixture(U.mesh()),
interfaceProperties(alpha1(), alpha2(), U, *this),
twoPhaseMixture(mesh),
totalInternalEnergy_
(
@ -54,24 +52,24 @@ Foam::compressibleTwoPhaseMixture::compressibleTwoPhaseMixture
IOobject
(
"p",
U.mesh().time().timeName(),
U.mesh(),
mesh.time().timeName(),
mesh,
IOobject::MUST_READ,
IOobject::AUTO_WRITE
),
U.mesh()
mesh
),
T_
(
IOobject
(
"T",
U.mesh().time().timeName(),
U.mesh(),
mesh.time().timeName(),
mesh,
IOobject::MUST_READ,
IOobject::AUTO_WRITE
),
U.mesh()
mesh
),
thermo1_(nullptr),
thermo2_(nullptr),
@ -80,12 +78,12 @@ Foam::compressibleTwoPhaseMixture::compressibleTwoPhaseMixture
IOobject
(
"rho",
U.mesh().time().timeName(),
U.mesh(),
mesh.time().timeName(),
mesh,
IOobject::NO_READ,
IOobject::AUTO_WRITE
),
U.mesh(),
mesh,
dimensionedScalar("rho", dimDensity, 0)
),
Alpha1_
@ -93,8 +91,8 @@ Foam::compressibleTwoPhaseMixture::compressibleTwoPhaseMixture
IOobject
(
IOobject::groupName("Alpha", phase1Name()),
U.mesh().time().timeName(),
U.mesh()
mesh.time().timeName(),
mesh
),
alpha1(),
calculatedFvPatchScalarField::typeName
@ -104,8 +102,8 @@ Foam::compressibleTwoPhaseMixture::compressibleTwoPhaseMixture
IOobject
(
IOobject::groupName("Alpha", phase2Name()),
U.mesh().time().timeName(),
U.mesh()
mesh.time().timeName(),
mesh
),
alpha2(),
calculatedFvPatchScalarField::typeName
@ -117,8 +115,8 @@ Foam::compressibleTwoPhaseMixture::compressibleTwoPhaseMixture
IOobject
(
IOobject::groupName("T", phase1Name()),
U.mesh().time().timeName(),
U.mesh()
mesh.time().timeName(),
mesh
),
T_,
calculatedFvPatchScalarField::typeName
@ -132,8 +130,8 @@ Foam::compressibleTwoPhaseMixture::compressibleTwoPhaseMixture
IOobject
(
IOobject::groupName("T", phase2Name()),
U.mesh().time().timeName(),
U.mesh()
mesh.time().timeName(),
mesh
),
T_,
calculatedFvPatchScalarField::typeName
@ -145,8 +143,8 @@ Foam::compressibleTwoPhaseMixture::compressibleTwoPhaseMixture
// Avoid any thread-writing problems.
// fileHandler().flush();
thermo1_ = rhoThermo::New(U.mesh(), phase1Name());
thermo2_ = rhoThermo::New(U.mesh(), phase2Name());
thermo1_ = rhoThermo::New(mesh, phase1Name());
thermo2_ = rhoThermo::New(mesh, phase2Name());
// thermo1_->validate(phase1Name(), "e");
// thermo2_->validate(phase2Name(), "e");
@ -183,8 +181,6 @@ void Foam::compressibleTwoPhaseMixture::correct()
rho_ = alphaRho1 + alphaRho2;
Alpha1_ = alphaRho1/rho_;
Alpha2_ = alphaRho2/rho_;
interfaceProperties::correct();
}
@ -214,7 +210,7 @@ bool Foam::compressibleTwoPhaseMixture::read()
totalInternalEnergy_ =
lookupOrDefault<Switch>("totalInternalEnergy", true);
return interfaceProperties::read();
return true;
}
else
{

View File

@ -25,22 +25,19 @@ Class
Foam::compressibleTwoPhaseMixture
Description
Thermophysical properties class for a mixture of two rhoThermo including
interfaceProperties for VoF for use in compressibleInterFoam.
Class to represent a mixture of two rhoThermo-based phases
SourceFiles
compressibleTwoPhaseMixtureI.H
compressibleTwoPhaseMixture.C
compressibleTwoPhaseMixtureIO.C
\*---------------------------------------------------------------------------*/
#ifndef compressibleTwoPhaseMixture_H
#define compressibleTwoPhaseMixture_H
#include "rhoThermo.H"
#include "twoPhaseMixture.H"
#include "interfaceProperties.H"
#include "compressibleTwoPhases.H"
#include "rhoThermo.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -54,7 +51,7 @@ namespace Foam
class compressibleTwoPhaseMixture
:
public twoPhaseMixture,
public interfaceProperties,
virtual public compressibleTwoPhases,
public viscosity
{
// Private Data
@ -93,12 +90,8 @@ public:
// Constructors
//- Construct from components
compressibleTwoPhaseMixture
(
const volVectorField& U,
const surfaceScalarField& phi
);
//- Construct from a mesh
compressibleTwoPhaseMixture(const fvMesh& mesh);
//- Destructor

View File

@ -0,0 +1,35 @@
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Copyright (C) 2022 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
OpenFOAM is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
\*---------------------------------------------------------------------------*/
#include "compressibleTwoPhases.H"
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
namespace Foam
{
defineTypeNameAndDebug(compressibleTwoPhases, 0);
}
// ************************************************************************* //

View File

@ -0,0 +1,96 @@
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Copyright (C) 2022 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
OpenFOAM is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Class
Foam::compressibleTwoPhaseMixture
Description
Interface to two rhoThermo-based phases
SourceFiles
compressibleTwoPhases.C
\*---------------------------------------------------------------------------*/
#ifndef compressibleTwoPhases_H
#define compressibleTwoPhases_H
#include "twoPhases.H"
#include "rhoThermo.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace Foam
{
/*---------------------------------------------------------------------------*\
Class compressibleTwoPhases Declaration
\*---------------------------------------------------------------------------*/
class compressibleTwoPhases
:
virtual public twoPhases
{
public:
//- Runtime type information
TypeName("compressibleTwoPhases");
// Constructors
//- Default construct
compressibleTwoPhases()
{}
//- Destructor
virtual ~compressibleTwoPhases()
{}
// Member Functions
//- Return the thermo for phase 1
virtual const rhoThermo& thermo1() const = 0;
//- Return the thermo for phase 2
virtual const rhoThermo& thermo2() const = 0;
//- Return the density of phase 1
virtual const volScalarField& rho1() const = 0;
//- Return the density of phase 2
virtual const volScalarField& rho2() const = 0;
};
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace Foam
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#endif
// ************************************************************************* //

View File

@ -0,0 +1,3 @@
immiscibleCompressibleTwoPhaseMixture.C
LIB = $(FOAM_LIBBIN)/libimmiscibleCompressibleTwoPhaseMixture

View File

@ -0,0 +1,19 @@
EXE_INC = \
-I$(LIB_SRC)/physicalProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
-I$(LIB_SRC)/twoPhaseModels/twoPhaseProperties/lnInclude \
-I$(LIB_SRC)/twoPhaseModels/interfaceProperties/lnInclude \
-I$(LIB_SRC)/twoPhaseModels/twoPhaseMixture/lnInclude \
-I$(LIB_SRC)/twoPhaseModels/compressibleTwoPhaseMixture/lnInclude \
-I$(LIB_SRC)/finiteVolume/lnInclude
LIB_LIBS = \
-lphysicalProperties \
-lfluidThermophysicalModels \
-lspecie \
-ltwoPhaseProperties \
-linterfaceProperties \
-ltwoPhaseMixture \
-lcompressibleTwoPhaseMixture \
-lfiniteVolume

View File

@ -0,0 +1,55 @@
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Copyright (C) 2022 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
OpenFOAM is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
\*---------------------------------------------------------------------------*/
#include "immiscibleCompressibleTwoPhaseMixture.H"
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
Foam::immiscibleCompressibleTwoPhaseMixture::
immiscibleCompressibleTwoPhaseMixture(const volVectorField& U)
:
compressibleTwoPhaseMixture(U.mesh()),
interfaceProperties(*this, alpha1(), alpha2(), U)
{}
// * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * //
void Foam::immiscibleCompressibleTwoPhaseMixture::correct()
{
compressibleTwoPhaseMixture::correct();
interfaceProperties::correct();
}
bool Foam::immiscibleCompressibleTwoPhaseMixture::read()
{
return
compressibleTwoPhaseMixture::read()
&& interfaceProperties::read();
}
// ************************************************************************* //

View File

@ -0,0 +1,87 @@
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Copyright (C) 2022 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
OpenFOAM is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Class
Foam::immiscibleCompressibleTwoPhaseMixture
Description
Class to represent a mixture of two immiscible rhoThermo-based phases
SourceFiles
immiscibleCompressibleTwoPhaseMixture.C
\*---------------------------------------------------------------------------*/
#ifndef immiscibleCompressibleTwoPhaseMixture_H
#define immiscibleCompressibleTwoPhaseMixture_H
#include "compressibleTwoPhaseMixture.H"
#include "interfaceProperties.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace Foam
{
/*---------------------------------------------------------------------------*\
Class immiscibleCompressibleTwoPhaseMixture Declaration
\*---------------------------------------------------------------------------*/
class immiscibleCompressibleTwoPhaseMixture
:
public compressibleTwoPhaseMixture,
public interfaceProperties
{
public:
// Constructors
//- Construct from the mixture velocity
immiscibleCompressibleTwoPhaseMixture(const volVectorField& U);
//- Destructor
virtual ~immiscibleCompressibleTwoPhaseMixture()
{}
// Member Functions
//- Correct the mixture and interface properties
virtual void correct();
//- Read base phaseProperties dictionary
virtual bool read();
};
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace Foam
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#endif
// ************************************************************************* //

View File

@ -1,14 +1,15 @@
EXE_INC = \
-I$(LIB_SRC)/physicalProperties/lnInclude \
-I$(LIB_SRC)/twoPhaseModels/incompressibleTwoPhaseMixture/lnInclude \
-I$(LIB_SRC)/twoPhaseModels/twoPhaseMixture/lnInclude \
-I$(LIB_SRC)/twoPhaseModels/twoPhaseProperties/lnInclude \
-I$(LIB_SRC)/twoPhaseModels/interfaceProperties/lnInclude \
-I$(LIB_SRC)/twoPhaseModels/twoPhaseMixture/lnInclude \
-I$(LIB_SRC)/twoPhaseModels/incompressibleTwoPhaseMixture/lnInclude \
-I$(LIB_SRC)/finiteVolume/lnInclude
LIB_LIBS = \
-lincompressibleTwoPhaseMixture \
-ltwoPhaseMixture \
-lphysicalProperties \
-linterfaceProperties \
-ltwoPhaseProperties \
-linterfaceProperties \
-ltwoPhaseMixture \
-lincompressibleTwoPhaseMixture \
-lfiniteVolume

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Copyright (C) 2014-2021 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2014-2022 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -28,19 +28,22 @@ License
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
Foam::immiscibleIncompressibleTwoPhaseMixture::
immiscibleIncompressibleTwoPhaseMixture
(
const volVectorField& U,
const surfaceScalarField& phi
)
immiscibleIncompressibleTwoPhaseMixture(const volVectorField& U)
:
incompressibleTwoPhaseMixture(U, phi),
interfaceProperties(alpha1(), alpha2(), U, *this)
incompressibleTwoPhaseMixture(U.mesh()),
interfaceProperties(*this, alpha1(), alpha2(), U)
{}
// * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * //
void Foam::immiscibleIncompressibleTwoPhaseMixture::correct()
{
incompressibleTwoPhaseMixture::correct();
interfaceProperties::correct();
}
bool Foam::immiscibleIncompressibleTwoPhaseMixture::read()
{
return

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Copyright (C) 2014-2021 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2014-2022 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -25,7 +25,7 @@ Class
Foam::immiscibleIncompressibleTwoPhaseMixture
Description
An immiscible incompressible two-phase mixture transport model
Class to represent a mixture of two immiscible constant density phases
SourceFiles
immiscibleIncompressibleTwoPhaseMixture.C
@ -57,12 +57,8 @@ public:
// Constructors
//- Construct from components
immiscibleIncompressibleTwoPhaseMixture
(
const volVectorField& U,
const surfaceScalarField& phi
);
//- Construct from the mixture velocity
immiscibleIncompressibleTwoPhaseMixture(const volVectorField& U);
//- Destructor
@ -72,12 +68,8 @@ public:
// Member Functions
//- Correct the phase and interface properties
virtual void correct()
{
incompressibleTwoPhaseMixture::correct();
interfaceProperties::correct();
}
//- Correct the mixture and interface properties
virtual void correct();
//- Read base phaseProperties dictionary
virtual bool read();

View File

@ -42,10 +42,10 @@ namespace cavitationModels
Foam::cavitationModels::Kunz::Kunz
(
const dictionary& dict,
const immiscibleIncompressibleTwoPhaseMixture& mixture
const incompressibleTwoPhases& phases
)
:
cavitationModel(dict, mixture),
cavitationModel(dict, phases),
UInf_("UInf", dimVelocity, dict),
tInf_("tInf", dimTime, dict),
@ -54,8 +54,8 @@ Foam::cavitationModels::Kunz::Kunz
p0_("0", pSat().dimensions(), 0.0),
mcCoeff_(Cc_*mixture_.rho2()/tInf_),
mvCoeff_(Cv_*mixture_.rho2()/(0.5*mixture_.rho1()*sqr(UInf_)*tInf_))
mcCoeff_(Cc_*phases_.rho2()/tInf_),
mvCoeff_(Cv_*phases_.rho2()/(0.5*phases_.rho1()*sqr(UInf_)*tInf_))
{
correct();
}
@ -67,11 +67,11 @@ Foam::Pair<Foam::tmp<Foam::volScalarField::Internal>>
Foam::cavitationModels::Kunz::mDotAlphal() const
{
const volScalarField::Internal& p =
mixture_.U().db().lookupObject<volScalarField>("p");
phases_.mesh().lookupObject<volScalarField>("p");
const volScalarField::Internal limitedAlpha1
(
min(max(mixture_.alpha1()(), scalar(0)), scalar(1))
min(max(phases_.alpha1()(), scalar(0)), scalar(1))
);
return Pair<tmp<volScalarField::Internal>>
@ -88,11 +88,11 @@ Foam::Pair<Foam::tmp<Foam::volScalarField::Internal>>
Foam::cavitationModels::Kunz::mDotP() const
{
const volScalarField::Internal& p =
mixture_.U().db().lookupObject<volScalarField>("p");
phases_.mesh().lookupObject<volScalarField>("p");
const volScalarField::Internal limitedAlpha1
(
min(max(mixture_.alpha1()(), scalar(0)), scalar(1))
min(max(phases_.alpha1()(), scalar(0)), scalar(1))
);
return Pair<tmp<volScalarField::Internal>>
@ -118,8 +118,8 @@ bool Foam::cavitationModels::Kunz::read(const dictionary& dict)
dict.lookup("Cc") >> Cc_;
dict.lookup("Cv") >> Cv_;
mcCoeff_ = Cc_*mixture_.rho2()/tInf_;
mvCoeff_ = Cv_*mixture_.rho2()/(0.5*mixture_.rho1()*sqr(UInf_)*tInf_);
mcCoeff_ = Cc_*phases_.rho2()/tInf_;
mvCoeff_ = Cv_*phases_.rho2()/(0.5*phases_.rho1()*sqr(UInf_)*tInf_);
return true;
}

View File

@ -87,11 +87,11 @@ public:
// Constructors
//- Construct for mixture
//- Construct for phases
Kunz
(
const dictionary& dict,
const immiscibleIncompressibleTwoPhaseMixture& mixture
const incompressibleTwoPhases& phases
);

View File

@ -0,0 +1,7 @@
cavitationModel/cavitationModel.C
cavitationModel/cavitationModelNew.C
Kunz/Kunz.C
Merkle/Merkle.C
SchnerrSauer/SchnerrSauer.C
LIB = $(FOAM_LIBBIN)/libincompressibleCavitationModels

View File

@ -3,11 +3,10 @@ EXE_INC = \
-I$(LIB_SRC)/twoPhaseModels/twoPhaseMixture/lnInclude \
-I$(LIB_SRC)/twoPhaseModels/interfaceProperties/lnInclude \
-I$(LIB_SRC)/twoPhaseModels/incompressibleTwoPhaseMixture/lnInclude \
-I$(LIB_SRC)/twoPhaseModels/immiscibleIncompressibleTwoPhaseMixture/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \
-I$(LIB_SRC)/finiteVolume/lnInclude
LIB_LIBS = \
-limmiscibleIncompressibleTwoPhaseMixture \
-lincompressibleTwoPhaseMixture \
-lmeshTools \
-lfiniteVolume

View File

@ -42,10 +42,10 @@ namespace cavitationModels
Foam::cavitationModels::Merkle::Merkle
(
const dictionary& dict,
const immiscibleIncompressibleTwoPhaseMixture& mixture
const incompressibleTwoPhases& phases
)
:
cavitationModel(dict, mixture),
cavitationModel(dict, phases),
UInf_("UInf", dimVelocity, dict),
tInf_("tInf", dimTime, dict),
@ -55,7 +55,7 @@ Foam::cavitationModels::Merkle::Merkle
p0_("0", pSat().dimensions(), 0.0),
mcCoeff_(Cc_/(0.5*sqr(UInf_)*tInf_)),
mvCoeff_(Cv_*mixture_.rho1()/(0.5*sqr(UInf_)*tInf_*mixture_.rho2()))
mvCoeff_(Cv_*phases_.rho1()/(0.5*sqr(UInf_)*tInf_*phases_.rho2()))
{
correct();
}
@ -67,7 +67,7 @@ Foam::Pair<Foam::tmp<Foam::volScalarField::Internal>>
Foam::cavitationModels::Merkle::mDotAlphal() const
{
const volScalarField::Internal& p =
mixture_.U().db().lookupObject<volScalarField>("p");
phases_.mesh().lookupObject<volScalarField>("p");
return Pair<tmp<volScalarField::Internal>>
(
@ -81,11 +81,11 @@ Foam::Pair<Foam::tmp<Foam::volScalarField::Internal>>
Foam::cavitationModels::Merkle::mDotP() const
{
const volScalarField::Internal& p =
mixture_.U().db().lookupObject<volScalarField>("p");
phases_.mesh().lookupObject<volScalarField>("p");
const volScalarField::Internal limitedAlpha1
(
min(max(mixture_.alpha1()(), scalar(0)), scalar(1))
min(max(phases_.alpha1()(), scalar(0)), scalar(1))
);
return Pair<tmp<volScalarField::Internal>>
@ -110,7 +110,7 @@ bool Foam::cavitationModels::Merkle::read(const dictionary& dict)
dict.lookup("Cv") >> Cv_;
mcCoeff_ = Cc_/(0.5*sqr(UInf_)*tInf_);
mvCoeff_ = Cv_*mixture_.rho1()/(0.5*sqr(UInf_)*tInf_*mixture_.rho2());
mvCoeff_ = Cv_*phases_.rho1()/(0.5*sqr(UInf_)*tInf_*phases_.rho2());
return true;
}

View File

@ -81,11 +81,11 @@ public:
// Constructors
//- Construct for mixture
//- Construct for phases
Merkle
(
const dictionary& dict,
const immiscibleIncompressibleTwoPhaseMixture& mixture
const incompressibleTwoPhases& phases
);

View File

@ -49,10 +49,10 @@ namespace cavitationModels
Foam::cavitationModels::SchnerrSauer::SchnerrSauer
(
const dictionary& dict,
const immiscibleIncompressibleTwoPhaseMixture& mixture
const incompressibleTwoPhases& phases
)
:
cavitationModel(dict, mixture),
cavitationModel(dict, phases),
n_("n", dimless/dimVolume, dict),
dNuc_("dNuc", dimLength, dict),
@ -98,17 +98,17 @@ Foam::cavitationModels::SchnerrSauer::pCoeff
{
const volScalarField::Internal limitedAlpha1
(
min(max(mixture_.alpha1()(), scalar(0)), scalar(1))
min(max(phases_.alpha1()(), scalar(0)), scalar(1))
);
const volScalarField::Internal rho
(
limitedAlpha1*mixture_.rho1()
+ (scalar(1) - limitedAlpha1)*mixture_.rho2()
limitedAlpha1*phases_.rho1()
+ (scalar(1) - limitedAlpha1)*phases_.rho2()
);
return
(3*mixture_.rho1()*mixture_.rho2())*sqrt(2/(3*mixture_.rho1()))
(3*phases_.rho1()*phases_.rho2())*sqrt(2/(3*phases_.rho1()))
*rRb(limitedAlpha1)/(rho*sqrt(mag(p - pSat()) + 0.01*pSat()));
}
@ -117,13 +117,13 @@ Foam::Pair<Foam::tmp<Foam::volScalarField::Internal>>
Foam::cavitationModels::SchnerrSauer::mDotAlphal() const
{
const volScalarField::Internal& p =
mixture_.U().db().lookupObject<volScalarField>("p");
phases_.mesh().lookupObject<volScalarField>("p");
const volScalarField::Internal pCoeff(this->pCoeff(p));
const volScalarField::Internal limitedAlpha1
(
min(max(mixture_.alpha1()(), scalar(0)), scalar(1))
min(max(phases_.alpha1()(), scalar(0)), scalar(1))
);
return Pair<tmp<volScalarField::Internal>>
@ -139,13 +139,13 @@ Foam::Pair<Foam::tmp<Foam::volScalarField::Internal>>
Foam::cavitationModels::SchnerrSauer::mDotP() const
{
const volScalarField::Internal& p =
mixture_.U().db().lookupObject<volScalarField>("p");
phases_.mesh().lookupObject<volScalarField>("p");
const volScalarField::Internal pCoeff(this->pCoeff(p));
const volScalarField::Internal limitedAlpha1
(
min(max(mixture_.alpha1()(), scalar(0)), scalar(1))
min(max(phases_.alpha1()(), scalar(0)), scalar(1))
);
const volScalarField::Internal apCoeff(limitedAlpha1*pCoeff);

View File

@ -100,11 +100,11 @@ public:
// Constructors
//- Construct for mixture
//- Construct for phases
SchnerrSauer
(
const dictionary& dict,
const immiscibleIncompressibleTwoPhaseMixture& mixture
const incompressibleTwoPhases& phases
);

View File

@ -40,10 +40,10 @@ namespace Foam
Foam::cavitationModel::cavitationModel
(
const dictionary& dict,
const immiscibleIncompressibleTwoPhaseMixture& mixture
const incompressibleTwoPhases& phases
)
:
mixture_(mixture),
phases_(phases),
pSat_("pSat", dimPressure, dict.lookup("pSat"))
{}

View File

@ -35,7 +35,7 @@ SourceFiles
#ifndef cavitationModel_H
#define cavitationModel_H
#include "immiscibleIncompressibleTwoPhaseMixture.H"
#include "incompressibleTwoPhases.H"
#include "fvMatricesFwd.H"
#include "Pair.H"
@ -55,7 +55,7 @@ protected:
// Protected data
//- Mixture properties
const immiscibleIncompressibleTwoPhaseMixture& mixture_;
const incompressibleTwoPhases& phases_;
//- Saturation vapour pressure
dimensionedScalar pSat_;
@ -76,19 +76,19 @@ public:
dictionary,
(
const dictionary& dict,
const immiscibleIncompressibleTwoPhaseMixture& mixture
const incompressibleTwoPhases& phases
),
(dict, mixture)
(dict, phases)
);
// Constructors
//- Construct for mixture
//- Construct for phases
cavitationModel
(
const dictionary& dict,
const immiscibleIncompressibleTwoPhaseMixture& mixture
const incompressibleTwoPhases& phases
);
@ -96,7 +96,7 @@ public:
static autoPtr<cavitationModel> New
(
const dictionary& dict,
const immiscibleIncompressibleTwoPhaseMixture& mixture
const incompressibleTwoPhases& phases
);

View File

@ -30,7 +30,7 @@ License
Foam::autoPtr<Foam::cavitationModel> Foam::cavitationModel::New
(
const dictionary& dict,
const immiscibleIncompressibleTwoPhaseMixture& mixture
const incompressibleTwoPhases& phases
)
{
const word modelType(dict.lookup("model"));
@ -52,7 +52,7 @@ Foam::autoPtr<Foam::cavitationModel> Foam::cavitationModel::New
return autoPtr<cavitationModel>
(
cstrIter()(dict.optionalSubDict(modelType + "Coeffs"), mixture)
cstrIter()(dict.optionalSubDict(modelType + "Coeffs"), phases)
);
}

View File

@ -1,3 +1,4 @@
incompressibleTwoPhases.C
incompressibleTwoPhaseMixture.C
LIB = $(FOAM_LIBBIN)/libincompressibleTwoPhaseMixture

View File

@ -1,9 +1,9 @@
EXE_INC = \
-I$(LIB_SRC)/physicalProperties/lnInclude \
-I$(LIB_SRC)/twoPhaseModels/twoPhaseMixture/lnInclude \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude
-I$(LIB_SRC)/finiteVolume/lnInclude
LIB_LIBS = \
-lphysicalProperties \
-ltwoPhaseMixture \
-lfiniteVolume

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Copyright (C) 2011-2021 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2022 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -39,29 +39,26 @@ namespace Foam
Foam::incompressibleTwoPhaseMixture::incompressibleTwoPhaseMixture
(
const volVectorField& U,
const surfaceScalarField& phi
const fvMesh& mesh
)
:
twoPhaseMixture(U.mesh()),
twoPhaseMixture(mesh),
nuModel1_(viscosityModel::New(U.mesh(), phase1Name())),
nuModel2_(viscosityModel::New(U.mesh(), phase2Name())),
nuModel1_(viscosityModel::New(mesh, phase1Name())),
nuModel2_(viscosityModel::New(mesh, phase2Name())),
rho1_("rho", dimDensity, nuModel1_()),
rho2_("rho", dimDensity, nuModel2_()),
U_(U),
nu_
(
IOobject
(
"nu",
U_.time().timeName(),
U_.db()
mesh.time().timeName(),
mesh
),
U_.mesh(),
mesh,
dimensionedScalar(dimViscosity, 0),
calculatedFvPatchScalarField::typeName
)

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Copyright (C) 2011-2021 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2022 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -25,7 +25,7 @@ Class
Foam::incompressibleTwoPhaseMixture
Description
A two-phase incompressible transportModel
Class to represent a mixture of two constant density phases
SourceFiles
incompressibleTwoPhaseMixture.C
@ -36,6 +36,7 @@ SourceFiles
#define incompressibleTwoPhaseMixture_H
#include "twoPhaseMixture.H"
#include "incompressibleTwoPhases.H"
#include "viscosityModel.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -50,18 +51,24 @@ namespace Foam
class incompressibleTwoPhaseMixture
:
public twoPhaseMixture,
virtual public incompressibleTwoPhases,
public viscosity
{
// Private Data
//- Viscosity model for phase 1
autoPtr<viscosityModel> nuModel1_;
//- Viscosity model for phase 2
autoPtr<viscosityModel> nuModel2_;
//- Constant density of phase 1
dimensionedScalar rho1_;
//- Constant density of phase 2
dimensionedScalar rho2_;
const volVectorField& U_;
//- Mixture viscosity
volScalarField nu_;
@ -72,12 +79,8 @@ public:
// Constructors
//- Construct from components
incompressibleTwoPhaseMixture
(
const volVectorField& U,
const surfaceScalarField& phi
);
//- Construct from a mesh
incompressibleTwoPhaseMixture(const fvMesh& mesh);
//- Destructor
@ -111,12 +114,6 @@ public:
return rho2_;
};
//- Return const-access to the mixture velocity
const volVectorField& U() const
{
return U_;
}
//- Return the mixture density
tmp<volScalarField> rho() const;

View File

@ -0,0 +1,35 @@
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Copyright (C) 2022 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
OpenFOAM is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
\*---------------------------------------------------------------------------*/
#include "incompressibleTwoPhases.H"
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
namespace Foam
{
defineTypeNameAndDebug(incompressibleTwoPhases, 0);
}
// ************************************************************************* //

View File

@ -0,0 +1,88 @@
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Copyright (C) 2022 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
OpenFOAM is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Class
Foam::incompressibleTwoPhases
Description
Interface to two constant density phases
SourceFiles
incompressibleTwoPhases.C
\*---------------------------------------------------------------------------*/
#ifndef incompressibleTwoPhases_H
#define incompressibleTwoPhases_H
#include "twoPhases.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace Foam
{
/*---------------------------------------------------------------------------*\
Class incompressibleTwoPhases Declaration
\*---------------------------------------------------------------------------*/
class incompressibleTwoPhases
:
virtual public twoPhases
{
public:
TypeName("incompressibleTwoPhases");
// Constructors
//- Default construct
incompressibleTwoPhases()
{}
//- Destructor
virtual ~incompressibleTwoPhases()
{}
// Member Functions
//- Return const-access to phase1 density
virtual const dimensionedScalar& rho1() const = 0;
//- Return const-access to phase2 density
virtual const dimensionedScalar& rho2() const = 0;
};
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace Foam
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#endif
// ************************************************************************* //

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Copyright (C) 2020 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2020-2022 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Copyright (C) 2020 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2020-2022 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Copyright (C) 2020 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2020-2022 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Copyright (C) 2020 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2020-2022 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Copyright (C) 2020 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2020-2022 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Copyright (C) 2020-2021 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2020-2022 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Copyright (C) 2020-2021 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2020-2022 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License

Some files were not shown because too many files have changed in this diff Show More