42 use,
intrinsic :: iso_c_binding
69 integer,
intent(in),
target :: order
96 real(kind=
rp),
intent(inout) :: t, t_past, t_future
97 type(
field_t),
intent(inout) :: f, f_past, f_future
98 real(kind=
rp) :: w_past, w_future
101 if (this%order .eq. 2)
then
104 w_past = ( t_future - t ) / ( t_future - t_past )
105 w_future = ( t - t_past ) / ( t_future - t_past )
111 call add3s2(f%x, f_past%x, f_future%x, w_past, w_future, n)
115 call neko_error(
"Time interpolation of required order &
116 &is not implemented")
130 real(kind=
rp),
intent(in) :: t
131 integer,
intent(in) :: n
133 type(
field_t),
intent(inout) :: f_interpolated
134 real(kind=
rp),
dimension(0:this%order),
intent(in) :: tlag
135 type(c_ptr) :: f_interpolated_d
138 real(kind=
rp),
dimension(0:this%order - 1) :: wt
144 call device_add4s3(f_interpolated%x_d, f_n%f%x_d, f_n%lf(1)%x_d, &
145 f_n%lf(2)%x_d, wt(0), wt(1), wt(2), n)
147 call add4s3(f_interpolated%x, f_n%f%x, f_n%lf(1)%x, f_n%lf(2)%x, &
148 wt(0), wt(1), wt(2), n)
subroutine, public device_add4s3(a_d, b_d, c_d, d_d, c1, c2, c3, n, strm)
Returns .
subroutine, public device_add3s2(a_d, b_d, c_d, c1, c2, n, strm)
Returns .
Fast diagonalization methods from NEKTON.
subroutine, public fd_weights_full(xi, x, n, m, c)
Compute finite-difference stencil weights for evaluating derivatives up to order at a point.
Contains the field_serties_t type.
subroutine, public add3s2(a, b, c, c1, c2, n)
Returns .
subroutine, public add4s3(a, b, c, d, c1, c2, c3, n)
Returns .
integer, parameter neko_bcknd_device
integer, parameter, public rp
Global precision used in computations.
Implements type time_interpolator_t.
subroutine time_interpolator_interpolate(this, t, f, t_past, f_past, t_future, f_future)
Interpolate a field at time t from fields at time t-dt and t+dt.
subroutine time_interpolator_free(this)
Destructor.
subroutine time_interpolator_init(this, order)
Constructor.
subroutine time_interpolator_scalar(this, t, f_interpolated, f_n, tlag, n)
Interpolate a scalar field at time t from known scalar fields at different time steps.
Stores a series (sequence) of fields, logically connected to a base field, and arranged according to ...
Provides a tool to perform interpolation in time.