167 class(
chkp_t),
intent(inout) :: this
171 associate(u=>this%u, v=>this%v, w=>this%w, &
172 ulag=>this%ulag, vlag=>this%vlag, wlag=>this%wlag, &
175 if (
associated(this%u) .and.
associated(this%v) .and. &
176 associated(this%w) .and.
associated(this%p))
then
183 if (
associated(this%ulag) .and.
associated(this%vlag) .and. &
184 associated(this%wlag))
then
212 if (
associated(this%s))
then
226 if (
allocated(this%scalar_lags%items) .and. this%scalar_lags%size() > 0)
then
227 do i = 1, this%scalar_lags%size()
230 integer :: slag_size, dof_size
231 slag => this%scalar_lags%get(i)
232 slag_size = slag%size()
233 dof_size = slag%f%dof%size()
243 if (
allocated(this%scalar_abx1) .and.
allocated(this%scalar_abx2))
then
244 do i = 1,
size(this%scalar_abx1)
245 call device_memcpy(this%scalar_abx1(i)%ptr%x, this%scalar_abx1(i)%ptr%x_d, &
247 call device_memcpy(this%scalar_abx2(i)%ptr%x, this%scalar_abx2(i)%ptr%x_d, &
252 call device_sync(glb_cmd_queue)
259 class(
chkp_t),
intent(inout) :: this
262 if (neko_bcknd_device .eq. 1)
then
263 associate(u=>this%u, v=>this%v, w=>this%w, &
264 ulag=>this%ulag, vlag=>this%vlag, wlag=>this%wlag,&
267 if (
associated(this%u) .and.
associated(this%v) .and. &
268 associated(this%w))
then
269 call device_memcpy(u%x, u%x_d, u%dof%size(), &
270 host_to_device, sync=.false.)
271 call device_memcpy(v%x, v%x_d, v%dof%size(), &
272 host_to_device, sync=.false.)
273 call device_memcpy(w%x, w%x_d, w%dof%size(), &
274 host_to_device, sync=.false.)
275 call device_memcpy(p%x, p%x_d, p%dof%size(), &
276 host_to_device, sync=.false.)
279 if (
associated(this%ulag) .and.
associated(this%vlag) .and. &
280 associated(this%wlag))
then
281 call device_memcpy(ulag%lf(1)%x, ulag%lf(1)%x_d, u%dof%size(), &
282 host_to_device, sync=.false.)
283 call device_memcpy(ulag%lf(2)%x, ulag%lf(2)%x_d, u%dof%size(), &
284 host_to_device, sync=.false.)
286 call device_memcpy(vlag%lf(1)%x, vlag%lf(1)%x_d, v%dof%size(), &
287 host_to_device, sync=.false.)
288 call device_memcpy(vlag%lf(2)%x, vlag%lf(2)%x_d, v%dof%size(), &
289 host_to_device, sync=.false.)
291 call device_memcpy(wlag%lf(1)%x, wlag%lf(1)%x_d, w%dof%size(), &
292 host_to_device, sync=.false.)
293 call device_memcpy(wlag%lf(2)%x, wlag%lf(2)%x_d, w%dof%size(), &
294 host_to_device, sync=.false.)
296 if (
associated(this%s))
then
297 call device_memcpy(this%s%x, this%s%x_d, this%s%dof%size(), &
298 host_to_device, sync=.false.)
300 call device_memcpy(this%slag%lf(1)%x, this%slag%lf(1)%x_d, &
301 this%s%dof%size(), host_to_device, sync=.false.)
302 call device_memcpy(this%slag%lf(2)%x, this%slag%lf(2)%x_d, &
303 this%s%dof%size(), host_to_device, sync=.false.)
304 call device_memcpy(this%abs1%x, this%abs1%x_d, &
305 w%dof%size(), host_to_device, sync=.false.)
306 call device_memcpy(this%abs2%x, this%abs2%x_d, &
307 w%dof%size(), host_to_device, sync=.false.)
311 if (
allocated(this%scalar_lags%items) .and. this%scalar_lags%size() > 0)
then
312 do i = 1, this%scalar_lags%size()
314 type(field_series_t),
pointer :: slag
315 integer :: slag_size, dof_size
316 slag => this%scalar_lags%get(i)
317 slag_size = slag%size()
318 dof_size = slag%f%dof%size()
320 call device_memcpy(slag%lf(j)%x, slag%lf(j)%x_d, &
321 dof_size, host_to_device, sync=.false.)
328 if (
allocated(this%scalar_abx1) .and.
allocated(this%scalar_abx2))
then
329 do i = 1,
size(this%scalar_abx1)
330 call device_memcpy(this%scalar_abx1(i)%ptr%x, this%scalar_abx1(i)%ptr%x_d, &
331 this%scalar_abx1(i)%ptr%dof%size(), host_to_device, sync=.false.)
332 call device_memcpy(this%scalar_abx2(i)%ptr%x, this%scalar_abx2(i)%ptr%x_d, &
333 this%scalar_abx2(i)%ptr%dof%size(), host_to_device, sync=.false.)