MFEM v4.7.0 Finite element discretization library
Searching...
No Matches
densemat.hpp File Reference

Go to the source code of this file.

## Classes

class  mfem::DenseMatrix
Data type dense matrix using column-major storage. More...

class  mfem::Factors

class  mfem::LUFactors

class  mfem::CholeskyFactors

class  mfem::DenseMatrixInverse

class  mfem::DenseMatrixEigensystem

class  mfem::DenseMatrixGeneralizedEigensystem

class  mfem::DenseMatrixSVD
Class for Singular Value Decomposition of a DenseMatrix. More...

class  mfem::DenseTensor
Rank 3 tensor (array of matrices) More...

namespace  mfem

## Functions

void mfem::Add (const DenseMatrix &A, const DenseMatrix &B, real_t alpha, DenseMatrix &C)
C = A + alpha*B.

void mfem::Add (real_t alpha, const real_t *A, real_t beta, const real_t *B, DenseMatrix &C)
C = alpha*A + beta*B.

void mfem::Add (real_t alpha, const DenseMatrix &A, real_t beta, const DenseMatrix &B, DenseMatrix &C)
C = alpha*A + beta*B.

bool mfem::LinearSolve (DenseMatrix &A, real_t *X, real_t TOL=1.e-9)
Solves the dense linear system, A * X = B for X

void mfem::Mult (const DenseMatrix &b, const DenseMatrix &c, DenseMatrix &a)
Matrix matrix multiplication. A = B * C.

void mfem::AddMult (const DenseMatrix &b, const DenseMatrix &c, DenseMatrix &a)
Matrix matrix multiplication. A += B * C.

void mfem::AddMult_a (real_t alpha, const DenseMatrix &b, const DenseMatrix &c, DenseMatrix &a)
Matrix matrix multiplication. A += alpha * B * C.

Calculate the transposed adjugate of a matrix (for NxN matrices, N=1,2,3)

void mfem::CalcInverse (const DenseMatrix &a, DenseMatrix &inva)

void mfem::CalcInverseTranspose (const DenseMatrix &a, DenseMatrix &inva)
Calculate the inverse transpose of a matrix (for NxN matrices, N=1,2,3)

void mfem::CalcOrtho (const DenseMatrix &J, Vector &n)

void mfem::MultAAt (const DenseMatrix &a, DenseMatrix &aat)
Calculate the matrix A.At.

ADAt = A D A^t, where D is diagonal.

ADAt += A D A^t, where D is diagonal.

void mfem::MultABt (const DenseMatrix &A, const DenseMatrix &B, DenseMatrix &ABt)
Multiply a matrix A with the transpose of a matrix B: A*Bt.

void mfem::MultADBt (const DenseMatrix &A, const Vector &D, const DenseMatrix &B, DenseMatrix &ADBt)
ADBt = A D B^t, where D is diagonal.

void mfem::AddMultABt (const DenseMatrix &A, const DenseMatrix &B, DenseMatrix &ABt)
ABt += A * B^t.

ADBt = A D B^t, where D is diagonal.

void mfem::AddMult_a_ABt (real_t a, const DenseMatrix &A, const DenseMatrix &B, DenseMatrix &ABt)
ABt += a * A * B^t.

void mfem::MultAtB (const DenseMatrix &A, const DenseMatrix &B, DenseMatrix &AtB)
Multiply the transpose of a matrix A with a matrix B: At*B.

void mfem::AddMultAtB (const DenseMatrix &A, const DenseMatrix &B, DenseMatrix &AtB)
AtB += A^t * B.

void mfem::AddMult_a_AtB (real_t a, const DenseMatrix &A, const DenseMatrix &B, DenseMatrix &AtB)
AtB += a * A^t * B.

void mfem::AddMult_a_AAt (real_t a, const DenseMatrix &A, DenseMatrix &AAt)
AAt += a * A * A^t.

void mfem::Mult_a_AAt (real_t a, const DenseMatrix &A, DenseMatrix &AAt)
AAt = a * A * A^t.

void mfem::MultVVt (const Vector &v, DenseMatrix &vvt)
Make a matrix from a vector V.Vt.

void mfem::MultVWt (const Vector &v, const Vector &w, DenseMatrix &VWt)

void mfem::AddMultVWt (const Vector &v, const Vector &w, DenseMatrix &VWt)
VWt += v w^t.

void mfem::AddMultVVt (const Vector &v, DenseMatrix &VWt)
VVt += v v^t.

void mfem::AddMult_a_VWt (const real_t a, const Vector &v, const Vector &w, DenseMatrix &VWt)
VWt += a * v w^t.

void mfem::AddMult_a_VVt (const real_t a, const Vector &v, DenseMatrix &VVt)
VVt += a * v v^t.

void mfem::RAP (const DenseMatrix &A, const DenseMatrix &P, DenseMatrix &RAP)

void mfem::RAP (const DenseMatrix &Rt, const DenseMatrix &A, const DenseMatrix &P, DenseMatrix &RAP)

void mfem::BatchLUFactor (DenseTensor &Mlu, Array< int > &P, const real_t TOL=0.0)
Compute the LU factorization of a batch of matrices.

void mfem::BatchLUSolve (const DenseTensor &Mlu, const Array< int > &P, Vector &X)
Solve batch linear systems.