nonRandomTwoLiquid.H
Go to the documentation of this file.
1 /*---------------------------------------------------------------------------*\
2  ========= |
3  \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4  \\ / O peration | Website: https://openfoam.org
5  \\ / A nd | Copyright (C) 2015-2020 OpenFOAM Foundation
6  \\/ M anipulation |
7 -------------------------------------------------------------------------------
8 License
9  This file is part of OpenFOAM.
10 
11  OpenFOAM is free software: you can redistribute it and/or modify it
12  under the terms of the GNU General Public License as published by
13  the Free Software Foundation, either version 3 of the License, or
14  (at your option) any later version.
15 
16  OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
17  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
18  FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
19  for more details.
20 
21  You should have received a copy of the GNU General Public License
22  along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
23 
24 Class
25  Foam::interfaceCompositionModels::nonRandomTwoLiquid
26 
27 Description
28  Non ideal law for the mixing of two species. A separate composition model
29  is given for each species. The composition of a species is equal to the
30  value given by the model, scaled by the species fraction in the bulk of the
31  other phase, and multiplied by the activity coefficient for that species.
32  The gas behaviour is assumed ideal; i.e. the fugacity coefficient is taken
33  as equal to 1.
34 
35 SourceFiles
36  nonRandomTwoLiquid.C
37 
38 \*---------------------------------------------------------------------------*/
39 
40 #ifndef nonRandomTwoLiquid_H
41 #define nonRandomTwoLiquid_H
42 
44 #include "saturationModel.H"
45 
46 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
47 
48 namespace Foam
49 {
50 
51 class phasePair;
52 
53 namespace interfaceCompositionModels
54 {
55 
56 /*---------------------------------------------------------------------------*\
57  Class nonRandomTwoLiquid Declaration
58 \*---------------------------------------------------------------------------*/
59 
61 :
63 {
64  // Private Data
65 
66  //- Activity coefficient for species 1
67  volScalarField gamma1_;
68 
69  //- Activity coefficient for species 2
70  volScalarField gamma2_;
71 
72  //- Name of species 1
73  word species1Name_;
74 
75  //- Name of species 2
76  word species2Name_;
77 
78  //- Index of species 1 within this thermo
79  label species1Index_;
80 
81  //- Index of species 2 within this thermo
82  label species2Index_;
83 
84  //- Non-randomness constant parameter for species 1
85  dimensionedScalar alpha12_;
86 
87  //- Non-randomness constant parameter for species 2
88  dimensionedScalar alpha21_;
89 
90  //- Non-randomness linear parameter for species 1
91  dimensionedScalar beta12_;
92 
93  //- Non-randomness linear parameter for species 2
94  dimensionedScalar beta21_;
95 
96  //- Interaction parameter model for species 1
97  autoPtr<saturationModel> saturationModel12_;
98 
99  //- Interaction parameter model for species 2
100  autoPtr<saturationModel> saturationModel21_;
101 
102  //- Composition model for species 1
103  autoPtr<interfaceCompositionModel> speciesModel1_;
104 
105  //- Composition model for species 2
106  autoPtr<interfaceCompositionModel> speciesModel2_;
107 
108 
109 public:
110 
111  //- Runtime type information
112  TypeName("nonRandomTwoLiquid");
113 
114  // Constructors
115 
116  //- Construct from components
118  (
119  const dictionary& dict,
120  const phasePair& pair
121  );
122 
123 
124  //- Destructor
125  virtual ~nonRandomTwoLiquid();
126 
127 
128  // Member Functions
129 
130  //- Update the composition
131  virtual void update(const volScalarField& Tf);
132 
133  //- The interface species fraction
134  virtual tmp<volScalarField> Yf
135  (
136  const word& speciesName,
137  const volScalarField& Tf
138  ) const;
139 
140  //- The interface species fraction derivative w.r.t. temperature
142  (
143  const word& speciesName,
144  const volScalarField& Tf
145  ) const;
146 };
147 
148 
149 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
150 
151 } // End namespace interfaceCompositionModels
152 } // End namespace Foam
153 
154 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
155 
156 #endif
157 
158 // ************************************************************************* //
dictionary dict
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
Definition: label.H:59
A list of keyword definitions, which are a keyword followed by any number of values (e...
Definition: dictionary.H:158
Non ideal law for the mixing of two species. A separate composition model is given for each species...
virtual tmp< volScalarField > Yf(const word &speciesName, const volScalarField &Tf) const
The interface species fraction.
TypeName("nonRandomTwoLiquid")
Runtime type information.
const phasePair & pair() const
Return the phase pair.
Generic base class for interface composition models. These models describe the composition in phase 1...
virtual tmp< volScalarField > YfPrime(const word &speciesName, const volScalarField &Tf) const
The interface species fraction derivative w.r.t. temperature.
A class for handling words, derived from string.
Definition: word.H:59
nonRandomTwoLiquid(const dictionary &dict, const phasePair &pair)
Construct from components.
virtual void update(const volScalarField &Tf)
Update the composition.
An auto-pointer similar to the STL auto_ptr but with automatic casting to a reference to the type and...
Definition: PtrList.H:52
A class for managing temporary objects.
Definition: PtrList.H:53
Namespace for OpenFOAM.