OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
s10jacobt.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!|| s10jacobt ../engine/source/elements/solid/solide10/s10jacobt.F
25!||====================================================================
26 SUBROUTINE s10jacobt(
27 1 ALPH, BETA, W, PX1,
28 2 PX2, PX3, PX4, PX5,
29 3 PX6, PX7, PX8, PX9,
30 4 PX10, PY1, PY2, PY3,
31 5 PY4, PY5, PY6, PY7,
32 6 PY8, PY9, PY10, PZ1,
33 7 PZ2, PZ3, PZ4, PZ5,
34 8 PZ6, PZ7, PZ8, PZ9,
35 9 PZ10, NX1, NX2, NX3,
36 A NX4, NX5, NX6, NX7,
37 B NX8, NX9, NX10, VOL,
38 C JAC_I, NEL)
39C-----------------------------------------------
40C I m p l i c i t T y p e s
41C-----------------------------------------------
42#include "implicit_f.inc"
43C-----------------------------------------------
44C G l o b a l P a r a m e t e r s
45C-----------------------------------------------
46#include "mvsiz_p.inc"
47C-----------------------------------------------
48C D u m m y A r g u m e n t s
49C-----------------------------------------------
50 INTEGER, INTENT(IN) :: NEL
51 my_real
52 . PX1(MVSIZ),PX2(MVSIZ),PX3(MVSIZ),PX4(MVSIZ),PX5(MVSIZ),
53 . PX6(MVSIZ),PX7(MVSIZ),PX8(MVSIZ),PX9(MVSIZ),PX10(MVSIZ),
54 . PY1(MVSIZ),PY2(MVSIZ),PY3(MVSIZ),PY4(MVSIZ),PY5(MVSIZ),
55 . PY6(MVSIZ),PY7(MVSIZ),PY8(MVSIZ),PY9(MVSIZ),PY10(MVSIZ),
56 . PZ1(MVSIZ),PZ2(MVSIZ),PZ3(MVSIZ),PZ4(MVSIZ),PZ5(MVSIZ),
57 . PZ6(MVSIZ),PZ7(MVSIZ),PZ8(MVSIZ),PZ9(MVSIZ),PZ10(MVSIZ),
58 . NX1(MVSIZ),NX2(MVSIZ),NX3(MVSIZ),NX4(MVSIZ),NX5(MVSIZ),
59 . NX6(MVSIZ),NX7(MVSIZ),NX8(MVSIZ),NX9(MVSIZ),NX10(MVSIZ),
60 . VOL(MVSIZ),ALPH,BETA,W,JAC_I(10,MVSIZ)
61C-----------------------------------------------
62C C o m m o n B l o c k s
63C-----------------------------------------------
64C-----------------------------------------------
65C L o c a l V a r i a b l e s
66C-----------------------------------------------
67 INTEGER I
68 my_real
69 . A4MB4,A4,B4
70 DOUBLE PRECISION
71 . A4M1,B4M1
72
73 my_real
74 . DRDX, DSDX, DTDX,
75 . DRDY, DSDY, DTDY,
76 . DRDZ, DSDZ, DTDZ
77C-----------------------------------------------
78c AA = (TWO*ALPH - ONE)*ALPH
79c BB = (TWO*BETA - ONE)*BETA
80c B2 = FOUR*BETA*BETA
81c AB = FOUR*ALPH*BETA
82C-----------------------------------------------
83C
84 a4 = four * alph
85 b4 = four * beta
86 a4m1 = a4 - one
87 b4m1 = b4 - one
88 a4mb4 = a4 - b4
89 DO i=1,nel
90 drdx=jac_i(1,i)
91 dsdx=jac_i(4,i)
92 dtdx=jac_i(7,i)
93C
94 drdy=jac_i(2,i)
95 dsdy=jac_i(5,i)
96 dtdy=jac_i(8,i)
97C
98 drdz=jac_i(3,i)
99 dsdz=jac_i(6,i)
100 dtdz=jac_i(9,i)
101C
102 vol(i) = jac_i(10,i)
103C
104 px1(i) = b4m1 * drdx
105 py1(i) = b4m1 * drdy
106 pz1(i) = b4m1 * drdz
107C
108 px2(i) = b4m1 * dsdx
109 py2(i) = b4m1 * dsdy
110 pz2(i) = b4m1 * dsdz
111C
112 px3(i) = b4m1 * dtdx
113 py3(i) = b4m1 * dtdy
114 pz3(i) = b4m1 * dtdz
115C
116 px4(i) =-a4m1 * (drdx+dsdx+dtdx)
117 py4(i) =-a4m1 * (drdy+dsdy+dtdy)
118 pz4(i) =-a4m1 * (drdz+dsdz+dtdz)
119C
120 px5(i) = b4 * (drdx+dsdx)
121 py5(i) = b4 * (drdy+dsdy)
122 pz5(i) = b4 * (drdz+dsdz)
123C
124 px6(i) = b4 * (dsdx+dtdx)
125 py6(i) = b4 * (dsdy+dtdy)
126 pz6(i) = b4 * (dsdz+dtdz)
127C
128 px7(i) = b4 * (dtdx+drdx)
129 py7(i) = b4 * (dtdy+drdy)
130 pz7(i) = b4 * (dtdz+drdz)
131C
132 px8(i) = a4mb4 * drdx - px6(i)
133 py8(i) = a4mb4 * drdy - py6(i)
134 pz8(i) = a4mb4 * drdz - pz6(i)
135C
136 px9(i) = a4mb4 * dsdx - px7(i)
137 py9(i) = a4mb4 * dsdy - py7(i)
138 pz9(i) = a4mb4 * dsdz - pz7(i)
139C
140 px10(i)= a4mb4 * dtdx - px5(i)
141 py10(i)= a4mb4 * dtdy - py5(i)
142 pz10(i)= a4mb4 * dtdz - pz5(i)
143C
144 ENDDO
145C
146 RETURN
147 END
subroutine s10jacobt(alph, beta, w, 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, jac_i, nel)
Definition s10jacobt.F:39