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!|| szhour3 ../engine/source/elements/solid/solidez/szhour3.F
28!||====================================================================
29 SUBROUTINE szsvm(
30 1 JR0, JS0, JT0, FHOUR,
31 2 SIGY, SIG0, NU, SVM1,
32 3 SVM2, NEL, IINT)
33C-----------------------------------------------
34C I m p l i c i t T y p e s
35C-----------------------------------------------
36#include "implicit_f.inc"
37C-----------------------------------------------
38C C o m m o n B l o c k s
39C-----------------------------------------------
40C-----------------------------------------------
41C D u m m y A r g u m e n t s
42C-----------------------------------------------
43 INTEGER, INTENT(IN) :: IINT
44 INTEGER NEL
45 my_real
46 . fhour(nel,3,4),jr0(*),js0(*),jt0(*) ,
47 . sigy(*) ,sig0(nel,6),svm1(*),svm2(*),nu(*)
48C-----------------------------------------------
49C L o c a l V a r i a b l e s
50C-----------------------------------------------
51 INTEGER I, J,K,IKT
52 my_real
53 . S1,S2,S3,SVM0,SR1,SR2,SR3,SR4,
54 . ss1,ss2,ss3,ss4,st1,st2,st3,st4,svmr,svms,svmt,
55 . svm,svmrst,coef,coef1, jr_1,js_1,jt_1,nu1,nu2,
56 . rs,st,rt,vt1(4),vt2(4),max1,min1,max2,min2,max0,min0
57C coef= (3*8*0.75)^2 coef1 =1/0.75
58 coef= threehundred24
59 coef1= onep333
60C-----------------------------------------------
61 ikt = iint
62 IF (ikt ==2) THEN
63 coef1= coef/(ten*ikt)
64 coef= max(coef1,em01)
65 ELSEIF (ikt > 2) THEN
66 coef1= coef/(ten*ikt)
67 coef= max(coef1,em01)
68 ENDIF
69 DO i=1,nel
70 svm1(i) = zero
71 svm2(i) = zero
72 IF (sigy(i)<zep9ep30) THEN
73 s1 =sig0(i,1)-sig0(i,2)
74 s2 =sig0(i,2)-sig0(i,3)
75 s3 =sig0(i,1)-sig0(i,3)
76 svm0 = (s1*s1+s2*s2+s3*s3)*half + three*(sig0(i,4)*sig0(i,4)
77 . +sig0(i,5)*sig0(i,5)+sig0(i,6)*sig0(i,6))
78 nu1 =one/(one - nu(i))
79 nu2 =nu(i)*nu1
80 jr_1 = one/max(em20,jr0(i))
81 js_1 = one/max(em20,js0(i))
82 jt_1 = one/max(em20,jt0(i))
83 sr1 =nu1*fhour(i,1,3)+nu2*fhour(i,3,1)
84 sr2 =nu1*fhour(i,3,1)+nu2*fhour(i,1,3)
85 sr3 =fhour(i,1,3)-fhour(i,3,1)
86 sr4 =jt0(i)*jr_1*fhour(i,3,3)+jr0(i)*jt_1*fhour(i,1,1)
87 svmr = two*(sr1*sr1+sr2*sr2+sr3*sr3)+3*sr4*sr4
88 ss1 =fhour(i,1,2)-fhour(i,2,1)
89 ss2 =nu1*fhour(i,2,1)+nu2*fhour(i,1,2)
90 ss3 =nu1*fhour(i,1,2)+nu2*fhour(i,2,1)
91 ss4 =js0(i)*jr_1*fhour(i,2,2)+jr0(i)*js_1*fhour(i,1,1)
92 svms = two*(ss1*ss1+ss2*ss2+ss3*ss3) + three*ss4*ss4
93 st1 =nu1*fhour(i,2,3)+nu2*fhour(i,3,2)
94 st2 =fhour(i,2,3)-fhour(i,3,2)
95 st3 =nu1*fhour(i,3,2)+nu2*fhour(i,2,3)
96 st4 =js0(i)*jt_1*fhour(i,2,2)+jt0(i)*js_1*fhour(i,3,3)
97 svmt = two*(st1*st1+st2*st2+st3*st3) + three*st4*st4
98C
99 rs =sr1*ss1
100 rt =sr1*st1
101 st =ss1*st1
102 vt2(1) = rs+rt+st
103 vt2(2) = rs-rt-st
104 vt2(3) = -rs+rt-st
105 vt2(4) = -rs-rt+st
106 max0 =max(vt2(1),vt2(2),vt2(3),vt2(4))
107 min0 =min(vt2(1),vt2(2),vt2(3),vt2(4))
108 rs =sr2*ss2
109 rt =sr2*st2
110 st =ss2*st2
111 vt2(1) = rs+rt+st
112 vt2(2) = rs-rt-st
113 vt2(3) = -rs+rt-st
114 vt2(4) = -rs-rt+st
115 max0 =max0+max(vt2(1),vt2(2),vt2(3),vt2(4))
116 min0 =min0+min(vt2(1),vt2(2),vt2(3),vt2(4))
117 rs =sr3*ss3
118 rt =sr3*st3
119 st =ss3*st3
120 vt2(1) = rs+rt+st
121 vt2(2) = rs-rt-st
122 vt2(3) = -rs+rt-st
123 vt2(4) = -rs-rt+st
124 max0 =max0+max(vt2(1),vt2(2),vt2(3),vt2(4))
125 min0 =min0+min(vt2(1),vt2(2),vt2(3),vt2(4))
126 svmrst = svm0+coef*(svmr+svms+svmt)
127 svm1(i) = sqrt(abs(svmrst+coef*max0))
128 svm2(i) = sqrt(max(svmrst+coef*min0,zero))
129 svm2(i) = min(svm2(i),svm0)
130 ENDIF
131 ENDDO
132C
133 RETURN
134 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:33