Functions | |
template<typename K > | |
static K | invertMatrix (const FieldMatrix< K, 1, 1 > &matrix, FieldMatrix< K, 1, 1 > &inverse) |
invert scalar without changing the original matrix | |
template<typename K > | |
static K | invertMatrix_retTransposed (const FieldMatrix< K, 1, 1 > &matrix, FieldMatrix< K, 1, 1 > &inverse) |
invert scalar without changing the original matrix | |
template<typename K > | |
static K | invertMatrix (const FieldMatrix< K, 2, 2 > &matrix, FieldMatrix< K, 2, 2 > &inverse) |
invert 2x2 Matrix without changing the original matrix | |
template<typename K > | |
static K | invertMatrix_retTransposed (const FieldMatrix< K, 2, 2 > &matrix, FieldMatrix< K, 2, 2 > &inverse) |
template<typename K > | |
static K | invertMatrix (const FieldMatrix< K, 3, 3 > &matrix, FieldMatrix< K, 3, 3 > &inverse) |
invert 3x3 Matrix without changing the original matrix | |
template<typename K > | |
static K | invertMatrix_retTransposed (const FieldMatrix< K, 3, 3 > &matrix, FieldMatrix< K, 3, 3 > &inverse) |
invert 3x3 Matrix without changing the original matrix | |
template<class K , int m, int n, int p> | |
static void | multMatrix (const FieldMatrix< K, m, n > &A, const FieldMatrix< K, n, p > &B, FieldMatrix< K, m, p > &ret) |
calculates ret = A * B | |
template<typename K , int rows, int cols> | |
static void | multTransposedMatrix (const FieldMatrix< K, rows, cols > &matrix, FieldMatrix< K, cols, cols > &ret) |
calculates ret= A_t*A | |
template<typename K , int rows, int cols> | |
static void | multAssignTransposed (const FieldMatrix< K, rows, cols > &matrix, const FieldVector< K, rows > &x, FieldVector< K, cols > &ret) |
calculates ret = matrix^T * x | |
template<typename K , int rows, int cols> | |
static FieldVector< K, rows > | mult (const FieldMatrix< K, rows, cols > &matrix, const FieldVector< K, cols > &x) |
calculates ret = matrix * x | |
template<typename K , int rows, int cols> | |
static FieldVector< K, cols > | multTransposed (const FieldMatrix< K, rows, cols > &matrix, const FieldVector< K, rows > &x) |
calculates ret = matrix^T * x | |
void | eigenValuesLapackCall (const char *jobz, const char *uplo, const long int *n, double *a, const long int *lda, double *w, double *work, const long int *lwork, long int *info) |
void | eigenValuesNonsymLapackCall (const char *jobvl, const char *jobvr, const long int *n, double *a, const long int *lda, double *wr, double *wi, double *vl, const long int *ldvl, double *vr, const long int *ldvr, double *work, const long int *lwork, const long int *info) |
template<typename K > | |
static void | eigenValues (const FieldMatrix< K, 1, 1 > &matrix, FieldVector< K, 1 > &eigenvalues) |
calculates the eigenvalues of a symmetric field matrix | |
template<typename K > | |
static void | eigenValues (const FieldMatrix< K, 2, 2 > &matrix, FieldVector< K, 2 > &eigenvalues) |
calculates the eigenvalues of a symmetric field matrix | |
template<typename K > | |
static void | eigenValues (const FieldMatrix< K, 3, 3 > &matrix, FieldVector< K, 3 > &eigenvalues) |
Calculates the eigenvalues of a symmetric 3x3 field matrix. | |
template<int dim, typename K > | |
static void | eigenValues (const FieldMatrix< K, dim, dim > &matrix, FieldVector< K, dim > &eigenvalues) |
calculates the eigenvalues of a symmetric field matrix | |
template<int dim, typename K , class C > | |
static void | eigenValuesNonSym (const FieldMatrix< K, dim, dim > &matrix, FieldVector< C, dim > &eigenValues) |
calculates the eigenvalues of a symmetric field matrix |
static void Dune::FMatrixHelp::eigenValues | ( | const FieldMatrix< K, dim, dim > & | matrix, | |
FieldVector< K, dim > & | eigenvalues | |||
) | [inline, static] |
calculates the eigenvalues of a symmetric field matrix
[in] | matrix | matrix eigenvalues are calculated for |
[out] | eigenvalues | FieldVector that contains eigenvalues in ascending order |
static void Dune::FMatrixHelp::eigenValues | ( | const FieldMatrix< K, 3, 3 > & | matrix, | |
FieldVector< K, 3 > & | eigenvalues | |||
) | [inline, static] |
Calculates the eigenvalues of a symmetric 3x3 field matrix.
[in] | matrix | matrix eigenvalues are calculated for |
[out] | eigenvalues | Eigenvalues in ascending order |
This implementation was adapted from the pseudo-code (Python?) implementation found on http://en.wikipedia.org/wiki/Eigenvalue_algorithm (retrieved late August 2014). Wikipedia claims to have taken it from Smith, Oliver K. (April 1961), Eigenvalues of a symmetric 3 × 3 matrix., Communications of the ACM 4 (4): 168, doi:10.1145/355578.366316
static void Dune::FMatrixHelp::eigenValues | ( | const FieldMatrix< K, 2, 2 > & | matrix, | |
FieldVector< K, 2 > & | eigenvalues | |||
) | [inline, static] |
calculates the eigenvalues of a symmetric field matrix
[in] | matrix | matrix eigenvalues are calculated for |
[out] | eigenvalues | FieldVector that contains eigenvalues in ascending order |
static void Dune::FMatrixHelp::eigenValues | ( | const FieldMatrix< K, 1, 1 > & | matrix, | |
FieldVector< K, 1 > & | eigenvalues | |||
) | [inline, static] |
calculates the eigenvalues of a symmetric field matrix
[in] | matrix | matrix eigenvalues are calculated for |
[out] | eigenvalues | FieldVector that contains eigenvalues in ascending order |
void Dune::FMatrixHelp::eigenValuesLapackCall | ( | const char * | jobz, | |
const char * | uplo, | |||
const long int * | n, | |||
double * | a, | |||
const long int * | lda, | |||
double * | w, | |||
double * | work, | |||
const long int * | lwork, | |||
long int * | info | |||
) |
static void Dune::FMatrixHelp::eigenValuesNonSym | ( | const FieldMatrix< K, dim, dim > & | matrix, | |
FieldVector< C, dim > & | eigenValues | |||
) | [inline, static] |
calculates the eigenvalues of a symmetric field matrix
[in] | matrix | matrix eigenvalues are calculated for |
[out] | eigenValues | FieldVector that contains eigenvalues in ascending order |
void Dune::FMatrixHelp::eigenValuesNonsymLapackCall | ( | const char * | jobvl, | |
const char * | jobvr, | |||
const long int * | n, | |||
double * | a, | |||
const long int * | lda, | |||
double * | wr, | |||
double * | wi, | |||
double * | vl, | |||
const long int * | ldvl, | |||
double * | vr, | |||
const long int * | ldvr, | |||
double * | work, | |||
const long int * | lwork, | |||
const long int * | info | |||
) |
static K Dune::FMatrixHelp::invertMatrix | ( | const FieldMatrix< K, 3, 3 > & | matrix, | |
FieldMatrix< K, 3, 3 > & | inverse | |||
) | [inline, static] |
invert 3x3 Matrix without changing the original matrix
static K Dune::FMatrixHelp::invertMatrix | ( | const FieldMatrix< K, 2, 2 > & | matrix, | |
FieldMatrix< K, 2, 2 > & | inverse | |||
) | [inline, static] |
invert 2x2 Matrix without changing the original matrix
static K Dune::FMatrixHelp::invertMatrix | ( | const FieldMatrix< K, 1, 1 > & | matrix, | |
FieldMatrix< K, 1, 1 > & | inverse | |||
) | [inline, static] |
invert scalar without changing the original matrix
static K Dune::FMatrixHelp::invertMatrix_retTransposed | ( | const FieldMatrix< K, 3, 3 > & | matrix, | |
FieldMatrix< K, 3, 3 > & | inverse | |||
) | [inline, static] |
invert 3x3 Matrix without changing the original matrix
static K Dune::FMatrixHelp::invertMatrix_retTransposed | ( | const FieldMatrix< K, 2, 2 > & | matrix, | |
FieldMatrix< K, 2, 2 > & | inverse | |||
) | [inline, static] |
invert 2x2 Matrix without changing the original matrix return transposed matrix
static K Dune::FMatrixHelp::invertMatrix_retTransposed | ( | const FieldMatrix< K, 1, 1 > & | matrix, | |
FieldMatrix< K, 1, 1 > & | inverse | |||
) | [inline, static] |
invert scalar without changing the original matrix
static FieldVector<K,rows> Dune::FMatrixHelp::mult | ( | const FieldMatrix< K, rows, cols > & | matrix, | |
const FieldVector< K, cols > & | x | |||
) | [inline, static] |
calculates ret = matrix * x
static void Dune::FMatrixHelp::multAssignTransposed | ( | const FieldMatrix< K, rows, cols > & | matrix, | |
const FieldVector< K, rows > & | x, | |||
FieldVector< K, cols > & | ret | |||
) | [inline, static] |
calculates ret = matrix^T * x
static void Dune::FMatrixHelp::multMatrix | ( | const FieldMatrix< K, m, n > & | A, | |
const FieldMatrix< K, n, p > & | B, | |||
FieldMatrix< K, m, p > & | ret | |||
) | [inline, static] |
calculates ret = A * B
static FieldVector<K,cols> Dune::FMatrixHelp::multTransposed | ( | const FieldMatrix< K, rows, cols > & | matrix, | |
const FieldVector< K, rows > & | x | |||
) | [inline, static] |
calculates ret = matrix^T * x
static void Dune::FMatrixHelp::multTransposedMatrix | ( | const FieldMatrix< K, rows, cols > & | matrix, | |
FieldMatrix< K, cols, cols > & | ret | |||
) | [inline, static] |
calculates ret= A_t*A