OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
srota6_s8s.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_s8s ../engine/source/output/anim/generate/srota6_s8s.F
25!||--- called by ------------------------------------------------------
26!|| tensors ../engine/source/output/anim/generate/tensor6.F
27!||====================================================================
28 SUBROUTINE srota6_s8s(
29 1 KCVT, TENS, GAMA, KHBE,
30 2 ITYP, FRAME, IINT, ISORTH)
31C-----------------------------------------------
32C I m p l i c i t T y p e s
33C-----------------------------------------------
34#include "implicit_f.inc"
35C-----------------------------------------------
36C C o m m o n B l o c k s
37C-----------------------------------------------
38C-----------------------------------------------
39C D u m m y A r g u m e n t s
40C-----------------------------------------------
41 INTEGER, INTENT(IN) :: IINT
42 INTEGER, INTENT(IN) :: ISORTH
43C REAL
45 . tens(6),gama(6),frame(3,3)
46 INTEGER IXS(NIXS), KCVT, KHBE, ITYP
47C-----------------------------------------------
48C L o c a l V a r i a b l e s
49C-----------------------------------------------
50C REAL
52 . l11,l12,l13,l22,l23,l33,
53 . r11,r12,r13,r21,r22,r23,r31,r32,r33,
54 . g11,g22,g33,g12,g21,g23,g32,g13,g31,
55 . t11,t22,t33,t12,t21,t23,t32,t13,t31,
56 . s11,s12,s21,s13,s31,s22,s23,s32,s33
57C-----------------------------------------------
58C---- should not rotate w/ global iso system
59! IF (KCVT==0.AND.ISORTH==0) RETURN
60C----------------------------
61 IF (khbe /= 17 .OR. iint /= 3) RETURN
62 r11 = frame(1,1)
63 r21 = frame(2,1)
64 r31 = frame(3,1)
65 r12 = frame(1,2)
66 r22 = frame(2,2)
67 r32 = frame(3,2)
68 r13 = frame(1,3)
69 r23 = frame(2,3)
70 r33 = frame(3,3)
71! ENDIF
72C-----------
73C ORTHOTROPIC ELEMENTS : Rotation from ORHTOROPIC FRAME TO LOCAL FRAME
74C-----------
75 IF (kcvt==2) THEN
76 IF (isorth > 0) THEN
77 g11=gama(1)
78 g21=gama(2)
79 g31=gama(3)
80 g12=gama(4)
81 g22=gama(5)
82 g32=gama(6)
83 g13=g21*g32-g31*g22
84 g23=g31*g12-g11*g32
85 g33=g11*g22-g21*g12
86C MATRICE DE PASSAGE GLOBAL -> ORTHOTROPE.
87 t11=r11*g11+r12*g21+r13*g31
88 t12=r11*g12+r12*g22+r13*g32
89 t13=r11*g13+r12*g23+r13*g33
90 t21=r21*g11+r22*g21+r23*g31
91 t22=r21*g12+r22*g22+r23*g32
92 t23=r21*g13+r22*g23+r23*g33
93 t31=r31*g11+r32*g21+r33*g31
94 t32=r31*g12+r32*g22+r33*g32
95 t33=r31*g13+r32*g23+r33*g33
96 r11=t11
97 r12=t12
98 r13=t13
99 r21=t21
100 r22=t22
101 r23=t23
102 r31=t31
103 r32=t32
104 r33=t33
105 ENDIF
106 ENDIF
107C-----------
108C Rotation from LOCAL FRAME TO GLOBAL FRAME
109C-----------
110C TENSOR ROTATION.
111C R passage Global -> Local.
112C R S Transpose(R)
113C 1 SX
114C 2 SY
115C 3 SZ
116C 4 SXY
117C 5 SYZ
118C 6 SXZ
119C-----------
120 l11 =tens(1)
121 l22 =tens(2)
122 l33 =tens(3)
123 l12 =tens(4)
124 l23 =tens(5)
125 l13 =tens(6)
126 s11 =l11*r11+l12*r12+l13*r13
127 s12 =l11*r21+l12*r22+l13*r23
128 s13 =l11*r31+l12*r32+l13*r33
129 s21 =l12*r11+l22*r12+l23*r13
130 s22 =l12*r21+l22*r22+l23*r23
131 s23 =l12*r31+l22*r32+l23*r33
132 s31 =l13*r11+l23*r12+l33*r13
133 s32 =l13*r21+l23*r22+l33*r23
134 s33 =l13*r31+l23*r32+l33*r33
135 tens(1)=r11*s11+r12*s21+r13*s31
136 tens(2)=r21*s12+r22*s22+r23*s32
137 tens(3)=r31*s13+r32*s23+r33*s33
138 tens(4)=r11*s12+r12*s22+r13*s32
139 tens(5)=r21*s13+r22*s23+r23*s33
140 tens(6)=r11*s13+r12*s23+r13*s33
141C-----------
142 RETURN
143 END
#define my_real
Definition cppsort.cpp:32
subroutine srota6_s8s(kcvt, tens, gama, khbe, ityp, frame, iint, isorth)
Definition srota6_s8s.F:31