OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
cupdt_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!|| cupdt_ply ../engine/source/properties/composite_options/stack/cupdt_ply.F
25!||--- called by ------------------------------------------------------
26!|| cbaforc3 ../engine/source/elements/shell/coqueba/cbaforc3.F
27!||--- uses -----------------------------------------------------
28!|| plyxfem_mod ../engine/share/modules/plyxfem_mod.F
29!||====================================================================
30 SUBROUTINE cupdt_ply(
31 1 JFT, JLT, NVC, OFFG,
32 2 OFF, IADC, IEL, INOD,
33 3 IXC, MS, IN, MS_PLY,
34 4 ZI_PLY, ISTACK, POSLY, FLY11,
35 5 FLY12, FLY13, FLY14, FLY21,
36 6 FLY22, FLY23, FLY24, FLY31,
37 7 FLY32, FLY33, FLY34, FAC,
38 8 STI, MSZ2, NFT, NPT)
39C-----------------------------------------------
40C M o d u l e s
41C-----------------------------------------------
42 USE plyxfem_mod
43C-----------------------------------------------
44C I m p l i c i t T y p e s
45C-----------------------------------------------
46#include "implicit_f.inc"
47#include "comlock.inc"
48C-----------------------------------------------
49C G l o b a l P a r a m e t e r s
50C-----------------------------------------------
51#include "mvsiz_p.inc"
52#include "parit_c.inc"
53C-----------------------------------------------
54C C o m m o n B l o c k s
55C-----------------------------------------------
56#include "param_c.inc"
57C-----------------------------------------------
58C D u m m y A r g u m e n t s
59C-----------------------------------------------
60 INTEGER, INTENT(IN) :: NFT
61 INTEGER, INTENT(IN) :: NPT
62 INTEGER JFT, JLT, NVC
63 INTEGER IADC(4,*),IXC(NIXC,MVSIZ),ISTACK(MVSIZ,NPT),IEL(*),
64 . INOD(*)
65C REAL
66 my_real
67 . OFFG(*), OFF(*), IN(*), MS(*),MS_PLY(NPLYXFE,*),
68 . posly(mvsiz,npt),zi_ply(nplyxfe,*),
69 . fly11(mvsiz, npt), fly21(mvsiz, npt), fly31(mvsiz, npt),
70 . fly12(mvsiz, npt), fly22(mvsiz, npt), fly32(mvsiz, npt),
71 . fly13(mvsiz, npt), fly23(mvsiz, npt), fly33(mvsiz, npt),
72 . fly14(mvsiz, npt), fly24(mvsiz, npt), fly34(mvsiz, npt),
73 . pth(mvsiz,npt),fac(mvsiz,2),sti(mvsiz,*),msz2(*)
74C-----------------------------------------------
75C L o c a l V a r i a b l e s
76C-----------------------------------------------
77 INTEGER NVC1, NVC2, NVC3, NVC4, I, J, MX,IOFF,IP,I1,I2,I3,I4,N,
78 . IN1,IN2,IN3,IN4
79 my_real
80 . OFF_L,
81 . FPLY11,FPLY21,FPLY31,FPLY12,FPLY22,FPLY32,FPLY13,FPLY23,
82 . FPLY33,FPLY14,FPLY24,FPLY34,FPLY,MPLY,
83 . MPLY11,MPLY21,MPLY31,MPLY12,MPLY22,MPLY32,MPLY13,MPLY23,
84 . MPLY33,MPLY14,MPLY24,MPLY34
85C-----------------------------------------------
86C
87C cumul de l'energie des elements deletes AU moment du delete
88C
89 off_l = zero
90 DO i=jft,jlt
91 IF(off(i)<one)offg(i) = off(i)
92 off_l = min(off_l,offg(i))
93 ENDDO
94 IF(off_l<zero)THEN
95 DO i=jft,jlt
96 IF(offg(i)<zero)THEN
97 DO j=1,npt
98 fly11(i,j)=zero
99 fly21(i,j)=zero
100 fly31(i,j)=zero
101 fly12(i,j)=zero
102 fly22(i,j)=zero
103 fly32(i,j)=zero
104 fly13(i,j)=zero
105 fly23(i,j)=zero
106 fly33(i,j)=zero
107 fly14(i,j)=zero
108 fly24(i,j)=zero
109 fly34(i,j)=zero
110 ENDDO
111 ENDIF
112 ENDDO
113 ENDIF
114C
115 IF(iparit == 0) THEN
116 nvc1= nvc/8
117 nvc2=(nvc-nvc1*8)/4
118 nvc3=(nvc-nvc1*8-nvc2*4)/2
119 nvc4=(nvc-nvc1*8-nvc2*4-nvc3*2)
120C to do
121C
122 DO i=jft,jlt
123
124 i1 = inod(ixc(2,i))
125 i2 = inod(ixc(3,i))
126 i3 = inod(ixc(4,i))
127 i4 = inod(ixc(5,i))
128C
129 in1 = ixc(2,i)
130 in2 = ixc(3,i)
131 in3 = ixc(4,i)
132 in4 = ixc(5,i)
133 n = iel(i + nft)
134 DO j=1,npt
135 ip = istack(i,j)
136C PRINT *,J,IP
137 ply(ip)%A(1,i1)= ply(ip)%A(1,i1) - (fly11(i,j) )
138 ply(ip)%A(2,i1)= ply(ip)%A(2,i1) - (fly21(i,j) )
139 ply(ip)%A(3,i1)= ply(ip)%A(3,i1) - (fly31(i,j) )
140 ply(ip)%A(4,i1)= ply(ip)%A(4,i1) + sti(i,j)*fac(i,1)
141c
142 ply(ip)%A(1,i2)= ply(ip)%A(1,i2) - (fly12(i,j) )
143 ply(ip)%A(2,i2)= ply(ip)%A(2,i2) - (fly22(i,j) )
144 ply(ip)%A(3,i2)= ply(ip)%A(3,i2) - (fly32(i,j) )
145 ply(ip)%A(4,i2)= ply(ip)%A(4,i2) + sti(i,j)*fac(i,2)
146
147c
148 ply(ip)%A(1,i3)= ply(ip)%A(1,i3) - (fly13(i,j) )
149 ply(ip)%A(2,i3)= ply(ip)%A(2,i3) - (fly23(i,j) )
150 ply(ip)%A(3,i3)= ply(ip)%A(3,i3) - (fly33(i,j) )
151 ply(ip)%A(4,i3)= ply(ip)%A(4,i3) + sti(i,j)*fac(i,1)
152c
153 ply(ip)%A(1,i4)= ply(ip)%A(1,i4) - (fly14(i,j) )
154 ply(ip)%A(2,i4)= ply(ip)%A(2,i4) - (fly24(i,j) )
155 ply(ip)%A(3,i4)= ply(ip)%A(3,i4) - (fly34(i,j) )
156 ply(ip)%A(4,i4)= ply(ip)%A(4,i4) + sti(i,j)*fac(i,2)
157C
158 ENDDO
159 ENDDO
160
161 ELSE
162 DO i=jft,jlt
163
164 i1 = inod(ixc(2,i))
165 i2 = inod(ixc(3,i))
166 i3 = inod(ixc(4,i))
167 i4 = inod(ixc(5,i))
168C
169 in1 = ixc(2,i)
170 in2 = ixc(3,i)
171 in3 = ixc(4,i)
172 in4 = ixc(5,i)
173C
174 n = iel(i + nft)
175 DO j=1,npt
176 ip = istack(i,j)
177 plysky(ip)%FSKY(1,iadc(1,n))= -(fly11(i,j) )
178 plysky(ip)%FSKY(2,iadc(1,n))= -(fly21(i,j) )
179 plysky(ip)%FSKY(3,iadc(1,n))= -(fly31(i,j) )
180C stifness by ply
181 plysky(ip)%FSKY(4,iadc(1,n))= sti(i,j)*fac(i,1)
182C
183 plysky(ip)%FSKY(1,iadc(2,n))= -(fly12(i,j) )
184 plysky(ip)%FSKY(2,iadc(2,n))= -(fly22(i,j) )
185 plysky(ip)%FSKY(3,iadc(2,n))= -(fly32(i,j) )
186C stifness by ply
187 plysky(ip)%FSKY(4,iadc(2,n))= sti(i,j)*fac(i,2)
188c
189 plysky(ip)%FSKY(1,iadc(3,n))= -(fly13(i,j))
190 plysky(ip)%FSKY(2,iadc(3,n))= -(fly23(i,j) )
191 plysky(ip)%FSKY(3,iadc(3,n))= -(fly33(i,j) )
192C stifness by ply
193 plysky(ip)%FSKY(4,iadc(3,n))= sti(i,j)*fac(i,1)
194
195 plysky(ip)%FSKY(1,iadc(4,n))= -(fly14(i,j) )
196 plysky(ip)%FSKY(2,iadc(4,n))= -(fly24(i,j) )
197 plysky(ip)%FSKY(3,iadc(4,n))= -(fly34(i,j) )
198C stifness by ply
199 plysky(ip)%FSKY(4,iadc(4,n))= sti(i,j)*fac(i,2)
200C
201 ENDDO
202 ENDDO
203C
204 ENDIF
205C
206 RETURN
207 END
208C
subroutine cupdt_ply(jft, jlt, nvc, offg, off, iadc, iel, inod, ixc, ms, in, ms_ply, zi_ply, istack, posly, fly11, fly12, fly13, fly14, fly21, fly22, fly23, fly24, fly31, fly32, fly33, fly34, fac, sti, msz2, nft, npt)
Definition cupdt_ply.F:39
#define min(a, b)
Definition macros.h:20
type(ply_data), dimension(:), allocatable ply
Definition plyxfem_mod.F:91
type(ply_data), dimension(:), allocatable plysky
Definition plyxfem_mod.F:91