Zoltan2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
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 
18 using Teuchos::RCP;
19 using Teuchos::rcp;
20 
21 typedef Tpetra::MultiVector<zscalar_t, zlno_t, zgno_t, znode_t> tMVector_t;
23 
24 
26 
27 public:
31 
35 
40  void Run(const ParameterList &params,const RCP<const Teuchos::Comm<int> > & comm);
41 
44  bool didPass();
45 
46 private:
47  bool success;
48 };
49 
50 
52  this->success = false;
53 };
54 
55 void 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 
91 bool MeshCoordinateTest::didPass(){return this->success;}
92 
93 
94 #endif
void Run(const ParameterList &params, const RCP< const Teuchos::Comm< int > > &comm)
Defines the PartitioningSolution class.
MeshCoordinateTest()
Default Constructor.
Defines the XpetraMultiVectorAdapter.
Zoltan2::BasicUserTypes< zscalar_t, zlno_t, zgno_t > myTypes_t
BasicVectorAdapter represents a vector (plus optional weights) supplied by the user as pointers to st...
PartitioningProblem sets up partitioning problems for the user.
RCP< tMVector_t > getUICoordinates()
Defines the PartitioningProblem class.
float zscalar_t
Defines the BasicVectorAdapter class.
Tpetra::MultiVector< zscalar_t, zlno_t, zgno_t, znode_t > tMVector_t
Tpetra::Map::global_ordinal_type zgno_t
void solve(bool updateInputData=true)
Direct the problem to create a solution.