OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
cbadefpinch.F File Reference
#include "implicit_f.inc"
#include "mvsiz_p.inc"
#include "vectorize.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine cbadefpinch (jft, jlt, ng, vqg, vdef, veta, vksi, tc, nplat, iplat, bcp, bp, vpinchxyz, vdefpinch, tnpg, dbetadxy, vpincht1, vpincht2, bpinchdamp)

Function/Subroutine Documentation

◆ cbadefpinch()

subroutine cbadefpinch ( integer jft,
integer jlt,
integer ng,
vqg,
vdef,
veta,
vksi,
tc,
integer nplat,
integer, dimension(*) iplat,
bcp,
bp,
vpinchxyz,
vdefpinch,
tnpg,
dbetadxy,
vpincht1,
vpincht2,
bpinchdamp )

Definition at line 28 of file cbadefpinch.F.

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
#define my_real
Definition cppsort.cpp:32