OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
sigeps34.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!|| sigeps34 ../engine/source/materials/mat/mat034/sigeps34.F
25!||--- called by ------------------------------------------------------
26!|| mulaw ../engine/source/materials/mat_share/mulaw.F90
27!|| mulaw8 ../engine/source/materials/mat_share/mulaw8.F90
28!||====================================================================
29 SUBROUTINE sigeps34(
30 1 NEL , NUPARAM, NUVAR , NFUNC , IFUNC , NPF ,
31 2 TF , TIME , TIMESTEP, UPARAM, RHO0 , RHO ,
32 3 VOLUME , EINT ,
33 4 EPSPXX , EPSPYY , EPSPZZ , EPSPXY, EPSPYZ, EPSPZX,
34 5 DEPSXX , DEPSYY , DEPSZZ , DEPSXY, DEPSYZ, DEPSZX,
35 6 EPSXX , EPSYY , EPSZZ , EPSXY , EPSYZ , EPSZX ,
36 7 SIGOXX , SIGOYY , SIGOZZ , SIGOXY, SIGOYZ, SIGOZX,
37 8 SIGNXX , SIGNYY , SIGNZZ , SIGNXY, SIGNYZ, SIGNZX,
38 9 SIGVXX , SIGVYY , SIGVZZ , SIGVXY, SIGVYZ, SIGVZX,
39 A SOUNDSP, VISCMAX, 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
49 . TIME , TIMESTEP , UPARAM(NUPARAM),
50 . RHO (NEL), RHO0 (NEL), VOLUME(NEL), EINT(NEL),
51 . EPSPXX(NEL), EPSPYY(NEL), EPSPZZ(NEL),
52 . EPSPXY(NEL), EPSPYZ(NEL), EPSPZX(NEL),
53 . DEPSXX(NEL), DEPSYY(NEL), DEPSZZ(NEL),
54 . DEPSXY(NEL), DEPSYZ(NEL), DEPSZX(NEL),
55 . EPSXX (NEL), EPSYY (NEL), EPSZZ (NEL),
56 . EPSXY (NEL), EPSYZ (NEL), EPSZX (NEL),
57 . sigoxx(nel), sigoyy(nel), sigozz(nel),
58 . sigoxy(nel), sigoyz(nel), sigozx(nel)
59C----------------------------------------------------------------
60C O U T P U T A R G U M E N T S
61C----------------------------------------------------------------
62 my_real
63 . signxx(nel), signyy(nel), signzz(nel),
64 . signxy(nel), signyz(nel), signzx(nel),
65 . sigvxx(nel), sigvyy(nel), sigvzz(nel),
66 . sigvxy(nel), sigvyz(nel), sigvzx(nel),
67 . soundsp(nel), viscmax(nel)
68C----------------------------------------------------------------
69C I N P U T O U T P U T A R G U M E N T S
70C----------------------------------------------------------------
71 my_real uvar(nel,nuvar), off(nel)
72C----------------------------------------------------------------
73C VARIABLES FOR FUNCTION INTERPOLATION
74C----------------------------------------------------------------
75 INTEGER NPF(*), NFUNC, IFUNC(NFUNC)
76 my_real TF(*)
77C----------------------------------------------------------------
78C L O C A L V A R I B L E S
79C----------------------------------------------------------------
80 INTEGER :: I
81 my_real :: bulk,bulk3,g_ins,g_inf,ge,ge2,gv,gv2,c1,c2,beta,p0,phi,
82 . gama0,dp_drho
83 my_real ,DIMENSION(NEL) :: gama,dpdgama,dp,
84 . depsm,epspm,em,depsvxx,depsvyy,depsvzz,depsvxy,depsvyz,depsvzx,
85 . dexx,deyy,dezz,dexy,deyz,dezx,depsdxx,depsdyy,depsdzz,
86 . depsdxy,depsdyz,depsdzx,ddexx,ddeyy,ddezz,ddexy,ddeyz,ddezx
87C=======================================================================
88 bulk = uparam(1)
89 g_ins = uparam(2) ! instant shear modulus
90 g_inf = uparam(3) ! long term shear modulus
91 beta = uparam(4)
92 p0 = uparam(5)
93 phi = uparam(6)
94 gama0 = uparam(7)
95c
96 ge = g_inf ! elastic part of shear modulus
97 gv = g_ins-g_inf ! viscous part of shear modulus
98 ge2 = ge * two
99 gv2 = gv * two
100 c1 = one - exp(-beta*timestep)
101 c2 =-c1 / beta
102 bulk3 = bulk*three
103c
104 DO i=1,nel
105 gama(i) = rho0(i)/rho(i) - one + gama0
106 dpdgama(i)=-p0*(one-phi) / (one+gama(i)-phi)
107 depsm(i) = third *(depsxx(i)+depsyy(i)+depszz(i))
108 epspm(i) = third *(epspxx(i)+epspyy(i)+epspzz(i))
109 em(i) = third *(epsxx(i) +epsyy(i) +epszz(i) )
110 END DO
111c
112c Deviators of strain, strain increment and strain rate
113c
114 DO i=1,nel
115 dexx(i) = epsxx(i)-em(i)
116 deyy(i) = epsyy(i)-em(i)
117 dezz(i) = epszz(i)-em(i)
118 dexy(i) = epsxy(i)
119 deyz(i) = epsyz(i)
120 dezx(i) = epszx(i)
121c
122 ddexx(i) = depsxx(i)-depsm(i)
123 ddeyy(i) = depsyy(i)-depsm(i)
124 ddezz(i) = depszz(i)-depsm(i)
125 ddexy(i) = depsxy(i)
126 ddeyz(i) = depsyz(i)
127 ddezx(i) = depszx(i)
128c
129 depsdxx(i) = epspxx(i)-epspm(i)
130 depsdyy(i) = epspyy(i)-epspm(i)
131 depsdzz(i) = epspzz(i)-epspm(i)
132 depsdxy(i) = epspxy(i)
133 depsdyz(i) = epspyz(i)
134 depsdzx(i) = epspzx(i)
135 END DO
136
137 DO i=1,nel
138 depsvxx(i) = c1*(dexx(i)-uvar(i,1)) + c2*depsdxx(i)
139 depsvyy(i) = c1*(deyy(i)-uvar(i,2)) + c2*depsdyy(i)
140 depsvzz(i) = c1*(dezz(i)-uvar(i,3)) + c2*depsdzz(i)
141 depsvxy(i) = c1*(dexy(i)-uvar(i,4)) + c2*depsdxy(i)
142 depsvyz(i) = c1*(deyz(i)-uvar(i,5)) + c2*depsdyz(i)
143 depsvzx(i) = c1*(dezx(i)-uvar(i,6)) + c2*depsdzx(i)
144 END DO
145
146 dp(1:nel) = (bulk3 - dpdgama(1:nel)) * depsm(1:nel)
147
148 DO i=1,nel
149 signxx(i) = sigoxx(i) + ge2*ddexx(i) - gv2*depsvxx(i) + dp(i)
150 signyy(i) = sigoyy(i) + ge2*ddeyy(i) - gv2*depsvyy(i) + dp(i)
151 signzz(i) = sigozz(i) + ge2*ddezz(i) - gv2*depsvzz(i) + dp(i)
152 signxy(i) = sigoxy(i) + ge *ddexy(i) - gv *depsvxy(i)
153 signyz(i) = sigoyz(i) + ge *ddeyz(i) - gv *depsvyz(i)
154 signzx(i) = sigozx(i) + ge *ddezx(i) - gv *depsvzx(i)
155 END DO
156c
157 dp_drho = four_over_3*g_ins + bulk
158 soundsp(1:nel) = sqrt(dp_drho / rho0(1:nel))
159c
160 DO i=1,nel
161 uvar(i,1) = uvar(i,1) + depsvxx(i) + ddexx(i)
162 uvar(i,2) = uvar(i,2) + depsvyy(i) + ddeyy(i)
163 uvar(i,3) = uvar(i,3) + depsvzz(i) + ddezz(i)
164 uvar(i,4) = uvar(i,4) + depsvxy(i) + ddexy(i)
165 uvar(i,5) = uvar(i,5) + depsvyz(i) + ddeyz(i)
166 uvar(i,6) = uvar(i,6) + depsvzx(i) + ddezx(i)
167 END DO
168c-----------
169 RETURN
170 END
171
subroutine sigeps34(nel, nuparam, nuvar, nfunc, ifunc, npf, tf, time, timestep, uparam, rho0, rho, volume, eint, epspxx, epspyy, epspzz, epspxy, epspyz, epspzx, depsxx, depsyy, depszz, depsxy, depsyz, depszx, epsxx, epsyy, epszz, epsxy, epsyz, epszx, sigoxx, sigoyy, sigozz, sigoxy, sigoyz, sigozx, signxx, signyy, signzz, signxy, signyz, signzx, sigvxx, sigvyy, sigvzz, sigvxy, sigvyz, sigvzx, soundsp, viscmax, uvar, off)
Definition sigeps34.F:40