UMAT-ABAQUS
A general framework to develop material models (UMAT) in ABAQUS
minverse3d.for
Go to the documentation of this file.
1  SUBROUTINE matinv3d(A,A_INV,NDI)
2 C> INVERSE OF A 3X3 MATRIX
3 C RETURN THE INVERSE OF A(3,3) - A_INV
4  IMPLICIT NONE
5 C
6  INTEGER NDI
7 C
8  DOUBLE PRECISION A(ndi,ndi),A_INV(ndi,ndi),DET_A,DET_A_INV
9 C
10  det_a = a(1,1)*(a(2,2)*a(3,3) - a(3,2)*a(2,3)) -
11  + a(2,1)*(a(1,2)*a(3,3) - a(3,2)*a(1,3)) +
12  + a(3,1)*(a(1,2)*a(2,3) - a(2,2)*a(1,3))
13 
14  IF (det_a .LE. 0.d0) THEN
15  WRITE(*,*) 'WARNING: SUBROUTINE MATINV3D:'
16  WRITE(*,*) 'WARNING: DET OF MAT=',det_a
17  RETURN
18  END IF
19 C
20  det_a_inv = 1.d0/det_a
21 C
22  a_inv(1,1) = det_a_inv*(a(2,2)*a(3,3)-a(3,2)*a(2,3))
23  a_inv(1,2) = det_a_inv*(a(3,2)*a(1,3)-a(1,2)*a(3,3))
24  a_inv(1,3) = det_a_inv*(a(1,2)*a(2,3)-a(2,2)*a(1,3))
25  a_inv(2,1) = det_a_inv*(a(3,1)*a(2,3)-a(2,1)*a(3,3))
26  a_inv(2,2) = det_a_inv*(a(1,1)*a(3,3)-a(3,1)*a(1,3))
27  a_inv(2,3) = det_a_inv*(a(2,1)*a(1,3)-a(1,1)*a(2,3))
28  a_inv(3,1) = det_a_inv*(a(2,1)*a(3,2)-a(3,1)*a(2,2))
29  a_inv(3,2) = det_a_inv*(a(3,1)*a(1,2)-a(1,1)*a(3,2))
30  a_inv(3,3) = det_a_inv*(a(1,1)*a(2,2)-a(2,1)*a(1,2))
31 C
32  RETURN
33  END SUBROUTINE matinv3d
subroutine matinv3d(A, A_INV, NDI)
Definition: minverse3d.for:2