BUG: UListIO: byteSize overflowing on really big faceLists
[OpenFOAM-2.0.x.git] / src / postProcessing / functionObjects / IO / partialWrite / partialWrite.H
blob40538f20ee5b5031d9a053e3f382b5ba3f4d5a26
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::partialWrite
27 Description
28     Allows some fields/registered objects to be written more often than others.
30     Works in the opposite way: deletes at intermediate times all
31     but selected fields.
33 SourceFiles
34     partialWrite.C
35     IOpartialWrite.H
37 \*---------------------------------------------------------------------------*/
39 #ifndef partialWrite_H
40 #define partialWrite_H
42 #include "pointFieldFwd.H"
43 #include "HashSet.H"
44 #include "DynamicList.H"
45 #include "runTimeSelectionTables.H"
47 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
49 namespace Foam
52 // Forward declaration of classes
53 class objectRegistry;
54 class dictionary;
55 class mapPolyMesh;
57 /*---------------------------------------------------------------------------*\
58                    Class partialWrite Declaration
59 \*---------------------------------------------------------------------------*/
61 class partialWrite
63 protected:
65     // Private data
67         //- Name of this set of partialWrite
68         word name_;
70         const objectRegistry& obr_;
73         // Read from dictionary
75             //- Names of objects to dump always
76             HashSet<word> objectNames_;
78             //- Write interval for restart dump
79             label writeInterval_;
82         //- Current dump instance. If reaches writeInterval do a full write.
83         label writeInstance_;
86     // Private Member Functions
88         //- Disallow default bitwise copy construct
89         partialWrite(const partialWrite&);
91         //- Disallow default bitwise assignment
92         void operator=(const partialWrite&);
95 public:
97     //- Runtime type information
98     TypeName("partialWrite");
101     // Constructors
103         //- Construct for given objectRegistry and dictionary.
104         //  Allow the possibility to load fields from files
105         partialWrite
106         (
107             const word& name,
108             const objectRegistry&,
109             const dictionary&,
110             const bool loadFromFiles = false
111         );
114     //- Destructor
115     virtual ~partialWrite();
118     // Member Functions
120         //- Return name of the partialWrite
121         virtual const word& name() const
122         {
123             return name_;
124         }
126         //- Read the partialWrite data
127         virtual void read(const dictionary&);
129         //- Execute, currently does nothing
130         virtual void execute();
132         //- Execute at the final time-loop, currently does nothing
133         virtual void end();
135         //- Write the partialWrite
136         virtual void write();
138         //- Update for changes of mesh
139         virtual void updateMesh(const mapPolyMesh&)
140         {}
142         //- Update for changes of mesh
143         virtual void movePoints(const pointField&)
144         {}
148 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
150 } // End namespace Foam
152 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
154 #endif
156 // ************************************************************************* //