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().
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().