hostUncollatedFileOperation.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) 2022-2023 OpenCFD Ltd.
9 -------------------------------------------------------------------------------
10 License
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 
26 Class
27  Foam::fileOperations::hostUncollatedFileOperation
28 
29 Description
30  Version of masterUncollated with host-based IO ranks
31 
32 \*---------------------------------------------------------------------------*/
33 
34 #ifndef Foam_fileOperations_hostUncollatedFileOperation_H
35 #define Foam_fileOperations_hostUncollatedFileOperation_H
36 
38 
39 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
40 
41 namespace Foam
42 {
43 namespace fileOperations
44 {
45 
46 /*---------------------------------------------------------------------------*\
47  Class hostUncollatedFileOperation Declaration
48 \*---------------------------------------------------------------------------*/
49 
51 :
53 {
54  // Private Data
55 
56  //- Communicator allocated/managed by us
57  mutable label managedComm_;
58 
59 
60  // Private Member Functions
61 
62  //- Any initialisation steps after constructing
63  void init(bool verbose);
64 
65 public:
66 
67  //- Runtime type information
68  TypeName("hostUncollated");
69 
70 
71  // Constructors
72 
73  //- Default construct
74  explicit hostUncollatedFileOperation(bool verbose = false);
75 
76  //- Construct from communicator with specified io-ranks
78  (
79  const Tuple2<label, labelList>& commAndIORanks,
80  const bool distributedRoots,
81  bool verbose = false
82  );
83 
84 
85  //- Destructor
87 
88 
89  // Member Functions
90 
91  //- Transfer ownership of communicator to this fileOperation.
92  //- Use with caution
93  virtual void storeComm() const;
94 };
95 
96 
97 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
98 
99 } // End namespace fileOperations
100 } // End namespace Foam
101 
102 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
103 
104 #endif
105 
106 // ************************************************************************* //
TypeName("hostUncollated")
Runtime type information.
A 2-tuple for storing two objects of dissimilar types. The container is similar in purpose to std::pa...
Definition: stringOps.H:54
Version of masterUncollated with host-based IO ranks.
hostUncollatedFileOperation(bool verbose=false)
Default construct.
virtual void storeComm() const
Transfer ownership of communicator to this fileOperation. Use with caution.
fileOperations that performs all file operations on the master processor. Requires the calls to be pa...
Namespace for OpenFOAM.