transformFvPatchField.C
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) 2011-2018 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 \*---------------------------------------------------------------------------*/
25 
26 #include "transformFvPatchField.H"
27 #include "IOstreams.H"
28 #include "transformField.H"
29 
30 // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
31 
32 template<class Type>
34 (
35  const fvPatch& p,
37 )
38 :
40 {}
41 
42 
43 template<class Type>
45 (
46  const transformFvPatchField<Type>& ptf,
47  const fvPatch& p,
49  const fvPatchFieldMapper& mapper
50 )
51 :
52  fvPatchField<Type>(ptf, p, iF, mapper)
53 {}
54 
55 
56 template<class Type>
58 (
59  const fvPatch& p,
61  const dictionary& dict
62 )
63 :
64  fvPatchField<Type>(p, iF, dict, false)
65 {}
66 
67 
68 template<class Type>
70 (
72 )
73 :
75 {}
76 
77 
78 template<class Type>
80 (
81  const transformFvPatchField<Type>& ptf,
83 )
84 :
85  fvPatchField<Type>(ptf, iF)
86 {}
87 
88 
89 // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
90 
91 template<class Type>
94 (
95  const tmp<scalarField>&
96 ) const
97 {
98  return pTraits<Type>::one - snGradTransformDiag();
99 }
100 
101 
102 template<class Type>
105 (
106  const tmp<scalarField>&
107 ) const
108 {
109  return
110  *this
111  - cmptMultiply
112  (
113  valueInternalCoeffs(this->patch().weights()),
114  this->patchInternalField()
115  );
116 }
117 
118 
119 template<class Type>
122 {
123  return -this->patch().deltaCoeffs()*snGradTransformDiag();
124 }
125 
126 
127 template<class Type>
130 {
131  return
132  snGrad()
133  - cmptMultiply(gradientInternalCoeffs(), this->patchInternalField());
134 }
135 
136 
137 // * * * * * * * * * * * * * * * Member Operators * * * * * * * * * * * * * //
138 
139 template<class Type>
140 void Foam::transformFvPatchField<Type>::operator=
141 (
142  const fvPatchField<Type>& ptf
143 )
144 {
145  this->evaluate();
146 }
147 
148 
149 // ************************************************************************* //
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 any number of values (e...
Definition: dictionary.H:137
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
Definition: fvPatch.H:61
Traits class for primitives.
Definition: pTraits.H:50
Abstract base class with a fat-interface to all derived classes covering all possible ways in which t...
Definition: fvPatchField.H:66
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.
Foam::fvPatchFieldMapper.
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.
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
volScalarField & p
A class for managing temporary objects.
Definition: PtrList.H:53
tmp< GeometricField< Type, fvsPatchField, surfaceMesh > > snGrad(const GeometricField< Type, fvPatchField, volMesh > &vf, const word &name)
Definition: fvcSnGrad.C:45