OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
sigeps01g.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!|| sigeps01g ../engine/source/materials/mat/mat001/sigeps01g.F
25!||--- called by ------------------------------------------------------
26!|| mulawglc ../engine/source/materials/mat_share/mulawglc.F
27!||====================================================================
28 SUBROUTINE sigeps01g(JFT ,JLT ,G ,THK ,OFF ,
29 1 GS ,A1 ,A2 ,NU ,THK0 ,
30 2 NEL ,F_DEF ,ISMSTR ,DEPSXX ,DEPSYY ,
31 3 DEPSXY ,DEPSYZ ,DEPSZX ,DEPBXX ,DEPBYY ,
32 4 DEPBXY ,SIGOXX ,SIGOYY ,SIGOXY ,SIGOYZ ,
33 5 SIGOZX ,MOMOXX ,MOMOYY ,MOMOXY ,SIGNXX ,
34 6 SIGNYY ,SIGNXY ,SIGNYZ ,SIGNZX ,MOMNXX ,
35 7 MOMNYY ,MOMNXY ,ZSHIFT )
36C-----------------------------------------------
37C I m p l i c i t T y p e s
38C-----------------------------------------------
39#include "implicit_f.inc"
40C-----------------------------------------------
41C G l o b a l P a r a m e t e r s
42C-----------------------------------------------
43#include "mvsiz_p.inc"
44C-----------------------------------------------
45C D u m m y A r g u m e n t s
46C-----------------------------------------------
47 INTEGER JFT,JLT,NEL,ISMSTR
48C REAL
49 my_real
50 . OFF(*),GS(*)
51 my_real
52 . NU(MVSIZ),G(MVSIZ),A1(MVSIZ),A2(MVSIZ),F_DEF(MVSIZ,8),
53 . DEPSXX(NEL),DEPSYY(NEL),DEPSXY(NEL),
54 . depbxx(nel),depbyy(nel),depbxy(nel),
55 . depsyz(nel),depszx(nel),
56 . sigoxx(nel),sigoyy(nel),sigoxy(nel),
57 . sigoyz(nel),sigozx(nel),
58 . momoxx(nel),momoyy(nel),momoxy(nel)
59 my_real, intent(in) :: zshift
60C-----------------------------------------------
61C O U T P U T A R G U M E N T S
62C-----------------------------------------------
63 my_real
64 . thk(*),
65 . signxx(nel),signyy(nel),signxy(nel),
66 . momnxx(nel),momnyy(nel),momnxy(nel),
67 . signyz(nel),signzx(nel)
68C-----------------------------------------------
69C L o c a l V a r i a b l e s
70C-----------------------------------------------
71 INTEGER I
72C REAL
73 my_real
74 . B1(MVSIZ),B2(MVSIZ),THK0(MVSIZ),
75 . B3(MVSIZ),
76 . THK08,EZZ(MVSIZ)
77 my_real
78 . eigv(mvsiz,3,2),trav(mvsiz),rootv(mvsiz),
79 . eh1(mvsiz),eh2(mvsiz),eb1(mvsiz),eb2(mvsiz),
80 . epsxx(mvsiz),epsyy(mvsiz),epsxy(mvsiz),
81 . for1(mvsiz),for2(mvsiz),mom1(mvsiz),mom2(mvsiz)
82c . TAN_A,TAN_A2,SIN2_A(MVSIZ),COS2_A(MVSIZ),SINCOS_A(MVSIZ),ANG
83C-----------------------------------------------
84!---
85 IF (ismstr == 10) THEN
86C---------[F]=[F_DEF]+[1]; [B]=[F][F]^t strain----
87 DO i=jft,jlt
88 epsxx(i)=f_def(i,1)*(two+f_def(i,1))+
89 . f_def(i,3)*f_def(i,3) + one
90 epsyy(i)=f_def(i,2)*(two+f_def(i,2))+
91 . f_def(i,4)*f_def(i,4) + one
92c EPSZZ(I)=MFZZ(I)*(TWO+MFZZ(I))+
93c . MFZX(I)*MFZX(I)+MFZY(I)*MFZY(I)
94 epsxy(i)=f_def(i,3)+f_def(i,4)+f_def(i,1)*f_def(i,4)+
95 . f_def(i,3)*f_def(i,2)
96 ENDDO
97C principal stretch (def gradient eigenvalues)
98 DO i=jft,jlt
99 trav(i) = epsxx(i)+epsyy(i)
100 rootv(i) = sqrt((epsxx(i)-epsyy(i))*(epsxx(i)-epsyy(i))
101 . + epsxy(i)*epsxy(i)*four)
102 eb1(i) = half*(trav(i)+rootv(i))
103 eb2(i) = half*(trav(i)-rootv(i))
104 eh1(i) = half*log(eb1(i))
105 eh2(i) = half*log(eb2(i))
106 for1(i)=a1(i)*eh1(i)+a2(i)*eh2(i)
107 for2(i)=a1(i)*eh2(i)+a2(i)*eh1(i)
108 ENDDO
109C rot matrix (eigenvectors), ROOTV= 2R
110 DO i=jft,jlt
111 IF (abs(eb2(i)-eb1(i)) < em15) THEN
112 eigv(i,1,1)=one
113 eigv(i,2,1)=zero
114 eigv(i,3,1)=zero
115 eigv(i,1,2)=zero
116 eigv(i,2,2)=one
117 eigv(i,3,2)=zero
118 ELSE
119 eigv(i,1,1) = (epsxx(i)-eb2(i)) / rootv(i)
120 eigv(i,2,1) = (epsyy(i)-eb2(i)) / rootv(i)
121 eigv(i,3,1) = (epsxy(i)) / rootv(i)
122 eigv(i,1,2) = (eb1(i)-epsxx(i)) / rootv(i)
123 eigv(i,2,2) = (eb1(i)-epsyy(i)) / rootv(i)
124 eigv(i,3,2) =-(epsxy(i)) / rootv(i)
125 ENDIF
126 ENDDO
127 ENDIF ! IF (ISMSTR == 10) THEN
128!---
129C
130 DO i=jft,jlt
131 thk08 = thk0(i)*(one_over_12+zshift*zshift)
132 b1(i) = a1(i)*thk08
133 b2(i) = a2(i)*thk08
134 b3(i) = g(i) *thk08
135 ENDDO
136C
137 IF (ismstr /= 10) THEN
138 DO i=jft,jlt
139 signxx(i)=sigoxx(i)+a1(i)*depsxx(i)+a2(i)*depsyy(i)
140 signyy(i)=sigoyy(i)+a2(i)*depsxx(i)+a1(i)*depsyy(i)
141 signxy(i)=sigoxy(i)+g(i) *depsxy(i)
142 signyz(i)=sigoyz(i)+gs(i)*depsyz(i)
143 signzx(i)=sigozx(i)+gs(i)*depszx(i)
144C
145 momnxx(i)=momoxx(i)+b1(i)*depbxx(i)+b2(i)*depbyy(i)
146 momnyy(i)=momoyy(i)+b1(i)*depbyy(i)+b2(i)*depbxx(i)
147 momnxy(i)=momoxy(i)+b3(i)*depbxy(i)
148 ENDDO
149 ELSE ! ISMSTR = 10
150 DO i=jft,jlt
151 signxx(i) = eigv(i,1,1)*for1(i) + eigv(i,1,2)*for2(i)
152 signyy(i) = eigv(i,2,1)*for1(i) + eigv(i,2,2)*for2(i)
153 signxy(i) = eigv(i,3,1)*for1(i) + eigv(i,3,2)*for2(i)
154 signyz(i) = sigoyz(i)+ gs(i)*depsyz(i)
155 signzx(i) = sigozx(i)+ gs(i)*depszx(i)
156 ENDDO
157C-----curveture
158C---------[F]=[F_DEF]+[1]; [B]=[F][F]^t strain-----
159 DO i=jft,jlt
160 epsxx(i)=f_def(i,6)*(two+f_def(i,6))+
161 . f_def(i,8)*f_def(i,8) +one
162 epsyy(i)=f_def(i,7)*(two+f_def(i,7))+
163 . f_def(i,5)*f_def(i,5) +one
164 epsxy(i)=f_def(i,8)+f_def(i,5)+f_def(i,6)*f_def(i,5)+
165 . f_def(i,8)*f_def(i,7)
166 ENDDO
167C principal stretch (def gradient eigenvalues)
168 DO i=jft,jlt
169 trav(i) = epsxx(i)+epsyy(i)
170 rootv(i) = sqrt((epsxx(i)-epsyy(i))*(epsxx(i)-epsyy(i))
171 . + epsxy(i)*epsxy(i)*four)
172 eb1(i) = half*(trav(i)+rootv(i))
173 eb2(i) = half*(trav(i)-rootv(i))
174 eh1(i) = half*log(eb1(i))
175 eh2(i) = half*log(eb2(i))
176 mom1(i)=b1(i)*eh1(i)+b2(i)*eh2(i)
177 mom2(i)=b1(i)*eh2(i)+b2(i)*eh1(i)
178 ENDDO
179C rot matrix (eigenvectors)
180 DO i=jft,jlt
181 IF (abs(eb2(i)-eb1(i)) < em15) THEN
182 eigv(i,1,1)=one
183 eigv(i,2,1)=zero
184 eigv(i,3,1)=zero
185 eigv(i,1,2)=zero
186 eigv(i,2,2)=one
187 eigv(i,3,2)=zero
188 ELSE
189 eigv(i,1,1) = (epsxx(i)-eb2(i)) / rootv(i)
190 eigv(i,2,1) = (epsyy(i)-eb2(i)) / rootv(i)
191 eigv(i,3,1) = (epsxy(i)) / rootv(i)
192 eigv(i,1,2) = (eb1(i)-epsxx(i)) / rootv(i)
193 eigv(i,2,2) = (eb1(i)-epsyy(i)) / rootv(i)
194 eigv(i,3,2) =-(epsxy(i)) / rootv(i)
195 ENDIF
196 ENDDO
197 DO i=jft,jlt
198 momnxx(i) = eigv(i,1,1)*mom1(i) + eigv(i,1,2)*mom2(i)
199 momnyy(i) = eigv(i,2,1)*mom1(i) + eigv(i,2,2)*mom2(i)
200 momnxy(i) = eigv(i,3,1)*mom1(i) + eigv(i,3,2)*mom2(i)
201 ENDDO
202 ENDIF ! IF (ISMSTR /= 10) THEN
203C
204 DO i=jft,jlt
205 ezz(i) = -nu(i) * (depsxx(i)+depsyy(i)) / (one-nu(i))
206 thk(i) = thk(i) * (one + ezz(i) * off(i))
207 ENDDO
208! coupling terms due to shell offset
209 IF (zshift /= zero) THEN
210 DO i=jft,jlt
211 thk08 = thk0(i)*zshift
212 signxx(i) = signxx(i) + thk08*(a1(i)*depbxx(i)+a2(i)*depbyy(i))
213 signyy(i) = signyy(i) + thk08*(a1(i)*depbyy(i)+a2(i)*depbxx(i))
214 signxy(i) = signxy(i) + thk08*g(i)*depbxy(i)
215!
216 momnxx(i) = momnxx(i) + zshift*(a1(i)*depsxx(i)+a2(i)*depsyy(i))
217 momnyy(i) = momnyy(i) + zshift*(a1(i)*depsyy(i)+a2(i)*depsxx(i))
218 momnxy(i) = momnxy(i) + zshift*g(i)*depsxy(i)
219 ENDDO
220 END IF
221C
222 RETURN
223 END
subroutine sigeps01g(jft, jlt, g, thk, off, gs, a1, a2, nu, thk0, nel, f_def, ismstr, depsxx, depsyy, depsxy, depsyz, depszx, depbxx, depbyy, depbxy, sigoxx, sigoyy, sigoxy, sigoyz, sigozx, momoxx, momoyy, momoxy, signxx, signyy, signxy, signyz, signzx, momnxx, momnyy, momnxy, zshift)
Definition sigeps01g.F:36