fvcVolumeIntegrate.C
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) 2011-2016 OpenFOAM Foundation
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 \*---------------------------------------------------------------------------*/
27 
28 #include "fvcVolumeIntegrate.H"
29 #include "fvMesh.H"
30 #include "Field.H"
31 
32 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
33 
34 namespace Foam
35 {
36 
37 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
38 
39 namespace fvc
40 {
41 
42 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
43 
44 template<class Type>
45 tmp<Field<Type>>
47 (
49 )
50 {
51  return vf.mesh().V()*vf.primitiveField();
52 }
53 
54 
55 template<class Type>
58 (
60 )
61 {
62  tmp<Field<Type>> tvivf = tvf().mesh().V()*tvf().primitiveField();
63  tvf.clear();
64  return tvivf;
65 }
66 
67 
68 template<class Type>
70 {
71  return df.mesh().V()*df.field();
72 }
73 
74 
75 template<class Type>
78 {
79  tmp<Field<Type>> tdidf = tdf().mesh().V()*tdf().field();
80  tdf.clear();
81  return tdidf;
82 }
83 
84 
85 template<class Type>
88 (
90 )
91 {
92  return dimensioned<Type>
93  (
94  "domainIntegrate(" + vf.name() + ')',
95  dimVol*vf.dimensions(),
97  );
98 }
99 
100 
101 template<class Type>
103 (
105 )
106 {
107  dimensioned<Type> integral = domainIntegrate(tvf());
108  tvf.clear();
109  return integral;
110 }
111 
112 
113 template<class Type>
115 (
117 )
118 {
119  return dimensioned<Type>
120  (
121  "domainIntegrate(" + df.name() + ')',
122  dimVol*df.dimensions(),
124  );
125 }
126 
127 
128 template<class Type>
130 (
132 )
133 {
134  dimensioned<Type> integral = domainIntegrate(tdf());
135  tdf.clear();
136  return integral;
137 }
138 
139 
140 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
141 
142 } // End namespace fvc
143 
144 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
145 
146 } // End namespace Foam
147 
148 // ************************************************************************* //
Foam::tmp::clear
void clear() const noexcept
Definition: tmpI.H:287
Foam::tmp
A class for managing temporary objects.
Definition: PtrList.H:61
Foam::DimensionedField::field
const Field< Type > & field() const
Return field.
Definition: DimensionedFieldI.H:90
Foam::fvc::domainIntegrate
dimensioned< Type > domainIntegrate(const GeometricField< Type, fvPatchField, volMesh > &vf)
Definition: fvcVolumeIntegrate.C:88
Foam::GeometricField::primitiveField
const Internal::FieldType & primitiveField() const
Return a const-reference to the internal field.
Definition: GeometricFieldI.H:53
Foam::gSum
Type gSum(const FieldField< Field, Type > &f)
Definition: FieldFieldFunctions.C:594
Foam::DimensionedField::mesh
const Mesh & mesh() const
Return mesh.
Definition: DimensionedFieldI.H:41
Foam::fvc::volumeIntegrate
tmp< Field< Type > > volumeIntegrate(const GeometricField< Type, fvPatchField, volMesh > &vf)
Definition: fvcVolumeIntegrate.C:47
Field.H
Foam::dimensioned
Generic dimensioned Type class.
Definition: dimensionedScalarFwd.H:42
fvMesh.H
Foam
Namespace for OpenFOAM.
Definition: atmBoundaryLayer.C:33
Foam::DimensionedField::dimensions
const dimensionSet & dimensions() const
Return dimensions.
Definition: DimensionedFieldI.H:49
fvcVolumeIntegrate.H
Volume integrate volField creating a volField.
Foam::dimVol
const dimensionSet dimVol(dimVolume)
Older spelling for dimVolume.
Definition: dimensionSets.H:64
Foam::GeometricField< Type, fvPatchField, volMesh >
Foam::DimensionedField
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
Definition: DimensionedField.H:54