OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
s8defo3.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!|| s8defo3 ../engine/source/elements/solid/solide8/s8defo3.F
25!||--- called by ------------------------------------------------------
26!|| s8forc3 ../engine/source/elements/solid/solide8/s8forc3.F
27!||====================================================================
28 SUBROUTINE s8defo3(
29 1 VX, VY, VZ, PX1,
30 2 PX2, PX3, PX4, PX5,
31 3 PX6, PX7, PX8, PY1,
32 4 PY2, PY3, PY4, PY5,
33 5 PY6, PY7, PY8, PZ1,
34 6 PZ2, PZ3, PZ4, PZ5,
35 7 PZ6, PZ7, PZ8, IPT,
36 8 D1, D2, D3, D4,
37 9 D5, D6, WXX, WYY,
38 A WZZ, NEL, JCVT)
39C-----------------------------------------------
40C I m p l i c i t T y p e s
41C-----------------------------------------------
42#include "implicit_f.inc"
43C-----------------------------------------------
44C G l o b a l P a r a m e t e r s
45C-----------------------------------------------
46#include "mvsiz_p.inc"
47C-----------------------------------------------
48C D u m m y A r g u m e n t s
49C-----------------------------------------------
50 INTEGER, INTENT(IN) :: NEL
51 INTEGER, INTENT(IN) :: JCVT
52C REAL
53 my_real
54 . VX(MVSIZ,8), VY(MVSIZ,8), VZ(MVSIZ,8),
55 . PX1(MVSIZ,8),PX2(MVSIZ,8),PX3(MVSIZ,8),PX4(MVSIZ,8),
56 . PX5(MVSIZ,8),PX6(MVSIZ,8),PX7(MVSIZ,8),PX8(MVSIZ,8),
57 . PY1(MVSIZ,8),PY2(MVSIZ,8),PY3(MVSIZ,8),PY4(MVSIZ,8),
58 . PY5(MVSIZ,8),PY6(MVSIZ,8),PY7(MVSIZ,8),PY8(MVSIZ,8),
59 . PZ1(MVSIZ,8),PZ2(MVSIZ,8),PZ3(MVSIZ,8),PZ4(MVSIZ,8),
60 . pz5(mvsiz,8),pz6(mvsiz,8),pz7(mvsiz,8),pz8(mvsiz,8),
61 . d1(mvsiz,8), d2(mvsiz,8), d3(mvsiz,8), d4(mvsiz,8),
62 . d5(mvsiz,8), d6(mvsiz,8),
63 . wxx(mvsiz),wyy(mvsiz),wzz(mvsiz)
64 INTEGER IPT
65C-----------------------------------------------
66C C o m m o n B l o c k s
67C-----------------------------------------------
68#include "com08_c.inc"
69C-----------------------------------------------
70C L o c a l V a r i a b l e s
71C-----------------------------------------------
72 INTEGER I
73C REAL
74 my_real
75 . dxx(mvsiz), dyy(mvsiz), dzz(mvsiz),
76 . dxy(mvsiz), dyx(mvsiz), dyz(mvsiz),
77 . dzy(mvsiz), dzx(mvsiz), dxz(mvsiz), dt1d2
78C-----------------------------------------------
79C
80 DO 30 i=1,nel
81 dxx(i) =px1(i,ipt)*vx(i,1)+px2(i,ipt)*vx(i,2)
82 + +px3(i,ipt)*vx(i,3)+px4(i,ipt)*vx(i,4)
83 + +px5(i,ipt)*vx(i,5)+px6(i,ipt)*vx(i,6)
84 + +px7(i,ipt)*vx(i,7)+px8(i,ipt)*vx(i,8)
85 dyy(i) =py1(i,ipt)*vy(i,1)+py2(i,ipt)*vy(i,2)
86 + +py3(i,ipt)*vy(i,3)+py4(i,ipt)*vy(i,4)
87 + +py5(i,ipt)*vy(i,5)+py6(i,ipt)*vy(i,6)
88 + +py7(i,ipt)*vy(i,7)+py8(i,ipt)*vy(i,8)
89 dzz(i) =pz1(i,ipt)*vz(i,1)+pz2(i,ipt)*vz(i,2)
90 + +pz3(i,ipt)*vz(i,3)+pz4(i,ipt)*vz(i,4)
91 + +pz5(i,ipt)*vz(i,5)+pz6(i,ipt)*vz(i,6)
92 + +pz7(i,ipt)*vz(i,7)+pz8(i,ipt)*vz(i,8)
93 dxy(i) =py1(i,ipt)*vx(i,1)+py2(i,ipt)*vx(i,2)
94 + +py3(i,ipt)*vx(i,3)+py4(i,ipt)*vx(i,4)
95 + +py5(i,ipt)*vx(i,5)+py6(i,ipt)*vx(i,6)
96 + +py7(i,ipt)*vx(i,7)+py8(i,ipt)*vx(i,8)
97 dxz(i) =pz1(i,ipt)*vx(i,1)+pz2(i,ipt)*vx(i,2)
98 + +pz3(i,ipt)*vx(i,3)+pz4(i,ipt)*vx(i,4)
99 + +pz5(i,ipt)*vx(i,5)+pz6(i,ipt)*vx(i,6)
100 + +pz7(i,ipt)*vx(i,7)+pz8(i,ipt)*vx(i,8)
101 dyx(i) =px1(i,ipt)*vy(i,1)+px2(i,ipt)*vy(i,2)
102 + +px3(i,ipt)*vy(i,3)+px4(i,ipt)*vy(i,4)
103 + +px5(i,ipt)*vy(i,5)+px6(i,ipt)*vy(i,6)
104 + +px7(i,ipt)*vy(i,7)+px8(i,ipt)*vy(i,8)
105 dyz(i) =pz1(i,ipt)*vy(i,1)+pz2(i,ipt)*vy(i,2)
106 + +pz3(i,ipt)*vy(i,3)+pz4(i,ipt)*vy(i,4)
107 + +pz5(i,ipt)*vy(i,5)+pz6(i,ipt)*vy(i,6)
108 + +pz7(i,ipt)*vy(i,7)+pz8(i,ipt)*vy(i,8)
109 dzx(i) =px1(i,ipt)*vz(i,1)+px2(i,ipt)*vz(i,2)
110 + +px3(i,ipt)*vz(i,3)+px4(i,ipt)*vz(i,4)
111 + +px5(i,ipt)*vz(i,5)+px6(i,ipt)*vz(i,6)
112 + +px7(i,ipt)*vz(i,7)+px8(i,ipt)*vz(i,8)
113 dzy(i) =py1(i,ipt)*vz(i,1)+py2(i,ipt)*vz(i,2)
114 + +py3(i,ipt)*vz(i,3)+py4(i,ipt)*vz(i,4)
115 + +py5(i,ipt)*vz(i,5)+py6(i,ipt)*vz(i,6)
116 + +py7(i,ipt)*vz(i,7)+py8(i,ipt)*vz(i,8)
117 30 CONTINUE
118C
119 dt1d2=half*dt1
120C
121 IF (jcvt/=0) THEN
122 DO i=1,nel
123 d4(i,ipt)= dxy(i)+dyx(i)
124 . -dt1*(dxx(i)*dxy(i)+dyx(i)*dyy(i)+dzx(i)*dzy(i))
125 d5(i,ipt)= dyz(i)+dzy(i)
126 . -dt1*(dyy(i)*dyz(i)+dzy(i)*dzz(i)+dxy(i)*dxz(i))
127 d6(i,ipt)= dxz(i)+dzx(i)
128 . -dt1*(dzz(i)*dzx(i)+dxz(i)*dxx(i)+dyz(i)*dyx(i))
129 d1(i,ipt)= dxx(i)
130 . -dt1d2*(dxx(i)*dxx(i)+dyx(i)*dyx(i)+dzx(i)*dzx(i))
131 d2(i,ipt)= dyy(i)
132 . -dt1d2*(dyy(i)*dyy(i)+dzy(i)*dzy(i)+dxy(i)*dxy(i))
133 d3(i,ipt)= dzz(i)
134 . -dt1d2*(dzz(i)*dzz(i)+dxz(i)*dxz(i)+dyz(i)*dyz(i))
135 wxx(i)=zero
136 wyy(i)=zero
137 wzz(i)=zero
138 ENDDO
139 ELSE
140 DO i=1,nel
141 d1(i,ipt)=dxx(i)
142 d2(i,ipt)=dyy(i)
143 d3(i,ipt)=dzz(i)
144 d4(i,ipt)=dxy(i)+dyx(i)
145 d5(i,ipt)=dyz(i)+dzy(i)
146 d6(i,ipt)=dxz(i)+dzx(i)
147 wzz(i)=dt1d2*(dyx(i)-dxy(i))
148 wyy(i)=dt1d2*(dxz(i)-dzx(i))
149 wxx(i)=dt1d2*(dzy(i)-dyz(i))
150 ENDDO
151 ENDIF
152 RETURN
153C
154 END
subroutine s8defo3(vx, vy, vz, px1, px2, px3, px4, px5, px6, px7, px8, py1, py2, py3, py4, py5, py6, py7, py8, pz1, pz2, pz3, pz4, pz5, pz6, pz7, pz8, ipt, d1, d2, d3, d4, d5, d6, wxx, wyy, wzz, nel, jcvt)
Definition s8defo3.F:39