OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
cbadefpinch.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!|| cbadefpinch ../engine/source/elements/shell/coqueba/cbadefpinch.F
25!||--- called by ------------------------------------------------------
26!|| cbaforc3 ../engine/source/elements/shell/coqueba/cbaforc3.F
27!||====================================================================
28 SUBROUTINE cbadefpinch(
29 1 JFT ,JLT ,NG ,VQG ,VDEF ,
30 2 VETA ,VKSI ,TC ,NPLAT ,IPLAT ,
31 3 BCP ,BP ,VPINCHXYZ ,VDEFPINCH ,TNPG ,
32 4 DBETADXY ,VPINCHT1 ,VPINCHT2 ,BPINCHDAMP)
33C-----------------------------------------------
34C I M P L I C I T T Y P E S
35C-----------------------------------------------
36#include "implicit_f.inc"
37C-----------------------------------------------
38C G l o b a l P a r a m e t e r s
39C-----------------------------------------------
40#include "mvsiz_p.inc"
41C-----------------------------------------------
42C D U M M Y A R G U M E N T S
43C-----------------------------------------------
44 INTEGER NG,JFT,JLT,NPLAT,IPLAT(*)
45 MY_REAL
46 . VKSI(4,4),VETA(4,4),
47 . BCP(MVSIZ,8),BP(MVSIZ,4),
48 . vpinchxyz(mvsiz,4),vdef(mvsiz,8),vdefpinch(mvsiz,3),
49 . vqg(mvsiz,3,3,4),tnpg(mvsiz,4,4),tc(mvsiz,2,2),
50 . dbetadxy(mvsiz,3),vpincht1(mvsiz,4),vpincht2(mvsiz,4),
51 . bpinchdamp(mvsiz,8)
52C-----------------------------------------------
53C L O C A L V A R I A B L E S
54C-----------------------------------------------
55 INTEGER I,EP
56 MY_REAL BCX,BCY,D1,D2,
57 . DN1DX,DN2DX,DN3DX,DN4DX,
58 . DN1DY,DN2DY,DN3DY,DN4DY
59C---------------------------------
60C
61C----------------------------------
62C MATRIX [B] DUE TO PINCHING
63C----------------------------------
64#include "vectorize.inc"
65 DO i=jft,jlt
66 ep=iplat(i)
67C----------------------------------
68C MATRIX [BCP] FOR TRNASVERSE SHEAR DUE TO PINCHING
69C----------------------------------
70
71C-------Node 1 contribution
72
73 d1=vksi(1,ng)*tc(ep,1,1)+veta(1,ng)*tc(ep,2,1)
74 d2=vksi(1,ng)*tc(ep,1,2)+veta(1,ng)*tc(ep,2,2)
75C
76C dN1/dx, dN1/dy
77C
78 bcp(ep,1) = vqg(ep,1,1,ng)*d1
79 bcp(ep,2) = vqg(ep,1,2,ng)*d2
80
81C-------Node 2 contribution
82
83 d1=vksi(2,ng)*tc(ep,1,1)+veta(2,ng)*tc(ep,2,1)
84 d2=vksi(2,ng)*tc(ep,1,2)+veta(2,ng)*tc(ep,2,2)
85
86C dN2/dx, dN2/dy
87 bcp(ep,3) = vqg(ep,1,1,ng)*d1
88 bcp(ep,4) = vqg(ep,1,2,ng)*d2
89
90C-------Node 3 contribution
91
92 d1=vksi(3,ng)*tc(ep,1,1)+veta(3,ng)*tc(ep,2,1)
93 d2=vksi(3,ng)*tc(ep,1,2)+veta(3,ng)*tc(ep,2,2)
94
95C dN3/dx, dN3/dy
96 bcp(ep,5) = vqg(ep,1,1,ng)*d1
97 bcp(ep,6) = vqg(ep,1,2,ng)*d2
98
99C-------Node 4 contribution
100
101 d1=vksi(4,ng)*tc(ep,1,1)+veta(4,ng)*tc(ep,2,1)
102 d2=vksi(4,ng)*tc(ep,1,2)+veta(4,ng)*tc(ep,2,2)
103
104C dN4/dx, dN4/dy
105 bcp(ep,7) = vqg(ep,1,1,ng)*d1
106 bcp(ep,8) = vqg(ep,1,2,ng)*d2
107
108C--------Node 1 contribution to BCX/BCY due to pinching
109 bcx= bcp(ep,1)*vpinchxyz(ep,1)
110 bcy= bcp(ep,2)*vpinchxyz(ep,1)
111
112C--------Node 2 contribution to BCX/BCY due to pinching
113 bcx=bcx + bcp(ep,3)*vpinchxyz(ep,2)
114 bcy=bcy + bcp(ep,4)*vpinchxyz(ep,2)
115
116C--------Node 3 contribution to BCX/BCY due to pinching
117 bcx=bcx + bcp(ep,5)*vpinchxyz(ep,3)
118 bcy=bcy + bcp(ep,6)*vpinchxyz(ep,3)
119
120C--------Node 4 contribution to BCX/BCY due to pinching
121 bcx=bcx + bcp(ep,7)*vpinchxyz(ep,4)
122 bcy=bcy + bcp(ep,8)*vpinchxyz(ep,4)
123
124C calculate CT rate because of updates in BCX and BCY
125
126 vdefpinch(ep,1)= tc(ep,1,1)*bcx+tc(ep,2,1)*bcx
127 vdefpinch(ep,2)= tc(ep,1,2)*bcx+tc(ep,2,2)*bcy
128
129C----------------------------------
130C MATRIX [BP] FOR PINCHING
131C----------------------------------
132
133C--------even though constant for all elements,
134C if B_gp = Ni beta_i does not work then will need it here
135C like MITC4 calculation of CT at the edge centre.
136 bp(ep,1) = tnpg(ep,1,ng)
137 bp(ep,2) = tnpg(ep,2,ng)
138 bp(ep,3) = tnpg(ep,3,ng)
139 bp(ep,4) = tnpg(ep,4,ng)
140
141 vdefpinch(ep,3) = bp(ep,1)*vpinchxyz(ep,1)
142 . + bp(ep,2)*vpinchxyz(ep,2)
143 . + bp(ep,3)*vpinchxyz(ep,3)
144 . + bp(ep,4)*vpinchxyz(ep,4)
145
146C
147C----------------------------------
148C CALCULATE DBeta_x/Dx, Dbeta_y/Dx, Dbeta_x/dy and Dbeta_y/dy at this Gp
149C----------------------------------
150C-------Calculating dN/dx and dN/dy at this gp
151 dn1dx = vksi(1,ng)*tc(ep,1,1)+veta(1,ng)*tc(ep,2,1)
152 dn1dy = vksi(1,ng)*tc(ep,1,2)+veta(1,ng)*tc(ep,2,2)
153 dn2dx = vksi(2,ng)*tc(ep,1,1)+veta(2,ng)*tc(ep,2,1)
154 dn2dy = vksi(2,ng)*tc(ep,1,2)+veta(2,ng)*tc(ep,2,2)
155 dn3dx = vksi(3,ng)*tc(ep,1,1)+veta(3,ng)*tc(ep,2,1)
156 dn3dy = vksi(3,ng)*tc(ep,1,2)+veta(3,ng)*tc(ep,2,2)
157 dn4dx = vksi(4,ng)*tc(ep,1,1)+veta(4,ng)*tc(ep,2,1)
158 dn4dy = vksi(4,ng)*tc(ep,1,2)+veta(4,ng)*tc(ep,2,2)
159C
160C dbeta_x/dx at this gp
161 dbetadxy(ep,1) = dn1dx*vpincht1(ep,1)+dn2dx*vpincht1(ep,2)
162 - +dn3dx*vpincht1(ep,3)+dn4dx*vpincht1(ep,4)
163C dbeta_y/dy at this gp
164 dbetadxy(ep,2) = dn1dy*vpincht2(ep,1)+dn2dy*vpincht2(ep,2)
165 - +dn3dy*vpincht2(ep,3)+dn4dy*vpincht2(ep,4)
166C 0.5*(dbeta_x/dy +dbeta_y/dx) at this gp
167 dbetadxy(ep,3) = half*(dn1dy*vpincht1(ep,1)+dn2dy*vpincht1(ep,2)
168 - +dn3dy*vpincht1(ep,3)+dn4dy*vpincht1(ep,4)
169 - +dn1dx*vpincht2(ep,1)+dn2dx*vpincht2(ep,2)
170 - +dn3dx*vpincht2(ep,3)+dn4dx*vpincht2(ep,4))
171C
172 bpinchdamp(ep,1) = dn1dx
173 bpinchdamp(ep,2) = dn1dy
174 bpinchdamp(ep,3) = dn2dx
175 bpinchdamp(ep,4) = dn2dy
176 bpinchdamp(ep,5) = dn3dx
177 bpinchdamp(ep,6) = dn3dy
178 bpinchdamp(ep,7) = dn4dx
179 bpinchdamp(ep,8) = dn4dy
180C
181 ENDDO
182 RETURN
183 END
subroutine cbadefpinch(jft, jlt, ng, vqg, vdef, veta, vksi, tc, nplat, iplat, bcp, bp, vpinchxyz, vdefpinch, tnpg, dbetadxy, vpincht1, vpincht2, bpinchdamp)
Definition cbadefpinch.F:33