interfaceCompressionFvPatchScalarField.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 | Copyright (C) 2017 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::interfaceCompressionFvPatchScalarField
26 
27 Group
28  grpGenericBoundaryConditions
29 
30 Description
31  Applies interface-compression to the phase-fraction distribution at the
32  patch by setting the phase-fraction to 0 if it is below 0.5, otherwise
33  to 1.
34 
35  This approach is useful to avoid unphysical "bleed" of the lighter phase
36  along the surface in regions of high shear adjacent to the surface which
37  is at a shallow angle to the interface.
38 
39 See also
40  Foam::fixedValueFvPatchScalarField
41 
42 SourceFiles
43  interfaceCompressionFvPatchScalarField.C
44 
45 \*---------------------------------------------------------------------------*/
46 
47 #ifndef interfaceCompressionFvPatchScalarField_H
48 #define interfaceCompressionFvPatchScalarField_H
49 
51 
52 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
53 
54 namespace Foam
55 {
56 
57 /*---------------------------------------------------------------------------*\
58  Class interfaceCompressionFvPatchScalarField Declaration
59 \*---------------------------------------------------------------------------*/
60 
62 :
63  public fixedValueFvPatchScalarField
64 {
65 
66 public:
67 
68  //- Runtime type information
69  TypeName("interfaceCompression");
70 
71 
72  // Constructors
73 
74  //- Construct from patch and internal field
76  (
77  const fvPatch&,
79  );
80 
81  //- Construct from patch, internal field and dictionary
83  (
84  const fvPatch&,
86  const dictionary&
87  );
88 
89  //- Construct by mapping given
90  // interfaceCompressionFvPatchScalarField onto a new patch
92  (
94  const fvPatch&,
96  const fvPatchFieldMapper&
97  );
98 
99  //- Construct as copy
101  (
103  );
104 
105  //- Construct and return a clone
106  virtual tmp<fvPatchScalarField> clone() const
107  {
109  (
111  );
112  }
113 
114  //- Construct as copy setting internal field reference
116  (
119  );
120 
121  //- Construct and return a clone setting internal field reference
123  (
125  ) const
126  {
128  (
130  );
131  }
132 
133 
134  // Member functions
135 
136  // Evaluation functions
137 
138  //- Update the coefficients associated with the patch field
139  virtual void updateCoeffs();
140 
141 
142  //- Write
143  virtual void write(Ostream&) const;
144 };
145 
146 
147 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
148 
149 } // End namespace Foam
150 
151 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
152 
153 #endif
154 
155 // ************************************************************************* //
A list of keyword definitions, which are a keyword followed by any number of values (e...
Definition: dictionary.H:137
TypeName("interfaceCompression")
Runtime type information.
virtual tmp< fvPatchScalarField > clone() const
Construct and return a clone.
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
Definition: fvPatch.H:61
Foam::fvPatchFieldMapper.
An Ostream is an abstract base class for all output systems (streams, files, token lists...
Definition: Ostream.H:53
interfaceCompressionFvPatchScalarField(const fvPatch &, const DimensionedField< scalar, volMesh > &)
Construct from patch and internal field.
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
Applies interface-compression to the phase-fraction distribution at the patch by setting the phase-fr...
virtual void updateCoeffs()
Update the coefficients associated with the patch field.
A class for managing temporary objects.
Definition: PtrList.H:53
Namespace for OpenFOAM.