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