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