Neko 0.9.99
A portable framework for high-order spectral element flow simulations
Loading...
Searching...
No Matches
tensor Module Reference

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)
 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.
 

Function/Subroutine Documentation

◆ addtnsr()

subroutine, public tensor::addtnsr ( real(kind=rp), dimension(nx, ny, nz), intent(inout s,
real(kind=rp), dimension(nx), intent(in h1,
real(kind=rp), dimension(ny), intent(in h2,
real(kind=rp), dimension(nz), intent(in h3,
integer, intent(in nx,
integer, intent(in ny,
integer, intent(in nz 
)

Definition at line 265 of file tensor.f90.

Here is the caller graph for this function:

◆ tensr3()

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 
)
Todo:
Add 2d case

Definition at line 90 of file tensor.f90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ tnsr1_3d()

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 
)

Definition at line 248 of file tensor.f90.

Here is the call graph for this function:

◆ tnsr2d_el()

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.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ tnsr3d()

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 222 of file tensor.f90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ tnsr3d_el()

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.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ tnsr3d_el_list()

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.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ triple_tensor_product_scalar()

subroutine tensor::triple_tensor_product_scalar ( real(kind=rp), intent(inout v,
real(kind=rp), dimension(nu,nu,nu), intent(inout u,
integer, intent(in nu,
real(kind=rp), dimension(nu), intent(inout hr,
real(kind=rp), dimension(nu), intent(inout hs,
real(kind=rp), dimension(nu), intent(inout ht 
)
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*}

Parameters
vInterpolated value (scalar).
uField values at the GLL points (e.g. velocity in x-direction).
nuSize of the interpolation weights (usually lx).
HrInterpolation weights in the r-direction.
HsInterpolation weights in the s-direction.
HtInterpolation weights in the t-direction.

Definition at line 298 of file tensor.f90.

Here is the caller graph for this function:

◆ triple_tensor_product_vector()

subroutine tensor::triple_tensor_product_vector ( real(kind=rp), dimension(3), intent(inout v,
real(kind=rp), dimension(nu,nu,nu), intent(inout u1,
real(kind=rp), dimension(nu,nu,nu), intent(inout u2,
real(kind=rp), dimension(nu,nu,nu), intent(inout u3,
integer, intent(in nu,
real(kind=rp), dimension(nu), intent(inout hr,
real(kind=rp), dimension(nu), intent(inout hs,
real(kind=rp), dimension(nu), intent(inout ht 
)
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*}

Parameters
vInterpolated value (scalar).
u13D-array containing values at the GLL points (e.g. velocity).
u23D-array containing values at the GLL points (e.g. velocity).
u33D-array containing values at the GLL points (e.g. velocity).
nuSize of the interpolation weights (usually lx).
HrInterpolation weights in the r-direction.
HsInterpolation weights in the s-direction.
HtInterpolation weights in the t-direction.

Definition at line 334 of file tensor.f90.

◆ trsp()

subroutine, public tensor::trsp ( real(kind=rp), dimension(lda, ldb), intent(inout a,
integer, intent(in lda,
real(kind=rp), dimension(ldb, lda), intent(in b,
integer, intent(in ldb 
)

Definition at line 120 of file tensor.f90.

Here is the caller graph for this function:

◆ trsp1()

subroutine, public tensor::trsp1 ( real(kind=rp), dimension(n, n), intent(inout a,
integer, intent(in n 
)

Definition at line 136 of file tensor.f90.

Here is the caller graph for this function: