OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
scdefo3.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!|| scdefo3 ../engine/source/elements/thickshell/solidec/scdefo3.F
25!||--- called by ------------------------------------------------------
26!|| s6cforc3 ../engine/source/elements/thickshell/solide6c/s6cforc3.F
27!|| scforc3 ../engine/source/elements/thickshell/solidec/scforc3.F
28!||====================================================================
29 SUBROUTINE scdefo3(
30 1 DXX, DXY, DXZ, DYX,
31 2 DYY, DYZ, DZX, DZY,
32 3 DZZ, D4, D5, D6,
33 4 DCXX, DCXY, DCXZ, DCYX,
34 5 DCYY, DCYZ, DCZX, DCZY,
35 6 DCZZ, DC4, DC5, DC6,
36 7 DHXX, DHXY, DHXZ, DHYX,
37 8 DHYY, DHYZ, DHZX, DHZY,
38 9 DHZZ, DH4, DH5, DH6,
39 A ZI, WI, VZL, VOL,
40 B VOLG, VOLO, DDHV, SIG,
41 C SIGZM, VOLM, USB, EINT,
42 D OFF, OFFG, DTI, OFFS,
43 E DVC, VOL0DP, VOLDP, IPRES,
44 F NEL)
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
60 my_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
77 my_real
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
155 END
#define max(a, b)
Definition macros.h:21
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)
Definition scdefo3.F:45