slicedFvsPatchField.H
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-------------------------------------------------------------------------------
10License
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
26Class
27 Foam::slicedFvsPatchField
28
29Description
30 Specialization of fvsPatchField which creates the underlying
31 fvsPatchField as a slice of the given complete field.
32
33 The destructor is wrapped to avoid deallocation of the storage of the
34 complete fields when this is destroyed.
35
36 Should only used as a template argument for SlicedGeometricField.
37
38SourceFiles
39 slicedFvsPatchField.C
40
41\*---------------------------------------------------------------------------*/
42
43#ifndef slicedFvsPatchField_H
44#define slicedFvsPatchField_H
45
46#include "fvsPatchField.H"
47
48// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
49
50namespace Foam
51{
52
53/*---------------------------------------------------------------------------*\
54 Class slicedFvsPatch Declaration
55\*---------------------------------------------------------------------------*/
56
57template<class Type>
59:
60 public fvsPatchField<Type>
61{
62
63public:
64
65 //- Runtime type information
66 TypeName("sliced");
67
68
69 // Constructors
70
71 //- Construct from patch, internal field and field to slice
73 (
74 const fvPatch&,
76 const Field<Type>&
77 );
78
79 //- Construct from patch and internal field
81 (
82 const fvPatch&,
84 );
85
86 //- Construct from patch, internal field and dictionary
88 (
89 const fvPatch&,
91 const dictionary&
92 );
93
94 //- Construct by mapping the given slicedFvsPatchField<Type>
95 // onto a new patch
97 (
99 const fvPatch&,
101 const fvPatchFieldMapper&
102 );
103
104 //- Construct as copy
106
107 //- Construct and return a clone
108 virtual tmp<fvsPatchField<Type>> clone() const;
109
110 //- Construct as copy setting internal field reference
112 (
115 );
116
117 //- Construct and return a clone setting internal field reference
119 (
121 ) const;
122
123
124 //- Destructor
126
127
128 // Member functions
129
130 // Access
131
132 //- Return true if this patch field fixes a value.
133 // Needed to check if a level has to be specified while solving
134 // Poissons equations.
135 virtual bool fixesValue() const
136 {
137 return true;
138 }
139
140
141 // Member operators
143 virtual void operator=(const UList<Type>&) {}
145 virtual void operator=(const fvsPatchField<Type>&) {}
146 virtual void operator+=(const fvsPatchField<Type>&) {}
147 virtual void operator-=(const fvsPatchField<Type>&) {}
148 virtual void operator*=(const fvsPatchField<scalar>&) {}
149 virtual void operator/=(const fvsPatchField<scalar>&) {}
151 virtual void operator+=(const Field<Type>&) {}
152 virtual void operator-=(const Field<Type>&) {}
154 virtual void operator*=(const Field<scalar>&) {}
155 virtual void operator/=(const Field<scalar>&) {}
157 virtual void operator=(const Type&) {}
158 virtual void operator+=(const Type&) {}
159 virtual void operator-=(const Type&) {}
160 virtual void operator*=(const scalar) {}
161 virtual void operator/=(const scalar) {}
162};
163
164
165// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
166
167} // End namespace Foam
168
169// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
170
171#ifdef NoRepository
172 #include "slicedFvsPatchField.C"
173#endif
174
175// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
176
177#endif
178
179// ************************************************************************* //
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
Generic templated field type.
Definition: Field.H:82
A 1D vector of objects of type <T>, where the size of the vector is known and can be used for subscri...
Definition: UList.H:94
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Definition: dictionary.H:126
A FieldMapper for finite-volume patch fields.
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
Definition: fvPatch.H:71
An abstract base class with a fat-interface to all derived classes covering all possible ways in whic...
Definition: fvsPatchField.H:79
Specialization of fvsPatchField which creates the underlying fvsPatchField as a slice of the given co...
virtual void operator=(const fvsPatchField< Type > &)
virtual void operator/=(const Field< scalar > &)
virtual bool fixesValue() const
Return true if this patch field fixes a value.
virtual void operator-=(const fvsPatchField< Type > &)
virtual void operator*=(const fvsPatchField< scalar > &)
virtual void operator+=(const Field< Type > &)
virtual void operator=(const Type &)
virtual void operator*=(const Field< scalar > &)
virtual tmp< fvsPatchField< Type > > clone() const
Construct and return a clone.
virtual void operator/=(const scalar)
virtual void operator=(const UList< Type > &)
virtual void operator+=(const fvsPatchField< Type > &)
virtual void operator-=(const Type &)
virtual void operator/=(const fvsPatchField< scalar > &)
virtual void operator*=(const scalar)
virtual void operator-=(const Field< Type > &)
virtual void operator+=(const Type &)
TypeName("sliced")
Runtime type information.
A class for managing temporary objects.
Definition: tmp.H:65
Namespace for OpenFOAM.
#define TypeName(TypeNameString)
Declare a ClassName() with extra virtual type info.
Definition: typeInfo.H:73