adsorptionMassFractionFvPatchScalarField.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) 2019-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::adsorptionMassFractionFvPatchScalarField
26 
27 Description
28  This is a mass-fraction boundary condition for an adsorbing wall.
29 
30  This condition models a baffle which adsorbs some species and not others.
31  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  concentration adjacent to the patch.
37  \f[
38  \phi_{Yi} = c A \psi_i
39  \f]
40  where
41  \vartable
42  \phi_{Yi} | Flux of the adsorbing specie [kg/s]
43  c | Transfer coefficient [kg/m^2/s/<property-dimensions>]
44  A | Patch face area [m^2]
45  C_i | Property adjacent to the patch [<property-dimensions>]
46  \endvartable
47 
48  A species that is adsorbed by the patch will, therefore, have a coefficient
49  greater than zero, whilst a species that is not adsorbed will have a
50  coefficient equal to zero.
51 
52 Usage
53  \table
54  Property | Description | Req'd? | Default
55  c | Transfer coefficient | no | 0
56  property | Property used to drive the transfer; massFraction, \\
57  moleFraction, molarConcentration, or partialPressure | if c is \\
58  non-zero |
59  phi | Name of the flux field | no | phi
60  U | Name of the velocity field | no | U
61  \endtable
62 
63  Example of the boundary condition specification:
64  \verbatim
65  <patchName>
66  {
67  type adsorptionMassFraction;
68  property molarConcentration;
69  c 1e-3;
70  value $internalField;
71  }
72  \endverbatim
73 
74 See also
75  Foam::specieTransferMassFractionFvPatchScalarField
76  Foam::specieTransferVelocityFvPatchVectorField
77  Foam::specieTransferTemperatureFvPatchScalarField
78 
79 SourceFiles
80  adsorptionMassFractionFvPatchScalarField.C
81 
82 \*---------------------------------------------------------------------------*/
83 
84 #ifndef adsorptionMassFractionFvPatchScalarField_H
85 #define adsorptionMassFractionFvPatchScalarField_H
86 
88 
89 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
90 
91 namespace Foam
92 {
93 
94 /*---------------------------------------------------------------------------*\
95  Class adsorptionMassFractionFvPatchScalarField Declaration
96 \*---------------------------------------------------------------------------*/
97 
98 class adsorptionMassFractionFvPatchScalarField
99 :
100  public specieTransferMassFractionFvPatchScalarField
101 {
102 public:
103 
104  //- Runtime type information
105  TypeName("adsorptionMassFraction");
106 
107 
108  // Constructors
109 
110  //- Construct from patch, internal field and dictionary
112  (
113  const fvPatch&,
114  const DimensionedField<scalar, volMesh>&,
115  const dictionary&
116  );
117 
118  //- Construct by mapping given fixedValueTypeFvPatchField
119  // onto a new patch
121  (
123  const fvPatch&,
124  const DimensionedField<scalar, volMesh>&,
125  const fieldMapper&
126  );
127 
128 
129  //- Disallow copy without setting internal field reference
131  (
133  ) = delete;
134 
135  //- Copy constructor setting internal field reference
137  (
140  );
141 
142  //- Construct and return a clone setting internal field reference
144  (
146  ) const
147  {
149  (
151  (
152  *this,
153  iF
154  )
155  );
156  }
157 
158 
159  // Member Functions
160 
161  // Evaluation functions
162 
163  //- Return the flux of this species
164  tmp<scalarField> calcPhiYp() const;
165 
166 
167  //- Write
168  virtual void write(Ostream&) const;
169 };
170 
171 
172 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
173 
174 } // End namespace Foam
175 
176 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
177 
178 
179 #endif
180 
181 // ************************************************************************* //
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 an adsorbing wall.
virtual tmp< fvPatchScalarField > clone(const DimensionedField< scalar, volMesh > &iF) const
Construct and return a clone setting internal field reference.
TypeName("adsorptionMassFraction")
Runtime type information.
tmp< scalarField > calcPhiYp() const
Return the flux of this species.
adsorptionMassFractionFvPatchScalarField(const fvPatch &, const DimensionedField< scalar, volMesh > &, const dictionary &)
Construct from patch, internal field and dictionary.
A class for managing temporary objects.
Definition: tmp.H:55
Namespace for OpenFOAM.