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

Go to the source code of this file.

Functions/Subroutines

subroutine s10jacob (alph, beta, w, x1b, x2b, x3b, x4a, x5b, x6b, x7b, x8b, x9b, x10b, x8a, x9a, x10a, y1b, y2b, y3b, y4a, y5b, y6b, y7b, y8b, y9b, y10b, y8a, y9a, y10a, z1b, z2b, z3b, z4a, z5b, z6b, z7b, z8b, z9b, z10b, z8a, z9a, z10a, px1, px2, px3, px4, px5, px6, px7, px8, px9, px10, py1, py2, py3, py4, py5, py6, py7, py8, py9, py10, pz1, pz2, pz3, pz4, pz5, pz6, pz7, pz8, pz9, pz10, nx1, nx2, nx3, nx4, nx5, nx6, nx7, nx8, nx9, nx10, vol, voldp, nel, offg)

Function/Subroutine Documentation

◆ s10jacob()

subroutine s10jacob ( alph,
beta,
w,
double precision, dimension(mvsiz) x1b,
double precision, dimension(mvsiz) x2b,
double precision, dimension(mvsiz) x3b,
double precision, dimension(mvsiz) x4a,
double precision, dimension(mvsiz) x5b,
double precision, dimension(mvsiz) x6b,
double precision, dimension(mvsiz) x7b,
double precision, dimension(mvsiz) x8b,
double precision, dimension(mvsiz) x9b,
double precision, dimension(mvsiz) x10b,
double precision, dimension(mvsiz) x8a,
double precision, dimension(mvsiz) x9a,
double precision, dimension(mvsiz) x10a,
double precision, dimension(mvsiz) y1b,
double precision, dimension(mvsiz) y2b,
double precision, dimension(mvsiz) y3b,
double precision, dimension(mvsiz) y4a,
double precision, dimension(mvsiz) y5b,
double precision, dimension(mvsiz) y6b,
double precision, dimension(mvsiz) y7b,
double precision, dimension(mvsiz) y8b,
double precision, dimension(mvsiz) y9b,
double precision, dimension(mvsiz) y10b,
double precision, dimension(mvsiz) y8a,
double precision, dimension(mvsiz) y9a,
double precision, dimension(mvsiz) y10a,
double precision, dimension(mvsiz) z1b,
double precision, dimension(mvsiz) z2b,
double precision, dimension(mvsiz) z3b,
double precision, dimension(mvsiz) z4a,
double precision, dimension(mvsiz) z5b,
double precision, dimension(mvsiz) z6b,
double precision, dimension(mvsiz) z7b,
double precision, dimension(mvsiz) z8b,
double precision, dimension(mvsiz) z9b,
double precision, dimension(mvsiz) z10b,
double precision, dimension(mvsiz) z8a,
double precision, dimension(mvsiz) z9a,
double precision, dimension(mvsiz) z10a,
px1,
px2,
px3,
px4,
px5,
px6,
px7,
px8,
px9,
px10,
py1,
py2,
py3,
py4,
py5,
py6,
py7,
py8,
py9,
py10,
pz1,
pz2,
pz3,
pz4,
pz5,
pz6,
pz7,
pz8,
pz9,
pz10,
nx1,
nx2,
nx3,
nx4,
nx5,
nx6,
nx7,
nx8,
nx9,
nx10,
vol,
double precision, dimension(*) voldp,
integer, intent(in) nel,
intent(in) offg )

Definition at line 29 of file s10jacob.F.

52C-----------------------------------------------
53C I m p l i c i t T y p e s
54C-----------------------------------------------
55#include "implicit_f.inc"
56C-----------------------------------------------
57C G l o b a l P a r a m e t e r s
58C-----------------------------------------------
59#include "mvsiz_p.inc"
60C-----------------------------------------------
61C D u m m y A r g u m e n t s
62C-----------------------------------------------
63C REAL
64 double precision
65 . x1b(mvsiz),x2b(mvsiz),x3b(mvsiz),x4a(mvsiz),x5b(mvsiz),
66 . x6b(mvsiz),x7b(mvsiz),x8b(mvsiz),x9b(mvsiz),x10b(mvsiz),
67 . x8a(mvsiz),x9a(mvsiz),x10a(mvsiz),
68 . y1b(mvsiz),y2b(mvsiz),y3b(mvsiz),y4a(mvsiz),y5b(mvsiz),
69 . y6b(mvsiz),y7b(mvsiz),y8b(mvsiz),y9b(mvsiz),y10b(mvsiz),
70 . y8a(mvsiz),y9a(mvsiz),y10a(mvsiz),
71 . z1b(mvsiz),z2b(mvsiz),z3b(mvsiz),z4a(mvsiz),z5b(mvsiz),
72 . z6b(mvsiz),z7b(mvsiz),z8b(mvsiz),z9b(mvsiz),z10b(mvsiz),
73 . z8a(mvsiz),z9a(mvsiz),z10a(mvsiz),voldp(*)
74
75 INTEGER, INTENT(IN) :: NEL ! number of element in the current group
76 my_real, DIMENSION(NEL), INTENT(IN) :: offg ! off array : 0 if the element is deleted
77
79 . px1(mvsiz),px2(mvsiz),px3(mvsiz),px4(mvsiz),px5(mvsiz),
80 . px6(mvsiz),px7(mvsiz),px8(mvsiz),px9(mvsiz),px10(mvsiz),
81 . py1(mvsiz),py2(mvsiz),py3(mvsiz),py4(mvsiz),py5(mvsiz),
82 . py6(mvsiz),py7(mvsiz),py8(mvsiz),py9(mvsiz),py10(mvsiz),
83 . pz1(mvsiz),pz2(mvsiz),pz3(mvsiz),pz4(mvsiz),pz5(mvsiz),
84 . pz6(mvsiz),pz7(mvsiz),pz8(mvsiz),pz9(mvsiz),pz10(mvsiz),
85 . nx1(mvsiz),nx2(mvsiz),nx3(mvsiz),nx4(mvsiz),nx5(mvsiz),
86 . nx6(mvsiz),nx7(mvsiz),nx8(mvsiz),nx9(mvsiz),nx10(mvsiz),
87 . vol(mvsiz),alph,beta,w
88C-----------------------------------------------
89C C o m m o n B l o c k s
90C-----------------------------------------------
91C-----------------------------------------------
92C L o c a l V a r i a b l e s
93C-----------------------------------------------
94 INTEGER I
95C REAL
96 DOUBLE PRECISION
97c my_real
98 . D,A4MB4,A4,B4,BB,AB,B2,A4_0,B4_0,
99 . DXDR,DXDS,DXDT,DYDR,DYDS,DYDT,DZDR,DZDS,DZDT
100
101 DOUBLE PRECISION
102 . AA,A4M1,B4M1
103
104c my_real
105 DOUBLE PRECISION
106 . DRDX, DSDX, DTDX,
107 . DRDY, DSDY, DTDY,
108 . DRDZ, DSDZ, DTDZ,
109 . DET,WUNSIX
110C-----------------------------------------------
111c AA = (TWO*ALPH - ONE)*ALPH
112c BB = (TWO*BETA - ONE)*BETA
113c B2 = FOUR*BETA*BETA
114c AB = FOUR*ALPH*BETA
115cC-----------------------------------------------
116c DO I=1,NEL
117c NX1(I) = BB
118c NX2(I) = BB
119c NX3(I) = BB
120c NX4(I) = AA
121c NX5(I) = B2
122c NX6(I) = B2
123c NX7(I) = B2
124c NX8(I) = AB
125c NX9(I) = AB
126c NX10(I)= AB
127c ENDDO
128C
129 a4_0 = four * alph
130 b4_0 = four * beta
131 wunsix = w*one_over_6
132#include "nofusion.inc"
133 DO i=1,nel
134 aa = x5b(i) + x6b(i) + x7b(i)
135 . - x4a(i) - x8b(i) - x9b(i) - x10b(i)
136 dxdr = x1b(i) +x8a(i) - x6b(i) + aa
137 dxds = x2b(i) +x9a(i) - x7b(i) + aa
138 dxdt = x3b(i) +x10a(i)- x5b(i) + aa
139C
140 aa = y5b(i) + y6b(i) + y7b(i)
141 . - y4a(i) - y8b(i) - y9b(i) - y10b(i)
142 dydr = y1b(i) +y8a(i) - y6b(i) + aa
143 dyds = y2b(i) +y9a(i) - y7b(i) + aa
144 dydt = y3b(i) +y10a(i)- y5b(i) + aa
145C
146 aa = z5b(i) + z6b(i) + z7b(i)
147 . - z4a(i) - z8b(i) - z9b(i) - z10b(i)
148 dzdr = z1b(i) +z8a(i) - z6b(i) + aa
149 dzds = z2b(i) +z9a(i) - z7b(i) + aa
150 dzdt = z3b(i) +z10a(i)- z5b(i) + aa
151C
152 drdx=dyds*dzdt-dzds*dydt
153 dsdx=dydt*dzdr-dzdt*dydr
154 dtdx=dydr*dzds-dzdr*dyds
155C
156 drdy=dzds*dxdt-dxds*dzdt
157 dsdy=dzdt*dxdr-dxdt*dzdr
158 dtdy=dzdr*dxds-dxdr*dzds
159C
160 drdz=dxds*dydt-dyds*dxdt
161 dsdz=dxdt*dydr-dydt*dxdr
162 dtdz=dxdr*dyds-dydr*dxds
163C
164 det = dxdr * drdx + dydr * drdy + dzdr * drdz
165 ! check if the element is deleted : if it's true, need to force det to 1
166 IF(offg(i)==zero) det = one
167 d = one/max(em30,det)
168C
169c A4 = FOUR * ALPH
170c B4 = FOUR * BETA
171 a4m1 = d *(a4_0 - one)
172 b4m1 = d *(b4_0 - one)
173!
174 b4 = d * b4_0
175 a4 = d * a4_0
176 a4mb4 = a4 - b4
177 voldp(i) = wunsix * det
178 vol(i) = voldp(i)
179C
180 px1(i) = b4m1 * drdx
181 py1(i) = b4m1 * drdy
182 pz1(i) = b4m1 * drdz
183C
184 px2(i) = b4m1 * dsdx
185 py2(i) = b4m1 * dsdy
186 pz2(i) = b4m1 * dsdz
187C
188 px3(i) = b4m1 * dtdx
189 py3(i) = b4m1 * dtdy
190 pz3(i) = b4m1 * dtdz
191C
192 px4(i) =-a4m1 * (drdx+dsdx+dtdx)
193 py4(i) =-a4m1 * (drdy+dsdy+dtdy)
194 pz4(i) =-a4m1 * (drdz+dsdz+dtdz)
195C
196 px5(i) = b4 * (drdx+dsdx)
197 py5(i) = b4 * (drdy+dsdy)
198 pz5(i) = b4 * (drdz+dsdz)
199C
200 px6(i) = b4 * (dsdx+dtdx)
201 py6(i) = b4 * (dsdy+dtdy)
202 pz6(i) = b4 * (dsdz+dtdz)
203C
204 px7(i) = b4 * (dtdx+drdx)
205 py7(i) = b4 * (dtdy+drdy)
206 pz7(i) = b4 * (dtdz+drdz)
207C
208 px8(i) = a4mb4 * drdx - px6(i)
209 py8(i) = a4mb4 * drdy - py6(i)
210 pz8(i) = a4mb4 * drdz - pz6(i)
211C
212 px9(i) = a4mb4 * dsdx - px7(i)
213 py9(i) = a4mb4 * dsdy - py7(i)
214 pz9(i) = a4mb4 * dsdz - pz7(i)
215C
216 px10(i)= a4mb4 * dtdx - px5(i)
217 py10(i)= a4mb4 * dtdy - py5(i)
218 pz10(i)= a4mb4 * dtdz - pz5(i)
219C
220 ENDDO
221C
222 RETURN
#define my_real
Definition cppsort.cpp:32
#define max(a, b)
Definition macros.h:21