ENH: autoLayerDriver: better layering information message
[OpenFOAM-2.0.x.git] / src / sampling / probes / patchProbes.H
blob8371d8b9c22420a793ed6ba135aa10fa8fa48f67
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4    \\    /   O peration     |
5     \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
6      \\/     M anipulation  |
7 -------------------------------------------------------------------------------
8 License
9     This file is part of OpenFOAM.
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.
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.
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/>.
24 Class
25     Foam::patchProbes
27 Description
28     Set of locations to sample.at patches
30     Call write() to sample and write files.
32 SourceFiles
33     patchProbes.C
35 \*---------------------------------------------------------------------------*/
37 #ifndef patchProbes_H
38 #define patchProbes_H
40 #include "probes.H"
42 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
44 namespace Foam
47 // Forward declaration of classes
48 class objectRegistry;
49 class dictionary;
50 class fvMesh;
51 class mapPolyMesh;
53 /*---------------------------------------------------------------------------*\
54                           Class patchProbes Declaration
55 \*---------------------------------------------------------------------------*/
57 class patchProbes
59     public probes
61     // Private data
63         //- Patch name
64         word patchName_;
67     // Private Member Functions
69         //- Sample and write a particular volume field
70         template<class Type>
71         void sampleAndWrite
72         (
73             const GeometricField<Type, fvPatchField, volMesh>&
74         );
77         //- Sample and write all the fields of the given type
78         template <class Type>
79         void sampleAndWrite(const fieldGroup<Type>&);
82         //- Sample a volume field at all locations
83         template<class Type>
84         tmp<Field<Type> > sample
85         (
86             const GeometricField<Type, fvPatchField, volMesh>&
87         ) const;
90         //- Sample a single field on all sample locations
91         template <class Type>
92         tmp<Field<Type> > sample(const word& fieldName) const;
95         //- Disallow default bitwise copy construct
96         patchProbes(const patchProbes&);
98         //- Disallow default bitwise assignment
99         void operator=(const patchProbes&);
102 public:
104     //- Runtime type information
105     TypeName("patchProbes");
108     // Constructors
110         //- Construct for given objectRegistry and dictionary.
111         //  Allow the possibility to load fields from files
112         patchProbes
113         (
114             const word& name,
115             const objectRegistry&,
116             const dictionary&,
117             const bool loadFromFiles = false
118         );
121     //- Destructor
122     virtual ~patchProbes();
124     //- Public members
126         //- Sample and write
127         virtual void write();
129         //- Read
130         virtual void read(const dictionary&);
132         //- Find elements containing patchProbes
133         virtual void findElements(const fvMesh&);
138 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
140 } // End namespace Foam
142 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
144 #ifdef NoRepository
145 #   include "patchProbesTemplates.C"
146 #endif
148 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
150 #endif
152 // ************************************************************************* //