168 class(
chkp_t),
intent(inout) :: this
172 associate(u=>this%u, v=>this%v, w=>this%w, &
173 ulag=>this%ulag, vlag=>this%vlag, wlag=>this%wlag, &
176 if (
associated(this%u) .and.
associated(this%v) .and. &
177 associated(this%w) .and.
associated(this%p))
then
184 if (
associated(this%ulag) .and.
associated(this%vlag) .and. &
185 associated(this%wlag))
then
213 if (
associated(this%s))
then
227 if (
allocated(this%scalar_lags%items) .and. this%scalar_lags%size() > 0)
then
228 do i = 1, this%scalar_lags%size()
231 integer :: slag_size, dof_size
232 slag => this%scalar_lags%get(i)
233 slag_size = slag%size()
234 dof_size = slag%f%dof%size()
244 if (
allocated(this%scalar_abx1) .and.
allocated(this%scalar_abx2))
then
245 do i = 1,
size(this%scalar_abx1)
246 call device_memcpy(this%scalar_abx1(i)%ptr%x, this%scalar_abx1(i)%ptr%x_d, &
248 call device_memcpy(this%scalar_abx2(i)%ptr%x, this%scalar_abx2(i)%ptr%x_d, &
253 call device_sync(glb_cmd_queue)
260 class(
chkp_t),
intent(inout) :: this
263 if (neko_bcknd_device .eq. 1)
then
264 associate(u=>this%u, v=>this%v, w=>this%w, &
265 ulag=>this%ulag, vlag=>this%vlag, wlag=>this%wlag,&
268 if (
associated(this%u) .and.
associated(this%v) .and. &
269 associated(this%w))
then
270 call device_memcpy(u%x, u%x_d, u%dof%size(), &
271 host_to_device, sync=.false.)
272 call device_memcpy(v%x, v%x_d, v%dof%size(), &
273 host_to_device, sync=.false.)
274 call device_memcpy(w%x, w%x_d, w%dof%size(), &
275 host_to_device, sync=.false.)
276 call device_memcpy(p%x, p%x_d, p%dof%size(), &
277 host_to_device, sync=.false.)
280 if (
associated(this%ulag) .and.
associated(this%vlag) .and. &
281 associated(this%wlag))
then
282 call device_memcpy(ulag%lf(1)%x, ulag%lf(1)%x_d, u%dof%size(), &
283 host_to_device, sync=.false.)
284 call device_memcpy(ulag%lf(2)%x, ulag%lf(2)%x_d, u%dof%size(), &
285 host_to_device, sync=.false.)
287 call device_memcpy(vlag%lf(1)%x, vlag%lf(1)%x_d, v%dof%size(), &
288 host_to_device, sync=.false.)
289 call device_memcpy(vlag%lf(2)%x, vlag%lf(2)%x_d, v%dof%size(), &
290 host_to_device, sync=.false.)
292 call device_memcpy(wlag%lf(1)%x, wlag%lf(1)%x_d, w%dof%size(), &
293 host_to_device, sync=.false.)
294 call device_memcpy(wlag%lf(2)%x, wlag%lf(2)%x_d, w%dof%size(), &
295 host_to_device, sync=.false.)
297 if (
associated(this%s))
then
298 call device_memcpy(this%s%x, this%s%x_d, this%s%dof%size(), &
299 host_to_device, sync=.false.)
301 call device_memcpy(this%slag%lf(1)%x, this%slag%lf(1)%x_d, &
302 this%s%dof%size(), host_to_device, sync=.false.)
303 call device_memcpy(this%slag%lf(2)%x, this%slag%lf(2)%x_d, &
304 this%s%dof%size(), host_to_device, sync=.false.)
305 call device_memcpy(this%abs1%x, this%abs1%x_d, &
306 w%dof%size(), host_to_device, sync=.false.)
307 call device_memcpy(this%abs2%x, this%abs2%x_d, &
308 w%dof%size(), host_to_device, sync=.false.)
312 if (
allocated(this%scalar_lags%items) .and. this%scalar_lags%size() > 0)
then
313 do i = 1, this%scalar_lags%size()
315 type(field_series_t),
pointer :: slag
316 integer :: slag_size, dof_size
317 slag => this%scalar_lags%get(i)
318 slag_size = slag%size()
319 dof_size = slag%f%dof%size()
321 call device_memcpy(slag%lf(j)%x, slag%lf(j)%x_d, &
322 dof_size, host_to_device, sync=.false.)
329 if (
allocated(this%scalar_abx1) .and.
allocated(this%scalar_abx2))
then
330 do i = 1,
size(this%scalar_abx1)
331 call device_memcpy(this%scalar_abx1(i)%ptr%x, this%scalar_abx1(i)%ptr%x_d, &
332 this%scalar_abx1(i)%ptr%dof%size(), host_to_device, sync=.false.)
333 call device_memcpy(this%scalar_abx2(i)%ptr%x, this%scalar_abx2(i)%ptr%x_d, &
334 this%scalar_abx2(i)%ptr%dof%size(), host_to_device, sync=.false.)