OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
szsvm.F
Go to the documentation of this file.
1Copyright> OpenRadioss
2Copyright> Copyright (C) 1986-2025 Altair Engineering Inc.
3Copyright>
4Copyright> This program is free software: you can redistribute it and/or modify
5Copyright> it under the terms of the GNU Affero General Public License as published by
6Copyright> the Free Software Foundation, either version 3 of the License, or
7Copyright> (at your option) any later version.
8Copyright>
9Copyright> This program is distributed in the hope that it will be useful,
10Copyright> but WITHOUT ANY WARRANTY; without even the implied warranty of
11Copyright> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12Copyright> GNU Affero General Public License for more details.
13Copyright>
14Copyright> You should have received a copy of the GNU Affero General Public License
15Copyright> along with this program. If not, see <https://www.gnu.org/licenses/>.
16Copyright>
17Copyright>
18Copyright> Commercial Alternative: Altair Radioss Software
19Copyright>
20Copyright> As an alternative to this open-source version, Altair also offers Altair Radioss
21Copyright> software under a commercial license. Contact Altair to discuss further if the
22Copyright> commercial version may interest you: https://www.altair.com/radioss/.
23
24!||====================================================================
25!|| szsvm ../engine/source/elements/solid/solidez/szsvm.F
26!||--- called by ------------------------------------------------------
27!|| s6zhour3 ../engine/source/elements/solid/solide6z/s6zhourg3.F90
28!|| szhour3 ../engine/source/elements/solid/solidez/szhour3.F
29!||====================================================================
30 SUBROUTINE szsvm(
31 1 JR0, JS0, JT0, FHOUR,
32 2 SIGY, SIG0, NU, SVM1,
33 3 SVM2, NEL, IINT)
34C-----------------------------------------------
35C I m p l i c i t T y p e s
36C-----------------------------------------------
37#include "implicit_f.inc"
38C-----------------------------------------------
39C C o m m o n B l o c k s
40C-----------------------------------------------
41C-----------------------------------------------
42C D u m m y A r g u m e n t s
43C-----------------------------------------------
44 INTEGER, INTENT(IN) :: IINT
45 INTEGER NEL
46 my_real
47 . fhour(nel,3,4),jr0(*),js0(*),jt0(*) ,
48 . sigy(*) ,sig0(nel,6),svm1(*),svm2(*),nu(*)
49C-----------------------------------------------
50C L o c a l V a r i a b l e s
51C-----------------------------------------------
52 INTEGER I,IKT
53 my_real
54 . S1,S2,S3,SVM0,SR1,SR2,SR3,SR4,
55 . ss1,ss2,ss3,ss4,st1,st2,st3,st4,svmr,svms,svmt,
56 . svmrst,coef,coef1, jr_1,js_1,jt_1,nu1,nu2,
57 . rs,st,rt,vt2(4),max0,min0
58C coef= (3*8*0.75)^2 coef1 =1/0.75
59 coef= threehundred24
60 coef1= onep333
61C-----------------------------------------------
62 ikt = iint
63 IF (ikt ==2) THEN
64 coef1= coef/(ten*ikt)
65 coef= max(coef1,em01)
66 ELSEIF (ikt > 2) THEN
67 coef1= coef/(ten*ikt)
68 coef= max(coef1,em01)
69 ENDIF
70 DO i=1,nel
71 svm1(i) = zero
72 svm2(i) = zero
73 IF (sigy(i)<zep9ep30) THEN
74 s1 =sig0(i,1)-sig0(i,2)
75 s2 =sig0(i,2)-sig0(i,3)
76 s3 =sig0(i,1)-sig0(i,3)
77 svm0 = (s1*s1+s2*s2+s3*s3)*half + three*(sig0(i,4)*sig0(i,4)
78 . +sig0(i,5)*sig0(i,5)+sig0(i,6)*sig0(i,6))
79 nu1 =one/(one - nu(i))
80 nu2 =nu(i)*nu1
81 jr_1 = one/max(em20,jr0(i))
82 js_1 = one/max(em20,js0(i))
83 jt_1 = one/max(em20,jt0(i))
84 sr1 =nu1*fhour(i,1,3)+nu2*fhour(i,3,1)
85 sr2 =nu1*fhour(i,3,1)+nu2*fhour(i,1,3)
86 sr3 =fhour(i,1,3)-fhour(i,3,1)
87 sr4 =jt0(i)*jr_1*fhour(i,3,3)+jr0(i)*jt_1*fhour(i,1,1)
88 svmr = two*(sr1*sr1+sr2*sr2+sr3*sr3)+3*sr4*sr4
89 ss1 =fhour(i,1,2)-fhour(i,2,1)
90 ss2 =nu1*fhour(i,2,1)+nu2*fhour(i,1,2)
91 ss3 =nu1*fhour(i,1,2)+nu2*fhour(i,2,1)
92 ss4 =js0(i)*jr_1*fhour(i,2,2)+jr0(i)*js_1*fhour(i,1,1)
93 svms = two*(ss1*ss1+ss2*ss2+ss3*ss3) + three*ss4*ss4
94 st1 =nu1*fhour(i,2,3)+nu2*fhour(i,3,2)
95 st2 =fhour(i,2,3)-fhour(i,3,2)
96 st3 =nu1*fhour(i,3,2)+nu2*fhour(i,2,3)
97 st4 =js0(i)*jt_1*fhour(i,2,2)+jt0(i)*js_1*fhour(i,3,3)
98 svmt = two*(st1*st1+st2*st2+st3*st3) + three*st4*st4
99C
100 rs =sr1*ss1
101 rt =sr1*st1
102 st =ss1*st1
103 vt2(1) = rs+rt+st
104 vt2(2) = rs-rt-st
105 vt2(3) = -rs+rt-st
106 vt2(4) = -rs-rt+st
107 max0 =max(vt2(1),vt2(2),vt2(3),vt2(4))
108 min0 =min(vt2(1),vt2(2),vt2(3),vt2(4))
109 rs =sr2*ss2
110 rt =sr2*st2
111 st =ss2*st2
112 vt2(1) = rs+rt+st
113 vt2(2) = rs-rt-st
114 vt2(3) = -rs+rt-st
115 vt2(4) = -rs-rt+st
116 max0 =max0+max(vt2(1),vt2(2),vt2(3),vt2(4))
117 min0 =min0+min(vt2(1),vt2(2),vt2(3),vt2(4))
118 rs =sr3*ss3
119 rt =sr3*st3
120 st =ss3*st3
121 vt2(1) = rs+rt+st
122 vt2(2) = rs-rt-st
123 vt2(3) = -rs+rt-st
124 vt2(4) = -rs-rt+st
125 max0 =max0+max(vt2(1),vt2(2),vt2(3),vt2(4))
126 min0 =min0+min(vt2(1),vt2(2),vt2(3),vt2(4))
127 svmrst = svm0+coef*(svmr+svms+svmt)
128 svm1(i) = sqrt(abs(svmrst+coef*max0))
129 svm2(i) = sqrt(max(svmrst+coef*min0,zero))
130 svm2(i) = min(svm2(i),svm0)
131 ENDIF
132 ENDDO
133C
134 RETURN
135 END
#define min(a, b)
Definition macros.h:20
#define max(a, b)
Definition macros.h:21
subroutine szsvm(jr0, js0, jt0, fhour, sigy, sig0, nu, svm1, svm2, nel, iint)
Definition szsvm.F:34