Zoltan2
Loading...
Searching...
No Matches
Zoltan2_MeshCoordinateTest.hpp
Go to the documentation of this file.
1//
2// Zoltan2_MeshCoordinateTest.h
3// Zoltan2TestDriver
4//
5// Created by Bradley Davidson on 7/6/15.
6// Copyright (c) 2015 TXCorp. All rights reserved.
7//
8
9#ifndef Zoltan2TestDriver_Zoltan2_MeshCoordinateTest_h
10#define Zoltan2TestDriver_Zoltan2_MeshCoordinateTest_h
11
17
18using Teuchos::RCP;
19using Teuchos::rcp;
20
21typedef Tpetra::MultiVector<zscalar_t, zlno_t, zgno_t, znode_t> tMVector_t;
23
24
26
27public:
31
35
40 void Run(const ParameterList &params,const RCP<const Teuchos::Comm<int> > & comm);
41
44 bool didPass();
45
46private:
47 bool success;
48};
49
50
52 this->success = false;
53};
54
55void MeshCoordinateTest::Run(const ParameterList &params,
56 const RCP<const Teuchos::Comm<int> > & comm)
57{
58 const ParameterList &input = params.sublist("TestParameters");
59
60 UserInputForTests uinput(input,comm,true, true);
61 if(!uinput.hasUICoordinates()) return;
62
63 RCP<tMVector_t> coords = uinput.getUICoordinates();
64
65 size_t localCount = coords->getLocalLength();
66
67 zscalar_t *x=NULL, *y=NULL, *z=NULL;
68 x = coords->getDataNonConst(0).getRawPtr();
69 y = coords->getDataNonConst(1).getRawPtr();
70 z = coords->getDataNonConst(2).getRawPtr();
71
72 const zgno_t *globalIds = coords->getMap()->getLocalElementList().getRawPtr();
73 typedef Zoltan2::BasicVectorAdapter<tMVector_t> inputAdapter_t;
74
75 inputAdapter_t ia(localCount, globalIds, x, y, z, 1, 1, 1);
76
77// ParameterList zoltan2params(params.sublist("Zoltan2Parameters"));
78 const ParameterList &zoltan2params = params.sublist("Zoltan2Parameters");
79#ifdef HAVE_ZOLTAN2_MPI
80 Zoltan2::PartitioningProblem<inputAdapter_t> problem(&ia, const_cast<ParameterList *>(&zoltan2params), MPI_COMM_WORLD);
81#else
82 Zoltan2::PartitioningProblem<inputAdapter_t> problem(&ia, const_cast<ParameterList *>(&zoltan2params));
83#endif
84
85 problem.solve();
86
87 this->success = true;
88
89}
90
91bool MeshCoordinateTest::didPass(){return this->success;}
92
93
94#endif
Defines the BasicVectorAdapter class.
Tpetra::MultiVector< zscalar_t, zlno_t, zgno_t, znode_t > tMVector_t
Zoltan2::BasicUserTypes< zscalar_t, zlno_t, zgno_t > myTypes_t
Defines the PartitioningProblem class.
Defines the PartitioningSolution class.
float zscalar_t
Tpetra::Map ::global_ordinal_type zgno_t
Defines the XpetraMultiVectorAdapter.
void Run(const ParameterList &params, const RCP< const Teuchos::Comm< int > > &comm)
MeshCoordinateTest()
Default Constructor.
RCP< tMVector_t > getUICoordinates()
A simple class that can be the User template argument for an InputAdapter.
BasicVectorAdapter represents a vector (plus optional weights) supplied by the user as pointers to st...
PartitioningProblem sets up partitioning problems for the user.
void solve(bool updateInputData=true)
Direct the problem to create a solution.