103 auto fc = std::shared_ptr<FieldContainer_t>();
104 FromFile sampler(pc, fc, tempFilename);
106 size_t requested = 10;
110 const int nranks = std::max(1, ippl::Comm->size());
111 const size_t nranksU =
static_cast<size_t>(nranks);
112 const size_t maxLocalNum = requested / nranksU + 2 * nranksU + 1;
113 pc->allocateParticles(maxLocalNum);
118 MPI_Comm_rank(MPI_COMM_WORLD, &rank);
121 size_t localN = pc->getLocalNum();
123 MPI_Allreduce(&localN, &globalN, 1, MPI_UNSIGNED_LONG, MPI_SUM, MPI_COMM_WORLD);
125 EXPECT_EQ(globalN, 5u);
128 auto Rview_d = pc->R.getView();
129 auto Pview_d = pc->P.getView();
131 auto Rview = Kokkos::create_mirror_view(Rview_d);
132 auto Pview = Kokkos::create_mirror_view(Pview_d);
133 Kokkos::deep_copy(Rview, Rview_d);
134 Kokkos::deep_copy(Pview, Pview_d);
138 EXPECT_TRUE(std::isfinite(Rview(0)[0]));
139 EXPECT_TRUE(std::isfinite(Rview(0)[1]));
140 EXPECT_TRUE(std::isfinite(Rview(0)[2]));
141 EXPECT_TRUE(std::isfinite(Pview(0)[0]));
142 EXPECT_TRUE(std::isfinite(Pview(0)[1]));
143 EXPECT_TRUE(std::isfinite(Pview(0)[2]));
150 writeFileWithHeader(
"py px pz y x z",
"10 20 30 40 50 60");
152 auto fc = std::shared_ptr<FieldContainer_t>();
153 FromFile sampler(pc, fc, tempFilename);
155 size_t requested = 1;
158 size_t localN = pc->getLocalNum();
160 auto Rview_d = pc->R.getView();
161 auto Pview_d = pc->P.getView();
162 auto Rview = Kokkos::create_mirror_view(Rview_d);
163 auto Pview = Kokkos::create_mirror_view(Pview_d);
164 Kokkos::deep_copy(Rview, Rview_d);
165 Kokkos::deep_copy(Pview, Pview_d);
167 EXPECT_DOUBLE_EQ(Rview(0)[0], 50.0);
168 EXPECT_DOUBLE_EQ(Rview(0)[1], 40.0);
169 EXPECT_DOUBLE_EQ(Rview(0)[2], 60.0);
170 EXPECT_DOUBLE_EQ(Pview(0)[0], 20.0);
171 EXPECT_DOUBLE_EQ(Pview(0)[1], 10.0);
172 EXPECT_DOUBLE_EQ(Pview(0)[2], 30.0);
177 writeFileWithHeader(
"x y z px/momentumx py/momentumy pz/momentumz",
"1.0 2.0 3.0 4.0 5.0 6.0");
179 auto fc = std::shared_ptr<FieldContainer_t>();
180 FromFile sampler(pc, fc, tempFilename);
182 size_t requested = 1;
185 size_t localN = pc->getLocalNum();
187 auto Rview_d = pc->R.getView();
188 auto Pview_d = pc->P.getView();
189 auto Rview = Kokkos::create_mirror_view(Rview_d);
190 auto Pview = Kokkos::create_mirror_view(Pview_d);
191 Kokkos::deep_copy(Rview, Rview_d);
192 Kokkos::deep_copy(Pview, Pview_d);
194 EXPECT_DOUBLE_EQ(Rview(0)[0], 1.0);
195 EXPECT_DOUBLE_EQ(Rview(0)[1], 2.0);
196 EXPECT_DOUBLE_EQ(Rview(0)[2], 3.0);
197 EXPECT_DOUBLE_EQ(Pview(0)[0], 4.0);
198 EXPECT_DOUBLE_EQ(Pview(0)[1], 5.0);
199 EXPECT_DOUBLE_EQ(Pview(0)[2], 6.0);