OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
qrota_group.F File Reference
#include "implicit_f.inc"
#include "mvsiz_p.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine qrota_group (x, ixq, kcvt, tens, gama, nel, isorth)

Function/Subroutine Documentation

◆ qrota_group()

subroutine qrota_group ( x,
integer, dimension(nixq,*) ixq,
integer kcvt,
tens,
gama,
integer nel,
integer, intent(in) isorth )

Definition at line 28 of file qrota_group.F.

31C-----------------------------------------------
32C I m p l i c i t T y p e s
33C-----------------------------------------------
34#include "implicit_f.inc"
35C-----------------------------------------------
36C G l o b a l P a r a m e t e r s
37C-----------------------------------------------
38#include "mvsiz_p.inc"
39C-----------------------------------------------
40C C o m m o n B l o c k s
41C-----------------------------------------------
42C-----------------------------------------------
43C D u m m y A r g u m e n t s
44C-----------------------------------------------
45 INTEGER, INTENT(IN) :: ISORTH
46C REAL
48 . x(3,*),tens(6,*),gama(6,*)
49 INTEGER IXQ(NIXQ,*), KCVT, NEL
50C-----------------------------------------------
51C L o c a l V a r i a b l e s
52C-----------------------------------------------
53C REAL
55 . y1(mvsiz), y2(mvsiz), y3(mvsiz), y4(mvsiz),
56 . z1(mvsiz), z2(mvsiz), z3(mvsiz), z4(mvsiz),
57 . r22(mvsiz),r23(mvsiz),r32(mvsiz),r33(mvsiz),
58 . t22(mvsiz),t33(mvsiz),t23(mvsiz),t32(mvsiz),
59 . sy(mvsiz),sz(mvsiz),ty(mvsiz),tz(mvsiz),
60 . g22,g33,g23,g32,
61 . ct,cs,suma,
62 . t1,t2,t3,t4,s1,s2,s3,s4
63 INTEGER NC1(MVSIZ), NC2(MVSIZ), NC3(MVSIZ), NC4(MVSIZ),
64 . N, I
65C-----------------------------------------------
66 IF (kcvt == 0) THEN
67 DO i=1,nel
68 nc1(i)=ixq(2,i)
69 nc2(i)=ixq(3,i)
70 nc3(i)=ixq(4,i)
71 nc4(i)=ixq(5,i)
72C----------------------------
73C COORDONNEES NODALES
74C----------------------------
75 y1(i)=x(2,nc1(i))
76 z1(i)=x(3,nc1(i))
77 y2(i)=x(2,nc2(i))
78 z2(i)=x(3,nc2(i))
79 y3(i)=x(2,nc3(i))
80 z3(i)=x(3,nc3(i))
81 y4(i)=x(2,nc4(i))
82 z4(i)=x(3,nc4(i))
83C---------------------------------------
84C REPERE LOCAL (ISOPARAMETRIQUE)
85C---------------------------------------
86 sy(i)=half*(y2(i)+y3(i)-y1(i)-y4(i))
87 sz(i)=half*(z2(i)+z3(i)-z1(i)-z4(i))
88 ty(i)=half*(y3(i)+y4(i)-y1(i)-y2(i))
89 tz(i)=half*(z3(i)+z4(i)-z1(i)-z2(i))
90 ENDDO
91C-----------
92C REPERE CONVECTE
93C-----------
94 DO i=1,nel
95 ct = ty(i)*ty(i)+tz(i)*tz(i)
96 cs = sy(i)*sy(i)+sz(i)*sz(i)
97 IF(cs /= zero) THEN
98 suma = sqrt(ct/max(em20,cs))
99 sy(i) = sy(i)*suma + tz(i)
100 sz(i) = sz(i)*suma - ty(i)
101 ELSEIF(ct /= zero)THEN
102 suma = sqrt(cs/max(em20,ct))
103 sy(i) = sy(i) + tz(i)*suma
104 sz(i) = sz(i) - ty(i)*suma
105 END IF
106 suma=one/max(sqrt(sy(i)**2+sz(i)**2),em20)
107 sy(i)=sy(i)*suma
108 sz(i)=sz(i)*suma
109C-----------
110C MATRICE DE PASSAGE GLOBAL -> CONVECTE
111C-----------
112 r22(i)= sy(i)
113 r32(i)=-sz(i)
114 r23(i)= sz(i)
115 r33(i)= sy(i)
116 ENDDO
117c
118 ELSEIF (isorth /= 0) THEN
119 DO i=1,nel
120 g22=gama(i,2)
121 g32=gama(i,3)
122 g23=gama(i,5)
123 g33=gama(i,6)
124C-----------
125c MATRICE DE PASSAGE ORTHOTROPE -> CONVECTE
126C-----------
127 r22(i)= g22
128 r23(i)=-g23
129 r32(i)=-g32
130 r33(i)= g33
131 ENDDO
132 END IF
133c
134 DO i=1,nel
135C-----------
136C SIZE(TENS)=6 ON STOCKE COMME DES SOLIDES MAIS ON N'UTILISE QUE 1, 2 et 4
137C-----------
138 s1=tens(1,i)
139 s2=tens(2,i)
140 s4=tens(4,i)
141C-----------
142 IF (kcvt == 0) THEN
143C-----------
144C Rotation from GLOBAL FRAME TO CONVECTED FRAME
145C-----------
146 t1=s1*r22(i)+s4*r23(i)
147 t2=s4*r32(i)+s2*r33(i)
148 t3=s1*r32(i)+s4*r33(i)
149 t4=s4*r22(i)+s2*r23(i)
150 tens(1,i)=r22(i)*t1+r23(i)*t4
151 tens(2,i)=r32(i)*t3+r33(i)*t2
152 tens(4,i)=r22(i)*t3+r23(i)*t2
153 ELSE
154C-----------
155C Rotation from ORTHO FRAME TO CONVECTED FRAME
156C-----------
157 t1=s1*r22(i)-s4*r23(i)
158 t2=-s4*r32(i)+s2*r33(i)
159 t3=-s1*r32(i)+s4*r33(i)
160 t4=s4*r22(i)-s2*r23(i)
161 tens(1,i)=r22(i)*t1-r23(i)*t4
162 tens(2,i)=-r32(i)*t3+r33(i)*t2
163 tens(4,i)=r22(i)*t3-r23(i)*t2
164 ENDIF
165 ENDDO
166C-----------
167 RETURN
#define my_real
Definition cppsort.cpp:32
#define max(a, b)
Definition macros.h:21