/*---------------------------------------------------------------------------*\ ========= | \\ / F ield | foam-extend: Open Source CFD \\ / O peration | Version: 3.2 \\ / A nd | Web: http://www.foam-extend.org \\/ M anipulation | For copyright notice see file Copyright ------------------------------------------------------------------------------- License This file is part of foam-extend. foam-extend 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. foam-extend 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 foam-extend. If not, see . Class threePhaseMixture Description SourceFiles threePhaseMixture.C \*---------------------------------------------------------------------------*/ #ifndef threePhaseMixture_H #define threePhaseMixture_H #include "incompressible/transportModel/transportModel.H" #include "incompressible/viscosityModels/viscosityModel/viscosityModel.H" #include "dimensionedScalar.H" #include "volFields.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // namespace Foam { /*---------------------------------------------------------------------------*\ Class threePhaseMixture Declaration \*---------------------------------------------------------------------------*/ class threePhaseMixture : public transportModel { // Private data word phase1Name_; word phase2Name_; word phase3Name_; autoPtr nuModel1_; autoPtr nuModel2_; autoPtr nuModel3_; dimensionedScalar rho1_; dimensionedScalar rho2_; dimensionedScalar rho3_; const volVectorField& U_; const surfaceScalarField& phi_; const volScalarField& alpha1_; const volScalarField& alpha2_; const volScalarField& alpha3_; volScalarField nu_; // Private Member Functions //- Calculate and return the laminar viscosity void calcNu(); public: // Constructors //- Construct from components threePhaseMixture ( const volVectorField& U, const surfaceScalarField& phi ); // Destructor ~threePhaseMixture() {} // Member Functions //- Return const-access to phase1 viscosityModel const viscosityModel& nuModel1() const { return nuModel1_(); } //- Return const-access to phase2 viscosityModel const viscosityModel& nuModel2() const { return nuModel2_(); } //- Return const-access to phase3 viscosityModel const viscosityModel& nuModel3() const { return nuModel3_(); } //- Return const-access to phase1 density const dimensionedScalar& rho1() const { return rho1_; } //- Return const-access to phase2 density const dimensionedScalar& rho2() const { return rho2_; }; //- Return const-access to phase3 density const dimensionedScalar& rho3() const { return rho3_; }; const volScalarField& alpha1() const { return alpha1_; } const volScalarField& alpha2() const { return alpha2_; } const volScalarField& alpha3() const { return alpha3_; } //- Return the velocity const volVectorField& U() const { return U_; } //- Return the dynamic laminar viscosity tmp mu() const; //- Return the face-interpolated dynamic laminar viscosity tmp muf() const; //- Return the kinematic laminar viscosity const volScalarField& nu() const { return nu_; } //- Return the face-interpolated dynamic laminar viscosity tmp nuf() const; //- Correct the laminar viscosity void correct() { calcNu(); } //- Read base transportProperties dictionary bool read(); }; // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // } // End namespace Foam // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // #endif // ************************************************************************* //