OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
cbaproj_ply.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!|| cbaproj_ply ../engine/source/properties/composite_options/stack/cbaproj_ply.f
25!||--- called by ------------------------------------------------------
26!|| cbaforc3 ../engine/source/elements/shell/coqueba/cbaforc3.F
27!||====================================================================
28 SUBROUTINE cbaproj_ply(
29 1 JFT ,JLT ,NPT , NPLAT ,IPLAT, VQN ,
30 2 VQ ,VF , VFI , COREL ,DI ,
31 6 F11 ,F12 ,F13 ,F14 ,F21 ,
32 7 F22 ,F23 ,F24 ,F31 ,F32 ,
33 8 F33 ,F34 ,OFF )
34C---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8
35C TRANSMET LES FORCES INTERNES LOCALES VF,VM ---> GLOBALES FIJ ,MIJ
36C ENTREES :
37C SORTIES : FIJ
38C---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8
39#include "implicit_f.inc"
40#include "mvsiz_p.inc"
41C-----------------------------------------------
42C D U M M Y A R G U M E N T S
43C-----------------------------------------------
44 INTEGER JFT,JLT,NPLAT ,IPLAT(*),NPT
45 my_real
46 . VQN(MVSIZ,9,4),VF(MVSIZ,12,NPT),VQ(MVSIZ,3,3),
47 . COREL(MVSIZ,3,4),DI(MVSIZ,6)
48 my_real
49 . f11(mvsiz,npt), f12(mvsiz,npt), f13(mvsiz,npt),
50 . f14(mvsiz,npt), f21(mvsiz,npt), f22(mvsiz,npt),
51 . f23(mvsiz,npt), f24(mvsiz,npt), f31(mvsiz,npt),
52 . f32(mvsiz,npt), f33(mvsiz,npt), f34(mvsiz,npt),
53 . vfi(mvsiz,12,npt) ,off(*)
54C-----------------------------------------------
55C L O C A L V A R I A B L E S
56C-----------------------------------------------
57 INTEGER I, J, K,EP,I_INF,I_SUP,IPLY,NPLAT0
58 my_real
59 . MM(3,4),FL(3,4),ML(2,4),C1,Z1,
60 . AR(3),AD(4),ALR(3),ALD(4),DBAD(3),
61 . F1, F2,F3,FAC,FAC1,FAC2,FAC3,FL1,FL2,
62 . fl3,e33,g,nu
63 my_real
64 . ml11(mvsiz),ml12(mvsiz),ml13(mvsiz) ,ml14(mvsiz),ml21(mvsiz),
65 . ml22(mvsiz),ml23(mvsiz),ml24(mvsiz) ,ml31(mvsiz),ml32(mvsiz),
66 . ml33(mvsiz),ml34(mvsiz)
67C---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8
68!! NPLAT0 = JLT
69 nplat0 = nplat
70 DO j=1,npt
71#include "vectorize.inc"
72 DO ep=jft,nplat0
73 k=iplat(ep)
74C I=1
75 fl(1,1)= vf(k,1,j) + vf(k,7,j)
76 fl(1,2)= vf(k,4,j) + vf(k,10,j)
77 fl(1,3)= -vf(k,1,j) + vf(k,7,j)
78 fl(1,4)= -vf(k,4,j) + vf(k,10,j)
79C I=2
80 fl(2,1)= vf(k,2,j) + vf(k,8,j)
81 fl(2,2)= vf(k,5,j) + vf(k,11,j)
82 fl(2,3)= -vf(k,2,j) + vf(k,8,j)
83 fl(2,4)= -vf(k,5,j) + vf(k,11,j)
84C I =3
85 fl(3,1)= vf(k,3,j) + vf(k,9,j)
86 fl(3,2)= vf(k,6,j) + vf(k,12,j)
87 fl(3,3)= -vf(k,3,j) + vf(k,9,j)
88 fl(3,4)= -vf(k,6,j) + vf(k,12,j)
89C---------------------------------------
90C TRANS LOCAL-->GLOBAL ET 5DDL-->6DDL
91C---------------------------------------
92C
93C J=1
94C I=1
95 f11(k,j)= vq(k,1,1)*fl(1,1)+vq(k,1,2)*fl(2,1)+vq(k,1,3)*fl(3,1)
96C I=2
97 f21(k,j)= vq(k,2,1)*fl(1,1)+vq(k,2,2)*fl(2,1)+vq(k,2,3)*fl(3,1)
98C I=3
99 f31(k,j)= vq(k,3,1)*fl(1,1)+vq(k,3,2)*fl(2,1)+vq(k,3,3)*fl(3,1)
100C
101C J=2
102C I=1
103 f12(k,j)= vq(k,1,1)*fl(1,2)+vq(k,1,2)*fl(2,2)+vq(k,1,3)*fl(3,2)
104C I=2
105 f22(k,j)= vq(k,2,1)*fl(1,2)+vq(k,2,2)*fl(2,2)+vq(k,2,3)*fl(3,2)
106C I=3
107 f32(k,j)= vq(k,3,1)*fl(1,2)+vq(k,3,2)*fl(2,2)+vq(k,3,3)*fl(3,2)
108C
109C J=3
110C I=1
111 f13(k,j)= vq(k,1,1)*fl(1,3)+vq(k,1,2)*fl(2,3)+vq(k,1,3)*fl(3,3)
112C I=2
113 f23(k,j)= vq(k,2,1)*fl(1,3)+vq(k,2,2)*fl(2,3)+vq(k,2,3)*fl(3,3)
114C I=3
115 f33(k,j)= vq(k,3,1)*fl(1,3)+vq(k,3,2)*fl(2,3)+vq(k,3,3)*fl(3,3)
116C
117C J=4
118C I=1
119 f14(k,j)= vq(k,1,1)*fl(1,4)+vq(k,1,2)*fl(2,4)+vq(k,1,3)*fl(3,4)
120C I=2
121 f24(k,j)= vq(k,2,1)*fl(1,4)+vq(k,2,2)*fl(2,4)+vq(k,2,3)*fl(3,4)
122C I=3
123 f34(k,j)= vq(k,3,1)*fl(1,4)+vq(k,3,2)*fl(2,4)+vq(k,3,3)*fl(3,4)
124C
125
126 ENDDO
127#include "vectorize.inc"
128 DO ep=nplat0+1,jlt
129 k=iplat(ep)
130C---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8
131 z1 = corel(k,3,1)
132 ar(1)= -z1*(vf(k,2,j) - vf(k,5,j) + vf(k,8,j)-vf(k,11,j))
133 1 + corel(k,2,1)*vf(k,3,j)
134 2 + corel(k,2,2)*vf(k,6,j)
135 3 + corel(k,2,3)*vf(k,9,j)
136 4 + corel(k,2,4)*vf(k,12,j)
137 ar(2)= z1*(vf(k,1,j)-vf(k,4,j)+vf(k,7,j)-vf(k,10,j))
138 1 - corel(k,1,1)*vf(k,3,j)
139 2 - corel(k,1,2)*vf(k,6,j)
140 3 - corel(k,1,3)*vf(k,9,j)
141 4 - corel(k,1,4)*vf(k,12,j)
142 ar(3)=-corel(k,2,1)*vf(k,1,j)+corel(k,1,1)*vf(k,2,j)
143 1 -corel(k,2,2)*vf(k,4,j)+corel(k,1,2)*vf(k,5,j)
144 2 -corel(k,2,3)*vf(k,7,j)+corel(k,1,3)*vf(k,8,j)
145 3 -corel(k,2,4)*vf(k,10,j)+corel(k,1,4)*vf(k,11,j)
146C
147 alr(1) =di(k,1)*ar(1)+di(k,4)*ar(2)+di(k,5)*ar(3)
148 alr(2) =di(k,4)*ar(1)+di(k,2)*ar(2)+di(k,6)*ar(3)
149 alr(3) =di(k,5)*ar(1)+di(k,6)*ar(2)+di(k,3)*ar(3)
150C
151 c1 =z1*alr(2)
152 vf(k,1,j )= vf(k,1,j) - c1+corel(k,2,1)*alr(3)
153 vf(k,4,j )= vf(k,4,j) + c1+corel(k,2,2)*alr(3)
154 vf(k,7,j )= vf(k,7,j) - c1+corel(k,2,3)*alr(3)
155 vf(k,10,j)= vf(k,10,j) + c1+corel(k,2,4)*alr(3)
156C
157 c1 =z1*alr(1)
158 vf(k,2,j)= vf(k,2,j) +c1-corel(k,1,1)*alr(3)
159 vf(k,5,j)= vf(k,5,j) -c1-corel(k,1,2)*alr(3)
160 vf(k,8,j)= vf(k,8,j) +c1-corel(k,1,3)*alr(3)
161 vf(k,11,j)= vf(k,11,j)-c1-corel(k,1,4)*alr(3)
162C
163 vf(k,3,j) = vf(k,3,j) -corel(k,2,1)*alr(1)+corel(k,1,1)*alr(2)
164 vf(k,6,j) = vf(k,6,j) -corel(k,2,2)*alr(1)+corel(k,1,2)*alr(2)
165 vf(k,9,j) = vf(k,9,j) -corel(k,2,3)*alr(1)+corel(k,1,3)*alr(2)
166 vf(k,12,j)= vf(k,12,j)-corel(k,2,4)*alr(1)+corel(k,1,4)*alr(2)
167
168C I=1
169 f11(k,j)= vq(k,1,1)*vf(k,1,j) + vq(k,1,2)*vf(k,2,j)
170 1 + vq(k,1,3)*vf(k,3,j)
171C I=2
172 f21(k,j)= vq(k,2,1)*vf(k,1,j) + vq(k,2,2)*vf(k,2,j)
173 1 + vq(k,2,3)*vf(k,3,j)
174C I=3
175 f31(k,j)= vq(k,3,1)*vf(k,1,j) + vq(k,3,2)*vf(k,2,j)
176 1 + vq(k,3,3)*vf(k,3,j)
177C
178C J=2
179C I=1
180 f12(k,j)= vq(k,1,1)*vf(k,4,j) + vq(k,1,2)*vf(k,5,j)
181 1 + vq(k,1,3)*vf(k,6,j)
182C I=2
183 f22(k,j)= vq(k,2,1)*vf(k,4,j) + vq(k,2,2)*vf(k,5,j)
184 1 + vq(k,2,3)*vf(k,6,j)
185C I=3
186 f32(k,j)= vq(k,3,1)*vf(k,4,j) + vq(k,3,2)*vf(k,5,j)
187 1 + vq(k,3,3)*vf(k,6,j)
188C
189C J=3
190C I=1
191 f13(k,j)= vq(k,1,1)*vf(k,7,j) + vq(k,1,2)*vf(k,8,j)
192 1 + vq(k,1,3)*vf(k,9,j)
193C I=2
194 f23(k,j)= vq(k,2,1)*vf(k,7,j) + vq(k,2,2)*vf(k,8,j)
195 1 + vq(k,2,3)*vf(k,9,j)
196C I=3
197 f33(k,j)= vq(k,3,1)*vf(k,7,j) + vq(k,3,2)*vf(k,8,j)
198 1 + vq(k,3,3)*vf(k,9,j)
199C
200C J=4
201C I=1
202 f14(k,j)= vq(k,1,1)*vf(k,10,j)+ vq(k,1,2)*vf(k,11,j)
203 1 + vq(k,1,3)*vf(k,12,j)
204C I=2
205 f24(k,j)= vq(k,2,1)*vf(k,10,j)+ vq(k,2,2)*vf(k,11,j)
206 1 + vq(k,2,3)*vf(k,12,j)
207C I=3
208 f34(k,j)= vq(k,3,1)*vf(k,10,j)+ vq(k,3,2)*vf(k,11,j)
209 1 + vq(k,3,3)*vf(k,12,j)
210 ENDDO
211 ENDDO
212C
213C Projection des forces d'interpli
214 DO j = 1 , npt
215#include "vectorize.inc"
216 DO ep=jft,jlt
217 k=iplat(ep)
218
219 fl1 = vfi(k,1,j)
220 fl2 = vfi(k,2,j)
221 fl3 = vfi(k,3,j)
222C transformation au repere globale
223 f1= vq(k,1,1)*fl1 + vq(k,1,2)*fl2
224 1 + vq(k,1,3)*fl3
225 f2= vq(k,2,1)*fl1 + vq(k,2,2)*fl2
226 1 + vq(k,2,3)*fl3
227 f3= vq(k,3,1)*fl1 + vq(k,3,2)*fl2
228 1 + vq(k,3,3)*fl3
229CNode 1 - ply
230 f11(k,j)= f11(k,j) + f1
231 f21(k,j)= f21(k,j) + f2
232 f31(k,j)= f31(k,j) + f3
233CNode 2 -ply
234 fl1 = vfi(k,4,j)
235 fl2 = vfi(k,5,j)
236 fl3 = vfi(k,6,j)
237C transformation au repere globale
238 f1= vq(k,1,1)*fl1 + vq(k,1,2)*fl2
239 1 + vq(k,1,3)*fl3
240 f2= vq(k,2,1)*fl1 + vq(k,2,2)*fl2
241 1 + vq(k,2,3)*fl3
242 f3= vq(k,3,1)*fl1 + vq(k,3,2)*fl2
243 1 + vq(k,3,3)*fl3
244 f12(k,j)= f12(k,j) + f1
245 f22(k,j)= f22(k,j) + f2
246 f32(k,j)= f32(k,j) + f3
247CC
248 fl1 = vfi(k,7,j)
249 fl2 = vfi(k,8,j)
250 fl3 = vfi(k,9,j)
251C transformation au repere globale
252 f1= vq(k,1,1)*fl1 + vq(k,1,2)*fl2
253 1 + vq(k,1,3)*fl3
254 f2= vq(k,2,1)*fl1 + vq(k,2,2)*fl2
255 1 + vq(k,2,3)*fl3
256 f3= vq(k,3,1)*fl1 + vq(k,3,2)*fl2
257 1 + vq(k,3,3)*fl3
258CNode 3 - ply
259 f13(k,j)= f13(k,j) + f1
260 f23(k,j)= f23(k,j) + f2
261 f33(k,j)= f33(k,j) + f3
262CNode 4 -ply
263 fl1 = vfi(k,10,j)
264 fl2 = vfi(k,11,j)
265 fl3 = vfi(k,12,j)
266C transformation au repere globale
267 f1= vq(k,1,1)*fl1 + vq(k,1,2)*fl2
268 1 + vq(k,1,3)*fl3
269 f2= vq(k,2,1)*fl1 + vq(k,2,2)*fl2
270 1 + vq(k,2,3)*fl3
271 f3= vq(k,3,1)*fl1 + vq(k,3,2)*fl2
272 1 + vq(k,3,3)*fl3
273 f14(k,j)= f14(k,j) + f1
274 f24(k,j)= f24(k,j) + f2
275 f34(k,j)= f34(k,j) + f3
276C
277CNode 1 - ply
278 f11(k,j)= f11(k,j)*off(k)
279 f21(k,j)= f21(k,j)*off(k)
280 f31(k,j)= f31(k,j)*off(k)
281CNode 2 - ply
282 f12(k,j)= f12(k,j)*off(k)
283 f22(k,j)= f22(k,j)*off(k)
284 f32(k,j)= f32(k,j)*off(k)
285CNode 3 - ply
286 f13(k,j)= f13(k,j)*off(k)
287 f23(k,j)= f23(k,j)*off(k)
288 f33(k,j)= f33(k,j)*off(k)
289CNode 4 - ply
290 f14(k,j)= f14(k,j)*off(k)
291 f24(k,j)= f24(k,j)*off(k)
292 f34(k,j)= f34(k,j)*off(k)
293
294 ENDDO
295 ENDDO
296 RETURN
297 END
subroutine cbaproj_ply(jft, jlt, npt, nplat, iplat, vqn, vq, vf, vfi, corel, di, f11, f12, f13, f14, f21, f22, f23, f24, f31, f32, f33, f34, off)
Definition cbaproj_ply.F:34