OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
scoor431.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!|| scoor431 ../engine/source/elements/solid/sconnect/scoor431.F
25!||--- called by ------------------------------------------------------
26!|| srota6 ../engine/source/output/anim/generate/srota6.F
27!|| thsol ../engine/source/output/th/thsol.f
28!||====================================================================
29 SUBROUTINE scoor431(
30 . X1, X2, X3, X4, X5, X6, X7, X8,
31 . Y1, Y2, Y3, Y4, Y5, Y6, Y7, Y8,
32 . Z1, Z2, Z3, Z4, Z5, Z6, Z7, Z8,
33 . E1X, E2X, E3X, E1Y, E2Y, E3Y, E1Z, E2Z, E3Z )
34C-----------------------------------------------
35C I m p l i c i t T y p e s
36C-----------------------------------------------
37#include "implicit_f.inc"
38C-----------------------------------------------
39C D u m m y A r g u m e n t s
40C-----------------------------------------------
41C REAL
43 . x1, x2, x3, x4, x5, x6, x7, x8,
44 . y1, y2, y3, y4, y5, y6, y7, y8,
45 . z1, z2, z3, z4, z5, z6, z7, z8,
46 . e1x, e1y, e1z, e2x, e2y, e2z, e3x, e3y, e3z
47C-----------------------------------------------
48C L o c a l V a r i a b l e s
49C-----------------------------------------------
51 . p1x,p2x,p3x, p4x,p1y,p2y,p3y,p4y,p1z,p2z,p3z, p4z,
52 . rx,ry,rz,sx,sy,sz, cc,c1,c2
53C-----------------------------------------------
54 p1x = x1+x5
55 p1y = y1+y5
56 p1z = z1+z5
57 p2x = x2+x6
58 p2y = y2+y6
59 p2z = z2+z6
60 p3x = x3+x7
61 p3y = y3+y7
62 p3z = z3+z7
63 p4x = x4+x8
64 p4y = y4+y8
65 p4z = z4+z8
66C
67 rx = p2x + p3x - p1x - p4x
68 ry = p2y + p3y - p1y - p4y
69 rz = p2z + p3z - p1z - p4z
70 sx = p3x + p4x - p1x - p2x
71 sy = p3y + p4y - p1y - p2y
72 sz = p3z + p4z - p1z - p2z
73C
74 e3x = ry * sz - rz * sy
75 e3y = rz * sx - rx * sz
76 e3z = rx * sy - ry * sx
77 cc = one / max(em20,sqrt(e3x*e3x + e3y*e3y + e3z*e3z))
78 e3x = e3x * cc
79 e3y = e3y * cc
80 e3z = e3z * cc
81C
82 c1 = rx*rx + ry*ry + rz*rz
83 c2 = sx*sx + sy*sy + sz*sz
84 IF (c1 /= zero) THEN
85 cc = sqrt(c2/c1)
86 e1x = rx*cc+(sy*e3z-sz*e3y)
87 e1y = ry*cc+(sz*e3x-sx*e3z)
88 e1z = rz*cc+(sx*e3y-sy*e3x)
89 ELSEIF (c2 /= zero) THEN
90 cc = sqrt(c1/c2)
91 e1x = rx+(sy*e3z-sz*e3y)*cc
92 e1y = ry+(sz*e3x-sx*e3z)*cc
93 e1z = rz+(sx*e3y-sy*e3x)*cc
94 END IF
95C
96 cc = sqrt(e1x*e1x + e1y*e1y + e1z*e1z)
97 IF (cc /= zero) cc = one / cc
98 e1x = e1x*cc
99 e1y = e1y*cc
100 e1z = e1z*cc
101 e2x = e3y * e1z - e3z * e1y
102 e2y = e3z * e1x - e3x * e1z
103 e2z = e3x * e1y - e3y * e1x
104C-----------
105 RETURN
106 END
#define my_real
Definition cppsort.cpp:32
#define max(a, b)
Definition macros.h:21
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 thsol(elbuf_tab, nthgrp2, ithgrp, iparg, ithbuf, wa, ixs, x, ipm, pm, igeo, multi_fvm, v, w, itherm, numels, nummat, numgeo, numnod, sithbuf)
Definition thsol.F:44