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

Go to the source code of this file.

Functions/Subroutines

subroutine s20rst (r, s, t, ni, dnidr, dnids, dnidt)

Function/Subroutine Documentation

◆ s20rst()

subroutine s20rst ( r,
s,
t,
ni,
dnidr,
dnids,
dnidt )

Definition at line 30 of file s20rst.F.

32C-----------------------------------------------
33C I m p l i c i t T y p e s
34C-----------------------------------------------
35#include "implicit_f.inc"
36C-----------------------------------------------
37C D u m m y A r g u m e n t s
38C-----------------------------------------------
40 1 r,s,t,
41 2 ni(20) ,dnidr(20),dnids(20),dnidt(20)
42C-----------------------------------------------
43C L o c a l V a r i a b l e s
44C-----------------------------------------------
45 INTEGER I
47 . u_m_r,u_p_r,u_m_s,u_p_s,u_m_t,u_p_t,
48 . ums_umt,ums_upt,ups_umt,ups_upt,
49 . umr_ums,umr_ups,upr_ums,upr_ups,
50 . umt_umr,umt_upr,upt_umr,upt_upr,
51 . a
52C-----------------------------------------------
53C
54C
55C
56C ^ S _ T
57C | /|
58C | /
59C 7 | 18 /
60C O-------|--O----------O 6
61C /. | / /|
62C / . | / |
63C 19 O . / 17 O |
64C / O 15 | / O 14
65C / . 20 / 5 / |
66C 8 O----------O----------O |
67C R <------|- - -.- - - -+ 10 | |
68C | O..........O....|.....O 2
69C | . 3 | /
70C 16 O . 13 O /
71C | O 11 | O
72C | . | / 9
73C |. |/
74C O----------O----------O
75C 4 12 1
76C
77C
78C
79C
80C-----------------------------------------------
81C ro = r ri so = s si to = t ti
82C
83C i=1,8
84C ri=+-1 si=+-1 ti=+-1
85C Ni = 1/8 (1+ro)(1+so)(1+to)(ro+so+to-2)
86C dNi/dr = ri/8 (1+so)(1+to)(2ro+so+to-1)
87C dNi/ds = si/8 (1+to)(1+ro)(2so+to+ro-1)
88C dNi/dt = ti/8 (1+ro)(1+so)(2to+ro+so-1)
89C
90C i=10;12;18;20
91C ri=0 si=+-1 ti=+-1
92C Ni = 1/4 (1-r^2)(1+so)(1+to)
93C dNi/dr = -r/2 (1+so)(1+to)
94C dNi/ds = si/4 (1-r^2)(1+to)
95C dNi/dt = ti/4 (1-r^2)(1+so)
96C
97C i=13,16
98C ri=+-1 si=0 ti=+-1
99C Ni = 1/4 (1-s^2)(1+to)(1+ro)
100C dNi/dr = ri/4 (1-s^2)(1+to)
101C dNi/ds = -s/2 (1+to)(1+ro)
102C dNi/dt = ti/4 (1-s^2)(1+ro)
103C
104C i=9;11;17;19
105C ri=+-1 si=+-1 ti=0
106C Ni = 1/4 (1-t^2)(1+ro)(1+so)
107C dNi/dr = ri/4 (1-t^2)(1+so)
108C dNi/ds = si/4 (1-t^2)(1+ro)
109C dNi/dt = -t/2 (1+ro)(1+so)
110C-----------------------------------------------
111C i ri si ti Ni
112C--------------------------------------------------------------------
113C 1 -1 -1 -1 1/8(1-r)(1-s)(1-t)(-r-s-t-2)
114C 2 -1 -1 +1 1/8(1-r)(1-s)(1+t)(-r-s+t-2)
115C 3 +1 -1 +1 1/8(1+r)(1-s)(1+t)(+r-s+t-2)
116C 4 +1 -1 -1 1/8(1+r)(1-s)(1-t)(+r-s-t-2)
117C 5 -1 +1 -1 1/8(1-r)(1+s)(1-t)(-r+s-t-2)
118C 6 -1 +1 +1 1/8(1-r)(1+s)(1+t)(-r+s+t-2)
119C 7 +1 +1 +1 1/8(1+r)(1+s)(1+t)(+r+s+t-2)
120C 8 +1 +1 -1 1/8(1+r)(1+s)(1-t)(+r+s-t-2)
121C 9 -1 -1 0 1/4(1-t^2)(1-r)(1-s)
122C 10 0 -1 +1 1/4(1-r^2)(1-s)(1+t)
123C 11 +1 -1 0 1/4(1-t^2)(1+r)(1-s)
124C 12 0 -1 -1 1/4(1-r^2)(1-s)(1-t)
125C 13 -1 0 -1 1/4(1-s^2)(1-t)(1-r)
126C 14 -1 0 +1 1/4(1-s^2)(1+t)(1-r)
127C 15 +1 0 +1 1/4(1-s^2)(1+t)(1+r)
128C 16 +1 0 -1 1/4(1-s^2)(1-t)(1+r)
129C 17 -1 +1 0 1/4(1-t^2)(1-r)(1+s)
130C 18 0 +1 +1 1/4(1-r^2)(1+s)(1+t)
131C 19 +1 +1 0 1/4(1-t^2)(1+r)(1+s)
132C 20 0 +1 -1 1/4(1-r^2)(1+s)(1-t)
133C-----------------------------------------------
134C i ri si ti dNi/dr
135C--------------------------------------------------------------------
136C 1 -1 -1 -1 -1/8(1-s)(1-t)(-2r-s-t-1)
137C 2 -1 -1 +1 -1/8(1-s)(1+t)(-2r-s+t-1)
138C 3 +1 -1 +1 1/8(1-s)(1+t)(+2r-s+t-1)
139C 4 +1 -1 -1 1/8(1-s)(1-t)(+2r-s-t-1)
140C 5 -1 +1 -1 -1/8(1+s)(1-t)(-2r+s-t-1)
141C 6 -1 +1 +1 -1/8(1+s)(1+t)(-2r+s+t-1)
142C 7 +1 +1 +1 1/8(1+s)(1+t)(+2r+s+t-1)
143C 8 +1 +1 -1 1/8(1+s)(1-t)(+2r+s-t-1)
144C 9 -1 -1 0 -1/4 (1-t^2)(1-s)
145C 10 0 -1 +1 -1/2 r(1-s)(1+t)
146C 11 +1 -1 0 1/4 (1-t^2)(1-s)
147C 12 0 -1 -1 -1/2 r(1-s)(1-t)
148C 13 -1 0 -1 -1/4 (1-s^2)(1-t)
149C 14 -1 0 +1 -1/4 (1-s^2)(1+t)
150C 15 +1 0 +1 1/4 (1-s^2)(1+t)
151C 16 +1 0 -1 1/4 (1-s^2)(1-t)
152C 17 -1 +1 0 -1/4 (1-t^2)(1+s)
153C 18 0 +1 +1 -1/2 r(1+s)(1+t)
154C 19 +1 +1 0 1/4 (1-t^2)(1+s)
155C 20 0 +1 -1 -1/2 r(1+s)(1-t)
156C-----------------------------------------------
157C
158 u_m_r = half*(one - r)
159 u_p_r = half*(one + r)
160C
161 u_m_s = half*(one - s)
162 u_p_s = half*(one + s)
163C
164 u_m_t = half*(one - t)
165 u_p_t = half*(one + t)
166C
167 ums_umt = u_m_s * u_m_t
168 ums_upt = u_m_s * u_p_t
169 ups_umt = u_p_s * u_m_t
170 ups_upt = u_p_s * u_p_t
171C
172 umr_ums = u_m_r * u_m_s
173 umr_ups = u_m_r * u_p_s
174 upr_ums = u_p_r * u_m_s
175 upr_ups = u_p_r * u_p_s
176C
177 umt_umr = u_m_t * u_m_r
178 umt_upr = u_m_t * u_p_r
179 upt_umr = u_p_t * u_m_r
180 upt_upr = u_p_t * u_p_r
181C
182 ni(1) = u_m_r * ums_umt * (-r-s-t-two)
183 ni(2) = u_m_r * ums_upt * (-r-s+t-two)
184 ni(3) = u_p_r * ums_upt * ( r-s+t-two)
185 ni(4) = u_p_r * ums_umt * ( r-s-t-two)
186 ni(5) = u_m_r * ups_umt * (-r+s-t-two)
187 ni(6) = u_m_r * ups_upt * (-r+s+t-two)
188 ni(7) = u_p_r * ups_upt * ( r+s+t-two)
189 ni(8) = u_p_r * ups_umt * ( r+s-t-two)
190C
191 dnidr(1) = -ums_umt * (u_m_s + u_m_t - r -three_half)
192 dnidr(2) = -ums_upt * (u_m_s + u_p_t - r -three_half)
193 dnidr(3) = ums_upt * (u_m_s + u_p_t + r -three_half)
194 dnidr(4) = ums_umt * (u_m_s + u_m_t + r -three_half)
195 dnidr(5) = -ups_umt * (u_p_s + u_m_t - r -three_half)
196 dnidr(6) = -ups_upt * (u_p_s + u_p_t - r -three_half)
197 dnidr(7) = ups_upt * (u_p_s + u_p_t + r -three_half)
198 dnidr(8) = ups_umt * (u_p_s + u_m_t + r -three_half)
199C
200C
201 dnids(1) = -umt_umr * (u_m_r + u_m_t - s -three_half)
202 dnids(2) = -upt_umr * (u_m_r + u_p_t - s -three_half)
203 dnids(3) = -upt_upr * (u_p_r + u_p_t - s -three_half)
204 dnids(4) = -umt_upr * (u_p_r + u_m_t - s -three_half)
205 dnids(5) = umt_umr * (u_m_r + u_m_t + s -three_half)
206 dnids(6) = upt_umr * (u_m_r + u_p_t + s -three_half)
207 dnids(7) = upt_upr * (u_p_r + u_p_t + s -three_half)
208 dnids(8) = umt_upr * (u_p_r + u_m_t + s -three_half)
209C
210 dnidt(1) = -umr_ums * (u_m_r + u_m_s - t -three_half)
211 dnidt(2) = umr_ums * (u_m_r + u_m_s + t -three_half)
212 dnidt(3) = upr_ums * (u_p_r + u_m_s + t -three_half)
213 dnidt(4) = -upr_ums * (u_p_r + u_m_s - t -three_half)
214 dnidt(5) = -umr_ups * (u_m_r + u_p_s - t -three_half)
215 dnidt(6) = umr_ups * (u_m_r + u_p_s + t -three_half)
216 dnidt(7) = upr_ups * (u_p_r + u_p_s + t -three_half)
217 dnidt(8) = -upr_ups * (u_p_r + u_p_s - t -three_half)
218C------------------------------------
219 a = (one - r*r)
220 ni(10) = a * ums_upt
221 ni(12) = a * ums_umt
222 ni(18) = a * ups_upt
223 ni(20) = a * ups_umt
224C
225 a = half*a
226 dnidt(10) = a * u_m_s
227 dnidt(18) = a * u_p_s
228 dnidt(12) = -dnidt(10)
229 dnidt(20) = -dnidt(18)
230C
231 dnids(18) = a * u_p_t
232 dnids(20) = a * u_m_t
233 dnids(10) = -dnids(18)
234 dnids(12) = -dnids(20)
235C
236 a = -two*r
237 dnidr(10) = a * ums_upt
238 dnidr(12) = a * ums_umt
239 dnidr(18) = a * ups_upt
240 dnidr(20) = a * ups_umt
241C------------------------------------
242 a = (one - s*s)
243 ni(13) = a * umt_umr
244 ni(14) = a * upt_umr
245 ni(15) = a * upt_upr
246 ni(16) = a * umt_upr
247C
248 a = half*a
249 dnidr(15) = a * u_p_t
250 dnidr(16) = a * u_m_t
251 dnidr(13) = -dnidr(16)
252 dnidr(14) = -dnidr(15)
253C
254 dnidt(14) = a * u_m_r
255 dnidt(15) = a * u_p_r
256 dnidt(13) = -dnidt(14)
257 dnidt(16) = -dnidt(15)
258C
259 a = -two*s
260 dnids(13) = a * umt_umr
261 dnids(14) = a * upt_umr
262 dnids(15) = a * upt_upr
263 dnids(16) = a * umt_upr
264C------------------------------------
265 a = (one-t*t)
266 ni(9) = a * umr_ums
267 ni(11) = a * upr_ums
268 ni(17) = a * umr_ups
269 ni(19) = a * upr_ups
270C
271 a = half*a
272 dnidr(11) = a * u_m_s
273 dnidr(19) = a * u_p_s
274 dnidr(9) = -dnidr(11)
275 dnidr(17) = -dnidr(19)
276C
277 dnids(17) = a * u_m_r
278 dnids(19) = a * u_p_r
279 dnids(9) = -dnids(17)
280 dnids(11) = -dnids(19)
281C
282 a = -two*t
283 dnidt(9) = a * umr_ums
284 dnidt(11) = a * upr_ums
285 dnidt(17) = a * umr_ups
286 dnidt(19) = a * upr_ups
287C
288C-----------------------------------------------
289 RETURN
#define my_real
Definition cppsort.cpp:32