OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
s6ccoor3.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!|| s6ccoor3 ../starter/source/elements/thickshell/solide6c/s6ccoor3.F
25!||--- called by ------------------------------------------------------
26!|| s6cinit3 ../starter/source/elements/thickshell/solide6c/s6cinit3.F
27!|| s6zinit3 ../starter/source/elements/solid/solide6z/s6zinit3.F90
28!||--- calls -----------------------------------------------------
29!|| checkvolume_6n ../starter/source/elements/solid/solide/checksvolume.F
30!|| s6cortho3 ../starter/source/elements/thickshell/solide6c/s6cortho3.F
31!||--- uses -----------------------------------------------------
32!|| message_mod ../starter/share/message_module/message_mod.F
33!||====================================================================
34 SUBROUTINE s6ccoor3(X ,IXS ,GEO ,NGL ,MXT ,NGEO ,
35 . RX ,RY ,RZ ,SX ,SY ,SZ ,TX ,TY ,TZ ,
36 . R11 ,R21 ,R31 ,R12 ,R22 ,R32 ,R13 ,R23 ,R33 ,
37 . F1X ,F1Y ,F1Z ,F2X ,F2Y ,F2Z ,TEMP0, TEMP,NINTEMP,
38 . IX1, IX2, IX3, IX4, IX5, IX6,
39 . X1, X2, X3, X4, X5, X6,
40 . Y1, Y2, Y3, Y4, Y5, Y6,
41 . Z1, Z2, Z3, Z4, Z5, Z6)
42
43 USE message_mod
44 use element_mod , only : nixs
45C
46C-----------------------------------------------
47C I m p l i c i t T y p e s
48C-----------------------------------------------
49#include "implicit_f.inc"
50C-----------------------------------------------
51C G l o b a l P a r a m e t e r s
52C-----------------------------------------------
53#include "mvsiz_p.inc"
54C-----------------------------------------------
55C C o m m o n B l o c k s
56C-----------------------------------------------
57#include "vect01_c.inc"
58#include "com04_c.inc"
59C-----------------------------------------------
60C D u m m y A r g u m e n t s
61C-----------------------------------------------
62 INTEGER IXS(NIXS,*),MXT(*),NGL(*),NGEO(*)
63 INTEGER ,INTENT(IN) :: NINTEMP
64 my_real
65 . X(3,*),GEO(*),
66 . RX(*) ,RY(*) ,RZ(*) ,SX(*) ,SY(*) ,SZ(*) ,TX(*) ,TY(*) ,TZ(*),
67 . R11(*),R12(*),R13(*),R21(*),R22(*),R23(*),R31(*),R32(*),R33(*),
68 . F1X(*),F1Y(*),F1Z(*),F2X(*),F2Y(*),F2Z(*),TEMP0(MVSIZ), TEMP(*)
69 INTEGER IX1(*), IX2(*), IX3(*), IX4(*), IX5(*), IX6(*)
70 my_real
71 . x1(*), x2(*), x3(*), x4(*), x5(*), x6(*),
72 . y1(*), y2(*), y3(*), y4(*), y5(*), y6(*),
73 . z1(*), z2(*), z3(*), z4(*), z5(*), z6(*)
74C-----------------------------------------------
75C L o c a l V a r i a b l e s
76C-----------------------------------------------
77 INTEGER I
78 my_real
79 . XL,YL,ZL
80C-----------------------------------------------
81C E x t e r n a l F u n c t i o n s
82C-----------------------------------------------
83 my_real
85C=======================================================================
86C CONNECTIVITIES AND MATERIAL NUMBER AND PID
87C--------------------------------------------------
88 DO i=lft,llt
89 mxt(i)=ixs(1,i)
90 ix1(i)=ixs(2,i)
91 ix2(i)=ixs(3,i)
92 ix3(i)=ixs(4,i)
93 ix4(i)=ixs(6,i)
94 ix5(i)=ixs(7,i)
95 ix6(i)=ixs(8,i)
96 ngeo(i)=ixs(nixs-1,i)
97 ngl(i)=ixs(nixs,i)
98 IF (checkvolume_6n(x ,ixs(1,i)) < zero) THEN
99C renumber connectivity
100 ix1(i)=ixs(6,i)
101 ix2(i)=ixs(7,i)
102 ix3(i)=ixs(8,i)
103 ix4(i)=ixs(2,i)
104 ix5(i)=ixs(3,i)
105 ix6(i)=ixs(4,i)
106 ixs(2,i)=ix1(i)
107 ixs(3,i)=ix2(i)
108 ixs(4,i)=ix3(i)
109 ixs(6,i)=ix4(i)
110 ixs(7,i)=ix5(i)
111 ixs(8,i)=ix6(i)
112 ENDIF
113 ENDDO
114C
115C----------------------------
116C COORDONNEES
117C----------------------------
118 DO 20 i=lft,llt
119 x1(i)=x(1,ix1(i))
120 y1(i)=x(2,ix1(i))
121 z1(i)=x(3,ix1(i))
122 x2(i)=x(1,ix2(i))
123 y2(i)=x(2,ix2(i))
124 z2(i)=x(3,ix2(i))
125 x3(i)=x(1,ix3(i))
126 y3(i)=x(2,ix3(i))
127 z3(i)=x(3,ix3(i))
128 x4(i)=x(1,ix4(i))
129 y4(i)=x(2,ix4(i))
130 z4(i)=x(3,ix4(i))
131 x5(i)=x(1,ix5(i))
132 y5(i)=x(2,ix5(i))
133 z5(i)=x(3,ix5(i))
134 x6(i)=x(1,ix6(i))
135 y6(i)=x(2,ix6(i))
136 z6(i)=x(3,ix6(i))
137 20 CONTINUE
138C
139 DO i=lft,llt
140 f1x(i) = x2(i) - x1(i)
141 f1y(i) = y2(i) - y1(i)
142 f1z(i) = z2(i) - z1(i)
143 f2x(i) = x3(i) - x1(i)
144 f2y(i) = y3(i) - y1(i)
145 f2z(i) = z3(i) - z1(i)
146 ENDDO
147C
148 DO i=lft,llt
149 xl=one_over_6*(x1(i)+x2(i)+x3(i)+x4(i)+x5(i)+x6(i))
150 yl=one_over_6*(y1(i)+y2(i)+y3(i)+y4(i)+y5(i)+y6(i))
151 zl=one_over_6*(z1(i)+z2(i)+z3(i)+z4(i)+z5(i)+z6(i))
152 x1(i)=x1(i)-xl
153 y1(i)=y1(i)-yl
154 z1(i)=z1(i)-zl
155 x2(i)=x2(i)-xl
156 y2(i)=y2(i)-yl
157 z2(i)=z2(i)-zl
158 x3(i)=x3(i)-xl
159 y3(i)=y3(i)-yl
160 z3(i)=z3(i)-zl
161 x4(i)=x4(i)-xl
162 y4(i)=y4(i)-yl
163 z4(i)=z4(i)-zl
164 x5(i)=x5(i)-xl
165 y5(i)=y5(i)-yl
166 z5(i)=z5(i)-zl
167 x6(i)=x6(i)-xl
168 y6(i)=y6(i)-yl
169 z6(i)=z6(i)-zl
170 ENDDO
171C-----------
172C convected frame .
173C-----------
174 CALL s6cortho3(
175 . x1, x2, x3, x4, x5, x6,
176 . y1, y2, y3, y4, y5, y6,
177 . z1, z2, z3, z4, z5, z6,
178 . rx ,ry ,rz ,sx ,sy ,sz ,tx ,ty ,tz ,
179 . r11 ,r21 ,r31 ,r12 ,r22 ,r32 ,r13, r23, r33)
180C
181 DO i=lft,llt
182 xl=r11(i)*x1(i)+r21(i)*y1(i)+r31(i)*z1(i)
183 yl=r12(i)*x1(i)+r22(i)*y1(i)+r32(i)*z1(i)
184 zl=r13(i)*x1(i)+r23(i)*y1(i)+r33(i)*z1(i)
185 x1(i)=xl
186 y1(i)=yl
187 z1(i)=zl
188 xl=r11(i)*x2(i)+r21(i)*y2(i)+r31(i)*z2(i)
189 yl=r12(i)*x2(i)+r22(i)*y2(i)+r32(i)*z2(i)
190 zl=r13(i)*x2(i)+r23(i)*y2(i)+r33(i)*z2(i)
191 x2(i)=xl
192 y2(i)=yl
193 z2(i)=zl
194 xl=r11(i)*x3(i)+r21(i)*y3(i)+r31(i)*z3(i)
195 yl=r12(i)*x3(i)+r22(i)*y3(i)+r32(i)*z3(i)
196 zl=r13(i)*x3(i)+r23(i)*y3(i)+r33(i)*z3(i)
197 x3(i)=xl
198 y3(i)=yl
199 z3(i)=zl
200 xl=r11(i)*x4(i)+r21(i)*y4(i)+r31(i)*z4(i)
201 yl=r12(i)*x4(i)+r22(i)*y4(i)+r32(i)*z4(i)
202 x4(i)=xl
203 y4(i)=yl
204 z4(i)=-z1(i)
205 xl=r11(i)*x5(i)+r21(i)*y5(i)+r31(i)*z5(i)
206 yl=r12(i)*x5(i)+r22(i)*y5(i)+r32(i)*z5(i)
207 x5(i)=xl
208 y5(i)=yl
209 z5(i)=-z2(i)
210 xl=r11(i)*x6(i)+r21(i)*y6(i)+r31(i)*z6(i)
211 yl=r12(i)*x6(i)+r22(i)*y6(i)+r32(i)*z6(i)
212 x6(i)=xl
213 y6(i)=yl
214 z6(i)=-z3(i)
215 ENDDO
216C
217 IF(jthe < 0 ) THEN
218 IF(nintemp > 0 ) THEN
219 DO i= lft,llt
220 IF(temp(ix1(i))== zero) temp(ix1(i)) = temp0(i)
221 IF(temp(ix2(i))== zero) temp(ix2(i)) = temp0(i)
222 IF(temp(ix3(i))== zero) temp(ix3(i)) = temp0(i)
223 IF(temp(ix4(i))== zero) temp(ix4(i)) = temp0(i)
224 IF(temp(ix5(i))== zero) temp(ix5(i)) = temp0(i)
225 IF(temp(ix6(i))== zero) temp(ix6(i)) = temp0(i)
226 ENDDO
227 ELSE
228 DO i=lft,llt
229 temp(ix1(i))=temp0(i)
230 temp(ix2(i))=temp0(i)
231 temp(ix3(i))=temp0(i)
232 temp(ix4(i))=temp0(i)
233 temp(ix5(i))=temp0(i)
234 temp(ix6(i))=temp0(i)
235 ENDDO
236 ENDIF
237 ENDIF
238C-----------
239 RETURN
240 END
function checkvolume_6n(x, ixs)
subroutine s6ccoor3(x, ixs, geo, ngl, mxt, ngeo, rx, ry, rz, sx, sy, sz, tx, ty, tz, r11, r21, r31, r12, r22, r32, r13, r23, r33, f1x, f1y, f1z, f2x, f2y, f2z, temp0, temp, nintemp, ix1, ix2, ix3, ix4, ix5, ix6, x1, x2, x3, x4, x5, x6, y1, y2, y3, y4, y5, y6, z1, z2, z3, z4, z5, z6)
Definition s6ccoor3.F:42
subroutine s6cortho3(x1, x2, x3, x4, x5, x6, y1, y2, y3, y4, y5, y6, z1, z2, z3, z4, z5, z6, rx, ry, rz, sx, sy, sz, tx, ty, tz, e1x, e1y, e1z, e2x, e2y, e2z, e3x, e3y, e3z)
Definition s6cortho3.F:34