OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
srota6.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!|| srota6 ../engine/source/output/anim/generate/srota6.F
25!||--- called by ------------------------------------------------------
26!|| forint ../engine/source/elements/forint.F
27!|| gpsstrain_skin ../engine/source/output/anim/generate/tensgpstrain.F
28!|| h3d_solid_tensor_1 ../engine/source/output/h3d/h3d_results/h3d_solid_tensor_1.F
29!|| stat_s_straf ../engine/source/output/sta/stat_s_straf.F
30!|| stat_s_strsf ../engine/source/output/sta/stat_s_strsf.F
31!|| strn_tenscor3 ../engine/source/output/h3d/h3d_results/h3d_strn_tenscor3.F
32!|| strs_tenscor3 ../engine/source/output/h3d/h3d_results/strs_tenscor3.F
33!|| tensgps1 ../engine/source/output/anim/generate/tensor6.F
34!|| tensgps2 ../engine/source/output/anim/generate/tensor6.F
35!|| tensgps3 ../engine/source/output/anim/generate/tensor6.F
36!|| tensgps_skin ../engine/source/output/anim/generate/tensor6.F
37!|| tensgpstrain ../engine/source/output/anim/generate/tensgpstrain.F
38!|| tensors ../engine/source/output/anim/generate/tensor6.F
39!|| thsol ../engine/source/output/th/thsol.F
40!||--- calls -----------------------------------------------------
41!|| scoor431 ../engine/source/elements/solid/sconnect/scoor431.f
42!|| scortho31 ../engine/source/elements/thickshell/solidec/scortho31.F
43!|| sortho31 ../engine/source/elements/solid/solide/sortho31.F
44!||====================================================================
45 SUBROUTINE srota6(
46 1 X, IXS, KCVT, TENS,
47 2 GAMA, KHBE, ITYP, ISORTH)
48C-----------------------------------------------
49C I m p l i c i t T y p e s
50C-----------------------------------------------
51#include "implicit_f.inc"
52C-----------------------------------------------
53C C o m m o n B l o c k s
54C-----------------------------------------------
55C-----------------------------------------------
56C D u m m y A r g u m e n t s
57C-----------------------------------------------
58 INTEGER, INTENT(INOUT) :: ISORTH
59C REAL
61 . x(3,*),tens(6),gama(6)
62 INTEGER IXS(NIXS), KCVT, KHBE, ITYP
63C-----------------------------------------------
64C L o c a l V a r i a b l e s
65C-----------------------------------------------
66C REAL
68 . x1, x2, x3, x4,
69 . x5, x6, x7, x8,
70 . y1, y2, y3, y4,
71 . y5, y6, y7, y8,
72 . z1, z2, z3, z4,
73 . z5, z6, z7, z8,
74 . l11,l12,l13,l22,l23,l33,
75 . r11,r12,r13,r21,r22,r23,r31,r32,r33,
76 . g11,g22,g33,g12,g21,g23,g32,g13,g31,
77 . t11,t22,t33,t12,t21,t23,t32,t13,t31,
78 . s11,s12,s21,s13,s31,s22,s23,s32,s33
79 INTEGER NC1, NC2, NC3, NC4,
80 . NC5, NC6, NC7, NC8
81C-----------------------------------------------
82C---- should not rotate w/ global iso system
83 IF (kcvt==0.AND.isorth==0) RETURN
84 nc1=ixs(2)
85 nc2=ixs(3)
86 nc3=ixs(4)
87 nc4=ixs(5)
88 nc5=ixs(6)
89 nc6=ixs(7)
90 nc7=ixs(8)
91 nc8=ixs(9)
92C----------------------------
93C NODAL COORDINATES |
94C----------------------------
95 x1=x(1,nc1)
96 y1=x(2,nc1)
97 z1=x(3,nc1)
98 x2=x(1,nc2)
99 y2=x(2,nc2)
100 z2=x(3,nc2)
101 x3=x(1,nc3)
102 y3=x(2,nc3)
103 z3=x(3,nc3)
104 x4=x(1,nc4)
105 y4=x(2,nc4)
106 z4=x(3,nc4)
107 x5=x(1,nc5)
108 y5=x(2,nc5)
109 z5=x(3,nc5)
110 x6=x(1,nc6)
111 y6=x(2,nc6)
112 z6=x(3,nc6)
113 x7=x(1,nc7)
114 y7=x(2,nc7)
115 z7=x(3,nc7)
116 x8=x(1,nc8)
117 y8=x(2,nc8)
118 z8=x(3,nc8)
119C-----------
120 IF (ityp == 43) THEN
121C Corotational frame - hexa spotwelds
122 CALL scoor431(
123 . x1, x2, x3, x4, x5, x6, x7, x8,
124 . y1, y2, y3, y4, y5, y6, y7, y8,
125 . z1, z2, z3, z4, z5, z6, z7, z8,
126 . r11, r12, r13, r21, r22, r23, r31, r32, r33)
127 ELSEIF(khbe/=15)THEN
128C REPERE CONVECTE
129 IF (khbe==24.OR.khbe==14) THEN
130 CALL sortho31(
131 . x1, x2, x3, x4, x5, x6, x7, x8,
132 . y1, y2, y3, y4, y5, y6, y7, y8,
133 . z1, z2, z3, z4, z5, z6, z7, z8,
134 . r12, r13, r11, r22, r23, r21, r32, r33, r31)
135 ELSE
136 CALL sortho31(
137 . x1, x2, x3, x4, x5, x6, x7, x8,
138 . y1, y2, y3, y4, y5, y6, y7, y8,
139 . z1, z2, z3, z4, z5, z6, z7, z8,
140 . r11, r12, r13, r21, r22, r23, r31, r32, r33)
141 ENDIF
142 ELSE
143 CALL scortho31(
144 . x1, x2, x3, x4, x5, x6, x7, x8,
145 . y1, y2, y3, y4, y5, y6, y7, y8,
146 . z1, z2, z3, z4, z5, z6, z7, z8,
147 . r11, r12, r13, r21, r22, r23, r31, r32, r33)
148 ENDIF
149C-----------
150C ORTHOTROPIC ELEMENTS : Rotation from ORHTOROPIC FRAME TO LOCAL FRAME
151C-----------
152 IF (kcvt==2) THEN
153 IF (isorth > 0) THEN
154 g11=gama(1)
155 g21=gama(2)
156 g31=gama(3)
157 g12=gama(4)
158 g22=gama(5)
159 g32=gama(6)
160 g13=g21*g32-g31*g22
161 g23=g31*g12-g11*g32
162 g33=g11*g22-g21*g12
163C MATRICE DE PASSAGE GLOBAL -> ORTHOTROPE.
164 t11=r11*g11+r12*g21+r13*g31
165 t12=r11*g12+r12*g22+r13*g32
166 t13=r11*g13+r12*g23+r13*g33
167 t21=r21*g11+r22*g21+r23*g31
168 t22=r21*g12+r22*g22+r23*g32
169 t23=r21*g13+r22*g23+r23*g33
170 t31=r31*g11+r32*g21+r33*g31
171 t32=r31*g12+r32*g22+r33*g32
172 t33=r31*g13+r32*g23+r33*g33
173 r11=t11
174 r12=t12
175 r13=t13
176 r21=t21
177 r22=t22
178 r23=t23
179 r31=t31
180 r32=t32
181 r33=t33
182 ENDIF
183 ENDIF
184C-----------
185C Rotation from LOCAL FRAME TO GLOBAL FRAME
186C-----------
187C TENSOR ROTATION.
188C R passage Global -> Local.
189C R S Transpose(R)
190C 1 SX
191C 2 SY
192C 3 SZ
193C 4 SXY
194C 5 SYZ
195C 6 SXZ
196C-----------
197 l11 =tens(1)
198 l22 =tens(2)
199 l33 =tens(3)
200 l12 =tens(4)
201 l23 =tens(5)
202 l13 =tens(6)
203 s11 =l11*r11+l12*r12+l13*r13
204 s12 =l11*r21+l12*r22+l13*r23
205 s13 =l11*r31+l12*r32+l13*r33
206 s21 =l12*r11+l22*r12+l23*r13
207 s22 =l12*r21+l22*r22+l23*r23
208 s23 =l12*r31+l22*r32+l23*r33
209 s31 =l13*r11+l23*r12+l33*r13
210 s32 =l13*r21+l23*r22+l33*r23
211 s33 =l13*r31+l23*r32+l33*r33
212 tens(1)=r11*s11+r12*s21+r13*s31
213 tens(2)=r21*s12+r22*s22+r23*s32
214 tens(3)=r31*s13+r32*s23+r33*s33
215 tens(4)=r11*s12+r12*s22+r13*s32
216 tens(5)=r21*s13+r22*s23+r23*s33
217 tens(6)=r11*s13+r12*s23+r13*s33
218C-----------
219 RETURN
220 END
#define my_real
Definition cppsort.cpp:32
subroutine srota6(x, ixs, kcvt, tens, gama, khbe, ityp, isorth)
Definition srota6.F:48
subroutine scoor431(x1, x2, x3, x4, x5, x6, x7, x8, y1, y2, y3, y4, y5, y6, y7, y8, z1, z2, z3, z4, z5, z6, z7, z8, e1x, e2x, e3x, e1y, e2y, e3y, e1z, e2z, e3z)
Definition scoor431.F:34
subroutine scortho31(x1, x2, x3, x4, x5, x6, x7, x8, y1, y2, y3, y4, y5, y6, y7, y8, z1, z2, z3, z4, z5, z6, z7, z8, e1x, e2x, e3x, e1y, e2y, e3y, e1z, e2z, e3z)
Definition scortho31.F:33
subroutine sortho31(x1, x2, x3, x4, x5, x6, x7, x8, y1, y2, y3, y4, y5, y6, y7, y8, z1, z2, z3, z4, z5, z6, z7, z8, e1x, e2x, e3x, e1y, e2y, e3y, e1z, e2z, e3z)
Definition sortho31.F:34