MFEM
v4.5.1
Finite element discretization library
|
Go to the source code of this file.
Namespaces | |
mfem | |
mfem::kernels | |
Functions | |
template<int dim> | |
MFEM_HOST_DEVICE double | mfem::kernels::DistanceSquared (const double *x, const double *y) |
Compute the square of the Euclidean distance to another vector. More... | |
template<int dim> | |
MFEM_HOST_DEVICE void | mfem::kernels::Diag (const double c, double *data) |
Creates n x n diagonal matrix with diagonal elements c. More... | |
template<int dim> | |
MFEM_HOST_DEVICE void | mfem::kernels::Subtract (const double a, const double *x, const double *y, double *z) |
Vector subtraction operation: z = a * (x - y) More... | |
template<int dim> | |
MFEM_HOST_DEVICE void | mfem::kernels::AddMultVWt (const double *v, const double *w, double *VWt) |
Dense matrix operation: VWt += v w^t. More... | |
template<int H, int W, typename T > | |
MFEM_HOST_DEVICE void | mfem::kernels::FNorm (double &scale_factor, double &scaled_fnorm2, const T *data) |
template<int H, int W, typename T > | |
MFEM_HOST_DEVICE double | mfem::kernels::FNorm (const T *data) |
Compute the Frobenius norm of the matrix. More... | |
template<int H, int W, typename T > | |
MFEM_HOST_DEVICE double | mfem::kernels::FNorm2 (const T *data) |
Compute the square of the Frobenius norm of the matrix. More... | |
template<typename T > | |
MFEM_HOST_DEVICE double | mfem::kernels::Norml2 (const int size, const T *data) |
Returns the l2 norm of the Vector with given size and data. More... | |
template<typename TA , typename TX , typename TY > | |
MFEM_HOST_DEVICE void | mfem::kernels::Mult (const int height, const int width, const TA *data, const TX *x, TY *y) |
Matrix vector multiplication: y = A x, where the matrix A is of size height x width with given data, while x and y specify the data of the input and output vectors. More... | |
template<typename TA , typename TX , typename TY > | |
MFEM_HOST_DEVICE void | mfem::kernels::MultTranspose (const int height, const int width, const TA *data, const TX *x, TY *y) |
Matrix transpose vector multiplication: y = At x, where the matrix A is of size height x width with given data, while x and y specify the data of the input and output vectors. More... | |
template<typename T > | |
MFEM_HOST_DEVICE void | mfem::kernels::Symmetrize (const int size, T *data) |
Symmetrize a square matrix with given size and data: A -> (A+A^T)/2. More... | |
template<int dim, typename T > | |
MFEM_HOST_DEVICE T | mfem::kernels::Det (const T *data) |
Compute the determinant of a square matrix of size dim with given data. More... | |
template<int dim, typename T > | |
MFEM_HOST_DEVICE void | mfem::kernels::CalcInverse (const T *data, T *inv_data) |
Return the inverse of a matrix with given size and data into the matrix with data inv_data. More... | |
template<int dim, typename T > | |
MFEM_HOST_DEVICE void | mfem::kernels::CalcAdjugate (const T *data, T *adj_data) |
Return the adjugate of a matrix. More... | |
template<typename TALPHA , typename TA , typename TB , typename TC > | |
MFEM_HOST_DEVICE void | mfem::kernels::Add (const int height, const int width, const TALPHA alpha, const TA *Adata, const TB *Bdata, TC *Cdata) |
Compute C = A + alpha*B, where the matrices A, B and C are of size height x width with data Adata, Bdata and Cdata. More... | |
template<typename TALPHA , typename TBETA , typename TA , typename TB , typename TC > | |
MFEM_HOST_DEVICE void | mfem::kernels::Add (const int height, const int width, const TALPHA alpha, const TA *Adata, const TBETA beta, const TB *Bdata, TC *Cdata) |
Compute C = alpha*A + beta*B, where the matrices A, B and C are of size height x width with data Adata, Bdata and Cdata. More... | |
template<typename TA , typename TB > | |
MFEM_HOST_DEVICE void | mfem::kernels::Add (const int height, const int width, const TA *Adata, TB *Bdata) |
Compute B += A, where the matrices A and B are of size height x width with data Adata and Bdata. More... | |
template<typename TA , typename TB > | |
MFEM_HOST_DEVICE void | mfem::kernels::Add (const int height, const int width, const double alpha, const TA *Adata, TB *Bdata) |
Compute B +=alpha*A, where the matrices A and B are of size height x width with data Adata and Bdata. More... | |
template<typename TA , typename TB > | |
MFEM_HOST_DEVICE void | mfem::kernels::Set (const int height, const int width, const double alpha, const TA *Adata, TB *Bdata) |
Compute B = alpha*A, where the matrices A and B are of size height x width with data Adata and Bdata. More... | |
template<typename TA , typename TB , typename TC > | |
MFEM_HOST_DEVICE void | mfem::kernels::Mult (const int Aheight, const int Awidth, const int Bwidth, const TB *Bdata, const TC *Cdata, TA *Adata) |
Matrix-matrix multiplication: A = B * C, where the matrices A, B and C are of sizes Aheight x Awidth, Aheight x Bwidth and Bwidth x Awidth, respectively. More... | |
template<typename TA , typename TB , typename TC > | |
MFEM_HOST_DEVICE void | mfem::kernels::MultABt (const int Aheight, const int Awidth, const int Bheight, const TA *Adata, const TB *Bdata, TC *ABtdata) |
Multiply a matrix of size Aheight x Awidth and data Adata with the transpose of a matrix of size Bheight x Awidth and data Bdata: A * Bt. Return the result in a matrix with data ABtdata. More... | |
template<typename TA , typename TB , typename TC > | |
MFEM_HOST_DEVICE void | mfem::kernels::MultAtB (const int Aheight, const int Awidth, const int Bwidth, const TA *Adata, const TB *Bdata, TC *AtBdata) |
Multiply the transpose of a matrix of size Aheight x Awidth and data Adata with a matrix of size Aheight x Bwidth and data Bdata: At * B. Return the result in a matrix with data AtBdata. More... | |
template<int dim> | |
MFEM_HOST_DEVICE void | mfem::kernels::CalcEigenvalues (const double *data, double *lambda, double *vec) |
template<int dim> | |
MFEM_HOST_DEVICE double | mfem::kernels::CalcSingularvalue (const double *data, const int i) |
Return the i'th singular value of the matrix of size dim with given data. More... | |
template<> | |
MFEM_HOST_DEVICE void | mfem::kernels::CalcEigenvalues< 2 > (const double *data, double *lambda, double *vec) |
template<> | |
MFEM_HOST_DEVICE void | mfem::kernels::CalcEigenvalues< 3 > (const double *data, double *lambda, double *vec) |
template<> | |
MFEM_HOST_DEVICE double | mfem::kernels::CalcSingularvalue< 2 > (const double *data, const int i) |
Return the i'th singular value of the matrix of size 2 with given data. More... | |
template<> | |
MFEM_HOST_DEVICE double | mfem::kernels::CalcSingularvalue< 3 > (const double *data, const int i) |
Return the i'th singular value of the matrix of size 3 with given data. More... | |
MFEM_HOST_DEVICE void | mfem::kernels::LUSolve (const double *data, const int m, const int *ipiv, double *x) |
Assuming L.U = P.A for a factored matrix (m x m),. More... | |