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),
73 objectFile::READ_IF_PRESENT,
74 objectFile::WRITE_ALWAYS),
93 return predictAll(dt, y, dy, this->
pStruct().activeRange());
97 return predictRange(dt, y, dy, this->
pStruct().activePointsMaskD());
110 if(this->
pStruct().allActive())
112 return intAll(dt, y, dy, this->
pStruct().activeRange());
116 return intRange(dt, y, dy, this->
pStruct().activePointsMaskD());
126 y0_.insertSetElement(newIndices, y);
141 auto d_y0 = y0_.deviceVectorAll();
142 auto d_dy0 = dy0_.deviceVectorAll();
143 auto d_dy1 = dy1_.deviceVectorAll();
144 auto d_dy2 = dy2_.deviceVectorAll();
146 Kokkos::parallel_for(
147 "AdamsMoulton4::predict",
151 d_y[i] = d_y0[i] + dt*(
152 static_cast<real>(23.0 /12.0 ) * d_dy[i]
153 -
static_cast<real>(16.0 / 12.0) * d_dy1[i]
154 +
static_cast<real>( 5.0 / 12.0) * d_dy2[i]);
171 auto d_dy0 = dy0_.deviceVectorAll();
172 auto d_y0 = y0_.deviceVectorAll();
173 auto d_dy1 = dy1_.deviceVectorAll();
174 auto d_dy2 = dy2_.deviceVectorAll();
176 Kokkos::parallel_for(
177 "AdamsMoulton4::correct",
180 auto corrct_y = d_y0[i] + dt*(
181 static_cast<real>(9.0/24.0)*d_dy[i]
182 +
static_cast<real>(19.0/24.0)*d_dy0[i]
183 -
static_cast<real>( 5.0/24.0)*d_dy1[i]
184 +
static_cast<real>( 1.0/24.0)*d_dy2[i]);