Fixed URL for libccmio-2.6.1 (bug report #5 by Thomas Oliveira)
[foam-extend-3.2.git] / src / tetFiniteElement / fields / tetPolyPatchFields / tetPolyPatchField / tetPolyPatchField.H
blobc64204cbcbaad46242a699f0cad63f9b941154e0
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | foam-extend: Open Source CFD
4    \\    /   O peration     | Version:     3.2
5     \\  /    A nd           | Web:         http://www.foam-extend.org
6      \\/     M anipulation  | For copyright notice see file Copyright
7 -------------------------------------------------------------------------------
8 License
9     This file is part of foam-extend.
11     foam-extend is free software: you can redistribute it and/or modify it
12     under the terms of the GNU General Public License as published by the
13     Free Software Foundation, either version 3 of the License, or (at your
14     option) any later version.
16     foam-extend is distributed in the hope that it will be useful, but
17     WITHOUT ANY WARRANTY; without even the implied warranty of
18     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
19     General Public License for more details.
21     You should have received a copy of the GNU General Public License
22     along with foam-extend.  If not, see <http://www.gnu.org/licenses/>.
24 Class
25     tetPolyPatchField
27 Description
28     Abstract base class for tetrahedral mesh patch fields. Note the special
29     mechanism at work here: the field itself holds no values, as the point
30     values belong to the internal field. However, the field will create a
31     list of values if required.
33 SourceFiles
34     tetPolyPatchField.C
36 \*---------------------------------------------------------------------------*/
38 #ifndef tetPolyPatchField_H
39 #define tetPolyPatchField_H
41 #include "PointPatchFieldTemplate.H"
42 #include "tetPolyPatch.H"
44 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
46 namespace Foam
49 // Class forward declarations
50 template<class> class tetFemMatrix;
51 class tetPointMesh;
53 /*---------------------------------------------------------------------------*\
54                        Class tetPolyPatchField Declaration
55 \*---------------------------------------------------------------------------*/
57 template<class Type>
58 class tetPolyPatchField
60     public PointPatchField
61     <
62         tetPolyPatchField,
63         tetPointMesh,
64         tetPolyPatch,
65         tetFemMatrix,
66         Type
67     >
70 public:
72     // Constructors
74         //- Construct from patch and internal field
75         tetPolyPatchField
76         (
77             const tetPolyPatch&,
78             const DimensionedField<Type, tetPointMesh>&
79         );
81         //- Construct as copy
82         tetPolyPatchField(const tetPolyPatchField<Type>&);
84         //- Construct and return a clone
85         virtual autoPtr<tetPolyPatchField<Type> > clone() const
86         {
87             return autoPtr<tetPolyPatchField<Type> >
88             (
89                 new tetPolyPatchField<Type>(*this)
90             );
91         }
93         //- Construct as copy setting internal field reference
94         tetPolyPatchField
95         (
96             const tetPolyPatchField<Type>&,
97             const DimensionedField<Type, tetPointMesh>&
98         );
100         //- Construct and return a clone setting internal field reference
101         virtual autoPtr<tetPolyPatchField<Type> > clone
102         (
103             const DimensionedField<Type, tetPointMesh>& iF
104         ) const
105         {
106             return autoPtr<tetPolyPatchField<Type> >
107             (
108                 new tetPolyPatchField<Type>(*this, iF)
109             );
110         }
113     // Destructor
115         virtual ~tetPolyPatchField()
116         {}
119     // Member operators
121         virtual void operator=(const Type& t)
122         {
123             PointPatchField
124             <
125                 Foam::tetPolyPatchField,
126                 tetPointMesh,
127                 tetPolyPatch,
128                 Foam::tetFemMatrix,
129                 Type
130             >::operator=(t);
131         }
135 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
137 } // End namespace Foam
139 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
141 #ifdef NoRepository
142 #   include "tetPolyPatchField.C"
143 #endif
146 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
148 #endif
150 // ************************************************************************* //