semiPermeableBaffleMassFractionFvPatchScalarField.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) 2017-2023 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::semiPermeableBaffleMassFractionFvPatchScalarField
26 
27 Description
28  This is a mass-fraction boundary condition for a semi-permeable baffle.
29 
30  This condition models a baffle which is permeable to a some species and
31  impermeable to others. It must be used in conjunction with a
32  specieTransferVelocityFvPatchVectorField velocity condition, and a
33  specieTransferTemperatureFvPatchScalarField temperature condition.
34 
35  The mass flux of a species is calculated as a coefficient multiplied by the
36  difference in a property across the baffle.
37  \f[
38  \phi_{Yi} = c A (\psi_i - \psi_{i,n})
39  \f]
40  where
41  \vartable
42  \phi_{Yi} | Flux of the permeable specie [kg/s]
43  c | Transfer coefficient [kg/m^2/s/<property-dimensions>]
44  A | Patch face area [m^2]
45  \psi_i | Property on the patch [<property-dimensions>]
46  \psi_{i,n} | Property on the neighbour patch [<property-dimensions>]
47  \endvartable
48 
49  A species that the baffle is permeable to will, therefore, have a
50  coefficient greater than zero, whilst a species that does not transfer will
51  have a coefficient equal to zero.
52 
53 Usage
54  \table
55  Property | Description | Req'd? | Default
56  c | Transfer coefficient | no | 0
57  property | Property used to drive the transfer; massFraction, \\
58  moleFraction, molarConcentration, or partialPressure | if c is \\
59  non-zero |
60  phi | Name of the flux field | no | phi
61  U | Name of the velocity field | no | U
62  \endtable
63 
64  Example of the boundary condition specification:
65  \verbatim
66  <patchName>
67  {
68  type semiPermeableBaffleMassFraction;
69  property molarConcentration;
70  c 1e-3;
71  value $internalField;
72  }
73  \endverbatim
74 
75 See also
76  Foam::specieTransferMassFractionFvPatchScalarField
77  Foam::specieTransferVelocityFvPatchVectorField
78  Foam::specieTransferTemperatureFvPatchScalarField
79 
80 SourceFiles
81  semiPermeableBaffleMassFractionFvPatchScalarField.C
82 
83 \*---------------------------------------------------------------------------*/
84 
85 #ifndef semiPermeableBaffleMassFractionFvPatchScalarField_H
86 #define semiPermeableBaffleMassFractionFvPatchScalarField_H
87 
89 
90 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
91 
92 namespace Foam
93 {
94 
95 class basicSpecieMixture;
96 
97 /*---------------------------------------------------------------------------*\
98  Class semiPermeableBaffleMassFractionFvPatchScalarField Declaration
99 \*---------------------------------------------------------------------------*/
100 
101 class semiPermeableBaffleMassFractionFvPatchScalarField
102 :
103  public specieTransferMassFractionFvPatchScalarField
104 {
105 public:
106 
107  //- Runtime type information
108  TypeName("semiPermeableBaffleMassFraction");
109 
110 
111  // Constructors
112 
113  //- Construct from patch, internal field and dictionary
115  (
116  const fvPatch&,
117  const DimensionedField<scalar, volMesh>&,
118  const dictionary&
119  );
120 
121  //- Construct by mapping given fixedValueTypeFvPatchField
122  // onto a new patch
124  (
126  const fvPatch&,
127  const DimensionedField<scalar, volMesh>&,
128  const fvPatchFieldMapper&
129  );
130 
131  //- Disallow copy without setting internal field reference
133  (
135  ) = delete;
136 
137  //- Copy constructor setting internal field reference
139  (
141  const DimensionedField<scalar, volMesh>&
142  );
143 
144  //- Construct and return a clone setting internal field reference
146  (
148  ) const
149  {
151  (
153  (
154  *this,
155  iF
156  )
157  );
158  }
159 
160 
161  // Member Functions
162 
163  // Evaluation functions
164 
165  //- Return the flux of this species through the baffle
166  virtual tmp<scalarField> calcPhiYp() const;
167 
168 
169  //- Write
170  virtual void write(Ostream&) const;
171 };
172 
173 
174 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
175 
176 } // End namespace Foam
177 
178 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
179 
180 
181 #endif
182 
183 // ************************************************************************* //
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
Definition: Ostream.H:57
This is a mass-fraction boundary condition for a semi-permeable baffle.
semiPermeableBaffleMassFractionFvPatchScalarField(const fvPatch &, const DimensionedField< scalar, volMesh > &, const dictionary &)
Construct from patch, internal field and dictionary.
virtual tmp< fvPatchScalarField > clone(const DimensionedField< scalar, volMesh > &iF) const
Construct and return a clone setting internal field reference.
TypeName("semiPermeableBaffleMassFraction")
Runtime type information.
virtual tmp< scalarField > calcPhiYp() const
Return the flux of this species through the baffle.
A class for managing temporary objects.
Definition: tmp.H:55
Namespace for OpenFOAM.