MFEM v2.0
Functions
densemat.cpp File Reference
#include <iostream>
#include <iomanip>
#include <math.h>
#include <stdlib.h>
#include "vector.hpp"
#include "matrix.hpp"
#include "densemat.hpp"
Include dependency graph for densemat.cpp:

Go to the source code of this file.

Functions

void dsyevr_Eigensystem (DenseMatrix &a, Vector &ev, DenseMatrix *evect)
void dsyev_Eigensystem (DenseMatrix &a, Vector &ev, DenseMatrix *evect)
void Add (const DenseMatrix &A, const DenseMatrix &B, double alpha, DenseMatrix &C)
 C = A + alpha*B.
void Mult (const DenseMatrix &b, const DenseMatrix &c, DenseMatrix &a)
 Matrix matrix multiplication. A = B * C.
void CalcAdjugate (const DenseMatrix &a, DenseMatrix &adja)
 Calculate the adjugate of a matrix (for 2x2 or 3x3 matrices)
void CalcAdjugateTranspose (const DenseMatrix &a, DenseMatrix &adjat)
 Calculate the transposed adjugate of a matrix (for 2x2 or 3x3 matrices)
void CalcInverse (const DenseMatrix &a, DenseMatrix &inva)
void CalcInverseTranspose (const DenseMatrix &a, DenseMatrix &inva)
 Calculate the inverse transpose of a matrix (for 2x2 or 3x3 matrices)
void MultAAt (const DenseMatrix &a, DenseMatrix &aat)
 Calculate the matrix A.At.
void AddMultADAt (const DenseMatrix &A, const Vector &D, DenseMatrix &ADAt)
 ADAt += A D A^t, where D is diagonal.
void MultADAt (const DenseMatrix &A, const Vector &D, DenseMatrix &ADAt)
 ADAt = A D A^t, where D is diagonal.
void MultABt (const DenseMatrix &A, const DenseMatrix &B, DenseMatrix &ABt)
 Multiply a matrix A with the transpose of a matrix B: A*Bt.
void AddMultABt (const DenseMatrix &A, const DenseMatrix &B, DenseMatrix &ABt)
 ABt += A * B^t.
void MultAtB (const DenseMatrix &A, const DenseMatrix &B, DenseMatrix &AtB)
 Multiply the transpose of a matrix A with a matrix B: At*B.
void AddMult_a_AAt (double a, const DenseMatrix &A, DenseMatrix &AAt)
 AAt += a * A * A^t.
void Mult_a_AAt (double a, const DenseMatrix &A, DenseMatrix &AAt)
 AAt = a * A * A^t.
void MultVVt (const Vector &v, DenseMatrix &vvt)
 Make a matrix from a vector V.Vt.
void MultVWt (const Vector &v, const Vector &w, DenseMatrix &VWt)
void AddMultVWt (const Vector &v, const Vector &w, DenseMatrix &VWt)
 VWt += v w^t.
void AddMult_a_VVt (const double a, const Vector &v, DenseMatrix &VVt)
 VVt += a * v v^t.

Function Documentation

void Add ( const DenseMatrix A,
const DenseMatrix B,
double  alpha,
DenseMatrix C 
)

C = A + alpha*B.

Definition at line 1795 of file densemat.cpp.

References DenseMatrix::Height(), and Operator::Size().

Referenced by aGMRES(), and GMRES().

void AddMult_a_AAt ( double  a,
const DenseMatrix A,
DenseMatrix AAt 
)
void AddMult_a_VVt ( const double  a,
const Vector v,
DenseMatrix VVt 
)
void AddMultABt ( const DenseMatrix A,
const DenseMatrix B,
DenseMatrix ABt 
)
void AddMultADAt ( const DenseMatrix A,
const Vector D,
DenseMatrix ADAt 
)

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

Definition at line 2032 of file densemat.cpp.

References DenseMatrix::Height(), and DenseMatrix::Width().

Referenced by VectorFEMassIntegrator::AssembleElementMatrix().

void AddMultVWt ( const Vector v,
const Vector w,
DenseMatrix VWt 
)
void CalcAdjugate ( const DenseMatrix a,
DenseMatrix adja 
)

Calculate the adjugate of a matrix (for 2x2 or 3x3 matrices)

Definition at line 1838 of file densemat.cpp.

References DenseMatrix::Height(), mfem_error(), and Operator::Size().

Referenced by VectorDivergenceIntegrator::AssembleElementMatrix2(), and VectorFiniteElement::Project_RT().

void CalcAdjugateTranspose ( const DenseMatrix a,
DenseMatrix adjat 
)
void CalcInverse ( const DenseMatrix a,
DenseMatrix inva 
)
void CalcInverseTranspose ( const DenseMatrix a,
DenseMatrix inva 
)

Calculate the inverse transpose of a matrix (for 2x2 or 3x3 matrices)

Definition at line 1983 of file densemat.cpp.

References DenseMatrix::Det(), DenseMatrix::Height(), mfem_error(), and Operator::Size().

void dsyev_Eigensystem ( DenseMatrix a,
Vector ev,
DenseMatrix evect 
)
void dsyevr_Eigensystem ( DenseMatrix a,
Vector ev,
DenseMatrix evect 
)
void Mult ( const DenseMatrix b,
const DenseMatrix c,
DenseMatrix a 
)

Matrix matrix multiplication. A = B * C.

Definition at line 1804 of file densemat.cpp.

References DenseMatrix::data, DenseMatrix::height, mfem_error(), and Operator::size.

void Mult_a_AAt ( double  a,
const DenseMatrix A,
DenseMatrix AAt 
)

AAt = a * A * A^t.

Definition at line 2247 of file densemat.cpp.

References DenseMatrix::Height(), and DenseMatrix::Width().

void MultAAt ( const DenseMatrix a,
DenseMatrix aat 
)

Calculate the matrix A.At.

Definition at line 2020 of file densemat.cpp.

References DenseMatrix::Height(), and Operator::Size().

Referenced by ElasticityIntegrator::AssembleElementMatrix(), and VectorDiffusionIntegrator::AssembleElementMatrix().

void MultABt ( const DenseMatrix A,
const DenseMatrix B,
DenseMatrix ABt 
)
void MultADAt ( const DenseMatrix A,
const Vector D,
DenseMatrix ADAt 
)

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

Definition at line 2056 of file densemat.cpp.

References DenseMatrix::Height(), and DenseMatrix::Width().

void MultAtB ( const DenseMatrix A,
const DenseMatrix B,
DenseMatrix AtB 
)

Multiply the transpose of a matrix A with a matrix B: At*B.

Definition at line 2174 of file densemat.cpp.

References DenseMatrix::Data(), DenseMatrix::Height(), mfem_error(), Operator::Size(), and DenseMatrix::Width().

void MultVVt ( const Vector v,
DenseMatrix vvt 
)

Make a matrix from a vector V.Vt.

Definition at line 2259 of file densemat.cpp.

References Vector::Size().

Referenced by VectorMassIntegrator::AssembleElementMatrix().

void MultVWt ( const Vector v,
const Vector w,
DenseMatrix VWt 
)

Definition at line 2268 of file densemat.cpp.

References DenseMatrix::Height(), mfem_error(), Operator::Size(), and Vector::Size().

 All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Defines