svMultiPhysics
|
The classes defined here duplicate the data structures in the Fortran MATFUN module defined in MATFUN.f. More...
Functions | |
double | mat_ddot (const Array< double > &A, const Array< double > &B, const int nd) |
Double dot product of 2 square matrices. More... | |
double | mat_det (const Array< double > &A, const int nd) |
Array< double > | mat_dev (const Array< double > &A, const int nd) |
Array< double > | mat_dyad_prod (const Vector< double > &u, const Vector< double > &v, const int nd) |
Create a matrix from outer product of two vectors. More... | |
Array< double > | mat_id (const int nd) |
Array< double > | mat_inv (const Array< double > &A, const int nd, bool debug) |
This function computes inverse of a square matrix. More... | |
Array< double > | mat_inv_ge (const Array< double > &Ain, const int n, bool debug) |
This function computes inverse of a square matrix using Gauss Elimination method. More... | |
Array< double > | mat_inv_ge_orig (const Array< double > &A, const int nd, bool debug) |
This function computes inverse of a square matrix using Gauss Elimination method. More... | |
Array< double > | mat_inv_lp (const Array< double > &A, const int nd) |
This function computes inverse of a square matrix using Lapack functions (DGETRF + DGETRI) More... | |
Array< double > | mat_inv_lp_eigen (const Array< double > &A, const int nd) |
not used, just a test. More... | |
Vector< double > | mat_mul (const Array< double > &A, const Vector< double > &v) |
Multiply a matrix by a vector. More... | |
Array< double > | mat_mul (const Array< double > &A, const Array< double > &B) |
Multiply a matrix by a matrix. More... | |
void | mat_mul (const Array< double > &A, const Array< double > &B, Array< double > &result) |
Multiply a matrix by a matrix. More... | |
Array< double > | mat_symm (const Array< double > &A, const int nd) |
Symmetric part of a matrix, S = (A + A.T)/2. More... | |
Array< double > | mat_symm_prod (const Vector< double > &u, const Vector< double > &v, const int nd) |
Create a matrix from symmetric product of two vectors. More... | |
double | mat_trace (const Array< double > &A, const int nd) |
Trace of second order matrix of rank nd. More... | |
Tensor4< double > | ten_asym_prod12 (const Array< double > &A, const Array< double > &B, const int nd) |
Create a 4th order tensor from antisymmetric outer product of two matrices. More... | |
Tensor4< double > | ten_ddot (const Tensor4< double > &A, const Tensor4< double > &B, const int nd) |
Double dot product of 2 4th order tensors T_ijkl = A_ijmn * B_klmn. More... | |
Tensor4< double > | ten_ddot_2412 (const Tensor4< double > &A, const Tensor4< double > &B, const int nd) |
T_ijkl = A_imjn * B_mnkl. More... | |
Tensor4< double > | ten_ddot_3424 (const Tensor4< double > &A, const Tensor4< double > &B, const int nd) |
void | ten_init (const int nd) |
Initialize tensor index pointer. More... | |
Tensor4< double > | ten_dyad_prod (const Array< double > &A, const Array< double > &B, const int nd) |
Create a 4th order tensor from outer product of two matrices. More... | |
Tensor4< double > | ten_ids (const int nd) |
Create a 4th order order symmetric identity tensor. More... | |
Array< double > | ten_mddot (const Tensor4< double > &A, const Array< double > &B, const int nd) |
Double dot product of a 4th order tensor and a 2nd order tensor. More... | |
Tensor4< double > | ten_symm_prod (const Array< double > &A, const Array< double > &B, const int nd) |
Create a 4th order tensor from symmetric outer product of two matrices. More... | |
Tensor4< double > | ten_transpose (const Tensor4< double > &A, const int nd) |
Array< double > | transpose (const Array< double > &A) |
Reproduces Fortran TRANSPOSE. More... | |
void | mat_mul6x3 (const Array< double > &A, const Array< double > &B, Array< double > &C) |
Variables | |
Array< int > | t_ind |
The classes defined here duplicate the data structures in the Fortran MATFUN module defined in MATFUN.f.
This module defines data structures for generally performed matrix and tensor operations.
double mat_fun::mat_ddot | ( | const Array< double > & | A, |
const Array< double > & | B, | ||
const int | nd | ||
) |
Double dot product of 2 square matrices.
Array< double > mat_fun::mat_dyad_prod | ( | const Vector< double > & | u, |
const Vector< double > & | v, | ||
const int | nd | ||
) |
Create a matrix from outer product of two vectors.
Array< double > mat_fun::mat_inv | ( | const Array< double > & | A, |
const int | nd, | ||
bool | debug | ||
) |
This function computes inverse of a square matrix.
Array< double > mat_fun::mat_inv_ge | ( | const Array< double > & | Ain, |
const int | n, | ||
bool | debug | ||
) |
This function computes inverse of a square matrix using Gauss Elimination method.
Array<double> mat_fun::mat_inv_ge_orig | ( | const Array< double > & | A, |
const int | nd, | ||
bool | debug | ||
) |
This function computes inverse of a square matrix using Gauss Elimination method.
Array< double > mat_fun::mat_inv_lp | ( | const Array< double > & | A, |
const int | nd | ||
) |
This function computes inverse of a square matrix using Lapack functions (DGETRF + DGETRI)
Replaces 'FUNCTION MAT_INV_LP(A, nd) RESULT(Ainv)' defined in MATFUN.f.
Array<double> mat_fun::mat_inv_lp_eigen | ( | const Array< double > & | A, |
const int | nd | ||
) |
not used, just a test.
Array< double > mat_fun::mat_mul | ( | const Array< double > & | A, |
const Array< double > & | B | ||
) |
Multiply a matrix by a matrix.
Reproduces Fortran MATMUL.
void mat_fun::mat_mul | ( | const Array< double > & | A, |
const Array< double > & | B, | ||
Array< double > & | result | ||
) |
Multiply a matrix by a matrix.
Compute result directly into the passed argument.
Multiply a matrix by a vector.
Reproduces Fortran MATMUL.
Array< double > mat_fun::mat_symm | ( | const Array< double > & | A, |
const int | nd | ||
) |
Symmetric part of a matrix, S = (A + A.T)/2.
Array< double > mat_fun::mat_symm_prod | ( | const Vector< double > & | u, |
const Vector< double > & | v, | ||
const int | nd | ||
) |
Create a matrix from symmetric product of two vectors.
double mat_fun::mat_trace | ( | const Array< double > & | A, |
const int | nd | ||
) |
Trace of second order matrix of rank nd.
Tensor4< double > mat_fun::ten_asym_prod12 | ( | const Array< double > & | A, |
const Array< double > & | B, | ||
const int | nd | ||
) |
Create a 4th order tensor from antisymmetric outer product of two matrices.
Cijkl = Aij*Bkl-Ail*Bjk
Tensor4< double > mat_fun::ten_ddot | ( | const Tensor4< double > & | A, |
const Tensor4< double > & | B, | ||
const int | nd | ||
) |
Double dot product of 2 4th order tensors T_ijkl = A_ijmn * B_klmn.
Reproduces 'FUNCTION TEN_DDOT_3434(A, B, nd) RESULT(C)'.
Tensor4< double > mat_fun::ten_ddot_2412 | ( | const Tensor4< double > & | A, |
const Tensor4< double > & | B, | ||
const int | nd | ||
) |
T_ijkl = A_imjn * B_mnkl.
Tensor4< double > mat_fun::ten_dyad_prod | ( | const Array< double > & | A, |
const Array< double > & | B, | ||
const int | nd | ||
) |
Create a 4th order tensor from outer product of two matrices.
Tensor4< double > mat_fun::ten_ids | ( | const int | nd | ) |
Create a 4th order order symmetric identity tensor.
void mat_fun::ten_init | ( | const int | nd | ) |
Initialize tensor index pointer.
Array< double > mat_fun::ten_mddot | ( | const Tensor4< double > & | A, |
const Array< double > & | B, | ||
const int | nd | ||
) |
Double dot product of a 4th order tensor and a 2nd order tensor.
C_ij = (A_ijkl * B_kl)
Tensor4< double > mat_fun::ten_symm_prod | ( | const Array< double > & | A, |
const Array< double > & | B, | ||
const int | nd | ||
) |
Create a 4th order tensor from symmetric outer product of two matrices.
Reproduces 'FUNCTION TEN_SYMMPROD(A, B, nd) RESULT(C)'.
Array< double > mat_fun::transpose | ( | const Array< double > & | A | ) |
Reproduces Fortran TRANSPOSE.