zoltanRenumber.H
Go to the documentation of this file.
1 /*---------------------------------------------------------------------------*\
2  ========= |
3  \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4  \\ / O peration | Website: https://openfoam.org
5  \\ / A nd | Copyright (C) 2011-2021 OpenFOAM Foundation
6  \\/ M anipulation |
7 -------------------------------------------------------------------------------
8 License
9  This file is part of OpenFOAM.
10 
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.
15 
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.
20 
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/>.
23 
24 Class
25  Foam::zoltanRenumber
26 
27 Description
28  Use Zoltan for renumbering a case in parallel.
29 
30  Note: Zoltan methods do not support serial operation.
31 
32 Usage
33  To select the Zoltan Hilbert space filling curves renumber method add the
34  following entries to renumberMeshDict:
35 
36  method zoltan;
37  libs ("libzoltanRenumber.so");
38 
39 SourceFiles
40  zoltanRenumber.C
41 
42 \*---------------------------------------------------------------------------*/
43 
44 #ifndef zoltanRenumber_H
45 #define zoltanRenumber_H
46 
47 #include "renumberMethod.H"
48 
49 namespace Foam
50 {
51 
52 /*---------------------------------------------------------------------------*\
53  Class zoltanRenumber Declaration
54 \*---------------------------------------------------------------------------*/
55 
56 class zoltanRenumber
57 :
58  public renumberMethod
59 {
60  // Private Data
61 
62  const dictionary coeffsDict_;
63 
64 
65 public:
66 
67  //- Runtime type information
68  TypeName("zoltan");
69 
70 
71  // Constructors
72 
73  //- Construct given the renumber dictionary
74  zoltanRenumber(const dictionary& renumberDict);
75 
76  //- Disallow default bitwise copy construction
77  zoltanRenumber(const zoltanRenumber&) = delete;
78 
79 
80  //- Destructor
81  virtual ~zoltanRenumber()
82  {}
83 
84 
85  // Member Functions
86 
87  //- Return the order in which cells need to be visited, i.e.
88  // from ordered back to original cell label.
89  // This is only defined for geometric renumberMethods.
90  virtual labelList renumber(const pointField&) const
91  {
93  return labelList(0);
94  }
95 
96  //- Return the order in which cells need to be visited, i.e.
97  // from ordered back to original cell label.
98  // Use the mesh connectivity (if needed)
99  virtual labelList renumber
100  (
101  const polyMesh& mesh,
102  const pointField& cc
103  ) const;
104 
105  //- Return the order in which cells need to be visited, i.e.
106  // from ordered back to original cell label.
107  // The connectivity is equal to mesh.cellCells() except
108  // - the connections are across coupled patches
109  virtual labelList renumber
110  (
111  const labelListList& cellCells,
112  const pointField& cc
113  ) const
114  {
116  return labelList(0);
117  }
118 
119 
120  // Member Operators
121 
122  //- Disallow default bitwise assignment
123  void operator=(const zoltanRenumber&) = delete;
124 };
125 
126 
127 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
128 
129 } // End namespace Foam
130 
131 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
132 
133 #endif
134 
135 // ************************************************************************* //
A list of keyword definitions, which are a keyword followed by any number of values (e....
Definition: dictionary.H:160
Mesh consisting of general polyhedral cells.
Definition: polyMesh.H:80
Abstract base class for renumbering.
Use Zoltan for renumbering a case in parallel.
void operator=(const zoltanRenumber &)=delete
Disallow default bitwise assignment.
virtual ~zoltanRenumber()
Destructor.
zoltanRenumber(const dictionary &renumberDict)
Construct given the renumber dictionary.
virtual labelList renumber(const pointField &) const
Return the order in which cells need to be visited, i.e.
TypeName("zoltan")
Runtime type information.
#define NotImplemented
Issue a FatalErrorIn for a function not currently implemented.
Definition: error.H:353
Namespace for OpenFOAM.
List< label > labelList
A List of labels.
Definition: labelList.H:56