dummyMetisDecomp.C
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 \*---------------------------------------------------------------------------*/
25 
26 #include "metisDecomp.H"
28 #include "Time.H"
29 
30 static const char* notImplementedMessage =
31 "You are trying to use metis but do not have the metisDecomp library loaded."
32 "\nThis message is from the dummy metisDecomp stub library instead.\n"
33 "\n"
34 "Please install metis and make sure that libmetis.so is in your "
35 "LD_LIBRARY_PATH.\n"
36 "The metisDecomp library can then be built from "
37 "$FOAM_SRC/parallel/decompose/metisDecomp and dynamically loading or linking"
38 " this library will add metis as a decomposition method.\n"
39 "Please be aware that there are license restrictions on using Metis.";
40 
41 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
42 
43 namespace Foam
44 {
45  defineTypeNameAndDebug(metisDecomp, 0);
46  addToRunTimeSelectionTable(decompositionMethod, metisDecomp, decomposer);
47 }
48 
49 
50 // * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * //
51 
52 Foam::label Foam::metisDecomp::decompose
53 (
54  const List<label>& adjncy,
55  const List<label>& xadj,
56  const scalarField& cellWeights,
57  List<label>& finalDecomp
58 )
59 {
61  << notImplementedMessage << exit(FatalError);
62 
63  return -1;
64 }
65 
66 
67 // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
68 
70 (
71  const dictionary& decompositionDict
72 )
73 :
74  decompositionMethod(decompositionDict)
75 {}
76 
77 
78 // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
79 
80 Foam::labelList Foam::metisDecomp::decompose
81 (
82  const polyMesh& mesh,
83  const pointField& points,
84  const scalarField& pointWeights
85 )
86 {
88  << notImplementedMessage << exit(FatalError);
89 
90  return labelList();
91 }
92 
93 
94 Foam::labelList Foam::metisDecomp::decompose
95 (
96  const polyMesh& mesh,
97  const labelList& agglom,
98  const pointField& agglomPoints,
99  const scalarField& agglomWeights
100 )
101 {
103  << notImplementedMessage << exit(FatalError);
104 
105  return labelList();
106 }
107 
108 
109 Foam::labelList Foam::metisDecomp::decompose
110 (
111  const labelListList& globalCellCells,
112  const pointField& cellCentres,
113  const scalarField& cellWeights
114 )
115 {
117  << notImplementedMessage << exit(FatalError);
118 
119  return labelList();
120 }
121 
122 
123 // ************************************************************************* //
errorManipArg< error, int > exit(error &err, const int errNo=1)
Definition: errorManip.H:124
error FatalError
A list of keyword definitions, which are a keyword followed by any number of values (e...
Definition: dictionary.H:156
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
Definition: error.H:306
Holds information (coordinate and normal) regarding nearest wall point.
Macros for easy insertion into run-time selection tables.
Field< scalar > scalarField
Specialisation of Field<T> for scalar.
List< label > labelList
A List of labels.
Definition: labelList.H:56
Abstract base class for decomposition.
static const char * notImplementedMessage
addToRunTimeSelectionTable(ensightPart, ensightPartCells, istream)
defineTypeNameAndDebug(combustionModel, 0)
Mesh consisting of general polyhedral cells.
Definition: polyMesh.H:76
Namespace for OpenFOAM.
metisDecomp(const dictionary &)
Construct given the decomposition dictionary.