39 objectFile::READ_IF_PRESENT,
40 objectFile::WRITE_ALWAYS),
51 objectFile::READ_IF_PRESENT,
52 objectFile::WRITE_ALWAYS),
62 objectFile::READ_IF_PRESENT,
63 objectFile::WRITE_ALWAYS),
82 return predictAll(dt, y, dy, this->
pStruct().activeRange());
86 return predictRange(dt, y, dy, this->
pStruct().activePointsMaskD());
101 return intAll(dt, y, dy, this->
pStruct().activeRange());
105 return intRange(dt, y, dy, this->
pStruct().activePointsMaskD());
115 y0_.insertSetElement(newIndices, y);
129 auto d_y0 = y0_.deviceVectorAll();
130 auto d_dy0 = dy0_.deviceVectorAll();
131 auto d_dy1= dy1_.deviceVectorAll();
133 Kokkos::parallel_for(
134 "AdamsMoulton3::predict",
138 d_y[i] = d_y0[i] + dt*(
static_cast<real>(3.0 / 2.0) * d_dy[i] -
static_cast<real>(1.0 / 2.0) * d_dy1[i]);
156 auto d_dy0 = dy0_.deviceVectorAll();
157 auto d_y0 = y0_.deviceVectorAll();
158 auto d_dy1 = dy1_.deviceVectorAll();
160 Kokkos::parallel_for(
161 "AdamsMoulton3::correct",
164 auto corrct_y = d_y0[i] + dt*(
165 static_cast<real>(5.0/12.0)*d_dy[i]
166 +
static_cast<real>(8.0/12.0)*d_dy0[i]
167 -
static_cast<real>(1.0/12.0)*d_dy1[i]);