OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
scdefo3.F File Reference
#include "implicit_f.inc"
#include "com08_c.inc"
#include "impl1_c.inc"
#include "scr05_c.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine scdefo3 (dxx, dxy, dxz, dyx, dyy, dyz, dzx, dzy, dzz, d4, d5, d6, dcxx, dcxy, dcxz, dcyx, dcyy, dcyz, dczx, dczy, dczz, dc4, dc5, dc6, dhxx, dhxy, dhxz, dhyx, dhyy, dhyz, dhzx, dhzy, dhzz, dh4, dh5, dh6, zi, wi, vzl, vol, volg, volo, ddhv, sig, sigzm, volm, usb, eint, off, offg, dti, offs, dvc, vol0dp, voldp, ipres, nel)

Function/Subroutine Documentation

◆ scdefo3()

subroutine scdefo3 ( dxx,
dxy,
dxz,
dyx,
dyy,
dyz,
dzx,
dzy,
dzz,
d4,
d5,
d6,
dcxx,
dcxy,
dcxz,
dcyx,
dcyy,
dcyz,
dczx,
dczy,
dczz,
dc4,
dc5,
dc6,
dhxx,
dhxy,
dhxz,
dhyx,
dhyy,
dhyz,
dhzx,
dhzy,
dhzz,
dh4,
dh5,
dh6,
zi,
wi,
vzl,
vol,
volg,
volo,
ddhv,
sig,
sigzm,
volm,
usb,
eint,
off,
offg,
dti,
offs,
dvc,
double precision, dimension(*) vol0dp,
double precision, dimension(*) voldp,
integer, intent(in) ipres,
integer, intent(in) nel )

Definition at line 29 of file scdefo3.F.

45C-----------------------------------------------
46C I m p l i c i t T y p e s
47C-----------------------------------------------
48#include "implicit_f.inc"
49C-----------------------------------------------
50C C o m m o n B l o c k s
51C-----------------------------------------------
52#include "com08_c.inc"
53#include "impl1_c.inc"
54#include "scr05_c.inc"
55C-----------------------------------------------
56C D u m m y A r g u m e n t s
57C-----------------------------------------------
58 INTEGER, INTENT(IN) :: NEL,IPRES
59C REAL
61 . dxx(*), dxy(*), dxz(*), dyx(*), dyy(*),dyz(*),
62 . dzx(*), dzy(*), dzz(*), d4(*), d5(*), d6(*),
63 . dcxx(*), dcxy(*),dcxz(*), dcyx(*), dcyy(*),dcyz(*),
64 . dczx(*), dczy(*), dczz(*), dc4(*), dc5(*), dc6(*),
65 . dhxx(*), dhxy(*),dhxz(*), dhyx(*), dhyy(*),dhyz(*),
66 . dhzx(*), dhzy(*), dhzz(*),
67 . dh4(*), dh5(*), dh6(*), ddhv(*),
68 . zi,wi,vzl(*),vol(*),volg(*),volo(*),
69 . sig(nel,6),sigzm(*),volm(*),usb(*),eint(*),off(*),offg(*),dti,
70 . offs(*),dvc(*)
71 DOUBLE PRECISION
72 . VOL0DP(*),VOLDP(*)
73C-----------------------------------------------
74C L o c a l V a r i a b l e s
75C-----------------------------------------------
76 INTEGER I
78 . dv,dvz,ddv,tol,dt1d2,dt1d1
79C=======================================================================
80 tol=one-em20
81 DO i=1,nel
82 voldp(i)=half*wi*(volg(i)+vzl(i)*zi)
83 vol(i)=voldp(i)
84 off(i)=offg(i)
85 IF (vol(i)<=zero) THEN
86 vol(i)= em20
87 off(i)= zero
88 ELSEIF(off(i)==zero.OR.offs(i)==two.OR.ismdisp>0)THEN
89 voldp(i)=max(em20,voldp(i))
90 vol(i)=max(em20,vol(i))
91 ENDIF
92 ENDDO
93 IF (ipres==1) THEN
94 DO i=1,nel
95C ------due to the assumed strain terms----
96 dv = ddhv(i)*dt1*zi
97C ------due to the sigzz traitement----
98 dvz = -(sig(i,3)-sigzm(i)/max(em20,volm(i)))*usb(i)
99 ddv = (dv+dvz)*off(i)
100 dvc(i) = ddv
101 IF (ddv>tol) THEN
102 vol(i)= em20
103 off(i)= zero
104 ddv = zero
105 ELSEIF(off(i)==zero.OR.offs(i)==two.OR.ismdisp>0)THEN
106 ddv = zero
107 END IF
108C
109 IF (iresp==1) vol0dp(i) = vol0dp(i)*(one- ddv)
110 IF(ismdisp>0.OR.offs(i)==two) dvc(i) = dvz
111C
112 volo(i) = volo(i)*(one- ddv)
113 eint(i) = eint(i)/(one- ddv)
114 ENDDO
115 ELSE
116 DO i=1,nel
117 dvc(i) = zero
118 ENDDO
119 END IF
120C +++ -----partie non constante------
121 DO i=1,nel
122 dxx(i)=dcxx(i)+zi*dhxx(i)
123 dyy(i)=dcyy(i)+zi*dhyy(i)
124 dzz(i)=dczz(i)+zi*dhzz(i)
125 dxy(i)=dcxy(i)+zi*dhxy(i)
126 dyx(i)=dcyx(i)+zi*dhyx(i)
127 dzx(i)=dczx(i)+zi*dhzx(i)
128 dzy(i)=dczy(i)+zi*dhzy(i)
129 dxz(i)=dcxz(i)+zi*dhxz(i)
130 dyz(i)=dcyz(i)+zi*dhyz(i)
131c D4(I)=DC4(I)+ZI*DH4(I)
132c D5(I)=DC5(I)+ZI*DH5(I)
133c D6(I)=DC6(I)+ZI*DH6(I)
134 ENDDO
135C-----------
136 dt1d1=dt1
137 IF (ismdisp>0.AND.iscau==0) dt1d1=zero
138 dt1d2=half*dt1d1
139 DO i=1,nel
140 d4(i) = dxy(i)+dyx(i)
141 . -dt1d1*(dxx(i)*dxy(i)+dyx(i)*dyy(i)+dzx(i)*dzy(i))
142 d5(i) = dyz(i)+dzy(i)
143 . -dt1d1*(dyy(i)*dyz(i)+dzy(i)*dzz(i)+dxy(i)*dxz(i))
144 d6(i) = dxz(i)+dzx(i)
145 . -dt1d1*(dzz(i)*dzx(i)+dxz(i)*dxx(i)+dyz(i)*dyx(i))
146 dxx(i) = dxx(i)
147 . -dt1d2*(dxx(i)*dxx(i)+dyx(i)*dyx(i)+dzx(i)*dzx(i))
148 dyy(i) = dyy(i)
149 . -dt1d2*(dyy(i)*dyy(i)+dzy(i)*dzy(i)+dxy(i)*dxy(i))
150 dzz(i) = dzz(i)
151 . -dt1d2*(dzz(i)*dzz(i)+dxz(i)*dxz(i)+dyz(i)*dyz(i))
152 ENDDO
153C
154 RETURN
#define my_real
Definition cppsort.cpp:32
#define max(a, b)
Definition macros.h:21