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,j
61C REAL
62 DOUBLE PRECISION
63 . X , Y, Z ,DV ,WXXG,WYYG,WZZG
64C-----------------------------------------------
65C-----------------------------
66C ROTATION RBY DES COORDONNEES POUR 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 s8sforc3(timers, output, elbuf_tab, ng, pm, geo, ixs, x, a, v, ms, w, flux, flu1, veul, fv, ale_connect, iparg, tf, npf, bufmat, partsav, nloc_dmg, dt2t, neltst, ityptst, stifn, fsky, iads, offset, eani, iparts, icp, f11, f21, f31, f12, f22, f32, f13, f23, f33, f14, f24, f34, f15, f25, f35, f16, f26, f36, f17, f27, f37, f18, f28, f38, nel, nvc, ipm, itask, istrain, temp, fthe, fthesky, iexpan, gresav, grth, igrth, mssa, dmels, table, igeo, xdp, voln, condn, condnsky, d, ioutprt, mat_elem, h3d_strain, snpc, stf, sbufmat, svis, nsvois, idtmins, iresp, idtmin, maxfunc, userl_avail, dt, glob_therm, sensors)
Definition s8sforc3.F:98
subroutine smallg3(sav, offg, wxx, wyy, wzz, r11, r12, r13, r21, r22, r23, r31, r32, r33, nel, ismstr, jcvt)
Definition smallg3.F:36