Zoltan2
Toggle main menu visibility
Loading...
Searching...
No Matches
fix2010.cpp
Go to the documentation of this file.
1
// @HEADER
2
//
3
// ***********************************************************************
4
//
5
// Zoltan2: A package of combinatorial algorithms for scientific computing
6
// Copyright 2012 Sandia Corporation
7
//
8
// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
9
// the U.S. Government retains certain rights in this software.
10
//
11
// Redistribution and use in source and binary forms, with or without
12
// modification, are permitted provided that the following conditions are
13
// met:
14
//
15
// 1. Redistributions of source code must retain the above copyright
16
// notice, this list of conditions and the following disclaimer.
17
//
18
// 2. Redistributions in binary form must reproduce the above copyright
19
// notice, this list of conditions and the following disclaimer in the
20
// documentation and/or other materials provided with the distribution.
21
//
22
// 3. Neither the name of the Corporation nor the names of the
23
// contributors may be used to endorse or promote products derived from
24
// this software without specific prior written permission.
25
//
26
// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY
27
// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
28
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
29
// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE
30
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
31
// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
32
// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
33
// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
34
// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
35
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
36
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
37
//
38
// Questions? Contact Karen Devine (kddevin@sandia.gov)
39
// Erik Boman (egboman@sandia.gov)
40
// Siva Rajamanickam (srajama@sandia.gov)
41
//
42
// ***********************************************************************
43
//
44
// @HEADER
45
#include <
Zoltan2_BasicIdentifierAdapter.hpp
>
46
#include <
Zoltan2_PartitioningProblem.hpp
>
47
#include <
Zoltan2_PartitioningSolution.hpp
>
48
#include <
Zoltan2_TestHelpers.hpp
>
49
50
#include <Teuchos_DefaultComm.hpp>
51
#include <Teuchos_ParameterList.hpp>
52
53
// Test for issue #2010: no IDs provided to partitioner
54
55
int
main
(
int
narg,
char
**arg)
56
{
57
Tpetra::ScopeGuard tscope(&narg, &arg);
58
Teuchos::RCP<const Teuchos::Comm<int> > comm = Tpetra::getDefaultComm();
59
60
int
fail
=0, gfail=0;
61
62
int
rank = comm->getRank();
63
64
zlno_t
numMyIdentifiers = 0;
// no IDs provided
65
66
typedef
Zoltan2::BasicUserTypes<zscalar_t, zlno_t, zgno_t>
mydata_t;
67
typedef
Zoltan2::BasicIdentifierAdapter<mydata_t>
adapter_t;
68
69
adapter_t *adapter =
new
adapter_t(numMyIdentifiers, NULL);
70
71
Teuchos::ParameterList params(
"test parameters"
);
72
params.set(
"num_global_parts"
, 4);
73
params.set(
"algorithm"
,
"block"
);
74
params.set(
"partitioning_approach"
,
"partition"
);
75
76
Zoltan2::PartitioningProblem<adapter_t>
problem(adapter, ¶ms);
77
78
problem.
solve
();
79
80
Zoltan2::PartitioningSolution<adapter_t>
solution = problem.
getSolution
();
81
82
if
(solution.
getActualGlobalNumberOfParts
() != 0)
83
fail
=
true
;
84
85
gfail =
globalFail
(*comm,
fail
);
86
87
if
(gfail){
88
if
(rank==0)
89
std::cout <<
"FAIL GlobalNumberOfParts = "
90
<< solution.
getActualGlobalNumberOfParts
() << std:: endl;
91
return
1;
92
}
93
94
if
(rank==0)
95
std::cout <<
"PASS"
<< std:: endl;
96
97
return
0;
98
}
globalFail
int globalFail(const Comm< int > &comm, int fail)
Definition
ErrorHandlingForTests.hpp:109
Zoltan2_BasicIdentifierAdapter.hpp
Defines the BasicIdentifierAdapter class.
Zoltan2_PartitioningProblem.hpp
Defines the PartitioningProblem class.
Zoltan2_PartitioningSolution.hpp
Defines the PartitioningSolution class.
Zoltan2_TestHelpers.hpp
common code used by tests
zlno_t
Tpetra::Map ::local_ordinal_type zlno_t
Definition
Zoltan2_TestHelpers.hpp:106
main
int main()
Definition
absdefinitiontest.cpp:6
Zoltan2::BasicIdentifierAdapter
This class represents a collection of global Identifiers and their associated weights,...
Definition
Zoltan2_BasicIdentifierAdapter.hpp:82
Zoltan2::BasicUserTypes
A simple class that can be the User template argument for an InputAdapter.
Definition
Zoltan2_InputTraits.hpp:140
Zoltan2::PartitioningProblem
PartitioningProblem sets up partitioning problems for the user.
Definition
Zoltan2_PartitioningProblem.hpp:105
Zoltan2::PartitioningProblem::getSolution
const PartitioningSolution< Adapter > & getSolution()
Get the solution to the problem.
Definition
Zoltan2_PartitioningProblem.hpp:170
Zoltan2::PartitioningProblem::solve
void solve(bool updateInputData=true)
Direct the problem to create a solution.
Definition
Zoltan2_PartitioningProblem.hpp:614
Zoltan2::PartitioningSolution
A PartitioningSolution is a solution to a partitioning problem.
Definition
Zoltan2_PartitioningSolution.hpp:92
Zoltan2::PartitioningSolution::getActualGlobalNumberOfParts
size_t getActualGlobalNumberOfParts() const
Returns the actual global number of parts provided in setParts().
Definition
Zoltan2_PartitioningSolution.hpp:169
fail
static const std::string fail
Definition
findUniqueGids.cpp:81
test
core
partition
fix2010.cpp
Generated by
1.17.0