OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
s10jacobnel.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!|| s10jacobnel ../engine/source/elements/solid/solide10/s10jacobnel.F
25!||--- called by ------------------------------------------------------
26!|| s10pij12 ../engine/source/elements/solid/solide10/s10pij12.F
27!||====================================================================
28 SUBROUTINE s10jacobnel(ALPH,BETA,W,
29 . X1B,X2B,X3B,X4A,X5B,X6B,X7B,X8B,X9B,X10B,X8A,X9A,X10A,
30 . Y1B,Y2B,Y3B,Y4A,Y5B,Y6B,Y7B,Y8B,Y9B,Y10B,Y8A,Y9A,Y10A,
31 . Z1B,Z2B,Z3B,Z4A,Z5B,Z6B,Z7B,Z8B,Z9B,Z10B,Z8A,Z9A,Z10A,
32 . PX1,PX2,PX3,PX4,PX5,PX6,PX7,PX8,PX9,PX10,
33 . PY1,PY2,PY3,PY4,PY5,PY6,PY7,PY8,PY9,PY10,
34 . PZ1,PZ2,PZ3,PZ4,PZ5,PZ6,PZ7,PZ8,PZ9,PZ10,
35 . VOL,VOLDP,NEL)
36C-----------------------------------------------
37C I m p l i c i t T y p e s
38C-----------------------------------------------
39#include "implicit_f.inc"
40C-----------------------------------------------
41C G l o b a l P a r a m e t e r s
42C-----------------------------------------------
43#include "mvsiz_p.inc"
44C-----------------------------------------------
45C D u m m y A r g u m e n t s
46C-----------------------------------------------
47 INTEGER NEL
48 DOUBLE PRECISION
49 . X1B(MVSIZ),X2B(MVSIZ),X3B(MVSIZ),X4A(MVSIZ),X5B(MVSIZ),
50 . X6B(MVSIZ),X7B(MVSIZ),X8B(MVSIZ),X9B(MVSIZ),X10B(MVSIZ),
51 . X8A(MVSIZ),X9A(MVSIZ),X10A(MVSIZ),
52 . Y1B(MVSIZ),Y2B(MVSIZ),Y3B(MVSIZ),Y4A(MVSIZ),Y5B(MVSIZ),
53 . Y6B(MVSIZ),Y7B(MVSIZ),Y8B(MVSIZ),Y9B(MVSIZ),Y10B(MVSIZ),
54 . y8a(mvsiz),y9a(mvsiz),y10a(mvsiz),
55 . z1b(mvsiz),z2b(mvsiz),z3b(mvsiz),z4a(mvsiz),z5b(mvsiz),
56 . z6b(mvsiz),z7b(mvsiz),z8b(mvsiz),z9b(mvsiz),z10b(mvsiz),
57 . z8a(mvsiz),z9a(mvsiz),z10a(mvsiz),voldp(*)
58
60 . px1(mvsiz),px2(mvsiz),px3(mvsiz),px4(mvsiz),px5(mvsiz),
61 . px6(mvsiz),px7(mvsiz),px8(mvsiz),px9(mvsiz),px10(mvsiz),
62 . py1(mvsiz),py2(mvsiz),py3(mvsiz),py4(mvsiz),py5(mvsiz),
63 . py6(mvsiz),py7(mvsiz),py8(mvsiz),py9(mvsiz),py10(mvsiz),
64 . pz1(mvsiz),pz2(mvsiz),pz3(mvsiz),pz4(mvsiz),pz5(mvsiz),
65 . pz6(mvsiz),pz7(mvsiz),pz8(mvsiz),pz9(mvsiz),pz10(mvsiz),
66 . vol(mvsiz),alph,beta,w
67C-----------------------------------------------
68C L o c a l V a r i a b l e s
69C-----------------------------------------------
70 INTEGER I
71 DOUBLE PRECISION
72 . D,A4MB4,A4,B4,BB,AB,B2,A4_0,B4_0,
73 . DXDR,DXDS,DXDT,DYDR,DYDS,DYDT,DZDR,DZDS,DZDT
74
75 DOUBLE PRECISION AA,A4M1,B4M1
76
77 DOUBLE PRECISION
78 . drdx, dsdx, dtdx,
79 . drdy, dsdy, dtdy,
80 . drdz, dsdz, dtdz,
81 . det,wunsix
82C-----------------------------------------------
83c AA = (TWO*ALPH - ONE)*ALPH
84c BB = (TWO*BETA - ONE)*BETA
85c B2 = FOUR*BETA*BETA
86c AB = FOUR*ALPH*BETA
87cC-----------------------------------------------
88C
89 a4_0 = four * alph
90 b4_0 = four * beta
91 wunsix = w*one_over_6
92#include "nofusion.inc"
93 DO i=1,nel
94 aa = x5b(i) + x6b(i) + x7b(i)
95 . - x4a(i) - x8b(i) - x9b(i) - x10b(i)
96 dxdr = x1b(i) +x8a(i) - x6b(i) + aa
97 dxds = x2b(i) +x9a(i) - x7b(i) + aa
98 dxdt = x3b(i) +x10a(i)- x5b(i) + aa
99C
100 aa = y5b(i) + y6b(i) + y7b(i)
101 . - y4a(i) - y8b(i) - y9b(i) - y10b(i)
102 dydr = y1b(i) +y8a(i) - y6b(i) + aa
103 dyds = y2b(i) +y9a(i) - y7b(i) + aa
104 dydt = y3b(i) +y10a(i)- y5b(i) + aa
105C
106 aa = z5b(i) + z6b(i) + z7b(i)
107 . - z4a(i) - z8b(i) - z9b(i) - z10b(i)
108 dzdr = z1b(i) +z8a(i) - z6b(i) + aa
109 dzds = z2b(i) +z9a(i) - z7b(i) + aa
110 dzdt = z3b(i) +z10a(i)- z5b(i) + aa
111C
112 drdx=dyds*dzdt-dzds*dydt
113 dsdx=dydt*dzdr-dzdt*dydr
114 dtdx=dydr*dzds-dzdr*dyds
115C
116 drdy=dzds*dxdt-dxds*dzdt
117 dsdy=dzdt*dxdr-dxdt*dzdr
118 dtdy=dzdr*dxds-dxdr*dzds
119C
120 drdz=dxds*dydt-dyds*dxdt
121 dsdz=dxdt*dydr-dydt*dxdr
122 dtdz=dxdr*dyds-dydr*dxds
123C
124 det = dxdr * drdx + dydr * drdy + dzdr * drdz
125
126 d = one/max(em30,det)
127C
128 a4m1 = d *(a4_0 - one)
129 b4m1 = d *(b4_0 - one)
130!
131 b4 = d * b4_0
132 a4 = d * a4_0
133 a4mb4 = a4 - b4
134 voldp(i) = wunsix * det
135 vol(i) = voldp(i)
136C
137 px1(i) = b4m1 * drdx
138 py1(i) = b4m1 * drdy
139 pz1(i) = b4m1 * drdz
140C
141 px2(i) = b4m1 * dsdx
142 py2(i) = b4m1 * dsdy
143 pz2(i) = b4m1 * dsdz
144C
145 px3(i) = b4m1 * dtdx
146 py3(i) = b4m1 * dtdy
147 pz3(i) = b4m1 * dtdz
148C
149 px4(i) =-a4m1 * (drdx+dsdx+dtdx)
150 py4(i) =-a4m1 * (drdy+dsdy+dtdy)
151 pz4(i) =-a4m1 * (drdz+dsdz+dtdz)
152C
153 px5(i) = b4 * (drdx+dsdx)
154 py5(i) = b4 * (drdy+dsdy)
155 pz5(i) = b4 * (drdz+dsdz)
156C
157 px6(i) = b4 * (dsdx+dtdx)
158 py6(i) = b4 * (dsdy+dtdy)
159 pz6(i) = b4 * (dsdz+dtdz)
160C
161 px7(i) = b4 * (dtdx+drdx)
162 py7(i) = b4 * (dtdy+drdy)
163 pz7(i) = b4 * (dtdz+drdz)
164C
165 px8(i) = a4mb4 * drdx - px6(i)
166 py8(i) = a4mb4 * drdy - py6(i)
167 pz8(i) = a4mb4 * drdz - pz6(i)
168C
169 px9(i) = a4mb4 * dsdx - px7(i)
170 py9(i) = a4mb4 * dsdy - py7(i)
171 pz9(i) = a4mb4 * dsdz - pz7(i)
172C
173 px10(i)= a4mb4 * dtdx - px5(i)
174 py10(i)= a4mb4 * dtdy - py5(i)
175 pz10(i)= a4mb4 * dtdz - pz5(i)
176C
177 ENDDO
178C
179 RETURN
180 END
#define my_real
Definition cppsort.cpp:32
#define max(a, b)
Definition macros.h:21
subroutine s10jacobnel(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, vol, voldp, nel)
Definition s10jacobnel.F:36