102 auto fc = std::shared_ptr<FieldContainer_t>();
107 size_t requested = 0;
110 EXPECT_EQ(requested,
static_cast<size_t>(2));
111 EXPECT_EQ(globalParticleCount(),
static_cast<size_t>(0));
115 EXPECT_DOUBLE_EQ(refP[0], 0.25 + 0.01);
116 EXPECT_DOUBLE_EQ(refP[1], 0.35 + 0.02);
117 EXPECT_DOUBLE_EQ(refP[2], 0.45 + 0.03);
124 writeCountHeaderDump();
127 auto fc = std::shared_ptr<FieldContainer_t>();
132 size_t requested = 0;
134 ASSERT_EQ(requested,
static_cast<size_t>(3));
138 EXPECT_EQ(globalParticleCount(),
static_cast<size_t>(2));
140 if (ippl::Comm->size() == 1) {
141 auto Rview_d = pc->R.getView();
142 auto Pview_d = pc->P.getView();
143 auto dtView_d = pc->dt.getView();
144 auto Rview = Kokkos::create_mirror_view(Rview_d);
145 auto Pview = Kokkos::create_mirror_view(Pview_d);
146 auto dtView = Kokkos::create_mirror_view(dtView_d);
147 Kokkos::deep_copy(Rview, Rview_d);
148 Kokkos::deep_copy(Pview, Pview_d);
149 Kokkos::deep_copy(dtView, dtView_d);
151 const double firstDt = 1.0e-12;
152 const double secondDt = 0.5e-12;
153 const double firstGamma = std::sqrt(1.0 + 0.4 * 0.4);
154 const double secondGamma = std::sqrt(1.0 + 0.6 * 0.6);
156 EXPECT_NEAR(dtView(0), firstDt, 1.0e-18);
157 EXPECT_NEAR(dtView(1), secondDt, 1.0e-18);
159 EXPECT_DOUBLE_EQ(Pview(0)[2], 0.4);
160 EXPECT_DOUBLE_EQ(Pview(1)[2], 0.6);
161 EXPECT_NEAR(Rview(0)[0], 0.103, 1.0e-15);
162 EXPECT_NEAR(Rview(0)[1], 0.204, 1.0e-15);
163 EXPECT_NEAR(Rview(0)[2], 0.3 + 0.5 *
Physics::c * firstDt * 0.4 / firstGamma, 1.0e-15);
164 EXPECT_NEAR(Rview(1)[2], 0.3 + 0.5 *
Physics::c * secondDt * 0.6 / secondGamma, 1.0e-15);
168 EXPECT_EQ(globalParticleCount(),
static_cast<size_t>(3));
172 EXPECT_EQ(globalParticleCount(),
static_cast<size_t>(3));
176 writeCountHeaderDump();
179 auto fc = std::shared_ptr<FieldContainer_t>();
183 size_t requested = 2;
185 EXPECT_EQ(requested,
static_cast<size_t>(2));
188 EXPECT_DOUBLE_EQ(refP[0], 0.0);
189 EXPECT_DOUBLE_EQ(refP[1], 0.0);
190 EXPECT_DOUBLE_EQ(refP[2], 0.3);
193 EXPECT_EQ(globalParticleCount(),
static_cast<size_t>(2));