Neko
0.9.0
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 \). More... | |
subroutine, public | trsp (a, lda, b, ldb) |
Transpose of a rectangular tensor \( A = B^T \). More... | |
subroutine, public | trsp1 (a, n) |
In-place transpose of a square tensor. More... | |
subroutine, public | tnsr2d_el (v, nv, u, nu, A, Bt) |
Computes \( v = A u B^T \). More... | |
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. More... | |
subroutine, public | tnsr3d_el_list (v, nv, u, nu, A, Bt, Ct, el_list, n_pt) |
Tensor product \( v =(C \otimes B \otimes A) u \) performed on a subset of the elements. More... | |
subroutine, public | tnsr3d (v, nv, u, nu, A, Bt, Ct, nelv) |
Tensor product \( v =(C \otimes B \otimes A) u \) performed on nelv elements. More... | |
subroutine, public | tnsr1_3d (v, nv, nu, A, Bt, Ct, nelv) |
In place tensor product \( v =(C \otimes B \otimes A) v \). More... | |
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. More... | |
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. More... | |
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. More... | |
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 90 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 153 of file tensor.f90.
subroutine, public tensor::tnsr3d | ( | real(kind=rp), dimension(nv*nv*nv,nelv), intent(inout) | v, |
integer, intent(inout) | nv, | ||
real(kind=rp), dimension(nu*nu*nu,nelv), intent(inout) | u, | ||
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 | ||
) |
Definition at line 222 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 170 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 | ||
) |
Definition at line 187 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 297 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 333 of file tensor.f90.
subroutine, public tensor::trsp1 | ( | real(kind=rp), dimension(n, n), intent(inout) | a, |
integer, intent(in) | n | ||
) |