phaseSystem.H
Go to the documentation of this file.
1 /*---------------------------------------------------------------------------*\
2  ========= |
3  \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4  \\ / O peration |
5  \\ / A nd | www.openfoam.com
6  \\/ M anipulation |
7 -------------------------------------------------------------------------------
8  Copyright (C) 2017 OpenCFD Ltd.
9 -------------------------------------------------------------------------------
10 License
11  This file is part of OpenFOAM.
12 
13  OpenFOAM is free software: you can redistribute it and/or modify it
14  under the terms of the GNU General Public License as published by
15  the Free Software Foundation, either version 3 of the License, or
16  (at your option) any later version.
17 
18  OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
19  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
20  FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
21  for more details.
22 
23  You should have received a copy of the GNU General Public License
24  along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
25 
26 Class
27  Foam::phaseSystem
28 
29 Description
30 
31 SourceFiles
32  phaseSystem.C
33 
34 \*---------------------------------------------------------------------------*/
35 
36 #ifndef phaseSystem_H
37 #define phaseSystem_H
38 
39 #include "basicThermo.H"
40 
41 #include "phaseModel.H"
42 #include "phasePair.H"
43 #include "orderedPhasePair.H"
44 
45 #include "volFields.H"
46 #include "surfaceFields.H"
47 #include "fvMatricesFwd.H"
49 #include "localMin.H"
50 
51 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
52 
53 namespace Foam
54 {
55 
56 class surfaceTensionModel;
57 class porousModel;
58 
59 /*---------------------------------------------------------------------------*\
60  Class phaseSystem Declaration
61 \*---------------------------------------------------------------------------*/
62 
63 class phaseSystem
64 :
65  public basicThermo,
66  public compressibleTransportModel
67 {
68 public:
69 
70  // Public typedefs
71 
72  typedef
73  HashTable
74  <
75  autoPtr<phasePair>, phasePairKey, phasePairKey::hash
76  >
78 
79 
81 
82 
83 protected:
84 
85  // Protected typedefs
86 
87  typedef
89 
90 
91  typedef
92  HashTable
93  <
97  >
99 
100 
101  typedef
102  HashTable
103  <
105  phasePairKey,
107  >
109 
110 
111 
112  // Protected data
113 
114  //- Reference to the mesh
115  const fvMesh& mesh_;
116 
117  //- Phase names
119 
120  //- Mixture total volumetric flux
122 
123  //- Mixture total mass flux
125 
126  //- Phase models
128 
129  //- Phase pairs
131 
132  //- Total ordered phase pairs in the system
134 
135  //- Turbulent Prandt number
137 
138 
139  // Sub Models
140 
141  //- Surface tension models
143 
144  //- Interface porous models
146 
147 
148  // Protected member functions
149 
150 
151  //- Generate the phases
153  (
154  const wordList& names
155  ) const;
156 
157  //- Generate the mixture flux
159  (
160  const HashTable<autoPtr<phaseModel>>& phaseModels
161  ) const;
162 
163  //- Generate pairs
164  void generatePairs(const dictTable& modelDicts);
165 
166  //- Generate pair table
167  void generatePairsTable();
168 
169  //- Generate pairs and sub-model tables using pair keys
170  template<class modelType>
171  void createSubModels
172  (
173  const dictTable& modelDicts,
174  HashTable
175  <
177  phasePairKey,
179  >& models
180  );
181 
182  //- Generate pairs and sub-model tables using mesh
183  template<class modelType>
184  void createSubModels
185  (
186  const dictTable& modelDicts,
187  const fvMesh& mesh,
188  HashTable
189  <
191  phasePairKey,
193  >& models
194  );
195 
196  //- Generate pairs and sub-model tables
197  template<class modelType>
199  (
200  const word& modelName,
201  HashTable
202  <
204  phasePairKey,
206  >& models
207  );
208 
209 
210  //- Generate pairs and per-phase sub-model tables with mesh ref
211  template<class modelType>
213  (
214  const word& modelName,
215  const fvMesh& mesh,
216  HashTable
217  <
219  phasePairKey,
221  >& models
222  );
223 
224 
225  //- Generate pairs and per-phase sub-model tables
226  template<class modelType>
228  (
229  const word& modelName,
230  HashTable
231  <
233  phasePairKey,
235  >& models
236  );
237 
238 
239 public:
240 
241  //- Runtime type information
242  TypeName("phaseSystem");
243 
244  //- Default name of the phase properties dictionary
245  static const word phasePropertiesName;
246 
247 
248  // Constructors
249 
250  //- Construct from fvMesh
251  phaseSystem(const fvMesh& mesh);
252 
253 
254  //- Destructor
255  virtual ~phaseSystem();
256 
257 
258  // Energy related thermo functionaliy functions
259 
260  //- Return access to the inernal energy field [J/Kg]
261  // NOTE: this mixture thermo is prepared to to work with T
262  virtual volScalarField& he()
263  {
265  return const_cast<volScalarField&>(volScalarField::null());
266  }
267 
268  //- Return access to the inernal energy field [J/Kg]
269  // NOTE: this mixture thermo is prepared to to work with T
270  virtual const volScalarField& he() const
271  {
273  return volScalarField::null();
274  }
275 
276  //- Enthalpy/Internal energy
277  // for given pressure and temperature [J/kg]
278  virtual tmp<volScalarField> he
279  (
280  const volScalarField& p,
281  const volScalarField& T
282  ) const;
283 
284  //- Enthalpy/Internal energy for cell-set [J/kg]
285  virtual tmp<scalarField> he
286  (
287  const scalarField& p,
288  const scalarField& T,
289  const labelList& cells
290  ) const;
291 
292  //- Enthalpy/Internal energy for patch [J/kg]
293  virtual tmp<scalarField> he
294  (
295  const scalarField& p,
296  const scalarField& T,
297  const label patchi
298  ) const;
299 
300  //- Chemical enthalpy of the mixture [J/kg]
301  virtual tmp<volScalarField> hc() const;
302 
303  //- Temperature from enthalpy/internal energy for cell-set
304  virtual tmp<scalarField> THE
305  (
306  const scalarField& h,
307  const scalarField& p,
308  const scalarField& T0,
309  const labelList& cells
310  ) const;
311 
312  //- Temperature from enthalpy/internal energy for patch
313  virtual tmp<scalarField> THE
314  (
315  const scalarField& h,
316  const scalarField& p,
317  const scalarField& T0,
318  const label patchi
319  ) const;
320 
321 
322  // Thermo
323 
324  //- Return the mixture density
325  virtual tmp<volScalarField> rho() const;
326 
327  //- Return the mixture density on a patch
328  virtual tmp<scalarField> rho(const label patchi) const;
329 
330  //- Return Cp of the mixture
331  virtual tmp<volScalarField> Cp() const;
332 
333  //- Heat capacity at constant pressure for patch [J/kg/K]
334  virtual tmp<scalarField> Cp
335  (
336  const scalarField& p,
337  const scalarField& T,
338  const label patchi
339  ) const;
340 
341  //- Return Cv of the mixture
342  virtual tmp<volScalarField> Cv() const;
343 
344  //- Heat capacity at constant volume for patch [J/kg/K]
345  virtual tmp<scalarField> Cv
346  (
347  const scalarField& p,
348  const scalarField& T,
349  const label patchI
350  ) const;
351 
352  //- Gamma = Cp/Cv []
353  virtual tmp<volScalarField> gamma() const;
354 
355  //- Gamma = Cp/Cv for patch []
356  virtual tmp<scalarField> gamma
357  (
358  const scalarField& p,
359  const scalarField& T,
360  const label patchi
361  ) const;
362 
363  //- Heat capacity at constant pressure/volume [J/kg/K]
364  virtual tmp<volScalarField> Cpv() const;
365 
366  //- Heat capacity at constant pressure/volume for patch [J/kg/K]
367  virtual tmp<scalarField> Cpv
368  (
369  const scalarField& p,
370  const scalarField& T,
371  const label patchi
372  ) const;
373 
374  //- Heat capacity ratio []
375  virtual tmp<volScalarField> CpByCpv() const;
376 
377  //- Heat capacity ratio for patch []
378  virtual tmp<scalarField> CpByCpv
379  (
380  const scalarField& p,
381  const scalarField& T,
382  const label patchi
383  ) const;
384 
385  //- Molecular weight [kg/kmol] of the mixture
386  virtual tmp<volScalarField> W() const;
387 
388 
389  // Transport
390 
391  //- Thermal diffusivity for temperature of mixture [J/m/s/K]
392  virtual tmp<volScalarField> kappa() const;
393 
394  //- Thermal diffusivity for temperature
395  // of mixture for patch [J/m/s/K]
396  virtual tmp<scalarField> kappa
397  (
398  const label patchi
399  ) const;
400 
401  //- Thermal diffusivity for energy of mixture [kg/m/s]
402  virtual tmp<volScalarField> alphahe() const;
403 
404  //- Thermal diffusivity for energy of mixture for patch [kg/m/s]
405  virtual tmp<scalarField> alphahe(const label patchi) const;
406 
407  //- Effective thermal diffusivity for temperature
408  // of mixture [J/m/s/K]
410  (
411  const volScalarField& kappat
412  ) const;
413 
414  //- Effective thermal diffusivity for temperature
415  // of mixture for patch [J/m/s/K]
416  virtual tmp<scalarField> kappaEff
417  (
418  const scalarField& alphat,
419  const label patchi
420  ) const;
421 
422  //- Effective thermal diffusivity of mixture [kg/m/s]
424  (
425  const volScalarField& alphat
426  ) const;
427 
428  //- Effective thermal diffusivity of mixture for patch [kg/m/s]
429  virtual tmp<scalarField> alphaEff
430  (
431  const scalarField& alphat,
432  const label patchi
433  ) const;
434 
435  //- Return Prandt number
436  const dimensionedScalar& Prt() const;
437 
438 
439  // Access to transport state variables
440 
441  //- Dynamic viscosity of mixture [kg/m/s]
442  virtual tmp<volScalarField> mu() const;
443 
444  //- Dynamic viscosity of mixture for patch [kg/m/s]
445  virtual tmp<scalarField> mu(const label patchi) const;
446 
447  //- Kinematic viscosity of mixture [m^2/s]
448  virtual tmp<volScalarField> nu() const;
449 
450  //- Kinematic viscosity of mixture for patch [m^2/s]
451  virtual tmp<scalarField> nu(const label patchi) const;
452 
453 
454  // Phase fluxes
455 
456  //- Constant access to the total flux
457  const surfaceScalarField& phi() const;
458 
459  //- Access to the total mixture flux
461 
462  //- Constant access to the mixture mass flux
463  const surfaceScalarField& rhoPhi() const;
464 
465  //- Access to the total mixture mass flux
467 
468  //- Mixture U
469  tmp<volVectorField> U() const;
470 
471 
472  // Surface tension
473 
474  //- Calculate surface tension of the mixture
476 
477  //- Return the surface tension coefficient
479  (
480  const phasePairKey& key
481  ) const;
482 
483 
484  //- Return coefficients (1/rho)
485  virtual tmp<volScalarField> coeffs(const word& key) const;
486 
487 
488  // Interface porous between solid/fluid phases
489 
490  //- Add interface porosity on phasePair
492 
493 
494  // Inter-Phase mass and heat transfe
495 
496  //- Return interfacial source mass rate per phase pair
497  virtual tmp<volScalarField> dmdt(const phasePairKey& key) const = 0;
498 
499  //- Return the heat transfer matrices
501  (
502  const volScalarField& T
503  ) = 0;
504 
505  //- Calculate mass transfer
506  //virtual void massTransfer(const volScalarField& T) = 0;
507 
508  //- Calculate mass transfer for species
509  virtual void massSpeciesTransfer
510  (
511  const phaseModel& phase,
514  const word speciesName
515  ) = 0;
516 
517 
518  // Solve phases and correct models
519 
520  //- Solve for the phase transport equations
521  virtual void solve() = 0;
522 
523  //- Correct the mixture thermos
524  virtual void correct();
525 
526  //- Return the name of the thermo physics
527  virtual word thermoName() const
528  {
530  return word();
531  }
532 
533  //- Correct the turbulence
534  // (NOTE: Each phase could help its own turbulence)
535  virtual void correctTurbulence();
536 
537  //- Read base phaseProperties dictionary
538  virtual bool read();
539 
540 
541  // Access to phases models
542 
543  //- Constant access the total phase pairs
544  const phasePairTable& totalPhasePairs() const;
545 
546  //- Non-constant access the total phase pairs
548 
549  //- Constant access the phases
550  const phaseModelTable& phases() const;
551 
552  //- Access the phases
554 
555  //- Access a sub model between a phase pair
556  template <class modelType>
557  const modelType& lookupSubModel(const phasePair& key) const;
558 
559  //- Access a sub model between two phases
560  template <class modelType>
561  const modelType& lookupSubModel
562  (
563  const phaseModel& from,
564  const phaseModel& to
565  ) const;
566 
567 
568  // Query phase thermo information
569 
570  //- Return true if the equation of state is incompressible for all
571  // phases
572  virtual bool incompressible() const;
573 
574  //- Return true if a phase is incompressible
575  virtual bool incompressible(const word) const;
576 
577  //- Return true if the equation of state is isochoric for all phasses
578  // i.e. rho = const
579  virtual bool isochoric() const;
580 
581  //- Return mesh
582  const fvMesh& mesh() const;
583 
584 
585  // Help functions for the interfaces
586 
587  //- Interface normal surface vector
589  (
590  const volScalarField& alpha1,
591  const volScalarField& alpha2
592  ) const;
593 
594 
595  //- Interface normal volume vector
597  (
598  const volScalarField& alpha1,
599  const volScalarField& alpha2
600  ) const;
601 
602 
603  //- Interface curvature
605  (
606  const volScalarField& alpha1,
607  const volScalarField& alpha2
608  ) const;
609 
610 
611  //- Near Interface of alpha1 and alpha2
613  (
614  const volScalarField& alpha1,
615  const volScalarField& alpha2
616  ) const;
617 
618  //- Near Interface of alpha'n
620 };
621 
622 
623 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
624 
625 } // End namespace Foam
626 
627 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
628 
629 #ifdef NoRepository
630 # include "phaseSystemTemplates.H"
631 #endif
632 
633 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
634 
635 #endif
636 
637 // ************************************************************************* //
Foam::phaseSystem::phaseModels_
phaseModelList phaseModels_
Phase models.
Definition: phaseSystem.H:129
Foam::labelList
List< label > labelList
A List of labels.
Definition: List.H:74
volFields.H
Foam::phaseModel
Single incompressible phase derived from the phase-fraction. Used as part of the multiPhaseMixture fo...
Definition: phaseModel.H:57
Foam::scalarField
Field< scalar > scalarField
Specialisation of Field<T> for scalar.
Definition: primitiveFieldsFwd.H:52
Foam::phasePair
Description for mass transfer between a pair of phases. The direction of the mass transfer is from th...
Definition: phasePair.H:51
p
volScalarField & p
Definition: createFieldRefs.H:8
Foam::phaseSystem::generatePhaseModels
HashTable< autoPtr< phaseModel > > generatePhaseModels(const wordList &names) const
Generate the phases.
basicThermo.H
Foam::phaseSystem::phasePairTable
HashTable< autoPtr< phasePair >, phasePairKey, phasePairKey::hash > phasePairTable
Definition: phaseSystem.H:89
Foam::phaseSystem::interfacePorousModelTable_
interfacePorousModelTable interfacePorousModelTable_
Interface porous models.
Definition: phaseSystem.H:144
Foam::word
A class for handling words, derived from Foam::string.
Definition: word.H:62
Foam::phaseSystem::alphaEff
virtual tmp< volScalarField > alphaEff(const volScalarField &alphat) const
Effective thermal diffusivity of mixture [kg/m/s].
Foam::phaseSystem::nHatfv
tmp< surfaceVectorField > nHatfv(const volScalarField &alpha1, const volScalarField &alpha2) const
Interface normal surface vector.
Foam::phaseSystem::surfaceTensionModels_
surfaceTensionModelTable surfaceTensionModels_
Surface tension models.
Definition: phaseSystem.H:162
Foam::phase
Single incompressible phase derived from the phase-fraction. Used as part of the multiPhaseMixture fo...
Definition: phase.H:54
Foam::tmp
A class for managing temporary objects.
Definition: PtrList.H:59
Foam::phaseSystem::solve
virtual void solve()
Solve for the phase fractions.
Definition: phaseSystem.C:359
Foam::phaseSystem::phasePairTable
HashTable< autoPtr< phasePair >, phasePairKey, phasePairKey::hash > phasePairTable
Definition: phaseSystem.H:76
Foam::phasePairKey::hash
Ordered or unordered hashing of word pair.
Definition: phasePairKey.H:65
Foam::phaseSystem::CpByCpv
virtual tmp< volScalarField > CpByCpv() const
Heat capacity ratio [].
alpha2
const volScalarField & alpha2
Definition: setRegionFluidFields.H:9
Foam::phaseSystem::surfaceTensionForce
tmp< surfaceScalarField > surfaceTensionForce() const
Calculate surface tension of the mixture.
Foam::phaseSystem::coeffs
virtual tmp< volScalarField > coeffs(const word &key) const
Return coefficients (1/rho)
Foam::phaseSystem::rhoPhi
const surfaceScalarField & rhoPhi() const
Constant access to the mixture mass flux.
Sp
zeroField Sp
Definition: alphaSuSp.H:2
Foam::phaseSystem::phaseSystem
phaseSystem(const fvMesh &mesh)
Construct from fvMesh.
Definition: phaseSystem.C:128
Foam::phaseSystem::createSubModels
void createSubModels(const dictTable &modelDicts, HashTable< autoPtr< modelType >, phasePairKey, phasePairKey::hash > &models)
Generate pairs and sub-model tables.
Definition: phaseSystemTemplates.C:34
Foam::phaseSystem::phi
const surfaceScalarField & phi() const
Return the mixture flux.
Definition: phaseSystemI.H:113
fvMatricesFwd.H
Forward declarations of fvMatrix specializations.
surfaceFields.H
Foam::surfaceFields.
Foam::phaseSystem::U
tmp< volVectorField > U() const
Return the mixture velocity.
Definition: phaseSystem.C:270
Foam::phaseSystem::lookupSubModel
const modelType & lookupSubModel(const phasePair &key) const
Return a sub model between a phase pair.
Definition: phaseSystemTemplates.C:414
phaseSystemTemplates.H
Foam::phaseSystem::generatePairsTable
void generatePairsTable()
Generate pair table.
alpha1
const volScalarField & alpha1
Definition: setRegionFluidFields.H:8
Foam::phaseSystem::~phaseSystem
virtual ~phaseSystem()
Destructor.
Definition: phaseSystem.C:236
Foam::phaseSystem::mu
virtual tmp< volScalarField > mu() const
Dynamic viscosity of mixture [kg/m/s].
Foam::phaseSystem::dictTable
HashTable< dictionary, phasePairKey, phasePairKey::hash > dictTable
Definition: phaseSystem.H:87
Foam::phaseSystem::isochoric
virtual bool isochoric() const
Return true if the equation of state is isochoric for all phasses.
h
volScalarField & h
Planck constant.
Definition: setRegionSolidFields.H:33
Foam::phaseSystem::he
virtual volScalarField & he()
Return access to the inernal energy field [J/Kg].
Definition: phaseSystem.H:261
Foam::phaseSystem::nHatf
tmp< surfaceScalarField > nHatf(const volScalarField &alpha1, const volScalarField &alpha2) const
Interface normal volume vector.
Su
zeroField Su
Definition: alphaSuSp.H:1
Foam::phaseSystem::nu
virtual tmp< volScalarField > nu() const
Kinematic viscosity of mixture [m^2/s].
NotImplemented
#define NotImplemented
Issue a FatalErrorIn for a function not currently implemented.
Definition: error.H:419
Foam::phaseSystem::totalPhasePairs
const phasePairTable & totalPhasePairs() const
Constant access the total phase pairs.
Foam::phaseSystem::kappaEff
virtual tmp< volScalarField > kappaEff(const volScalarField &kappat) const
Effective thermal diffusivity for temperature.
Foam::fvVectorMatrix
fvMatrix< vector > fvVectorMatrix
Definition: fvMatricesFwd.H:47
Foam::label
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:62
Foam::phaseSystem::phi_
surfaceScalarField phi_
Total volumetric flux.
Definition: phaseSystem.H:147
Foam::Field< scalar >
Foam::phaseSystem::THE
virtual tmp< scalarField > THE(const scalarField &h, const scalarField &p, const scalarField &T0, const labelList &cells) const
Temperature from enthalpy/internal energy for cell-set.
Foam::phaseSystem::Cv
virtual tmp< volScalarField > Cv() const
Return Cv of the mixture.
Foam::phaseSystem::generatePairsAndSubModels
void generatePairsAndSubModels(const word &modelName, HashTable< autoPtr< modelType >, phasePairKey, phasePairKey::hash > &models)
Generate pairs and sub-model tables.
Definition: phaseSystemTemplates.C:63
Foam::GeometricField< scalar, fvPatchField, volMesh >::Internal
DimensionedField< scalar, volMesh > Internal
Type of the internal field from which this GeometricField is derived.
Definition: GeometricField.H:107
Foam::phaseSystem::heatTransfer
virtual autoPtr< heatTransferTable > heatTransfer() const =0
Return the heat transfer matrices.
Foam::T
void T(FieldField< Field, Type > &f1, const FieldField< Field, Type > &f2)
Definition: FieldFieldFunctions.C:58
Foam::phaseSystem::totalPhasePairs_
phasePairTable totalPhasePairs_
Total ordered phase pairs in the system.
Definition: phaseSystem.H:132
Foam::phaseSystem::correct
virtual void correct()
Correct the fluid properties other than those listed below.
Definition: phaseSystem.C:363
Foam::phaseSystem::mesh_
const fvMesh & mesh_
Reference to the mesh.
Definition: phaseSystem.H:126
Foam::dimensionedScalar
dimensioned< scalar > dimensionedScalar
Dimensioned scalar obtained from generic dimensioned type.
Definition: dimensionedScalarFwd.H:43
Foam::phaseSystem::W
virtual tmp< volScalarField > W() const
Molecular weight [kg/kmol] of the mixture.
Foam::volScalarField
GeometricField< scalar, fvPatchField, volMesh > volScalarField
Definition: volFieldsFwd.H:57
Foam::phasePairKey
Definition: phasePairKey.H:59
Foam::phaseSystem::thermoName
virtual word thermoName() const
Return the name of the thermo physics.
Definition: phaseSystem.H:526
Foam::phaseSystem::Prt
const dimensionedScalar & Prt() const
Return Prandt number.
Foam::phaseSystem::surfaceTensionModelTable
HashTable< autoPtr< surfaceTensionModel >, phasePairKey, phasePairKey::hash > surfaceTensionModelTable
Definition: phaseSystem.H:97
Foam::phaseSystem::hc
virtual tmp< volScalarField > hc() const
Chemical enthalpy of the mixture [J/kg].
Foam::dimensioned< scalar >
Foam::phaseSystem::generatePhi
tmp< surfaceScalarField > generatePhi(const HashTable< autoPtr< phaseModel >> &phaseModels) const
Generate the mixture flux.
Foam::phaseSystem::dmdt
virtual tmp< volScalarField > dmdt(const phasePairKey &key) const
Return the mass transfer rate for a pair.
Definition: phaseSystem.C:338
Foam::phaseSystem::Cpv
virtual tmp< volScalarField > Cpv() const
Heat capacity at constant pressure/volume [J/kg/K].
Foam::fvMesh
Mesh data needed to do the Finite Volume discretisation.
Definition: fvMesh.H:84
Foam::phaseSystem::rhoPhi_
surfaceScalarField rhoPhi_
Mixture total mass flux.
Definition: phaseSystem.H:123
Foam
Namespace for OpenFOAM.
Definition: atmBoundaryLayer.C:33
Foam::phaseSystem::phaseNames_
wordList phaseNames_
Phase names.
Definition: phaseSystem.H:117
Foam::phaseSystem::mesh
const fvMesh & mesh() const
Return the mesh.
Definition: phaseSystemI.H:30
Foam::phaseSystem::interfacePorousModelTable
HashTable< autoPtr< porousModel >, phasePairKey, phasePairKey::hash > interfacePorousModelTable
Definition: phaseSystem.H:107
Foam::phaseSystem::phasePropertiesName
static const word phasePropertiesName
Default name of the phase properties dictionary.
Definition: phaseSystem.H:244
Foam::HashTable
A HashTable similar to std::unordered_map.
Definition: HashTable.H:105
Foam::phaseSystem::K
tmp< volScalarField > K(const volScalarField &alpha1, const volScalarField &alpha2) const
Interface curvature.
Foam::phaseSystem::Prt_
dimensionedScalar Prt_
Turbulent Prandt number.
Definition: phaseSystem.H:135
Foam::phaseSystem::TypeName
TypeName("phaseSystem")
Runtime type information.
Foam::autoPtr< surfaceTensionModel >
localMin.H
Foam::phaseSystem::correctTurbulence
virtual void correctTurbulence()
Correct the turbulence.
Definition: phaseSystem.C:400
Foam::phaseSystem::phaseModels_
phaseModelTable phaseModels_
Phase models.
Definition: phaseSystem.H:126
Foam::phaseSystem::Cp
virtual tmp< volScalarField > Cp() const
Return Cp of the mixture.
Foam::phaseSystem::gamma
virtual tmp< volScalarField > gamma() const
Gamma = Cp/Cv [].
Foam::surfaceScalarField
GeometricField< scalar, fvsPatchField, surfaceMesh > surfaceScalarField
Definition: surfaceFieldsFwd.H:54
Foam::List< word >
Foam::phaseSystem::phaseModelTable
HashTable< autoPtr< phaseModel > > phaseModelTable
Definition: phaseSystem.H:79
compressibleTransportModel.H
Foam::phaseSystem::surfaceTensionCoeff
virtual tmp< volScalarField > surfaceTensionCoeff(const phasePairKey &key) const
Return the surface tension coefficient.
Foam::phaseSystem::addInterfacePorosity
void addInterfacePorosity(fvVectorMatrix &UEqn)
Add interface porosity on phasePair.
Foam::fvMatrix
A special matrix type and solver, designed for finite volume solutions of scalar equations....
Definition: fvPatchField.H:76
Foam::phaseSystem::massSpeciesTransfer
virtual void massSpeciesTransfer(const phaseModel &phase, volScalarField::Internal &Su, volScalarField::Internal &Sp, const word speciesName)=0
Calculate mass transfer.
Foam::phaseSystem::alphahe
virtual tmp< volScalarField > alphahe() const
Thermal diffusivity for energy of mixture [kg/m/s].
Foam::phaseSystem::nearInterface
tmp< volScalarField > nearInterface() const
Near Interface of alpha'n.
Foam::phaseSystem::phasePairs_
phasePairTable phasePairs_
Phase pairs.
Definition: phaseSystem.H:144
UEqn
fvVectorMatrix & UEqn
Definition: UEqn.H:13
Foam::phaseSystem::phases
const phaseModelList & phases() const
Return the phase models.
Definition: phaseSystemI.H:37
cells
const cellShapeList & cells
Definition: gmvOutputHeader.H:3
Foam::GeometricField< scalar, fvPatchField, volMesh >::null
static const GeometricField< scalar, fvPatchField, volMesh > & null()
Return a null geometric field.
Definition: GeometricFieldI.H:32
Foam::phaseSystem::kappa
virtual tmp< volScalarField > kappa() const
Thermal diffusivity for temperature of mixture [J/m/s/K].
Foam::GeometricField< scalar, fvsPatchField, surfaceMesh >
Foam::phaseSystem::rho
tmp< volScalarField > rho() const
Return the mixture density.
Definition: phaseSystem.C:242
T0
scalar T0
Definition: createFields.H:22
Foam::phaseSystem::incompressible
virtual bool incompressible() const
Return true if the equation of state is incompressible for all.
Foam::phaseSystem::read
virtual bool read()
Read base phaseProperties dictionary.
Definition: phaseSystem.C:418
Foam::DimensionedField
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
Definition: DimensionedField.H:54
Foam::phaseSystem::generatePairs
void generatePairs(const dictTable &modelDicts)
Generate pairs.
Definition: phaseSystem.C:76