OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
sigeps34c.F File Reference
#include "implicit_f.inc"

Go to the source code of this file.

Functions/Subroutines

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)

Function/Subroutine Documentation

◆ sigeps34c()

subroutine sigeps34c ( integer nel,
integer nuparam,
integer nuvar,
integer nfunc,
integer, dimension(nfunc) ifunc,
integer, dimension(*) npf,
tf,
time,
timestep,
uparam,
dimension(nel) rho0,
dimension(nel) thkly,
dimension(nel) gs,
dimension(nel) epspxx,
dimension(nel) epspyy,
dimension(nel) epspxy,
dimension(nel) epspyz,
dimension(nel) epspzx,
dimension(nel) depsxx,
dimension(nel) depsyy,
dimension(nel) depsxy,
dimension(nel) depsyz,
dimension(nel) depszx,
dimension(nel) epsxx,
dimension(nel) epsyy,
dimension(nel) epsxy,
dimension(nel) epsyz,
dimension(nel) epszx,
dimension(nel) sigoxx,
dimension(nel) sigoyy,
dimension(nel) sigoxy,
dimension(nel) sigoyz,
dimension(nel) sigozx,
intent(out) signxx,
intent(out) signyy,
intent(out) signxy,
intent(out) signyz,
intent(out) signzx,
intent(out) soundsp,
dimension(nel) thk,
uvar,
off )

Definition at line 30 of file sigeps34c.F.

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)
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
#define my_real
Definition cppsort.cpp:32
#define alpha
Definition eval.h:35
#define max(a, b)
Definition macros.h:21