166 class(
chkp_t),
intent(inout) :: this
170 associate(u=>this%u, v=>this%v, w=>this%w, &
171 ulag=>this%ulag, vlag=>this%vlag, wlag=>this%wlag, &
174 if (
associated(this%u) .and.
associated(this%v) .and. &
175 associated(this%w) .and.
associated(this%p))
then
182 if (
associated(this%ulag) .and.
associated(this%vlag) .and. &
183 associated(this%wlag))
then
211 if (
associated(this%s))
then
225 if (
allocated(this%scalar_lags%items) .and. this%scalar_lags%size() > 0)
then
226 do i = 1, this%scalar_lags%size()
229 integer :: slag_size, dof_size
230 slag => this%scalar_lags%get(i)
231 slag_size = slag%size()
232 dof_size = slag%f%dof%size()
242 if (
allocated(this%scalar_abx1) .and.
allocated(this%scalar_abx2))
then
243 do i = 1,
size(this%scalar_abx1)
244 call device_memcpy(this%scalar_abx1(i)%ptr%x, this%scalar_abx1(i)%ptr%x_d, &
246 call device_memcpy(this%scalar_abx2(i)%ptr%x, this%scalar_abx2(i)%ptr%x_d, &
251 call device_sync(glb_cmd_queue)
258 class(
chkp_t),
intent(inout) :: this
261 if (neko_bcknd_device .eq. 1)
then
262 associate(u=>this%u, v=>this%v, w=>this%w, &
263 ulag=>this%ulag, vlag=>this%vlag, wlag=>this%wlag,&
266 if (
associated(this%u) .and.
associated(this%v) .and. &
267 associated(this%w))
then
268 call device_memcpy(u%x, u%x_d, u%dof%size(), &
269 host_to_device, sync=.false.)
270 call device_memcpy(v%x, v%x_d, v%dof%size(), &
271 host_to_device, sync=.false.)
272 call device_memcpy(w%x, w%x_d, w%dof%size(), &
273 host_to_device, sync=.false.)
274 call device_memcpy(p%x, p%x_d, p%dof%size(), &
275 host_to_device, sync=.false.)
278 if (
associated(this%ulag) .and.
associated(this%vlag) .and. &
279 associated(this%wlag))
then
280 call device_memcpy(ulag%lf(1)%x, ulag%lf(1)%x_d, u%dof%size(), &
281 host_to_device, sync=.false.)
282 call device_memcpy(ulag%lf(2)%x, ulag%lf(2)%x_d, u%dof%size(), &
283 host_to_device, sync=.false.)
285 call device_memcpy(vlag%lf(1)%x, vlag%lf(1)%x_d, v%dof%size(), &
286 host_to_device, sync=.false.)
287 call device_memcpy(vlag%lf(2)%x, vlag%lf(2)%x_d, v%dof%size(), &
288 host_to_device, sync=.false.)
290 call device_memcpy(wlag%lf(1)%x, wlag%lf(1)%x_d, w%dof%size(), &
291 host_to_device, sync=.false.)
292 call device_memcpy(wlag%lf(2)%x, wlag%lf(2)%x_d, w%dof%size(), &
293 host_to_device, sync=.false.)
295 if (
associated(this%s))
then
296 call device_memcpy(this%s%x, this%s%x_d, this%s%dof%size(), &
297 host_to_device, sync=.false.)
299 call device_memcpy(this%slag%lf(1)%x, this%slag%lf(1)%x_d, &
300 this%s%dof%size(), host_to_device, sync=.false.)
301 call device_memcpy(this%slag%lf(2)%x, this%slag%lf(2)%x_d, &
302 this%s%dof%size(), host_to_device, sync=.false.)
303 call device_memcpy(this%abs1%x, this%abs1%x_d, &
304 w%dof%size(), host_to_device, sync=.false.)
305 call device_memcpy(this%abs2%x, this%abs2%x_d, &
306 w%dof%size(), host_to_device, sync=.false.)
310 if (
allocated(this%scalar_lags%items) .and. this%scalar_lags%size() > 0)
then
311 do i = 1, this%scalar_lags%size()
313 type(field_series_t),
pointer :: slag
314 integer :: slag_size, dof_size
315 slag => this%scalar_lags%get(i)
316 slag_size = slag%size()
317 dof_size = slag%f%dof%size()
319 call device_memcpy(slag%lf(j)%x, slag%lf(j)%x_d, &
320 dof_size, host_to_device, sync=.false.)
327 if (
allocated(this%scalar_abx1) .and.
allocated(this%scalar_abx2))
then
328 do i = 1,
size(this%scalar_abx1)
329 call device_memcpy(this%scalar_abx1(i)%ptr%x, this%scalar_abx1(i)%ptr%x_d, &
330 this%scalar_abx1(i)%ptr%dof%size(), host_to_device, sync=.false.)
331 call device_memcpy(this%scalar_abx2(i)%ptr%x, this%scalar_abx2(i)%ptr%x_d, &
332 this%scalar_abx2(i)%ptr%dof%size(), host_to_device, sync=.false.)