Go to the source code of this file.
Data Types | |
| interface | math::math_eye |
Modules | |
| module | math |
| Mathematical library, including random number generation and tensor representations. | |
Functions/Subroutines | |
| subroutine | math::math_init |
| initialization of random seed generator and internal checks More... | |
| recursive subroutine | math::math_sort (a, istart, iend, sortDim) |
| Quicksort algorithm for two-dimensional integer arrays. More... | |
| integer function | qsort_partition (a, istart, iend, sort) |
| Partitioning required for quicksort. More... | |
| pure real(preal) function, dimension(sum(how)) | math::math_expand (what, how) |
| vector expansion More... | |
| pure integer function, dimension(n) | math::math_range (N) |
| range of integers starting at one More... | |
| pure real(preal) function, dimension(d, d) | math::math_identity2nd (d) |
| second rank identity tensor of specified dimension More... | |
| pure real(preal) function, dimension(d, d, d, d) | math::math_identity4th (d) |
| symmetric fourth rank identity tensor of specified dimension More... | |
| real(preal) pure function | math::math_levicivita (i, j, k) |
| permutation tensor e_ijk More... | |
| real(preal) pure function | math::math_delta (i, j) |
| kronecker delta function d_ij More... | |
| pure real(preal) function, dimension(3) | math::math_cross (A, B) |
| cross product a x b More... | |
| pure real(preal) function, dimension(size(a, 1), size(b, 1)) | math::math_outer (A, B) |
| outer product of arbitrary sized vectors (A ⊗ B / i,j) More... | |
| real(preal) pure function | math::math_inner (A, B) |
| inner product of arbitrary sized vectors (A · B / i,i) More... | |
| real(preal) pure function | math::math_tensordot (A, B) |
| double contraction of 3x3 matrices (A : B / ij,ij) More... | |
| pure real(preal) function, dimension(3, 3) | math::math_mul3333xx33 (A, B) |
| matrix double contraction 3333x33 = 33 (ijkl,kl) More... | |
| pure real(preal) function, dimension(3, 3, 3, 3) | math::math_mul3333xx3333 (A, B) |
| matrix multiplication 3333x3333 = 3333 (ijkl,klmn) More... | |
| pure real(preal) function, dimension(3, 3) | math::math_exp33 (A, n) |
| 3x3 matrix exponential up to series approximation order n (default 5) More... | |
| pure real(preal) function, dimension(3, 3) | math::math_inv33 (A) |
| Cramer inversion of 3x3 matrix (function) More... | |
| pure subroutine | math::math_invert33 (InvA, DetA, error, A) |
| Cramer inversion of 3x3 matrix (subroutine) More... | |
| real(preal) function, dimension(3, 3, 3, 3) | math::math_invsym3333 (A) |
| Inversion of symmetriced 3x3x3x3 matrix. More... | |
| subroutine | math::math_invert (InvA, error, A) |
| invert quadratic matrix of arbitrary dimension More... | |
| pure real(preal) function, dimension(3, 3) | math::math_symmetric33 (m) |
| symmetrize a 3x3 matrix More... | |
| pure real(preal) function, dimension(6, 6) | math::math_symmetric66 (m) |
| symmetrize a 6x6 matrix More... | |
| pure real(preal) function, dimension(3, 3) | math::math_skew33 (m) |
| skew part of a 3x3 matrix More... | |
| pure real(preal) function, dimension(3, 3) | math::math_spherical33 (m) |
| hydrostatic part of a 3x3 matrix More... | |
| pure real(preal) function, dimension(3, 3) | math::math_deviatoric33 (m) |
| deviatoric part of a 3x3 matrix More... | |
| real(preal) pure function | math::math_trace33 (m) |
| trace of a 3x3 matrix More... | |
| real(preal) pure function | math::math_det33 (m) |
| determinant of a 3x3 matrix More... | |
| real(preal) pure function | math::math_detsym33 (m) |
| determinant of a symmetric 3x3 matrix More... | |
| pure real(preal) function, dimension(9) | math::math_33to9 (m33) |
| convert 3x3 matrix into vector 9 More... | |
| pure real(preal) function, dimension(3, 3) | math::math_9to33 (v9) |
| convert 9 vector into 3x3 matrix More... | |
| pure real(preal) function, dimension(6) | math::math_sym33to6 (m33, weighted) |
| convert symmetric 3x3 matrix into 6 vector More... | |
| pure real(preal) function, dimension(3, 3) | math::math_6tosym33 (v6, weighted) |
| convert 6 vector into symmetric 3x3 matrix More... | |
| pure real(preal) function, dimension(9, 9) | math::math_3333to99 (m3333) |
| convert 3x3x3x3 matrix into 9x9 matrix More... | |
| pure real(preal) function, dimension(3, 3, 3, 3) | math::math_99to3333 (m99) |
| convert 9x9 matrix into 3x3x3x3 matrix More... | |
| pure real(preal) function, dimension(6, 6) | math::math_sym3333to66 (m3333, weighted) |
| convert symmetric 3x3x3x3 matrix into 6x6 matrix More... | |
| pure real(preal) function, dimension(3, 3, 3, 3) | math::math_66tosym3333 (m66, weighted) |
| convert 66 matrix into symmetric 3x3x3x3 matrix More... | |
| pure real(preal) function, dimension(3, 3, 3, 3) | math::math_voigt66to3333 (m66) |
| convert 66 Voigt matrix into symmetric 3x3x3x3 matrix More... | |
| real(preal) function | math::math_samplegaussvar (meanvalue, stddev, width) |
| draw a random sample from Gauss variable More... | |
| subroutine | math::math_eigh (m, w, v, error) |
| eigenvalues and eigenvectors of symmetric matrix More... | |
| subroutine | math::math_eigh33 (m, w, v) |
| eigenvalues and eigenvectors of symmetric 3x3 matrix using an analytical expression and the general LAPACK powered version for arbritrary sized matrices as fallback More... | |
| real(preal) function, dimension(3, 3) | math::math_rotationalpart (m) |
| rotational part from polar decomposition of 3x3 tensor More... | |
| pure real(preal) function, dimension(3, 3) | eigenvectorbasis (m) |
| eigenvector basis of positive-definite 3x3 matrix More... | |
| real(preal) function, dimension(size(m, 1)) | math::math_eigvalsh (m) |
| Eigenvalues of symmetric matrix. More... | |
| real(preal) function, dimension(3) | math::math_eigvalsh33 (m) |
| eigenvalues of symmetric 3x3 matrix using an analytical expression More... | |
| pure real(preal) function, dimension(3) | math::math_invariantssym33 (m) |
| invariants of symmetrix 3x3 matrix More... | |
| integer pure function | math::math_factorial (n) |
| factorial More... | |
| integer pure function | math::math_binomial (n, k) |
| binomial coefficient More... | |
| integer pure function | math::math_multinomial (alpha) |
| multinomial coefficient More... | |
| real(preal) pure function | math::math_voltetrahedron (v1, v2, v3, v4) |
| volume of tetrahedron given by four vertices More... | |
| real(preal) pure function | math::math_areatriangle (v1, v2, v3) |
| area of triangle given by three vertices More... | |
| real(preal) pure elemental function | math::math_clip (a, left, right) |
| limits a scalar value to a certain range (either one or two sided) More... | |
| subroutine, private | math::unittest |
| check correctness of some math functions More... | |
Variables | |
| real(preal), parameter | math::pi = acos(-1.0_pReal) |
| ratio of a circle's circumference to its diameter More... | |
| real(preal), parameter | math::indeg = 180.0_pReal/PI |
| conversion from radian into degree More... | |
| real(preal), parameter | math::inrad = PI/180.0_pReal |
| conversion from degree into radian More... | |
| complex(preal), parameter | math::twopiimg = cmplx(0.0_pReal, 2.0_pReal*PI) |
| Re(0.0), Im(2xPi) More... | |
| real(preal), dimension(3, 3), parameter | math::math_i3 = reshape([ 1.0_pReal,0.0_pReal,0.0_pReal, 0.0_pReal,1.0_pReal,0.0_pReal, 0.0_pReal,0.0_pReal,1.0_pReal ], [3,3]) |
| 3x3 Identity More... | |
| real(preal), dimension(6), parameter, private | math::nrmmandel = [ 1.0_pReal, 1.0_pReal, 1.0_pReal, sqrt(2.0_pReal), sqrt(2.0_pReal), sqrt(2.0_pReal) ] |
| forward weighting for Mandel notation More... | |
| real(preal), dimension(6), parameter, private | math::invnrmmandel = 1.0_pReal/NRMMANDEL |
| backward weighting for Mandel notation More... | |
| integer, dimension(2, 6), parameter, private | math::mapnye = reshape([ 1,1, 2,2, 3,3, 1,2, 2,3, 1,3 ], [2,6]) |
| arrangement in Nye notation. More... | |
| integer, dimension(2, 6), parameter, private | math::mapvoigt = reshape([ 1,1, 2,2, 3,3, 2,3, 1,3, 1,2 ], [2,6]) |
| arrangement in Voigt notation More... | |
| integer, dimension(2, 9), parameter, private | math::mapplain = reshape([ 1,1, 1,2, 1,3, 2,1, 2,2, 2,3, 3,1, 3,2, 3,3 ], [2,9]) |
| arrangement in Plain notation More... | |
| pure real(preal) function, dimension(3,3) math_rotationalpart::eigenvectorbasis | ( | real(preal), dimension(3,3), intent(in) | m | ) |
eigenvector basis of positive-definite 3x3 matrix
| [in] | m | positive-definite matrix of which the basis is computed |
Definition at line 982 of file math.f90.
References math::math_clip(), math::math_i3, math::math_invariantssym33(), and math::pi.
Referenced by math::math_rotationalpart().
Here is the call graph for this function:
Here is the caller graph for this function:| integer function math_sort::qsort_partition | ( | integer, dimension(:,:), intent(inout) | a, |
| integer, intent(in) | istart, | ||
| integer, intent(in) | iend, | ||
| integer, intent(in) | sort | ||
| ) |
Partitioning required for quicksort.
Definition at line 168 of file math.f90.
Referenced by math::math_sort().
Here is the caller graph for this function: