OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
sigeps34c.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!|| sigeps34c ../engine/source/materials/mat/mat034/sigeps34c.F
25!||--- called by ------------------------------------------------------
26!|| mulawc ../engine/source/materials/mat_share/mulawc.F90
27!||--- calls -----------------------------------------------------
28!|| finter ../engine/source/tools/curve/finter.F
29!||====================================================================
30 SUBROUTINE sigeps34c(
31 1 NEL ,NUPARAM,NUVAR ,NFUNC ,IFUNC ,
32 2 NPF , TF ,TIME ,TIMESTEP,UPARAM ,
33 3 RHO0 ,THKLY , GS ,
34 4 EPSPXX ,EPSPYY ,EPSPXY ,EPSPYZ ,EPSPZX ,
35 5 DEPSXX ,DEPSYY ,DEPSXY ,DEPSYZ ,DEPSZX ,
36 6 EPSXX ,EPSYY ,EPSXY ,EPSYZ ,EPSZX ,
37 7 SIGOXX ,SIGOYY ,SIGOXY ,SIGOYZ ,SIGOZX ,
38 8 SIGNXX ,SIGNYY ,SIGNXY ,SIGNYZ ,SIGNZX ,
39 A SOUNDSP,THK ,UVAR ,OFF )
40C-----------------------------------------------
41C I m p l i c i t T y p e s
42C-----------------------------------------------
43#include "implicit_f.inc"
44C----------------------------------------------------------------
45C I N P U T A R G U M E N T S
46C----------------------------------------------------------------
47 INTEGER :: NEL,NUPARAM, NUVAR
48 my_real :: TIME,TIMESTEP
49 my_real :: UPARAM(NUPARAM)
50 my_real ,DIMENSION(NEL) ::
51 . RHO0 ,
52 . EPSPXX, EPSPYY,EPSPXY, EPSPYZ, EPSPZX,
53 . DEPSXX, DEPSYY, DEPSXY, DEPSYZ, DEPSZX,
54 . EPSXX , EPSYY , EPSXY , EPSYZ , EPSZX,
55 . SIGOXX, SIGOYY,SIGOXY, SIGOYZ, SIGOZX,
56 . gs ,thkly , thk
57C----------------------------------------------------------------
58C O U T P U T A R G U M E N T S
59C----------------------------------------------------------------
60 my_real ,DIMENSION(NEL) ,INTENT(OUT) :: soundsp,
61 . signxx,signyy,signxy,signyz,signzx
62C----------------------------------------------------------------
63C I N P U T O U T P U T A R G U M E N T S
64C----------------------------------------------------------------
65 my_real :: uvar(nel,nuvar), off(nel)
66C----------------------------------------------------------------
67C VARIABLES FOR FUNCTION INTERPOLATION
68C----------------------------------------------------------------
69 INTEGER NPF(*), NFUNC, IFUNC(NFUNC)
70 my_real
71 . FINTER,TF(*)
72 EXTERNAL FINTER
73C----------------------------------------------------------------
74C L O C A L V A R I B L E S
75C----------------------------------------------------------------
76C----------------------------------------------------------------
77C L O C A L V A R I B L E S
78C----------------------------------------------------------------
79 INTEGER :: I, IFORM
80 my_real :: BULK,BULK3,G_INS,G_INF,GE,GE2,GV,GV2,C1,C2,BETA,
81 . aa, bb, dav, p, trace, h0(6),h(6),alpha,dp_drho,cc2
82 my_real ,DIMENSION(NEL) ::
83 . depsm,depszz, signzz, sigozz, depsdxx,depsdyy,depsdzz, dp,
84 . dexx,deyy,dezz,dexy,deyz,dezx,ddexx,ddeyy,ddezz,ddexy,ddeyz,
85 . ddezx,depsdxy,depsdyz,depsdzx,epspm,
86 . depsvxx,depsvyy,depsvzz,depsvxy,depsvyz,depsvzx,em,epsm ,epszz,
87 . epspzz
88C=======================================================================
89 bulk = uparam(1)
90 g_ins = uparam(2) ! instant shear modulus
91 g_inf = uparam(3) ! long term shear modulus
92 beta = uparam(4)
93c
94 ge = g_inf ! elastic part of shear modulus
95 gv = g_ins-g_inf ! viscous part of shear modulus
96 ge2 = ge * two
97 gv2 = gv * two
98 c1 = one - exp(-beta*timestep)
99 c2 =-c1 / beta
100 bulk3 = bulk*three
101 cc2 = gv2*(c1 + c2/max(em20,timestep))
102c
103 DO i=1,nel
104 !
105 ! Computing depzz assuming signzz= 0
106 !
107 dezz(i) = uvar(i,7)
108 h(3) = uvar(i,3)
109 aa = gv2*c1*(dezz(i) - h(3)) + third*(ge2 - cc2 - bulk3)*(depsxx(i) + depsyy(i))
110 bb = two_third*ge2 + bulk - two_third*cc2
111 depszz(i) = aa/bb
112 ddezz(i) = two_third*depszz(i) - third*(depsxx(i) + depsyy(i))
113 dezz(i) = uvar(i,7) + ddezz(i)
114 epszz(i) = three_half*dezz(i) + half*(epsxx(i)+ epsyy(i))
115 epspzz(i) = depszz(i)/max(em20,timestep)
116 !!
117 depsm(i) = third *(depsxx(i)+depsyy(i)+depszz(i))
118 epspm(i) = third *(epspxx(i)+epspyy(i)+epspzz(i))
119 em(i) = third *(epsxx(i) +epsyy(i) +epszz(i) )
120 uvar(i,7) = dezz(i)
121 ! thickness
122 thk(i) = thk(i) + depszz(i)*thkly(i)*off(i)
123 END DO
124c
125c Deviators of strain, strain increment and strain rate
126c
127 DO i=1,nel
128 dexx(i) = epsxx(i)-em(i)
129 deyy(i) = epsyy(i)-em(i)
130 dezz(i) = epszz(i)-em(i)
131 dexy(i) = epsxy(i)
132 deyz(i) = epsyz(i)
133 dezx(i) = epszx(i)
134c
135 ddexx(i) = depsxx(i)-depsm(i)
136 ddeyy(i) = depsyy(i)-depsm(i)
137 ddezz(i) = depszz(i)-depsm(i)
138 ddexy(i) = depsxy(i)
139 ddeyz(i) = depsyz(i)
140 ddezx(i) = depszx(i)
141c
142 depsdxx(i) = epspxx(i)-epspm(i)
143 depsdyy(i) = epspyy(i)-epspm(i)
144 depsdzz(i) = epspzz(i)-epspm(i)
145 depsdxy(i) = epspxy(i)
146 depsdyz(i) = epspyz(i)
147 depsdzx(i) = epspzx(i)
148 END DO
149
150 DO i=1,nel
151 depsvxx(i) = c1*(dexx(i)-uvar(i,1)) + c2*depsdxx(i)
152 depsvyy(i) = c1*(deyy(i)-uvar(i,2)) + c2*depsdyy(i)
153 depsvzz(i) = c1*(dezz(i)-uvar(i,3)) + c2*depsdzz(i)
154 depsvxy(i) = c1*(dexy(i)-uvar(i,4)) + c2*depsdxy(i)
155 depsvyz(i) = c1*(deyz(i)-uvar(i,5)) + c2*depsdyz(i)
156 depsvzx(i) = c1*(dezx(i)-uvar(i,6)) + c2*depsdzx(i)
157 END DO
158
159 dp(1:nel) = bulk3 * depsm(1:nel)
160
161 DO i=1,nel
162 signxx(i) = sigoxx(i) + ge2*ddexx(i) - gv2*depsvxx(i) + dp(i)
163 signyy(i) = sigoyy(i) + ge2*ddeyy(i) - gv2*depsvyy(i) + dp(i)
164 !! SIGNZZ(I) = GE2*DDEZZ(I) - GV2*DEPSVZZ(I) + DP(I) ! must be zero ! only for checking if is needed
165 signxy(i) = sigoxy(i) + ge *ddexy(i) - gv *depsvxy(i)
166 signyz(i) = sigoyz(i) + ge *ddeyz(i) - gv *depsvyz(i)
167 signzx(i) = sigozx(i) + ge *ddezx(i) - gv *depsvzx(i)
168 END DO
169c
170 dp_drho = four_over_3*g_ins + bulk
171 soundsp(1:nel) = sqrt(dp_drho / rho0(1:nel))
172c
173 DO i=1,nel
174 uvar(i,1) = uvar(i,1) + depsvxx(i) + ddexx(i)
175 uvar(i,2) = uvar(i,2) + depsvyy(i) + ddeyy(i)
176 uvar(i,3) = uvar(i,3) + depsvzz(i) + ddezz(i)
177 uvar(i,4) = uvar(i,4) + depsvxy(i) + ddexy(i)
178 uvar(i,5) = uvar(i,5) + depsvyz(i) + ddeyz(i)
179 uvar(i,6) = uvar(i,6) + depsvzx(i) + ddezx(i)
180 END DO
181C=======================================================================
182
183c-----------
184 RETURN
185 END
186
#define alpha
Definition eval.h:35
#define max(a, b)
Definition macros.h:21
subroutine sigeps34c(nel, nuparam, nuvar, nfunc, ifunc, npf, tf, time, timestep, uparam, rho0, thkly, gs, epspxx, epspyy, epspxy, epspyz, epspzx, depsxx, depsyy, depsxy, depsyz, depszx, epsxx, epsyy, epsxy, epsyz, epszx, sigoxx, sigoyy, sigoxy, sigoyz, sigozx, signxx, signyy, signxy, signyz, signzx, soundsp, thk, uvar, off)
Definition sigeps34c.F:40