OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
s16rst.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!||====================================================================
25!|| s16rst ../engine/source/elements/thickshell/solide16/s16rst.F
26!||--- called by ------------------------------------------------------
27!|| s16forc3 ../engine/source/elements/thickshell/solide16/s16forc3.F
28!||====================================================================
29 SUBROUTINE s16rst(R,S,T,
30 2 NI ,DNIDR ,DNIDS ,DNIDT )
31C-----------------------------------------------
32C I m p l i c i t T y p e s
33C-----------------------------------------------
34#include "implicit_f.inc"
35C-----------------------------------------------
36C D u m m y A r g u m e n t s
37C-----------------------------------------------
39 1 r,s,t,
40 2 ni(16) ,dnidr(16),dnids(16),dnidt(16)
41C-----------------------------------------------
42C L o c a l V a r i a b l e s
43C-----------------------------------------------
45 . u_m_r,u_p_r,u_m_s,u_p_s,u_m_t,u_p_t,
46 . ums_umt,ums_upt,ups_umt,ups_upt,
47 . umr_ums,umr_ups,upr_ums,upr_ups,
48 . umt_umr,umt_upr,upt_umr,upt_upr,
49 . a
50C-----------------------------------------------
51C
52C
53C
54C ^ S _ T
55C | /|
56C | /
57C 7 | 14 /
58C O-------|--O----------O 6
59C /. | / /|
60C / . | / |
61C 15 O . / 13 O |
62C / . | / |
63C / . 16 / 5 / |
64C 8 O----------O----------O |
65C R <------|- - -.- - - -+ 10 | |
66C | O..........O....|.....O 2
67C | . 3 | /
68C | . | /
69C | O 11 | O
70C | . | / 9
71C |. |/
72C O----------O----------O
73C 4 12 1
74C
75C
76C
77C
78C-----------------------------------------------
79C ro = r ri so = s si to = t ti
80C
81C i=1,8
82C ri=+-1 si=+-1 ti=+-1
83C Ni = 1/8 (1+ro)(1+so)(1+to)(ro+to-1)
84C dNi/dr = ri/8 (1+so)(1+to)(2ro+to)
85C dNi/ds = si/8 (1+to)(1+ro)(to+ro-1)
86C dNi/dt = ti/8 (1+ro)(1+so)(2to+ro)
87C
88C i=10;12;14;16
89C ri=0 si=+-1 ti=+-1
90C Ni = 1/4 (1-r^2)(1+so)(1+to)
91C dNi/dr = -r/2 (1+so)(1+to)
92C dNi/ds = si/4 (1-r^2)(1+to)
93C dNi/dt = ti/4 (1-r^2)(1+so)
94C
95C
96C i=9;11;13;15
97C ri=+-1 si=+-1 ti=0
98C Ni = 1/4 (1-t^2)(1+ro)(1+so)
99C dNi/dr = ri/4 (1-t^2)(1+so)
100C dNi/ds = si/4 (1-t^2)(1+ro)
101C dNi/dt = -t/2 (1+ro)(1+so)
102C-----------------------------------------------
103C i ri si ti Ni
104C--------------------------------------------------------------------
105C 1 -1 -1 -1 1/8(1-r)(1-s)(1-t)(-r-t-1)
106C 2 -1 -1 +1 1/8(1-r)(1-s)(1+t)(-r+t-1)
107C 3 +1 -1 +1 1/8(1+r)(1-s)(1+t)(+r+t-1)
108C 4 +1 -1 -1 1/8(1+r)(1-s)(1-t)(+r-t-1)
109C 5 -1 +1 -1 1/8(1-r)(1+s)(1-t)(-r-t-1)
110C 6 -1 +1 +1 1/8(1-r)(1+s)(1+t)(-r+t-1)
111C 7 +1 +1 +1 1/8(1+r)(1+s)(1+t)(+r+t-1)
112C 8 +1 +1 -1 1/8(1+r)(1+s)(1-t)(+r-t-1)
113C 9 -1 -1 0 1/4(1-t^2)(1-r)(1-s)
114C 10 0 -1 +1 1/4(1-r^2) (1-s)(1+t)
115C 11 +1 -1 0 1/4(1-t^2)(1+r)(1-s)
116C 12 0 -1 -1 1/4(1-r^2) (1-s)(1-t)
117C 13 -1 +1 0 1/4(1-t^2)(1-r)(1+s)
118C 14 0 +1 +1 1/4(1-r^2) (1+s)(1+t)
119C 15 +1 +1 0 1/4(1-t^2)(1+r)(1+s)
120C 16 0 +1 -1 1/4(1-r^2) (1+s)(1-t)
121C-----------------------------------------------
122C i ri si ti dNi/dr dNi/ds
123C--------------------------------------------------------------------
124C 1 -1 -1 -1 -1/8(1-s)(1-t)(-2r-t) -1/8 (1-t)(1-r)(-t-r-1)
125C 2 -1 -1 +1 -1/8(1-s)(1+t)(-2r+t) -1/8 (1+t)(1-r)( t-r-1)
126C 3 +1 -1 +1 1/8(1-s)(1+t)(+2r+t) -1/8 (1+t)(1+r)( t+r-1)
127C 4 +1 -1 -1 1/8(1-s)(1-t)(+2r-t) -1/8 (1-t)(1+r)(-t+r-1)
128C 5 -1 +1 -1 -1/8(1+s)(1-t)(-2r-t) 1/8 (1-t)(1-r)(-t-r-1)
129C 6 -1 +1 +1 -1/8(1+s)(1+t)(-2r+t) 1/8 (1+t)(1-r)( t-r-1)
130C 7 +1 +1 +1 1/8(1+s)(1+t)(+2r+t) 1/8 (1+t)(1+r)( t+r-1)
131C 8 +1 +1 -1 1/8(1+s)(1-t)(+2r-t) 1/8 (1-t)(1+r)(-t+r-1)
132C 9 -1 -1 0 -1/4 (1-t^2)(1-s) -1/4 (1-t^2)(1-r)
133C 10 0 -1 +1 -1/2 r(1-s)(1+t) -1/4 (1-r^2)(1+t)
134C 11 +1 -1 0 1/4 (1-t^2)(1-s) -1/4 (1-t^2)(1+r)
135C 12 0 -1 -1 -1/2 r(1-s)(1-t) -1/4 (1-r^2)(1-t)
136C 13 -1 +1 0 -1/4 (1-t^2)(1+s) 1/4 (1-t^2)(1-r)
137C 14 0 +1 +1 -1/2 r(1+s)(1+t) 1/4 (1-r^2)(1+t)
138C 15 +1 +1 0 1/4 (1-t^2)(1+s) 1/4 (1-t^2)(1+r)
139C 16 0 +1 -1 -1/2 r(1+s)(1-t) 1/4 (1-r^2)(1-t)
140C-----------------------------------------------
141C
142 u_m_r = half*(one - r)
143 u_p_r = half*(one + r)
144C
145 u_m_s = half*(one - s)
146 u_p_s = half*(one + s)
147C
148 u_m_t = half*(one - t)
149 u_p_t = half*(one + t)
150C
151 ums_umt = u_m_s * u_m_t
152 ums_upt = u_m_s * u_p_t
153 ups_umt = u_p_s * u_m_t
154 ups_upt = u_p_s * u_p_t
155C
156 umr_ums = u_m_r * u_m_s
157 umr_ups = u_m_r * u_p_s
158 upr_ums = u_p_r * u_m_s
159 upr_ups = u_p_r * u_p_s
160C
161 umt_umr = u_m_t * u_m_r
162 umt_upr = u_m_t * u_p_r
163 upt_umr = u_p_t * u_m_r
164 upt_upr = u_p_t * u_p_r
165C
166 ni(1) = u_m_r * ums_umt * (-r-t-one)
167 ni(2) = u_m_r * ums_upt * (-r+t-one)
168 ni(3) = u_p_r * ums_upt * ( r+t-one)
169 ni(4) = u_p_r * ums_umt * ( r-t-one)
170 ni(5) = u_m_r * ups_umt * (-r-t-one)
171 ni(6) = u_m_r * ups_upt * (-r+t-one)
172 ni(7) = u_p_r * ups_upt * ( r+t-one)
173 ni(8) = u_p_r * ups_umt * ( r-t-one)
174C
175 dnidr(1) = -ums_umt * (-half*t - r)
176 dnidr(2) = -ums_upt * ( half*t - r)
177 dnidr(3) = ums_upt * ( half*t + r)
178 dnidr(4) = ums_umt * (-half*t + r)
179 dnidr(5) = -ups_umt * (-half*t - r)
180 dnidr(6) = -ups_upt * ( half*t - r)
181 dnidr(7) = ups_upt * ( half*t + r)
182 dnidr(8) = ups_umt * (-half*t + r)
183C
184 dnids(1) = -umt_umr * (-r-t-one)*half
185 dnids(2) = -upt_umr * (-r+t-one)*half
186 dnids(3) = -upt_upr * ( r+t-one)*half
187 dnids(4) = -umt_upr * ( r-t-one)*half
188 dnids(5) = umt_umr * (-r-t-one)*half
189 dnids(6) = upt_umr * (-r+t-one)*half
190 dnids(7) = upt_upr * ( r+t-one)*half
191 dnids(8) = umt_upr * ( r-t-one)*half
192C
193 dnidt(1) = -umr_ums * (-half*r - t)
194 dnidt(2) = umr_ums * (-half*r + t)
195 dnidt(3) = upr_ums * (+half*r + t)
196 dnidt(4) = -upr_ums * (+half*r - t)
197 dnidt(5) = -umr_ups * (-half*r - t)
198 dnidt(6) = umr_ups * (-half*r + t)
199 dnidt(7) = upr_ups * (+half*r + t)
200 dnidt(8) = -upr_ups * (+half*r - t)
201C------------------------------------
202 a = (one - r*r)
203 ni(10) = a * ums_upt
204 ni(12) = a * ums_umt
205 ni(14) = a * ups_upt
206 ni(16) = a * ups_umt
207C
208 a = half*a
209 dnidt(10) = a * u_m_s
210 dnidt(14) = a * u_p_s
211 dnids(10) = -a * u_p_t
212 dnids(12) = -a * u_m_t
213C
214 a = -two*r
215 dnidr(10) = a * ums_upt
216 dnidr(12) = a * ums_umt
217 dnidr(14) = a * ups_upt
218 dnidr(16) = a * ups_umt
219C------------------------------------
220 a = (one - t*t)
221 ni(9) = a * umr_ums
222 ni(11) = a * upr_ums
223 ni(13) = a * umr_ups
224 ni(15) = a * upr_ups
225C
226 a = half*a
227C DNIDR(11) = A * U_M_S
228C DNIDR(15) = A * U_P_S
229C DNIDR(9) = -DNIDR(11)
230C DNIDR(13) = -DNIDR(15)
231 dnidr(9) = -a * u_m_s
232 dnidr(13) = -a * u_p_s
233C
234C DNIDS(13) = A * U_M_R
235C DNIDS(15) = A * U_P_R
236C DNIDS(9) = -DNIDS(13)
237C DNIDS(11) = -DNIDS(15)
238 dnids(9) = -a * u_m_r
239 dnids(11) = -a * u_p_r
240C
241 a = -two*t
242 dnidt(9) = a * umr_ums
243 dnidt(11) = a * upr_ums
244 dnidt(13) = a * umr_ups
245 dnidt(15) = a * upr_ups
246C
247C-----------------------------------------------
248 RETURN
249 END
#define my_real
Definition cppsort.cpp:32
subroutine s16rst(r, s, t, ni, dnidr, dnids, dnidt)
Definition s16rst.F:31