10 integer,
intent(in) :: nl, nelv, ldim
11 real(kind=
rp),
intent(inout) :: e(nl**ldim, nelv)
12 real(kind=
rp),
intent(inout) :: r(nl**ldim, nelv)
13 real(kind=
rp),
intent(inout) :: s(nl*nl,2,ldim, nelv)
14 real(kind=
rp),
intent(inout) :: d(nl**ldim, nelv)
18 if(.not. ldim .eq. 3)
then
20 call tnsr2d_el_xsmm(e(1,ie), nl, r(1,ie), nl, s(1,2,1,ie), s(1,1,2,ie))
22 r(i,ie) = d(i,ie) * e(i,ie)
24 call tnsr2d_el_xsmm(e(1,ie), nl, r(1,ie), nl, s(1,1,1,ie), s(1,2,2,ie))
29 s(1,2,1,ie), s(1,1,2,ie), s(1,1,3,ie))
31 r(i,ie) = d(i,ie) * e(i,ie)
34 s(1,1,1,ie), s(1,2,2,ie), s(1,2,3,ie))
Fast Diagonalization libxsmm backend.
subroutine fdm_do_fast_xsmm(e, r, s, d, nl, ldim, nelv)
integer, parameter, public rp
Global precision used in computations.
Tensor operations libxsmm backend.
subroutine, public tnsr3d_el_xsmm(v, nv, u, nu, A, Bt, Ct)
subroutine, public tnsr2d_el_xsmm(v, nv, u, nu, A, Bt)