OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
s11defo3.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!|| s11defo3 ../engine/source/elements/solid/solide/s11defo3.F
25!||--- called by ------------------------------------------------------
26!|| sforc3 ../engine/source/elements/solid/solide/sforc3.F
27!|| szforc3 ../engine/source/elements/solid/solidez/szforc3.F
28!||--- uses -----------------------------------------------------
29!|| ale_connectivity_mod ../common_source/modules/ale/ale_connectivity_mod.F
30!|| element_mod ../common_source/modules/elements/element_mod.F90
31!||====================================================================
32 SUBROUTINE s11defo3(
33 1 PM, V, VEUL, X,
34 2 IXS, ALE_CONNECT,DXX, DXY,
35 3 DXZ, DYX, DYY, DYZ,
36 4 DZX, DZY, DZZ, D4,
37 5 D5, D6, WXX, WYY,
38 6 WZZ, BUFMAT, NEL, NFT,
39 7 IPM, NUMMAT, NUMELS)
40C-----------------------------------------------
41C M o d u l e s
42C-----------------------------------------------
44 use element_mod , only : nixs
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 "param_c.inc"
53#include "com08_c.inc"
54C-----------------------------------------------
55C D u m m y A r g u m e n t s
56C-----------------------------------------------
57 INTEGER, INTENT(IN) :: NEL
58 INTEGER, INTENT(IN) :: NFT
59 INTEGER, INTENT(IN) :: NUMMAT
60 INTEGER, INTENT(IN) :: NUMELS
61 INTEGER IXS(NIXS,NUMELS)
62 my_real
63 . V(3,*), VEUL(LVEUL,*),X(3,*),PM(NPROPM,NUMMAT),
64 . dxx(*), dxy(*), dxz(*),
65 . dyx(*), dyy(*), dyz(*),
66 . dzx(*), dzy(*), dzz(*), d4(*), d5(*), d6(*),
67 . wxx(*), wyy(*), wzz(*),bufmat(*)
68 TYPE(t_ale_connectivity), INTENT(IN) :: ALE_CONNECT
69 INTEGER,INTENT(IN)::IPM(NPROPMI,NUMMAT)
70C-----------------------------------------------
71C L o c a l V a r i a b l e s
72C-----------------------------------------------
73 INTEGER I, II,IVOI,ML,NC1,NC2,NC3,NC4,NC5,NC6,NC7,NC8,J,IADBUF,IFLG,IAD2
74 my_real
75 . x1,y1,z1,vx1,vy1,vz1,
76 . x2,y2,z2,vx2,vy2,vz2,
77 . x3,y3,z3,vx3,vy3,vz3,
78 . x4,y4,z4,vx4,vy4,vz4,
79 . x5,y5,z5,vx5,vy5,vz5,
80 . x6,y6,z6,vx6,vy6,vz6,
81 . x7,y7,z7,vx7,vy7,vz7,
82 . x8,y8,z8,vx8,vy8,vz8,
83 . x17,x28,x35,x46,y17,y28,y35,y46,z17,z28,z35,z46,
84 . vx17,vx28,vx35,vx46,vy17,vy28,vy35,vy46,vz17,vz28,vz35,vz46,
85 . aj1,aj2,aj3,aj4,aj5,aj6,aj7,aj8,aj9,
86 . aji1,aji2,aji3,aji4,aji5,aji6,aji7,aji8,aji9,
87 . jac_59_68,jac_67_49,jac_48_57,aj12,aj45,aj78,
88 . px1, px2, px3, px4,
89 . py1, py2, py3, py4,
90 . pz1, pz2, pz3, pz4,
91 . a17,a28,b17,b28,c17,c28,dt1d2,
92 . dett
93C-----------------------------------------------
94 dt1d2=half*dt1
95 DO i=1,nel
96 ii=i+nft
97c
98 iad2 = ale_connect%ee_connect%iad_connect(ii)
99 DO j=1,6
100 ivoi=ale_connect%ee_connect%connected(iad2 + j - 1)
101 ml = 11
102 iflg = 6
103 IF(ivoi/=0)ml=nint(pm(19,ixs(1,ivoi)))
104 IF(ml/=11)EXIT
105 IF(ml==51)THEN
106 iadbuf = ipm(27,ixs(1,ivoi))
107 iflg = nint(bufmat(31+iadbuf-1))
108 IF(iflg<=1)EXIT
109 ENDIF
110 ENDDO
111
112 IF(ml==11 .OR. (ml==51.AND.(iflg==6.OR.iflg==3)))THEN
113 dxx(i)=zero
114 dyy(i)=zero
115 dzz(i)=zero
116 dxy(i)=zero
117 dxz(i)=zero
118 dyx(i)=zero
119 dyz(i)=zero
120 dzx(i)=zero
121 dzy(i)=zero
122 d4(i) =zero
123 d5(i) =zero
124 d6(i) =zero
125 wzz(i)=zero
126 wyy(i)=zero
127 wxx(i)=zero
128 ELSE
129 nc1=ixs(2,ivoi)
130 nc2=ixs(3,ivoi)
131 nc3=ixs(4,ivoi)
132 nc4=ixs(5,ivoi)
133 nc5=ixs(6,ivoi)
134 nc6=ixs(7,ivoi)
135 nc7=ixs(8,ivoi)
136 nc8=ixs(9,ivoi)
137 x1 =x(1,nc1)
138 y1 =x(2,nc1)
139 z1 =x(3,nc1)
140 vx1=v(1,nc1)
141 vy1=v(2,nc1)
142 vz1=v(3,nc1)
143 x2 =x(1,nc2)
144 y2 =x(2,nc2)
145 z2 =x(3,nc2)
146 vx2=v(1,nc2)
147 vy2=v(2,nc2)
148 vz2=v(3,nc2)
149 x3 =x(1,nc3)
150 y3 =x(2,nc3)
151 z3 =x(3,nc3)
152 vx3=v(1,nc3)
153 vy3=v(2,nc3)
154 vz3=v(3,nc3)
155 x4 =x(1,nc4)
156 y4 =x(2,nc4)
157 z4 =x(3,nc4)
158 vx4=v(1,nc4)
159 vy4=v(2,nc4)
160 vz4=v(3,nc4)
161 x5 =x(1,nc5)
162 y5 =x(2,nc5)
163 z5 =x(3,nc5)
164 vx5=v(1,nc5)
165 vy5=v(2,nc5)
166 vz5=v(3,nc5)
167 x6 =x(1,nc6)
168 y6 =x(2,nc6)
169 z6 =x(3,nc6)
170 vx6=v(1,nc6)
171 vy6=v(2,nc6)
172 vz6=v(3,nc6)
173 x7 =x(1,nc7)
174 y7 =x(2,nc7)
175 z7 =x(3,nc7)
176 vx7=v(1,nc7)
177 vy7=v(2,nc7)
178 vz7=v(3,nc7)
179 x8 =x(1,nc8)
180 y8 =x(2,nc8)
181 z8 =x(3,nc8)
182 vx8 =v(1,nc8)
183 vy8 =v(2,nc8)
184 vz8 =v(3,nc8)
185 x17=x7-x1
186 x28=x8-x2
187 x35=x5-x3
188 x46=x6-x4
189 y17=y7-y1
190 y28=y8-y2
191 y35=y5-y3
192 y46=y6-y4
193 z17=z7-z1
194 z28=z8-z2
195 z35=z5-z3
196 z46=z6-z4
197 aj1=x17+x28-x35-x46
198 aj2=y17+y28-y35-y46
199 aj3=z17+z28-z35-z46
200 a17=x17+x46
201 a28=x28+x35
202 b17=y17+y46
203 b28=y28+y35
204 c17=z17+z46
205 c28=z28+z35
206 aj4=a17+a28
207 aj5=b17+b28
208 aj6=c17+c28
209 aj7=a17-a28
210 aj8=b17-b28
211 aj9=c17-c28
212 jac_59_68=aj5*aj9-aj6*aj8
213 jac_67_49=aj6*aj7-aj4*aj9
214 jac_48_57=aj4*aj8-aj5*aj7
215 dett=one/(aj1*jac_59_68+aj2*jac_67_49+aj3*jac_48_57)
216 aji1=dett*jac_59_68
217 aji4=dett*jac_67_49
218 aji7=dett*jac_48_57
219 aji2=dett*(-aj2*aj9+aj3*aj8)
220 aji5=dett*( aj1*aj9-aj3*aj7)
221 aji8=dett*(-aj1*aj8+aj2*aj7)
222 aji3=dett*( aj2*aj6-aj3*aj5)
223 aji6=dett*(-aj1*aj6+aj3*aj4)
224 aji9=dett*( aj1*aj5-aj2*aj4)
225 aj12=aji1-aji2
226 aj45=aji4-aji5
227 aj78=aji7-aji8
228 px3= aj12+aji3
229 py3= aj45+aji6
230 pz3= aj78+aji9
231 px4= aj12-aji3
232 py4= aj45-aji6
233 pz4= aj78-aji9
234 aj12=aji1+aji2
235 aj45=aji4+aji5
236 aj78=aji7+aji8
237 px1=-aj12-aji3
238 py1=-aj45-aji6
239 pz1=-aj78-aji9
240 px2=-aj12+aji3
241 py2=-aj45+aji6
242 pz2=-aj78+aji9
243 vx17=vx1-vx7
244 vx28=vx2-vx8
245 vx35=vx3-vx5
246 vx46=vx4-vx6
247 vy17=vy1-vy7
248 vy28=vy2-vy8
249 vy35=vy3-vy5
250 vy46=vy4-vy6
251 vz17=vz1-vz7
252 vz28=vz2-vz8
253 vz35=vz3-vz5
254 vz46=vz4-vz6
255 dxx(i)=px1*vx17+px2*vx28+px3*vx35+px4*vx46
256 dyy(i)=py1*vy17+py2*vy28+py3*vy35+py4*vy46
257 dzz(i)=pz1*vz17+pz2*vz28+pz3*vz35+pz4*vz46
258 dxy(i)=py1*vx17+py2*vx28+py3*vx35+py4*vx46
259 dxz(i)=pz1*vx17+pz2*vx28+pz3*vx35+pz4*vx46
260 dyx(i)=px1*vy17+px2*vy28+px3*vy35+px4*vy46
261 dyz(i)=pz1*vy17+pz2*vy28+pz3*vy35+pz4*vy46
262 dzx(i)=px1*vz17+px2*vz28+px3*vz35+px4*vz46
263 dzy(i)=py1*vz17+py2*vz28+py3*vz35+py4*vz46
264 d4(i) =dxy(i)+dyx(i)
265 d5(i) =dyz(i)+dzy(i)
266 d6(i) =dxz(i)+dzx(i)
267 wzz(i)=dt1d2*(dyx(i)-dxy(i))
268 wyy(i)=dt1d2*(dxz(i)-dzx(i))
269 wxx(i)=dt1d2*(dzy(i)-dyz(i))
270 ENDIF
271 ENDDO
272C
273 RETURN
274 END
subroutine s11defo3(pm, v, veul, x, ixs, ale_connect, dxx, dxy, dxz, dyx, dyy, dyz, dzx, dzy, dzz, d4, d5, d6, wxx, wyy, wzz, bufmat, nel, nft, ipm, nummat, numels)
Definition s11defo3.F:40