transformFvPatchField.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 "transformFvPatchField.H"
29 #include "IOstreams.H"
30 #include "transformField.H"
31 
32 // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
33 
34 template<class Type>
36 (
37  const fvPatch& p,
39 )
40 :
41  fvPatchField<Type>(p, iF)
42 {}
43 
44 
45 template<class Type>
47 (
48  const transformFvPatchField<Type>& ptf,
49  const fvPatch& p,
51  const fvPatchFieldMapper& mapper
52 )
53 :
54  fvPatchField<Type>(ptf, p, iF, mapper)
55 {}
56 
57 
58 template<class Type>
60 (
61  const fvPatch& p,
63  const dictionary& dict
64 )
65 :
66  fvPatchField<Type>(p, iF, dict, IOobjectOption::NO_READ)
67 {}
68 
69 
70 template<class Type>
72 (
74 )
75 :
76  fvPatchField<Type>(ptf)
77 {}
78 
79 
80 template<class Type>
82 (
83  const transformFvPatchField<Type>& ptf,
85 )
86 :
87  fvPatchField<Type>(ptf, iF)
88 {}
89 
90 
91 // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
92 
93 template<class Type>
96 (
97  const tmp<scalarField>&
98 ) const
99 {
100  return pTraits<Type>::one - snGradTransformDiag();
101 }
102 
103 
104 template<class Type>
107 (
108  const tmp<scalarField>&
109 ) const
110 {
111  return
112  *this
113  - cmptMultiply
114  (
115  valueInternalCoeffs(this->patch().weights()),
116  this->patchInternalField()
117  );
118 }
119 
120 
121 template<class Type>
124 {
125  return -this->patch().deltaCoeffs()*snGradTransformDiag();
126 }
127 
128 
129 template<class Type>
132 {
133  return
134  snGrad()
135  - cmptMultiply(gradientInternalCoeffs(), this->patchInternalField());
136 }
137 
138 
139 // * * * * * * * * * * * * * * * Member Operators * * * * * * * * * * * * * //
140 
141 template<class Type>
143 (
144  const fvPatchField<Type>& ptf
145 )
146 {
147  this->evaluate();
148 }
149 
150 
151 // ************************************************************************* //
virtual tmp< Field< Type > > gradientInternalCoeffs() const
Return the matrix diagonal coefficients corresponding to the.
dictionary dict
virtual tmp< Field< Type > > valueInternalCoeffs(const tmp< scalarField > &) const
Return the matrix diagonal coefficients corresponding to the.
A list of keyword definitions, which are a keyword followed by a number of values (eg...
Definition: dictionary.H:129
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
Definition: fvPatch.H:70
A traits class, which is primarily used for primitives and vector-space.
Definition: pTraits.H:75
Abstract base class with a fat-interface to all derived classes covering all possible ways in which t...
virtual tmp< Field< Type > > gradientBoundaryCoeffs() const
Return the matrix source coefficients corresponding to the.
Useful combination of include files which define Sin, Sout and Serr and the use of IO streams general...
Spatial transformation functions for primitive fields.
transformFvPatchField(const fvPatch &, const DimensionedField< Type, volMesh > &)
Construct from patch and internal field.
A FieldMapper for finite-volume patch fields.
string evaluate(label fieldWidth, const std::string &s, size_t pos=0, size_t len=std::string::npos)
String evaluation with specified (positive, non-zero) field width.
dimensioned< Type > cmptMultiply(const dimensioned< Type > &, const dimensioned< Type > &)
Foam::transformFvPatchField.
virtual tmp< Field< Type > > valueBoundaryCoeffs(const tmp< scalarField > &) const
Return the matrix source coefficients corresponding to the.
A simple container of IOobject preferences. Can also be used for general handling of read/no-read/rea...
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
Definition: areaFieldsFwd.H:42
const std::string patch
OpenFOAM patch number as a std::string.
volScalarField & p
A class for managing temporary objects.
Definition: HashPtrTable.H:50
tmp< GeometricField< Type, fvsPatchField, surfaceMesh > > snGrad(const GeometricField< Type, fvPatchField, volMesh > &vf, const word &name)
Definition: fvcSnGrad.C:40