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

Go to the source code of this file.

Functions/Subroutines

subroutine no_asso_lplas76c (nel, nuparam, nuvar, nfunc, ifunc, npf, tf, numtabl, table, time, timestep, uparam, uvar, rho, depsxx, depsyy, depsxy, depsyz, depszx, sigoxx, sigoyy, sigoxy, sigoyz, sigozx, signxx, signyy, signxy, signyz, signzx, pla, dpla, epsd, off, gs, yld, soundsp, dezz, inloc, dplanl, nvartmp, vartmp, loff)

Function/Subroutine Documentation

◆ no_asso_lplas76c()

subroutine no_asso_lplas76c ( integer, intent(in) nel,
integer, intent(in) nuparam,
integer, intent(in) nuvar,
integer, intent(in) nfunc,
integer, dimension(nfunc), intent(in) ifunc,
integer, dimension(snpc) npf,
tf,
integer, intent(in) numtabl,
type(table_4d_), dimension(numtabl), intent(in) table,
intent(in) time,
intent(in) timestep,
intent(in) uparam,
intent(inout) uvar,
intent(in) rho,
intent(in) depsxx,
intent(in) depsyy,
intent(in) depsxy,
intent(in) depsyz,
intent(in) depszx,
intent(in) sigoxx,
intent(in) sigoyy,
intent(in) sigoxy,
intent(in) sigoyz,
intent(in) sigozx,
intent(out) signxx,
intent(out) signyy,
intent(out) signxy,
intent(out) signyz,
intent(out) signzx,
intent(inout) pla,
intent(out) dpla,
intent(inout) epsd,
intent(inout) off,
intent(in) gs,
intent(inout) yld,
intent(inout) soundsp,
intent(out) dezz,
integer, intent(in) inloc,
intent(in) dplanl,
integer, intent(in) nvartmp,
integer, dimension(nel,nvartmp), intent(inout) vartmp,
intent(in) loff )

Definition at line 34 of file no_asso_lplas76c.F.

44C-----------------------------------------------
45C M o d u l e s
46C-----------------------------------------------
47 USE table4d_mod
49C-----------------------------------------------
50C I m p l i c i t T y p e s
51C-----------------------------------------------
52#include "implicit_f.inc"
53C-----------------------------------------------
54C G l o b a l P a r a m e t e r s
55C-----------------------------------------------
56#include "tabsiz_c.inc"
57C-----------------------------------------------
58C I N P U T A r g u m e n t s
59C-----------------------------------------------
60 INTEGER, INTENT(IN) :: NEL,NUPARAM,NUVAR,NFUNC,NUMTABL,INLOC
61 INTEGER, INTENT(IN) :: NVARTMP
62 INTEGER, DIMENSION(NFUNC), INTENT(IN) :: IFUNC
63 my_real, INTENT(IN) :: time,timestep
64 my_real, DIMENSION(NUPARAM), INTENT(IN) :: uparam
65 my_real, DIMENSION(NEL), INTENT(IN) :: gs,rho,dplanl,
66 . depsxx,depsyy,depsxy,depsyz,depszx,
67 . sigoxx,sigoyy,sigoxy,sigoyz,sigozx
68 TYPE(TABLE_4D_), DIMENSION(NUMTABL), INTENT(IN) :: TABLE
69 my_real, DIMENSION(NEL), INTENT(IN) :: loff
70C-----------------------------------------------
71C O U T P U T A r g u m e n t s
72C-----------------------------------------------
73 my_real, DIMENSION(NEL), INTENT(OUT) ::
74 . signxx,signyy,signxy,signyz,signzx,dezz,dpla
75C-----------------------------------------------
76C I N P U T O U T P U T A r g u m e n t s
77C-----------------------------------------------
78 INTEGER, DIMENSION(NEL,NVARTMP), INTENT(INOUT) :: VARTMP
79 my_real, DIMENSION(NEL,NUVAR) , INTENT(INOUT) :: uvar
80 my_real, DIMENSION(NEL), INTENT(INOUT) :: off,yld,pla,epsd,soundsp
81C-----------------------------------------------
82C VARIABLES FOR FUNCTION INTERPOLATION
83C-----------------------------------------------
84 INTEGER :: NPF(SNPC)
85 my_real :: tf(stf)
86C-----------------------------------------------
87C L o c a l V a r i a b l e s
88C-----------------------------------------------
89 INTEGER I,II,ITER,NITER,ICONV,ICAS,NINDX
90 INTEGER, PARAMETER :: FUNC_TRAC = 1
91 INTEGER, PARAMETER :: FUNC_COMP = 2
92 INTEGER, PARAMETER :: FUNC_SHEAR = 3
93 INTEGER, DIMENSION(NEL) :: INDX,IAD,ILEN
94 my_real :: lam,dlam,df1,epsdot,da0,da1,da2,
95 . ca,cb,aa,bb,cc,a1s,a1c,a1t,a2s,a2c,a2t,e,nu,nu1,nupc,xfac,
96 . yy,dx2,dfdsigdlam,yld_norm,epd_min,epd_max,
97 . normxx,normyy,normxy,normzz,normyz,normzx,alfa,alfi,dtinv,
98 . normgxx,normgyy,normgxy,normgzz,sig_dfdsig,
99 . epdt_min,epdt_max,epdc_min,epdc_max,epds_min,epds_max
100 my_real, DIMENSION(NEL) :: ff,p,svm,svm2,ylds,sxx,syy,sxy,szz,
101 . dpxx,dpyy,dpxy,dpzz,sigt,sigc,sigs,dft,dfc,dfs,a11_2d,a12_2d,g,
102 . a0,a1,a2,nup,epspt,epspc,epsps,epdt,epdc,epds,dydx,
103 . epdt_f,epdc_f,epds_f,dplat,dplac,dplas,gf,alpha,dlam_nl
104 my_real, DIMENSION(NEL,2) :: xvec
105 my_real, DIMENSION(NUMTABL) :: tfac
106 my_real, DIMENSION(NFUNC) :: yfac
107 LOGICAL :: CONV(NEL)
108 my_real, PARAMETER :: sfac = 1.05d0 ! Security factor of ICONV
109c-----------------------------------------------
110c associated plasticity with quadratic yield function
111c-----------------------------------------
112c icas ifunt | ifunc | ifuncs
113c -1 1 | 1 | 1
114c 0 1 | 0 | 0
115c 1 1 | 1 | 0
116c 2 1 | 0 | 1
117c-----------------------------------------
118c UVAR(1) : EPSPT
119c UVAR(2) : EPSPC
120c UVAR(3) : EPSPS
121c UVAR(4) : EPDT
122c UVAR(5) : EPDC
123c UVAR(6) : EPDS
124c UVAR(7) : NUP
125C=======================================================================
126c
127 !=======================================================================
128 ! - INITIALISATION OF COMPUTATION ON TIME STEP
129 !=======================================================================
130 ! Recovering model parameters
131 ! -> Elastic parameters
132 e = uparam(1)
133 nu = uparam(5)
134 ! -> Plastic parameters
135 nupc = uparam(9)
136 ! -> Flags
137 iconv = nint(uparam(15))
138 icas = uparam(17)
139 xfac = uparam(18)
140 alfa = min(one, uparam(16)*timestep)! filtering coefficient for plastic strain rate
141 epdt_min = uparam(19)
142 epdt_max = uparam(20)
143 epdc_min = uparam(21)
144 epdc_max = uparam(22)
145 epds_min = uparam(23)
146 epds_max = uparam(24)
147 tfac(1) = uparam(25)
148 tfac(2) = uparam(26)
149 tfac(3) = uparam(27)
150 yfac(1) = uparam(28)
151 yfac(2) = uparam(29)
152 a11_2d(1:nel) = uparam(2) ! E / (ONE - NU*NU)
153 a12_2d(1:nel) = uparam(3) ! AA2 * NU
154 g(1:nel) = uparam(4)
155 nu1 = nu/(one - nu) ! aa1/aa2
156 alfi = one - alfa
157 dtinv = one / max(em20, timestep)
158c
159 ! Initialize plastic Poisson ratio
160 IF (time == zero) THEN
161 nup(1:nel) = nupc
162 uvar(1:nel,7) = nupc
163 ELSE
164 nup(1:nel) = uvar(1:nel,7)
165 ENDIF
166c
167 ! Recovering internal variables
168 epspt(1:nel) = uvar(1:nel,1)
169 epspc(1:nel) = uvar(1:nel,2)
170 epsps(1:nel) = uvar(1:nel,3)
171 epdt_f(1:nel) = uvar(1:nel,4)
172 epdc_f(1:nel) = uvar(1:nel,5)
173 epds_f(1:nel) = uvar(1:nel,6)
174 dplat(1:nel) = zero
175 dplac(1:nel) = zero
176 dplas(1:nel) = zero
177 DO i=1,nel
178 epdt(i) = min(epdt_max, max(epdt_f(i),epdt_min)) * xfac
179 epdc(i) = min(epdc_max, max(epdc_f(i),epdc_min)) * xfac
180 epds(i) = min(epds_max, max(epds_f(i),epds_min)) * xfac
181 ENDDO
182c
183 ! Computation of yield stresses
184 xvec(1:nel,1) = epspt(1:nel)
185 xvec(1:nel,2) = epdt(1:nel)
186 CALL table_mat_vinterp(table(func_trac),nel,nel,vartmp(1,1),xvec,sigt,dft)
187 sigt(1:nel) = sigt(1:nel) * tfac(1)
188 dft(1:nel) = dft(1:nel) * tfac(1)
189 IF (table(func_comp)%NOTABLE > 0) THEN
190 xvec(1:nel,1) = epspc(1:nel)
191 xvec(1:nel,2) = epdc(1:nel)
192 CALL table_mat_vinterp(table(func_comp),nel,nel,vartmp(1,3),xvec,sigc,dfc)
193 sigc(1:nel) = sigc(1:nel) * tfac(2)
194 dfc(1:nel) = dfc(1:nel) * tfac(2)
195 END IF
196 IF (table(func_shear)%NOTABLE > 0) THEN
197 xvec(1:nel,1) = epsps(1:nel)
198 xvec(1:nel,2) = epds(1:nel)
199 CALL table_mat_vinterp(table(func_shear),nel,nel,vartmp(1,5),xvec,sigs,dfs)
200 sigs(1:nel) = sigs(1:nel) * tfac(3)
201 dfs(1:nel) = dfs(1:nel) * tfac(3)
202 END IF
203 IF (icas == 0) THEN
204 sigc(1:nel) = sigt(1:nel)
205 sigs(1:nel) = sigt(1:nel)/sqr3
206 ELSEIF (icas == 1) THEN
207 DO i=1,nel
208 sigs(i) = one /(sigt(i) + sigc(i))/sqr3
209 sigs(i) = two*sigt(i)*sigc(i)*sigs(i)
210 ENDDO
211 ENDIF
212 ! Ensured convexity
213 IF (iconv == 1) THEN
214 DO i=1,nel
215 conv(i) = .false.
216 aa = one /(sigt(i) + sigc(i))/sqr3
217 IF (sigs(i) < sfac*two*sigt(i)*sigc(i)*aa) THEN
218 sigs(i) = sfac*two*sigt(i)*sigc(i)*aa
219 conv(i) = .true.
220 ENDIF
221 END DO
222 END IF
223 DO i=1,nel
224 a0(i) = sigs(i)*sqr3
225 a1(i) = three*(((sigt(i)-sigc(i))/(sigt(i)+sigc(i))) -
226 . a0(i)*((sigt(i)-sigc(i))/(sigt(i)*sigc(i))))
227 a2(i) = eighteen*((one/(sigt(i)+sigc(i)))-a0(i)/(two*sigt(i)*sigc(i)))
228 END DO
229c
230 !========================================================================
231 ! - COMPUTATION OF TRIAL VALUES
232 !========================================================================
233 DO i=1,nel
234 ! Computation of the trial stress tensor
235 signxx(i) = sigoxx(i) + a11_2d(i)*depsxx(i) + a12_2d(i)*depsyy(i)
236 signyy(i) = sigoyy(i) + a11_2d(i)*depsyy(i) + a12_2d(i)*depsxx(i)
237 signxy(i) = sigoxy(i) + depsxy(i)*g(i)
238 signyz(i) = sigoyz(i) + depsyz(i)*gs(i)
239 signzx(i) = sigozx(i) + depszx(i)*gs(i)
240 p(i) = -(signxx(i) + signyy(i)) * third
241 ! Computation of the deviatoric trial stress tensor
242 sxx(i) = signxx(i) + p(i)
243 syy(i) = signyy(i) + p(i)
244 szz(i) = p(i)
245 dezz(i)= -nu1 * (depsxx(i) + depsyy(i))
246 soundsp(i) = sqrt(a11_2d(i)/rho(i))
247 ENDDO
248c
249 !========================================================================
250 ! - COMPUTATION OF YIELD FONCTION
251 !========================================================================
252 ! Alpha coefficient for non associated function
253 DO i = 1,nel
254 alpha(i) = (nine/two)*((one-two*nup(i))/(one+nup(i)))
255 ENDDO
256 niter = 4
257 nindx = 0
258 DO i=1,nel
259 svm2(i) = three_half*(sxx(i)**2 + syy(i)**2 + szz(i)**2) + three*signxy(i)**2
260 svm(i) = sqrt(max(em20,svm2(i)))
261 ylds(i) = svm(i) - a0(i) - a1(i)*p(i) - a2(i)*p(i)*p(i)
262 IF (ylds(i) > 0 .AND. off(i) == one) THEN
263 nindx = nindx + 1
264 indx(nindx) = i
265 ENDIF
266 ENDDO
267c
268 !====================================================================
269 ! - PLASTIC RETURN MAPPING WITH CUTTING PLANE METHOD
270 !====================================================================
271 IF (nindx > 0) THEN
272c
273 ! Loop over the iterations
274 DO iter = 1,niter
275c
276 ! Loop over yielding elements
277 DO ii = 1,nindx
278 i = indx(ii)
279c
280 ! Note : in this part, the purpose is to compute for each iteration
281 ! a plastic multiplier allowing to update internal variables to satisfy
282 ! the consistency condition using the cutting plane algorithm
283 ! Its expression at each iteration is : DLAMBDA = - PHI/DPHI_DLAMBDA
284 ! -> PHI : current value of yield function (known)
285 ! -> DPHI_DLAMBDA : derivative of PHI with respect to DLAMBDA by taking
286 ! into account of internal variables kinetic :
287 ! plasticity ...
288c
289 ! function g for non associated flow rule
290 gf(i) = sqrt(max(em20,(svm(i)**2)+alpha(i)*p(i)**2))
291c
292 ! dgf/dsig for non-associated plastic flow
293 normgxx = (three_half*sxx(i) - third*alpha(i)*p(i) ) /gf(i)
294 normgyy = (three_half*syy(i) - third*alpha(i)*p(i) ) /gf(i)
295 normgzz = (three_half*szz(i) - third*alpha(i)*p(i) ) /gf(i)
296 normgxy = three*signxy(i)/gf(i)
297c
298 ! df/dsig
299 cb = a1(i) + two*a2(i)*p(i)
300 normxx = three_half * sxx(i)/svm(i) + cb /three ! DF/DSIG
301 normyy = three_half * syy(i)/svm(i) + cb /three
302 normzz = three_half * szz(i)/svm(i) + cb /three
303 normxy = three * signxy(i)/svm(i)
304c
305 ! DF/DSIG * DSIG/DDLAM
306 dfdsigdlam = normxx * (a11_2d(i)*normgxx + a12_2d(i)*normgyy)
307 . + normyy * (a11_2d(i)*normgyy + a12_2d(i)*normgxx)
308 . + normxy * normgxy * g(i)
309c
310 yld_norm = svm(i)/gf(i)
311 bb = three_half/(one + nup(i))
312 dft(i) = dft(i) * yld_norm * bb
313 IF (table(func_comp)%NOTABLE > 0) dfc(i) = dfc(i) * yld_norm * bb
314 IF (table(func_shear)%NOTABLE > 0) dfs(i) = dfs(i) * yld_norm * sqr3/two
315 IF (icas == 0) THEN
316 dfc(i) = dft(i)
317 dfs(i) = (one/sqr3)*dft(i)
318 ELSEIF (icas == 1) THEN
319 aa = one /(sigt(i) + sigc(i))/sqr3
320 dfs(i) = two*(dft(i)*sigc(i) + dfc(i)*sigt(i))*aa
321 . - two*sqr3*sigc(i)*sigt(i)*(dft(i) + dfc(i))*aa*aa
322 ENDIF
323 IF (iconv == 1) THEN
324 IF (conv(i)) THEN
325 aa = one /(sigt(i) + sigc(i))/sqr3
326 dfs(i) = sfac*(two*(dft(i)*sigc(i) + dfc(i)*sigt(i))*aa
327 . - two*sqr3*sigc(i)*sigt(i)*(dft(i) + dfc(i))*aa*aa)
328 ENDIF
329 ENDIF
330c
331 ! derivatives dAi/dlam
332 cc = sigs(i)/sigc(i)/sigt(i)
333c
334 a1s = -three*sqr3*(sigt(i)-sigc(i))/(sigt(i)*sigc(i))
335 a1c = three*( (sigs(i)*sqr3/( sigc(i)**2)) -
336 . (two*sigt(i)/( (sigt(i) + sigc(i))**2)) )
337 a1t = three*(two*sigc(i)/((sigt(i) + sigc(i))**2) -
338 . (sigs(i)*sqr3/(sigt(i)**2)))
339c
340 a2s = -nine*sqr3/(sigt(i)*sigc(i))
341 a2c = eighteen*((sigs(i)*sqr3/(two*sigt(i)*(sigc(i)**2))) -
342 . one/((sigt(i)+sigc(i))**2))
343 a2t = eighteen*((sigs(i)*sqr3/(two*sigc(i)*(sigt(i)**2))) -
344 . one/((sigt(i)+sigc(i))**2))
345c
346 da0 = sqr3*dfs(i)
347 da1 = a1s*dfs(i) + a1t*dft(i) + a1c*dfc(i)
348 da2 = a2s*dfs(i) + a2t*dft(i) + a2c*dfc(i)
349c
350 ff(i) = dfdsigdlam + da0 + p(i)*da1 + p(i)**2 * da2
351 ff(i) = sign(max(abs(ff(i)),em20) ,ff(i))
352c
353 dlam = ylds(i)/ff(i)
354 ! Plastic strains tensor update
355 dpxx(i) = dlam * normgxx
356 dpyy(i) = dlam * normgyy
357 dpzz(i) = dlam * normgzz
358 dpxy(i) = dlam * normgxy
359c
360 ! Elasto-plastic stresses update
361 signxx(i) = signxx(i) - (a11_2d(i)*dpxx(i) + a12_2d(i)*dpyy(i))
362 signyy(i) = signyy(i) - (a11_2d(i)*dpyy(i) + a12_2d(i)*dpxx(i))
363 signxy(i) = signxy(i) - dpxy(i)*g(i)
364c
365 ! compute EPSPC(I), EPSPT(I), EPSPS(I)
366 epspt(i) = epspt(i) + dlam* yld_norm * bb
367 epspc(i) = epspt(i)
368 epsps(i) = epsps(i) + dlam* yld_norm*sqr3/two
369c
370 pla(i) = pla(i) + dlam*yld_norm*off(i)
371 dpla(i) = dpla(i) + dlam *yld_norm
372 dplat(i) = dplat(i) + dlam* yld_norm*bb
373 dplac(i) = dplat(i)
374 dplas(i) = dplas(i) + dlam* yld_norm*sqr3/two
375c
376 ENDDO
377c
378 ! Update Yld values and criterion with new plastic strain and strain rate
379 xvec(1:nel,1) = epspt(1:nel)
380 xvec(1:nel,2) = epdt(1:nel)
381 CALL table_mat_vinterp(table(func_trac),nel,nel,vartmp(1,1),xvec,sigt,dft)
382 sigt(1:nel) = sigt(1:nel) * tfac(1)
383 dft(1:nel) = dft(1:nel) * tfac(1)
384 IF (table(func_comp)%NOTABLE > 0) THEN
385 xvec(1:nel,1) = epspc(1:nel)
386 xvec(1:nel,2) = epdc(1:nel)
387 CALL table_mat_vinterp(table(func_comp),nel,nel,vartmp(1,3),xvec,sigc,dfc)
388 sigc(1:nel) = sigc(1:nel) * tfac(2)
389 dfc(1:nel) = dfc(1:nel) * tfac(2)
390 END IF
391 IF (table(func_shear)%NOTABLE > 0) THEN
392 xvec(1:nel,1) = epsps(1:nel)
393 xvec(1:nel,2) = epds(1:nel)
394 CALL table_mat_vinterp(table(func_shear),nel,nel,vartmp(1,5),xvec,sigs,dfs)
395 sigs(1:nel) = sigs(1:nel) * tfac(3)
396 dfs(1:nel) = dfs(1:nel) * tfac(3)
397 END IF
398 IF (icas == 0) THEN
399 DO ii = 1,nindx
400 i = indx(ii)
401 sigc(i) = sigt(i)
402 sigs(i) = sigt(i)/sqr3
403 ENDDO
404 ELSEIF (icas == 1) THEN
405 DO ii = 1,nindx
406 i = indx(ii)
407 sigs(i) = one /(sigt(i) + sigc(i))/sqr3
408 sigs(i) = two*sigt(i)*sigc(i)*sigs(i)
409 ENDDO
410 ENDIF
411 IF (iconv == 1) THEN
412 DO ii = 1,nindx
413 i = indx(ii)
414 conv(i) = .false.
415 aa = one /(sigt(i) + sigc(i))/sqr3
416 IF (sigs(i) < sfac*two*sigt(i)*sigc(i)*aa) THEN
417 sigs(i) = sfac*two*sigt(i)*sigc(i)*aa
418 conv(i) = .true.
419 ENDIF
420 END DO
421 END IF
422 DO ii = 1,nindx
423 i = indx(ii)
424 a0(i) = sigs(i)*sqr3
425 a1(i) = three*(((sigt(i)-sigc(i))/(sigt(i)+sigc(i))) -
426 . a0(i)*((sigt(i)-sigc(i))/(sigt(i)*sigc(i))))
427 a2(i) = eighteen*((one/(sigt(i)+sigc(i)))-a0(i)/(two*sigt(i)*sigc(i)))
428 END DO
429c
430 ! Update yield function value
431 DO ii = 1,nindx
432 i = indx(ii)
433 p(i) = -third*(signxx(i) + signyy(i) )
434 sxx(i) = signxx(i) + p(i)
435 syy(i) = signyy(i) + p(i)
436 szz(i) = p(i)
437 svm2(i)= three_half*(sxx(i)**2 + syy(i)**2 + szz(i)**2) + three*signxy(i)**2
438 svm(i) = sqrt(svm2(i))
439 ylds(i) = svm(i) - a0(i) - a1(i)*p(i) - a2(i)*p(i)*p(i)
440 IF (inloc == 0) THEN
441 dezz(i) = dezz(i) + nu1*(dpxx(i) + dpyy(i)) + dpzz(i)
442 ENDIF
443 ENDDO
444 ENDDO ! End Newton iterations
445 ENDIF ! Plasticity
446c
447 !====================================================================
448 ! - UPDATE PLASTIC POISSON RATIO
449 !====================================================================
450 IF (ifunc(1) > 0) THEN
451 iad(1:nel) = npf(ifunc(1)) / 2 + 1
452 ilen(1:nel) = npf(ifunc(1)+1) / 2 - iad(1:nel) - vartmp(1:nel,8)
453!
454 CALL vinter(tf,iad,vartmp(1:nel,8),ilen,nel,pla,dydx,nup)
455!
456 uvar(1:nel,7) = yfac(1) * nup(1:nel)
457 uvar(1:nel,7) = max(zero, min(nup(1:nel), half))
458 END IF
459c
460 !====================================================================
461 ! - NON-LOCAL THICKNESS VARIATION
462 !====================================================================
463 IF (inloc > 0) THEN
464 DO i = 1,nel
465 IF (loff(i) == one) THEN
466 alpha(i)= (nine/two)*((one-two*nup(i))/(one+nup(i)))
467 gf(i) = sqrt(max(em20,(svm(i)**2)+alpha(i)*p(i)**2))
468 normgxx = (three_half*sxx(i) - third*alpha(i)*p(i))/gf(i)
469 normgyy = (three_half*syy(i) - third*alpha(i)*p(i))/gf(i)
470 normgzz = (three_half*szz(i) - third*alpha(i)*p(i))/gf(i)
471 yld_norm = svm(i)/gf(i)
472 IF (yld_norm /= zero) THEN
473 dlam_nl(i) = (one/yld_norm)*max(dplanl(i),zero)
474 dezz(i) = dezz(i) + nu1*(dlam_nl(i)*normgxx)
475 . + nu1*(dlam_nl(i)*normgyy)
476 . + dlam_nl(i)*normgzz
477 ENDIF
478 ENDIF
479 ENDDO
480 ENDIF
481c
482 !====================================================================
483 ! - STORING NEW VALUES
484 !====================================================================
485 uvar(1:nel,1) = epspt(1:nel)
486 uvar(1:nel,2) = epspc(1:nel)
487 uvar(1:nel,3) = epsps(1:nel)
488 uvar(1:nel,4) = alfa*dplat(1:nel)*dtinv + alfi*epdt_f(1:nel)
489 uvar(1:nel,5) = alfa*dplac(1:nel)*dtinv + alfi*epdc_f(1:nel)
490 uvar(1:nel,6) = alfa*dplas(1:nel)*dtinv + alfi*epds_f(1:nel)
491 epsd(1:nel) = alfa*dpla(1:nel)*dtinv + alfi*epsd(1:nel)
492c
#define my_real
Definition cppsort.cpp:32
#define alpha
Definition eval.h:35
subroutine func_comp(table, ntable, nptmax, npt_trac, npt_shear, npt_comp, x_comp, y_comp, nup)
Definition law76_upd.F:344
#define min(a, b)
Definition macros.h:20
#define max(a, b)
Definition macros.h:21
subroutine table_mat_vinterp(table, dimx, nel, ipos, xx, yy, dydx)
subroutine vinter(tf, iad, ipos, ilen, nel, x, dydx, y)
Definition vinter.F:72