OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
sktvonm3.F File Reference
#include "implicit_f.inc"
#include "mvsiz_p.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine sktvonm3 (lft, llt, dd, hh, sig, dd1, gt, ht, nel)

Function/Subroutine Documentation

◆ sktvonm3()

subroutine sktvonm3 ( integer lft,
integer llt,
dd,
hh,
sig,
dd1,
gt,
ht,
integer nel )

Definition at line 28 of file sktvonm3.F.

30C-----------------------------------------------
31C I m p l i c i t T y p e s
32C-----------------------------------------------
33#include "implicit_f.inc"
34C-----------------------------------------------
35C G l o b a l P a r a m e t e r s
36C-----------------------------------------------
37#include "mvsiz_p.inc"
38C-----------------------------------------------
39C D u m m y A r g u m e n t s
40C-----------------------------------------------
41 INTEGER LFT,LLT,NEL
42C REAL
44 . dd(3,3,*),hh(2,*),sig(nel,6),dd1(3,3,*),gt(3,3,*),ht(*)
45C-----------------------------------------------
46C L o c a l V a r i a b l e s
47C-----------------------------------------------
48 INTEGER I,J,K
49C REAL
51 . ss(3,mvsiz),st(3,mvsiz),p,sigy2,g(mvsiz),
52 . ss2,ds2,st2,norm(mvsiz),normi,g2,tt,tv
53 my_real
54 . ew(3,mvsiz),tol,lamda(mvsiz),ev(3,3),kk(3,3)
55C
56 tol=em5
57C---------- verifier-------------------------------------
58 DO i=lft,llt
59 g(i) = hh(2,i)
60 g2 = two*g(i)
61 tv=hh(1,i)
62 tt=tv+g2
63 dd(1,1,i)=tt
64 dd(2,2,i)=tt
65 dd(3,3,i)=tt
66 dd(1,2,i)=tv
67 dd(1,3,i)=tv
68 dd(2,3,i)=tv
69 dd(2,1,i)=tv
70 dd(3,1,i)=tv
71 dd(3,2,i)=tv
72 DO j=1,3
73 gt(j,j,i)=g2
74 ENDDO
75 ENDDO
76C----------HT(i)>0
77 DO i=lft,llt
78 IF (ht(i)>zero) THEN
79 p =-third*(sig(i,1)+sig(i,2)+sig(i,3))
80 ss(1,i)=sig(i,1)+p
81 ss(2,i)=sig(i,2)+p
82 ss(3,i)=sig(i,3)+p
83 st(1,i)=sig(i,4)
84 st(2,i)=sig(i,5)
85 st(3,i)=sig(i,6)
86 ENDIF
87 ENDDO
88C
89 DO i=lft,llt
90 IF (ht(i)>zero) THEN
91 ss2=(ss(1,i)**2+ss(2,i)**2+ss(3,i)**2)*half
92 st2=st(1,i)**2+st(2,i)**2+st(3,i)**2
93 sigy2=max(em20,three*(ss2+st2))
94 ds2=three*g(i)+ht(i)
95 norm(i)=three*g(i)/sqrt(ds2*sigy2)
96 ENDIF
97 ENDDO
98C
99 DO i=lft,llt
100 IF (ht(i)>zero) THEN
101 DO j=1,3
102 ss(j,i)=ss(j,i)*norm(i)
103 st(j,i)=st(j,i)*norm(i)
104 ENDDO
105 ENDIF
106 ENDDO
107C-----------GT->u--------
108 DO i=lft,llt
109 IF (ht(i)>zero) THEN
110 DO j=1,3
111 DO k=j,3
112 dd(j,k,i)=dd(j,k,i)-ss(j,i)*ss(k,i)
113 gt(j,k,i)=gt(j,k,i)*half-st(j,i)*st(k,i)
114 dd(k,j,i)=dd(j,k,i)
115 gt(k,j,i)=gt(j,k,i)
116 ENDDO
117 ENDDO
118 DO j=1,3
119 DO k=1,3
120 dd1(j,k,i)=-ss(j,i)*st(k,i)
121 ENDDO
122 ENDDO
123 ENDIF
124 ENDDO
125C
126 RETURN
#define my_real
Definition cppsort.cpp:32
norm(diag(diag(diag(inv(mat))) -id.SOL), 2) % destroy mumps instance id.JOB
#define max(a, b)
Definition macros.h:21