OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
sigeps01c.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!|| sigeps01c ../engine/source/materials/mat/mat001/sigeps01c.F
25!||--- called by ------------------------------------------------------
26!|| mulawc ../engine/source/materials/mat_share/mulawc.F90
27!||====================================================================
28 SUBROUTINE sigeps01c(JFT ,JLT ,NEL ,IMAT ,GS ,
29 1 SIGOXX ,SIGOYY ,SIGOXY ,SIGOYZ ,SIGOZX ,
30 2 SIGNXX ,SIGNYY ,SIGNXY ,SIGNYZ ,SIGNZX ,
31 3 DEPSXX ,DEPSYY ,DEPSXY ,DEPSYZ ,DEPSZX ,
32 4 THK ,THKLYL ,OFF ,PM ,ISMSTR ,
33 5 EPSXX ,EPSYY ,EPSXY )
34C-----------------------------------------------
35C I m p l i c i t T y p e s
36C-----------------------------------------------
37#include "implicit_f.inc"
38C-----------------------------------------------
39C G l o b a l P a r a m e t e r s
40C-----------------------------------------------
41#include "mvsiz_p.inc"
42C-----------------------------------------------
43C C o m m o n B l o c k s
44C-----------------------------------------------
45#include "param_c.inc"
46C-----------------------------------------------
47C D u m m y A r g u m e n t s
48C-----------------------------------------------
49 INTEGER JFT,JLT,NPT,NEL,IMAT,ISMSTR
50C REAL
51 my_real
52 . THK(*),GS(*), THKLYL(NEL),OFF(*),PM(NPROPM,*),
53 . SIGOXX(NEL),SIGOYY(NEL),SIGOXY(NEL),SIGOYZ(NEL),SIGOZX(NEL),
54 . signxx(nel),signyy(nel),signxy(nel),signyz(nel),signzx(nel),
55 . depsxx(mvsiz),depsyy(mvsiz),depsxy(mvsiz),depsyz(mvsiz),
56 . depszx(mvsiz),epsxx(mvsiz),epsyy(mvsiz),epsxy(mvsiz)
57C-----------------------------------------------
58C L o c a l V a r i a b l e s
59C-----------------------------------------------
60 INTEGER I
61C REAL
62 my_real
63 . EZZ(MVSIZ),NU,G,A1,A2
64 my_real
65 . eigv(mvsiz,3,2),trav(mvsiz),rootv(mvsiz),
66 . eh1(mvsiz),eh2(mvsiz),eb1(mvsiz),eb2(mvsiz),
67 . for1(mvsiz),for2(mvsiz)
68C-----------------------------------------------
69 nu = pm(21,imat)
70 g = pm(22,imat)
71 a1 = pm(24,imat)
72 a2 = pm(25,imat)
73!
74 DO i=jft,jlt
75 signxx(i)=sigoxx(i)
76 signyy(i)=sigoyy(i)
77 signxy(i)=sigoxy(i)
78 signyz(i)=sigoyz(i)
79 signzx(i)=sigozx(i)
80 ENDDO
81!---
82 IF (ismstr == 10) THEN
83 DO i=jft,jlt
84 epsxx(i) = epsxx(i) + one
85 epsyy(i) = epsyy(i) + one
86 epsxy(i) = half * epsxy(i)
87 ENDDO
88C principal stretch (def gradient eigenvalues)
89 DO i=jft,jlt
90 trav(i) = epsxx(i)+epsyy(i)
91 rootv(i) = sqrt((epsxx(i)-epsyy(i))*(epsxx(i)-epsyy(i))
92 . + epsxy(i)*epsxy(i)*four)
93 eb1(i) = half*(trav(i)+rootv(i))
94 eb2(i) = half*(trav(i)-rootv(i))
95 eh1(i) = half*log(eb1(i))
96 eh2(i) = half*log(eb2(i))
97 for1(i)= a1*eh1(i)+a2*eh2(i)
98 for2(i)= a1*eh2(i)+a2*eh1(i)
99 ENDDO
100C rot matrix (eigenvectors), ROOTV= 2R
101 DO i=jft,jlt
102 IF (abs(eb2(i)-eb1(i)) < em15) THEN
103 eigv(i,1,1)=one
104 eigv(i,2,1)=zero
105 eigv(i,3,1)=zero
106 eigv(i,1,2)=zero
107 eigv(i,2,2)=one
108 eigv(i,3,2)=zero
109 ELSE
110 eigv(i,1,1) = (epsxx(i)-eb2(i)) / rootv(i)
111 eigv(i,2,1) = (epsyy(i)-eb2(i)) / rootv(i)
112 eigv(i,3,1) = (epsxy(i)) / rootv(i)
113 eigv(i,1,2) = (eb1(i)-epsxx(i)) / rootv(i)
114 eigv(i,2,2) = (eb1(i)-epsyy(i)) / rootv(i)
115 eigv(i,3,2) =-(epsxy(i)) / rootv(i)
116 ENDIF
117 ENDDO
118 ENDIF ! IF (ISMSTR == 10) THEN
119!---
120!---------------------------
121! CONTRAINTES ELASTIQUES
122!---------------------------
123 IF (ismstr /= 10) THEN
124 DO i=jft,jlt
125 signxx(i) = signxx(i)+a1*depsxx(i)+a2*depsyy(i)
126 signyy(i) = signyy(i)+a2*depsxx(i)+a1*depsyy(i)
127 signxy(i) = signxy(i)+ g*depsxy(i)
128 signyz(i) = signyz(i)+gs(i)*depsyz(i)
129 signzx(i) = signzx(i)+gs(i)*depszx(i)
130 ENDDO
131 ELSE ! ISMSTR = 10
132 DO i=jft,jlt
133 signxx(i) = eigv(i,1,1)*for1(i) + eigv(i,1,2)*for2(i)
134 signyy(i) = eigv(i,2,1)*for1(i) + eigv(i,2,2)*for2(i)
135 signxy(i) = eigv(i,3,1)*for1(i) + eigv(i,3,2)*for2(i)
136 signyz(i) = sigoyz(i)+ gs(i)*depsyz(i)
137 signzx(i) = sigozx(i)+ gs(i)*depszx(i)
138 ENDDO
139 ENDIF ! IF (ISMSTR /= 10)
140!---
141 DO i=jft,jlt
142 ezz(i) = -nu * (depsxx(i) + depsyy(i)) / (one-nu)
143 thk(i) = thk(i) + ezz(i) * thklyl(i)*off(i)
144 ENDDO
145!---
146 RETURN
147 END
subroutine sigeps01c(jft, jlt, nel, imat, gs, sigoxx, sigoyy, sigoxy, sigoyz, sigozx, signxx, signyy, signxy, signyz, signzx, depsxx, depsyy, depsxy, depsyz, depszx, thk, thklyl, off, pm, ismstr, epsxx, epsyy, epsxy)
Definition sigeps01c.F:34