51 #include <Teuchos_DefaultComm.hpp>
52 #include <Teuchos_RCP.hpp>
53 #include <Teuchos_CommHelpers.hpp>
63 int len,
int glen,
zgno_t *ids,
66 int nCoords,
int nWeights)
79 for (
int x=0; !
fail && x < nCoords; x++){
88 for (
int i=0; !
fail && i < len; i++, coordVal += 3){
93 if (!
fail &&
vals[stride*i] != *coordVal)
98 for (
int w=0; !
fail && w < nWeights; w++){
105 for (
int i=0; !
fail && i < len; i++, weightVal++){
106 if (wgts[stride*i] != *weightVal)
115 int main(
int narg,
char *arg[])
117 Tpetra::ScopeGuard tscope(&narg, &arg);
118 Teuchos::RCP<const Teuchos::Comm<int> > comm = Tpetra::getDefaultComm();
120 int rank = comm->getRank();
125 typedef Tpetra::MultiVector<zscalar_t, zlno_t, zgno_t, znode_t> mv_t;
126 RCP<UserInputForTests> uinput;
127 std::string fname(
"simple");
132 catch(std::exception &e){
141 coords = uinput->getUICoordinates();
143 catch(std::exception &e){
149 int numLocalIds = coords->getLocalLength();
150 int numGlobalIds = coords->getGlobalLength();
151 int coordDim = coords->getNumVectors();
152 ArrayView<const zgno_t>
idList = coords->getMap()->getNodeElementList();
156 Array<zgno_t> myIds(numLocalIds);
157 zgno_t myFirstId = rank * numLocalIds;
160 Array<zscalar_t>
weights(numLocalIds*wdim);
163 zscalar_t *x_values= coords->getDataNonConst(0).getRawPtr();
168 y_values= coords->getDataNonConst(1).getRawPtr();
170 z_values= coords->getDataNonConst(2).getRawPtr();
173 Array<zscalar_t> xyz_values(3*numLocalIds);
175 for (
zlno_t i=0; i < numLocalIds; i++)
176 myIds[i] = myFirstId+i;
182 for (
int i=0, ii=0; i < numLocalIds; i++, ii += 3){
188 RCP<Zoltan2::BasicVectorAdapter<userTypes_t> > ia;
200 numLocalIds, myIds.getRawPtr(), x_values, y_values, z_values));
202 catch (std::exception &e){
209 myIds.getRawPtr(), xyz_values.getRawPtr(),
210 weights.getRawPtr(), ncoords, nweights);
225 numLocalIds, myIds.getRawPtr(),
226 x_values, y_values, z_values, 1, 1, 1,
227 true,
weights.getRawPtr(), 1));
229 catch (std::exception &e){
236 myIds.getRawPtr(), xyz_values.getRawPtr(),
237 weights.getRawPtr(), ncoords, nweights);
249 std::vector<const zscalar_t *> values, weightValues;
250 std::vector<int> valueStrides, weightStrides;
252 values.push_back(x_values);
253 values.push_back(y_values);
254 values.push_back(z_values);
255 valueStrides.push_back(1);
256 valueStrides.push_back(1);
257 valueStrides.push_back(1);
261 numLocalIds, myIds.getRawPtr(), values, valueStrides,
262 weightValues, weightStrides));
264 catch (std::exception &e){
271 myIds.getRawPtr(), xyz_values.getRawPtr(),
272 weights.getRawPtr(), ncoords, nweights);
278 std::vector<int> emptyStrides;
282 numLocalIds, myIds.getRawPtr(), values, emptyStrides,
283 weightValues, emptyStrides));
285 catch (std::exception &e){
292 myIds.getRawPtr(), xyz_values.getRawPtr(),
293 weights.getRawPtr(), ncoords, nweights);
305 std::vector<const zscalar_t *> values, weightValues;
306 std::vector<int> valueStrides, weightStrides;
308 values.push_back(xyz_values.getRawPtr());
309 values.push_back(xyz_values.getRawPtr() + 1);
310 valueStrides.push_back(3);
311 valueStrides.push_back(3);
313 weightValues.push_back(
weights.getRawPtr());
314 weightValues.push_back(
weights.getRawPtr() + numLocalIds);
315 weightStrides.push_back(1);
316 weightStrides.push_back(1);
320 numLocalIds, myIds.getRawPtr(), values, valueStrides,
321 weightValues, weightStrides));
323 catch (std::exception &e){
330 myIds.getRawPtr(), xyz_values.getRawPtr(),
331 weights.getRawPtr(), ncoords, nweights);
337 std::vector<int> emptyStrides;
341 numLocalIds, myIds.getRawPtr(), values, valueStrides,
342 weightValues, emptyStrides));
344 catch (std::exception &e){
351 myIds.getRawPtr(), xyz_values.getRawPtr(),
352 weights.getRawPtr(), ncoords, nweights);
364 std::vector<const zscalar_t *> values, weightValues;
365 std::vector<int> valueStrides, weightStrides;
367 values.push_back(x_values);
368 valueStrides.push_back(1);
370 weightValues.push_back(
weights.getRawPtr());
371 weightValues.push_back(
weights.getRawPtr() + numLocalIds);
372 weightStrides.push_back(1);
373 weightStrides.push_back(1);
377 numLocalIds, myIds.getRawPtr(), values, valueStrides,
378 weightValues, weightStrides));
380 catch (std::exception &e){
387 myIds.getRawPtr(), xyz_values.getRawPtr(),
388 weights.getRawPtr(), ncoords, nweights);
394 std::cout <<
"PASS" << std::endl;