OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
smallg3.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!|| smallg3 ../engine/source/elements/solid/solide/smallg3.F
25!||--- called by ------------------------------------------------------
26!|| s8eforc3 ../engine/source/elements/solid/solide8e/s8eforc3.F
27!|| s8sforc3 ../engine/source/elements/solid/solide8s/s8sforc3.F
28!|| s8zforc3 ../engine/source/elements/solid/solide8z/s8zforc3.F
29!||====================================================================
30 SUBROUTINE smallg3(
31 1 SAV, OFFG, WXX, WYY,
32 2 WZZ, R11, R12, R13,
33 3 R21, R22, R23, R31,
34 4 R32, R33, NEL, ISMSTR,
35 5 JCVT)
36C-----------------------------------------------
37C I m p l i c i t T y p e s
38C-----------------------------------------------
39#include "implicit_f.inc"
40C-----------------------------------------------
41C C o m m o n B l o c k s
42C-----------------------------------------------
43#include "scr18_c.inc"
44C-----------------------------------------------
45C D u m m y A r g u m e n t s
46C-----------------------------------------------
47 INTEGER, INTENT(IN) :: ISMSTR
48 INTEGER, INTENT(IN) :: JCVT
49 INTEGER NEL
50 my_real
51 . R11(*),R12(*),R13(*),
52 . r21(*),r22(*),r23(*),
53 . r31(*),r32(*),r33(*),
54 . offg(*),wxx(*),wyy(*),wzz(*)
55 double precision
56 . sav(nel,21)
57C-----------------------------------------------
58C L o c a l V a r i a b l e s
59C-----------------------------------------------
60 INTEGER I
61C REAL
62 DOUBLE PRECISION
63 . X , Y, Z ,WXXG,WYYG,WZZG
64C-----------------------------------------------
65C-----------------------------
66C ROTATION RBY COORDINATES FOR SMALL STRAIN
67C-----------------------------
68C------------Wxx,y,z from local system to global
69 IF (jcvt > 0 ) THEN
70 DO i=1,nel
71 wxxg=r11(i)*wxx(i)+r12(i)*wyy(i)+r13(i)*wzz(i)
72 wyyg=r21(i)*wxx(i)+r22(i)*wyy(i)+r23(i)*wzz(i)
73 wzzg=r31(i)*wxx(i)+r32(i)*wyy(i)+r33(i)*wzz(i)
74 wxx(i) = wxxg
75 wyy(i) = wyyg
76 wzz(i) = wzzg
77 END DO
78 END IF
79 IF (ismstr==11) THEN
80C IF(ISMSTR==11.AND.NCYCLE>1)THEN
81C----SAV : (ismstr=10,11) is differently saved to Ismstr=1
82 DO i=1,nel
83C-----------------------------------------------
84 IF(offg(i)==zero) cycle
85 x=sav(i,1)
86 y=sav(i,8)
87 z=sav(i,15)
88 sav(i,1) = x - y*wzz(i) + z*wyy(i)
89 sav(i,8) = y - z*wxx(i) + x*wzz(i)
90 sav(i,15)= z - x*wyy(i) + y*wxx(i)
91C
92 x=sav(i,2)
93 y=sav(i,9)
94 z=sav(i,16)
95 sav(i,2) = x - y*wzz(i) + z*wyy(i)
96 sav(i,9) = y - z*wxx(i) + x*wzz(i)
97 sav(i,16)= z - x*wyy(i) + y*wxx(i)
98C
99 x=sav(i,3)
100 y=sav(i,10)
101 z=sav(i,17)
102 sav(i,3) = x - y*wzz(i) + z*wyy(i)
103 sav(i,10) = y - z*wxx(i) + x*wzz(i)
104 sav(i,17) = z - x*wyy(i) + y*wxx(i)
105C
106 x=sav(i,4)
107 y=sav(i,11)
108 z=sav(i,18)
109 sav(i,4) = x - y*wzz(i) + z*wyy(i)
110 sav(i,11) = y - z*wxx(i) + x*wzz(i)
111 sav(i,18) = z - x*wyy(i) + y*wxx(i)
112C
113 x=sav(i,5)
114 y=sav(i,12)
115 z=sav(i,19)
116 sav(i,5) = x - y*wzz(i) + z*wyy(i)
117 sav(i,12) = y - z*wxx(i) + x*wzz(i)
118 sav(i,19) = z - x*wyy(i) + y*wxx(i)
119C
120 x=sav(i,6)
121 y=sav(i,13)
122 z=sav(i,20)
123 sav(i,6) = x - y*wzz(i) + z*wyy(i)
124 sav(i,13) = y - z*wxx(i) + x*wzz(i)
125 sav(i,20) = z - x*wyy(i) + y*wxx(i)
126C
127 x=sav(i,7)
128 y=sav(i,14)
129 z=sav(i,21)
130 sav(i,7) = x - y*wzz(i) + z*wyy(i)
131 sav(i,14) = y - z*wxx(i) + x*wzz(i)
132 sav(i,21) = z - x*wyy(i) + y*wxx(i)
133 ENDDO
134 ELSEIF(ismstr==1.OR.
135 . ((ismstr==2.OR.ismstr==12).AND.idtmin(1)==3))THEN
136 DO i=1,nel
137 IF(offg(i)>one)THEN
138C-----------------------------------------------
139 x=sav(i,1)
140 y=sav(i,2)
141 z=sav(i,3)
142 sav(i,1) = x - y*wzz(i) + z*wyy(i)
143 sav(i,2) = y - z*wxx(i) + x*wzz(i)
144 sav(i,3) = z - x*wyy(i) + y*wxx(i)
145C
146 x=sav(i,4)
147 y=sav(i,5)
148 z=sav(i,6)
149 sav(i,4) = x - y*wzz(i) + z*wyy(i)
150 sav(i,5) = y - z*wxx(i) + x*wzz(i)
151 sav(i,6) = z - x*wyy(i) + y*wxx(i)
152C
153 x=sav(i,7)
154 y=sav(i,8)
155 z=sav(i,9)
156 sav(i,7) = x - y*wzz(i) + z*wyy(i)
157 sav(i,8) = y - z*wxx(i) + x*wzz(i)
158 sav(i,9) = z - x*wyy(i) + y*wxx(i)
159C
160 x=sav(i,10)
161 y=sav(i,11)
162 z=sav(i,12)
163 sav(i,10) = x - y*wzz(i) + z*wyy(i)
164 sav(i,11) = y - z*wxx(i) + x*wzz(i)
165 sav(i,12) = z - x*wyy(i) + y*wxx(i)
166C
167 x=sav(i,13)
168 y=sav(i,14)
169 z=sav(i,15)
170 sav(i,13) = x - y*wzz(i) + z*wyy(i)
171 sav(i,14) = y - z*wxx(i) + x*wzz(i)
172 sav(i,15) = z - x*wyy(i) + y*wxx(i)
173C
174 x=sav(i,16)
175 y=sav(i,17)
176 z=sav(i,18)
177 sav(i,16) = x - y*wzz(i) + z*wyy(i)
178 sav(i,17) = y - z*wxx(i) + x*wzz(i)
179 sav(i,18) = z - x*wyy(i) + y*wxx(i)
180C
181 x=sav(i,19)
182 y=sav(i,20)
183 z=sav(i,21)
184 sav(i,19) = x - y*wzz(i) + z*wyy(i)
185 sav(i,20) = y - z*wxx(i) + x*wzz(i)
186 sav(i,21) = z - x*wyy(i) + y*wxx(i)
187C
188 ENDIF
189 ENDDO
190 ENDIF
191C
192 RETURN
193 END
subroutine smallg3(sav, offg, wxx, wyy, wzz, r11, r12, r13, r21, r22, r23, r31, r32, r33, nel, ismstr, jcvt)
Definition smallg3.F:36