| 
    Neko 1.99.1
    
   A portable framework for high-order spectral element flow simulations 
   | 
 
Tensor operations.
Data Types | |
| interface | transpose | 
| interface | triple_tensor_product | 
Functions/Subroutines | |
| subroutine, public | tensr3 (v, nv, u, nu, a, bt, ct, w) | 
| Tensor product \( v =(C \otimes B \otimes A) u \).   | |
| subroutine, public | trsp (a, lda, b, ldb) | 
| Transpose of a rectangular tensor \( A = B^T \).   | |
| subroutine, public | trsp1 (a, n) | 
| In-place transpose of a square tensor.   | |
| subroutine, public | tnsr2d_el (v, nv, u, nu, a, bt) | 
| Computes \( v = A u B^T \).   | |
| subroutine, public | tnsr3d_el (v, nv, u, nu, a, bt, ct) | 
| Tensor product \( v =(C \otimes B \otimes A) u \) performed on a single element.   | |
| subroutine, public | tnsr3d_el_list (v, nv, u, nu, a, bt, ct, el_list, n_pt, on_host) | 
| Tensor product \( v =(C \otimes B \otimes A) u \) performed on a subset of the elements.   | |
| subroutine, public | tnsr3d (v, nv, u, nu, a, bt, ct, nelv) | 
Tensor product \( v =(C \otimes B \otimes A) u \) performed on nelv elements.   | |
| subroutine, public | tnsr1_3d (v, nv, nu, a, bt, ct, nelv) | 
| In place tensor product \( v =(C \otimes B \otimes A) v \).   | |
| subroutine, public | addtnsr (s, h1, h2, h3, nx, ny, nz) | 
| Maps and adds to S a tensor product form of the three functions H1,H2,H3. This is a single element routine used for deforming geometry.   | |
| subroutine | triple_tensor_product_scalar (v, u, nu, hr, hs, ht) | 
| Computes the tensor product \( v =(H_t \otimes H_s \otimes H_r) u \). This operation is usually performed for spectral interpolation of a scalar field as defined by.   | |
| subroutine | triple_tensor_product_vector (v, u1, u2, u3, nu, hr, hs, ht) | 
| Computes the tensor product on a vector field \( \mathbf{v} =(H_t \otimes H_s \otimes H_r) \mathbf{u} \). This operation is usually performed for spectral interpolation on a 3D vector field \( \mathbf{u} = (u_1,u_2,u_3) \) as defined by.   | |
| subroutine, public tensor::tensr3 | ( | real(kind=rp), dimension(nv, nv, nv), intent(inout) | v, | 
| integer | nv, | ||
| real(kind=rp), dimension(nu, nu, nu), intent(inout) | u, | ||
| integer | nu, | ||
| real(kind=rp), dimension(nv, nu), intent(inout) | a, | ||
| real(kind=rp), dimension(nu, nv), intent(inout) | bt, | ||
| real(kind=rp), dimension(nu, nv), intent(inout) | ct, | ||
| real(kind=rp), dimension(nu*nu*nv), intent(inout) | w | ||
| ) | 
Definition at line 93 of file tensor.f90.


| subroutine, public tensor::tnsr1_3d | ( | real(kind=rp), dimension(nv*nv*nv*nelv), intent(inout) | v, | 
| integer, intent(inout) | nv, | ||
| integer, intent(inout) | nu, | ||
| real(kind=rp), dimension(nv,nu), intent(inout) | a, | ||
| real(kind=rp), dimension(nu, nv), intent(inout) | bt, | ||
| real(kind=rp), dimension(nu,nv), intent(inout) | ct, | ||
| integer, intent(inout) | nelv | ||
| ) | 
| subroutine, public tensor::tnsr2d_el | ( | real(kind=rp), dimension(nv*nv), intent(inout) | v, | 
| integer, intent(in) | nv, | ||
| real(kind=rp), dimension(nu*nu), intent(inout) | u, | ||
| integer, intent(in) | nu, | ||
| real(kind=rp), dimension(nv, nu), intent(inout) | a, | ||
| real(kind=rp), dimension(nu, nv), intent(inout) | bt | ||
| ) | 
Definition at line 156 of file tensor.f90.


| subroutine, public tensor::tnsr3d | ( | real(kind=rp), dimension(nv*nv*nv,nelv), intent(inout) | v, | 
| integer, intent(in) | nv, | ||
| real(kind=rp), dimension(nu*nu*nu,nelv), intent(in) | u, | ||
| integer, intent(in) | nu, | ||
| real(kind=rp), dimension(nv,nu), intent(in) | a, | ||
| real(kind=rp), dimension(nu, nv), intent(in) | bt, | ||
| real(kind=rp), dimension(nu,nv), intent(in) | ct, | ||
| integer, intent(in) | nelv | ||
| ) | 
Definition at line 233 of file tensor.f90.


| subroutine, public tensor::tnsr3d_el | ( | real(kind=rp), dimension(nv*nv*nv), intent(inout) | v, | 
| integer, intent(in) | nv, | ||
| real(kind=rp), dimension(nu*nu*nu), intent(inout) | u, | ||
| integer, intent(in) | nu, | ||
| real(kind=rp), dimension(nv,nu), intent(inout) | a, | ||
| real(kind=rp), dimension(nu, nv), intent(inout) | bt, | ||
| real(kind=rp), dimension(nu,nv), intent(inout) | ct | ||
| ) | 
Definition at line 173 of file tensor.f90.


| subroutine, public tensor::tnsr3d_el_list | ( | real(kind=rp), dimension(nv*nv*nv, n_pt), intent(inout) | v, | 
| integer, intent(in) | nv, | ||
| real(kind=rp), dimension(nu*nu*nu, 1), intent(inout) | u, | ||
| integer, intent(in) | nu, | ||
| real(kind=rp), dimension(nv, nu, n_pt), intent(inout) | a, | ||
| real(kind=rp), dimension(nu, nv, n_pt), intent(inout) | bt, | ||
| real(kind=rp), dimension(nu, nv, n_pt), intent(inout) | ct, | ||
| integer, dimension(n_pt), intent(in) | el_list, | ||
| integer, intent(in) | n_pt, | ||
| logical, intent(in) | on_host | ||
| ) | 
Definition at line 190 of file tensor.f90.


      
  | 
  private | 
\begin{eqnarray*} v(r,s,t) = \sum_{i=0}^{N}{\sum_{j=0}^{N}{ \sum_{k=0}^{N}{u_{ijk}h_i(r)h_j(s)h_k(t)}}} \end{eqnarray*}
| v | Interpolated value (scalar). | 
| u | Field values at the GLL points (e.g. velocity in x-direction). | 
| nu | Size of the interpolation weights (usually lx).  | 
| Hr | Interpolation weights in the r-direction. | 
| Hs | Interpolation weights in the s-direction. | 
| Ht | Interpolation weights in the t-direction. | 
Definition at line 312 of file tensor.f90.

      
  | 
  private | 
\begin{eqnarray*} \mathbf{v}(r,s,t) = \sum_{i=0}^{N}{\sum_{j=0}^{N}{ \sum_{k=0}^{N}{\mathbf{u}_{ijk}h_i(r)h_j(s)h_k(t)}}} \end{eqnarray*}
| v | Interpolated value (scalar). | 
| u1 | 3D-array containing values at the GLL points (e.g. velocity). | 
| u2 | 3D-array containing values at the GLL points (e.g. velocity). | 
| u3 | 3D-array containing values at the GLL points (e.g. velocity). | 
| nu | Size of the interpolation weights (usually lx).  | 
| Hr | Interpolation weights in the r-direction. | 
| Hs | Interpolation weights in the s-direction. | 
| Ht | Interpolation weights in the t-direction. | 
Definition at line 348 of file tensor.f90.