OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
cdkderi3.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!|| cdkderic3 ../engine/source/elements/sh3n/coquedk/cdkderi3.F
25!||--- called by ------------------------------------------------------
26!|| cdkforc3 ../engine/source/elements/sh3n/coquedk/cdkforc3.F
27!||====================================================================
28 SUBROUTINE cdkderic3(JFT ,JLT, X2,Y2,X3,Y3,AREA2,ALPE,ALDT,
29 1 PX2,PY2,PX3,PY3,PX,PY,PXY,PYY,VOL,VOLG,
30 2 NU,THK2)
31C-----------------------------------------------
32C I m p l i c i t T y p e s
33C-----------------------------------------------
34#include "implicit_f.inc"
35C-----------------------------------------------
36C G l o b a l P a r a m e t e r s
37C-----------------------------------------------
38#include "mvsiz_p.inc"
39C-----------------------------------------------
40C D u m m y A r g u m e n t s
41C-----------------------------------------------
42 INTEGER JFT, JLT
43 my_real
44 . x2(*), y2(*), x3(*), y3(*),area2(*),
45 . px2(*), py2(*), px3(*), py3(*),
46 . px(mvsiz,3), py(mvsiz,3), pxy(mvsiz,3), pyy(mvsiz,3),
47 . aldt(*),alpe(*),vol(*),volg(*),nu(*),thk2(*)
48C-----------------------------------------------
49C L o c a l V a r i a b l e s
50C-----------------------------------------------
51 INTEGER :: I
52 my_real :: AREAI(MVSIZ),AL1, AL2, AL3, ALMAX,ALMIN,FAC
53 my_real :: x32(mvsiz), y32(mvsiz),al4, al5, al6
54C-----------------------------------------------
55 DO i=jft,jlt
56 areai(i)=one/area2(i)
57 px2(i)=y3(i)*areai(i)
58 py2(i)=-x3(i)*areai(i)
59 px3(i)=-y2(i)*areai(i)
60 py3(i)=x2(i)*areai(i)
61 x32(i) =x3(i)-x2(i)
62 y32(i) =y3(i)-y2(i)
63 ENDDO
64C
65 DO i=jft,jlt
66 al1 = x32(i)*x32(i) + y32(i)*y32(i)
67 al2 = x3(i) * x3(i) + y3(i) * y3(i)
68 al3 = x2(i) * x2(i) + y2(i) * y2(i)
69 almax = max(al1,al2,al3)
70 almin = min(al1,al2,al3)
71 fac =1.0+0.6*(1+nu(i))*thk2(i)/almin
72 almax = almax*fac
73 aldt(i)= area2(i) / sqrt(almax)
74 alpe(i)=one
75 al4 = three/max(al1,em20)
76 al5 = three/max(al2,em20)
77 al6 = three/max(al3,em20)
78 pxy(i,1)=x32(i)*y32(i)*al4
79 pxy(i,2)=x3(i)*y3(i)*al5
80 pxy(i,3)=x2(i)*y2(i)*al6
81 pyy(i,1)=y32(i)*y32(i)*al4
82 pyy(i,2)=y3(i)*y3(i)*al5
83 pyy(i,3)=y2(i)*y2(i)*al6
84 al4 = two*al4
85 al5 = two*al5
86 al6 = two*al6
87 px(i,1)=x32(i)*al4
88 px(i,2)=-x3(i)*al5
89 px(i,3)=x2(i)*al6
90 py(i,1)=y32(i)*al4
91 py(i,2)=-y3(i)*al5
92 py(i,3)=y2(i)*al6
93 vol(i) = third*volg(i)
94 ENDDO
95C---------------------------------------------------------
96 RETURN
97C
98 END
99!||====================================================================
100!|| cdkderi3 ../engine/source/elements/sh3n/coquedk/cdkderi3.F
101!||--- called by ------------------------------------------------------
102!|| cdkforc3 ../engine/source/elements/sh3n/coquedk/cdkforc3.F
103!||====================================================================
104 SUBROUTINE cdkderi3(JFT ,JLT,PX2,PY2,PX3,PY3,PX,PY,PXY,PYY,
105 1 BZ1,BZ2,BZ3,BRX1,BRX2,BRX3,
106 2 BRY1,BRY2,BRY3,KSI,ETA)
107C-----------------------------------------------
108C I m p l i c i t T y p e s
109C-----------------------------------------------
110#include "implicit_f.inc"
111C-----------------------------------------------
112C G l o b a l P a r a m e t e r s
113C-----------------------------------------------
114#include "mvsiz_p.inc"
115C-----------------------------------------------
116C D u m m y A r g u m e n t s
117C-----------------------------------------------
118 INTEGER JFT, JLT
119 my_real
120 . PX2(*), PY2(*), PX3(*), PY3(*),
121 . PX(MVSIZ,3), PY(MVSIZ,3), PXY(MVSIZ,3), PYY(MVSIZ,3),
122 . bz1(mvsiz,2),bz2(mvsiz,2),bz3(mvsiz,2), brx1(mvsiz,3),
123 . brx2(mvsiz,3),brx3(mvsiz,3),bry1(mvsiz,3),bry2(mvsiz,3),bry3(mvsiz,3),
124 . ksi, eta
125C-----------------------------------------------
126C L o c a l V a r i a b l e s
127C-----------------------------------------------
128 INTEGER I
129 MY_REAL :: XR1,XR2,XR3,YR1,YR2,YR3,XS1,XS2,XS3,YS1,YS2,YS3,X2Y,Y2X,X6,Y6,XY6,RXY1(3),RXY2(3)
130C-----------------------------------------------
131 X2Y =one-two*ksi-eta
132 y2x =one-two*eta-ksi
133 x6 = six*ksi-one
134 y6 = six*eta-one
135 xy6 = x6+y6-three
136 DO i=jft,jlt
137 xr1= px(i,3)*x2y
138 xr2= px(i,2)*eta
139 xr3= px(i,1)*eta
140 xs1= -px(i,2)*y2x
141 xs2= -px(i,3)*ksi
142 xs3= -px(i,1)*ksi
143 bz1(i,1)=px2(i)*(-xr1+xr3)-px3(i)*(xs3+xs2)
144 bz1(i,2)=-px2(i)*(xr2+xr3)+px3(i)*(-xs1+xs3)
145C BZ1(1,I)=-BZ1(2,I)-BZ1(3,I)
146C
147 yr1= py(i,3)*x2y
148 yr2= py(i,2)*eta
149 yr3= py(i,1)*eta
150 ys1= -py(i,2)*y2x
151 ys2= -py(i,3)*ksi
152 ys3= -py(i,1)*ksi
153 bz2(i,1)=py2(i)*(-yr1+yr3)-py3(i)*(ys3+ys2)
154 bz2(i,2)=-py2(i)*(yr2+yr3)+py3(i)*(-ys1+ys3)
155C BZ2(1,I)=-BZ2(2,I)-BZ2(3,I)
156C
157 bz3(i,1)=px2(i)*(-yr1+yr3)-px3(i)*(ys3+ys2)+
158 . py2(i)*(-xr1+xr3)-py3(i)*(xs3+xs2)
159 bz3(i,2)=-px2(i)*(yr2+yr3)+px3(i)*(-ys1+ys3)
160 . -py2(i)*(xr2+xr3)+py3(i)*(-xs1+xs3)
161C BZ3(1,I)=-BZ3(2,I)-BZ3(3,I)
162 ENDDO
163C
164 DO i=jft,jlt
165 xr1= pxy(i,3)*x2y
166 xr2= -pxy(i,2)*eta
167 xr3= pxy(i,1)*eta
168 xs1= pxy(i,2)*y2x
169 xs2= -pxy(i,3)*ksi
170 xs3= pxy(i,1)*ksi
171 brx1(i,1)=px2(i)*(xr1+xr2)+px3(i)*(xs1+xs2)
172 brx1(i,2)=px2(i)*(xr1+xr3)+px3(i)*(xs3+xs2)
173 brx1(i,3)=px2(i)*(xr2+xr3)+px3(i)*(xs1+xs3)
174C
175 yr1= pyy(i,3)*x2y
176 yr2= one-pyy(i,2)*eta
177 yr3= pyy(i,1)*eta-one
178 ys1= pyy(i,2)*y2x
179 ys2= one-pyy(i,3)*ksi
180 ys3= pyy(i,1)*ksi-one
181 brx2(i,1)=py2(i)*(yr1+yr2)+py3(i)*(ys1+ys2)
182 brx2(i,2)=py2(i)*(yr1+yr3)+py3(i)*(ys3+ys2)
183 brx2(i,3)=py2(i)*(yr2+yr3)+py3(i)*(ys1+ys3)
184C
185 rxy1(1)=px2(i)*(yr1+yr2)+px3(i)*(ys1+ys2)
186 rxy2(1)=py2(i)*(xr1+xr2)+py3(i)*(xs1+xs2)
187 rxy1(2)=px2(i)*(yr1+yr3)+px3(i)*(ys3+ys2)
188 rxy2(2)=py2(i)*(xr1+xr3)+py3(i)*(xs3+xs2)
189 rxy1(3)=px2(i)*(yr2+yr3)+px3(i)*(ys1+ys3)
190 rxy2(3)=py2(i)*(xr2+xr3)+py3(i)*(xs1+xs3)
191 brx3(i,1)=rxy1(1)+rxy2(1)
192 brx3(i,2)=rxy1(2)+rxy2(2)
193 brx3(i,3)=rxy1(3)+rxy2(3)
194C
195 bry1(i,1)=rxy1(1)+(px2(i)+px3(i))*xy6
196 bry1(i,2)=rxy1(2)+px2(i)*x6
197 bry1(i,3)=rxy1(3)+px3(i)*y6
198C
199 bry2(i,1)=-rxy2(1)
200 bry2(i,2)=-rxy2(2)
201 bry2(i,3)=-rxy2(3)
202C
203 bry3(i,1)=(py2(i)+py3(i))*xy6+brx2(i,1)-brx1(i,1)
204 bry3(i,2)=py2(i)*x6+brx2(i,2)-brx1(i,2)
205 bry3(i,3)=py3(i)*y6+brx2(i,3)-brx1(i,3)
206 ENDDO
207C
208C---------------------------------------------------------
209 RETURN
210C
211 END
subroutine cdkderic3(jft, jlt, x2, y2, x3, y3, area2, alpe, aldt, px2, py2, px3, py3, px, py, pxy, pyy, vol, volg, nu, thk2)
Definition cdkderi3.F:31
subroutine cdkderi3(jft, jlt, px2, py2, px3, py3, px, py, pxy, pyy, bz1, bz2, bz3, brx1, brx2, brx3, bry1, bry2, bry3, ksi, eta)
Definition cdkderi3.F:107
#define min(a, b)
Definition macros.h:20
#define max(a, b)
Definition macros.h:21