OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
s6cdefo3.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!|| s6cdefc3 ../engine/source/elements/thickshell/solide6c/s6cdefo3.F
25!||--- called by ------------------------------------------------------
26!|| s6cforc3 ../engine/source/elements/thickshell/solide6c/s6cforc3.F
27!||====================================================================
28 SUBROUTINE s6cdefc3(
29 1 PX1, PX2, PX3, PX4,
30 2 PY1, PY2, PY3, PY4,
31 3 PZ1, PZ2, PZ3, PZ4,
32 4 VX1, VX2, VX3, VX4,
33 5 VX5, VX6, VY1, VY2,
34 6 VY3, VY4, VY5, VY6,
35 7 VZ1, VZ2, VZ3, VZ4,
36 8 VZ5, VZ6, DXX, DXY,
37 9 DXZ, DYX, DYY, DYZ,
38 A DZX, DZY, DZZ, D4,
39 B D5, D6, WXX, WYY,
40 C WZZ, DHXX, DHXY, DHXZ,
41 D DHYX, DHYY, DHYZ, DHZX,
42 E DHZY, DHZZ, DH4, DH5,
43 F DH6, PX1H, PX2H, PX3H,
44 G PY1H, PY2H, PY3H, PZ1H,
45 H PZ2H, PZ3H, JI33, B1X,
46 I B1Y, B2Y, B2X, B1122,
47 J B1221, B2212, B1121, B1XH,
48 K B1YH, B2XH, B2YH, B1122H,
49 L B1221H, B2212H, B1121H, DDHV,
50 M NU, NEL)
51C ---
52C-----------------------------------------------
53C I m p l i c i t T y p e s
54C-----------------------------------------------
55#include "implicit_f.inc"
56C-----------------------------------------------
57C G l o b a l P a r a m e t e r s
58C-----------------------------------------------
59#include "mvsiz_p.inc"
60C-----------------------------------------------
61C C o m m o n B l o c k s
62C-----------------------------------------------
63C-----------------------------------------------
64C D u m m y A r g u m e n t s
65C-----------------------------------------------
66 INTEGER, INTENT(IN) :: NEL
67C REAL
68 my_real
69 . VX1(*), VX2(*), VX3(*), VX4(*), VX5(*), VX6(*),
70 . VY1(*), VY2(*), VY3(*), VY4(*), VY5(*), VY6(*),
71 . VZ1(*), VZ2(*), VZ3(*), VZ4(*), VZ5(*), VZ6(*),
72 . PX1(*), PX2(*), PX3(*), PX4(*),
73 . PY1(*), PY2(*), PY3(*), PY4(*),
74 . PZ1(*), PZ2(*), PZ3(*), PZ4(*),
75 . DXX(*), DXY(*), DXZ(*),
76 . DYX(*), DYY(*), DYZ(*),
77 . DZX(*), DZY(*), DZZ(*), D4(*), D5(*), D6(*),
78 . WXX(*), WYY(*), WZZ(*),
79C +++
80 . PX1H(*), PX2H(*), PX3H(*),
81 . PY1H(*), PY2H(*), PY3H(*),
82 . PZ1H(*), PZ2H(*), PZ3H(*),
83 . JI33(*),B1X(MVSIZ,2),B1Y(MVSIZ,2),B2X(MVSIZ,2),B2Y(MVSIZ,2),
84 . B1XH(MVSIZ,2),B1YH(MVSIZ,2),B2XH(MVSIZ,2),B2YH(MVSIZ,2),
85 . B1122(*),B1221(*),B2212(*),B1121(*),
86 . B1122H(*),B1221H(*),B2212H(*),B1121H(*),
87 . DHXX(*), DHXY(*), DHXZ(*),
88 . dhyx(*), dhyy(*), dhyz(*),
89 . dhzx(*), dhzy(*), dhzz(*),dh4(*), dh5(*), dh6(*),
90 . ddhv(*),nu(*)
91C-----------------------------------------------
92C L o c a l V a r i a b l e s
93C-----------------------------------------------
94 INTEGER I, J
95C REAL
96 my_real
97 . VX14(MVSIZ), VY14(MVSIZ), VZ14(MVSIZ),
98 . VX25(MVSIZ), VY25(MVSIZ), VZ25(MVSIZ),
99 . VX36(MVSIZ), VY36(MVSIZ), VZ36(MVSIZ),
100 . VX14N(MVSIZ), VY14N(MVSIZ), VZ14N(MVSIZ),
101 . VX25N(MVSIZ), VY25N(MVSIZ), VZ25N(MVSIZ),
102 . VX36N(MVSIZ), VY36N(MVSIZ), VZ36N(MVSIZ),
103 . VX3614N(MVSIZ),VY3614N(MVSIZ),VX2514N(MVSIZ),VY2514N(MVSIZ),
104 . VXHI(MVSIZ), VYHI(MVSIZ), VZHI(MVSIZ), DT1D2, DT1D1
105 my_real
106 . NU1,PXSVX,PYSVY,PZSVZ,PXAVX,PYAVY,PZAVZ,TERMAD
107C-----------------------------------------------
108 DO I=1,nel
109 vx14(i)=vx1(i)+vx4(i)
110 vx25(i)=vx2(i)+vx5(i)
111 vx36(i)=vx3(i)+vx6(i)
112 vxhi(i)=vx4(i)+vx5(i)+vx6(i)-vx1(i)-vx2(i)-vx3(i)
113 vy14(i)=vy1(i)+vy4(i)
114 vy25(i)=vy2(i)+vy5(i)
115 vy36(i)=vy3(i)+vy6(i)
116 vyhi(i)=vy4(i)+vy5(i)+vy6(i)-vy1(i)-vy2(i)-vy3(i)
117 vz14(i)=vz1(i)+vz4(i)
118 vz25(i)=vz2(i)+vz5(i)
119 vz36(i)=vz3(i)+vz6(i)
120 vzhi(i)=vz4(i)+vz5(i)+vz6(i)-vz1(i)-vz2(i)-vz3(i)
121 ENDDO
122 DO i=1,nel
123 vx14n(i)=-vx1(i)+vx4(i)
124 vx25n(i)=-vx2(i)+vx5(i)
125 vx36n(i)=-vx3(i)+vx6(i)
126 vy14n(i)=-vy1(i)+vy4(i)
127 vy25n(i)=-vy2(i)+vy5(i)
128 vy36n(i)=-vy3(i)+vy6(i)
129 vz14n(i)=-vz1(i)+vz4(i)
130 vz25n(i)=-vz2(i)+vz5(i)
131 vz36n(i)=-vz3(i)+vz6(i)
132C
133 vx3614n(i)=vx36n(i)-vx14n(i)
134 vy3614n(i)=vy36n(i)-vy14n(i)
135 vx2514n(i)=vx25n(i)-vx14n(i)
136 vy2514n(i)=vy25n(i)-vy14n(i)
137 ENDDO
138C 12
139C ----------constant part--------------------------------------
140 DO i=1,nel
141 dxx(i)=px1(i)*vx14(i)+px2(i)*vx25(i)+
142 . px3(i)*vx36(i)+px4(i)*vxhi(i)
143 dyy(i)=py1(i)*vy14(i)+py2(i)*vy25(i)+
144 . py3(i)*vy36(i)+py4(i)*vyhi(i)
145 dzz(i)=pz1(i)*vz14(i)+pz2(i)*vz25(i)+
146 . pz3(i)*vz36(i)+pz4(i)*vzhi(i)
147 dxy(i)=py1(i)*vx14(i)+py2(i)*vx25(i)+
148 . py3(i)*vx36(i)+py4(i)*vxhi(i)
149 dyx(i)=px1(i)*vy14(i)+px2(i)*vy25(i)+
150 . px3(i)*vy36(i)+px4(i)*vyhi(i)
151C --------shear traitement-------
152 dxz(i)=ji33(i)*two*vxhi(i)
153 . -b1122(i)*vx36n(i)+b1221(i)*vx25n(i)
154 . +b2212(i)*(vy25n(i)-vy36n(i))
155 dxz(i)= dxz(i)+ji33(i)*(vxhi(i)-vx14n(i))
156 . -b1x(i,1)*vx3614n(i)+b1x(i,2)*vx2514n(i)
157 . -b1y(i,1)*vy3614n(i)+b1y(i,2)*vy2514n(i)
158 dyz(i)=ji33(i)*two*vyhi(i)
159 . -b1122(i)*vy25n(i)+b1221(i)*vy36n(i)
160 . +b1121(i)*(vx36n(i)-vx25n(i))
161 dyz(i)= dyz(i)+ ji33(i)*(vyhi(i)-vy14n(i))
162 . +b2x(i,1)*vx3614n(i)-b2x(i,2)*vx2514n(i)
163 . +b2y(i,1)*vy3614n(i)-b2y(i,2)*vy2514n(i)
164C
165 dzx(i)=half*(px1(i)*vz14(i)+px2(i)*vz25(i)+
166 . px3(i)*vz36(i))
167 dzy(i)=half*(py1(i)*vz14(i)+py2(i)*vz25(i)+
168 . py3(i)*vz36(i))
169 ENDDO
170C
171 DO i=1,nel
172 wxx(i)=zero
173 wyy(i)=zero
174 wzz(i)=zero
175 ENDDO
176C ----------non-constant part--------------------------------------
177 DO i=1,nel
178 nu1 = nu(i)/(one - nu(i))
179 pxavx = px1(i)*vx14n(i)+px2(i)*vx25n(i)+px3(i)*vx36n(i)
180 pyavy = py1(i)*vy14n(i)+py2(i)*vy25n(i)+py3(i)*vy36n(i)
181 pzavz = pz1(i)*vz14n(i)+pz2(i)*vz25n(i)+pz3(i)*vz36n(i)
182 pxsvx = px1h(i)*vx14(i)+px2h(i)*vx25(i)+px3h(i)*vx36(i)
183 pysvy = py1h(i)*vy14(i)+py2h(i)*vy25(i)+py3h(i)*vy36(i)
184 pzsvz = pz1h(i)*vz14(i)+pz2h(i)*vz25(i)+pz3h(i)*vz36(i)
185 termad=-nu(i)*pyavy-nu1*pzavz
186 ddhv(i)= termad
187 dhxx(i)= pxsvx+pxavx+termad
188 termad=-nu(i)*pxsvx-nu1*pzsvz
189 ddhv(i)= ddhv(i)+termad
190 dhyy(i)= pysvy+pyavy+termad
191 termad=-nu(i)*(pxsvx+pyavy)-nu1*(pxavx+pysvy)
192 ddhv(i)= ddhv(i)+termad
193 dhzz(i)= pzsvz+pzavz+termad
194 dhxy(i)=py1(i)*vx14n(i)+py2(i)*vx25n(i)+
195 . py3(i)*vx36n(i)+
196 . py1h(i)*vx14(i)+py2h(i)*vx25(i)+
197 . py3h(i)*vx36(i)
198 dhyx(i)=px1(i)*vy14n(i)+px2(i)*vy25n(i)+
199 . px3(i)*vy36n(i)+
200 . px1h(i)*vy14(i)+px2h(i)*vy25(i)+
201 . px3h(i)*vy36(i)
202C --------shear traitement-------
203 dhxz(i)=-b1122h(i)*vx36n(i)+b1221h(i)*vx25n(i)
204 . +b2212h(i)*(vy25n(i)-vy36n(i))
205 dhxz(i)= dhxz(i)
206 . -b1xh(i,1)*vx3614n(i)+b1xh(i,2)*vx2514n(i)
207 . -b1yh(i,1)*vy3614n(i)+b1yh(i,2)*vy2514n(i)
208 dhyz(i)=-b1122h(i)*vy25n(i)+b1221h(i)*vy36n(i)
209 . +b1121h(i)*(vx36n(i)-vx25n(i))
210 dhyz(i)= dhyz(i)
211 . +b2xh(i,1)*vx3614n(i)-b2xh(i,2)*vx2514n(i)
212 . +b2yh(i,1)*vy3614n(i)-b2yh(i,2)*vy2514n(i)
213 dhzx(i)=half*(px1h(i)*vz14(i)+px2h(i)*vz25(i)+
214 . px3h(i)*vz36(i))
215 dhzy(i)=half*(py1h(i)*vz14(i)+py2h(i)*vz25(i)+
216 . py3h(i)*vz36(i))
217 ENDDO
218C
219 RETURN
220 END
subroutine s6cdefc3(px1, px2, px3, px4, py1, py2, py3, py4, pz1, pz2, pz3, pz4, vx1, vx2, vx3, vx4, vx5, vx6, vy1, vy2, vy3, vy4, vy5, vy6, vz1, vz2, vz3, vz4, vz5, vz6, dxx, dxy, dxz, dyx, dyy, dyz, dzx, dzy, dzz, d4, d5, d6, wxx, wyy, wzz, dhxx, dhxy, dhxz, dhyx, dhyy, dhyz, dhzx, dhzy, dhzz, dh4, dh5, dh6, px1h, px2h, px3h, py1h, py2h, py3h, pz1h, pz2h, pz3h, ji33, b1x, b1y, b2y, b2x, b1122, b1221, b2212, b1121, b1xh, b1yh, b2xh, b2yh, b1122h, b1221h, b2212h, b1121h, ddhv, nu, nel)
Definition s6cdefo3.F:51