OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
pevec3.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!|| pevec3 ../engine/source/elements/beam/pevec3.F
25!||--- called by ------------------------------------------------------
26!|| pforc3 ../engine/source/elements/beam/pforc3.F
27!||====================================================================
28 SUBROUTINE pevec3(
29 1 RLOC, R, AL, NC1,
30 2 NC2, NC3, X1, X2,
31 3 X3, Y1, Y2, Y3,
32 4 Z1, Z2, Z3, RX1G,
33 5 RX2G, RY1G, RY2G, RZ1G,
34 6 RZ2G, E1X, E1Y, E1Z,
35 7 E2X, E2Y, E2Z, E3X,
36 8 E3Y, E3Z, NEL)
37C-----------------------------------------------
38C I m p l i c i t T y p e s
39C-----------------------------------------------
40#include "implicit_f.inc"
41C-----------------------------------------------
42C G l o b a l P a r a m e t e r s
43C-----------------------------------------------
44#include "mvsiz_p.inc"
45C-----------------------------------------------
46C C o m m o n B l o c k s
47C-----------------------------------------------
48#include "com08_c.inc"
49C-----------------------------------------------
50C D u m m y A r g u m e n t s
51C-----------------------------------------------
52 INTEGER, INTENT(IN) :: NEL
53 INTEGER NC1(MVSIZ), NC2(MVSIZ), NC3(MVSIZ)
54 my_real
55 . RLOC(3,*),R(3,*),AL(*),X1(MVSIZ),X2(MVSIZ),X3(MVSIZ),
56 . Y1(MVSIZ),Y2(MVSIZ),Y3(MVSIZ),Z1(MVSIZ),Z2(MVSIZ),
57 . Z3(MVSIZ),RX1G(MVSIZ),RX2G(MVSIZ),RY1G(MVSIZ),RY2G(MVSIZ),
58 . RZ1G(MVSIZ),RZ2G(MVSIZ),RX1(MVSIZ),RX2(MVSIZ),RY1(MVSIZ),RY2(MVSIZ),
59 . RZ1(MVSIZ),RZ2(MVSIZ),E1X(MVSIZ),E1Y(MVSIZ),E1Z(MVSIZ),E2X(MVSIZ),
60 . e2y(mvsiz),e2z(mvsiz),e3x(mvsiz),e3y(mvsiz),e3z(mvsiz)
61C-----------------------------------------------
62C L o c a l V a r i a b l e s
63C-----------------------------------------------
64 INTEGER I, J
65 my_real
66 . SUM(MVSIZ),
67 . THETA, SUM2(MVSIZ), SUM3(MVSIZ), COST(MVSIZ),
68 . SINT(MVSIZ), R1PHI, R2PHI, THETAPHI, SUM2PHI, SUM3PHI, COPHI,
69 . SIPHI, SINPHI, COSPHI, SUMPHI
70C--------------------------------------------
71 DO I=1,nel
72 rx1g(i)=r(1,nc1(i))
73 ry1g(i)=r(2,nc1(i))
74 rz1g(i)=r(3,nc1(i))
75 rx2g(i)=r(1,nc2(i))
76 ry2g(i)=r(2,nc2(i))
77 rz2g(i)=r(3,nc2(i))
78 ENDDO
79C
80 DO i=1,nel
81 e2x(i)=rloc(1,i)
82 e2y(i)=rloc(2,i)
83 e2z(i)=rloc(3,i)
84 ENDDO
85C
86 DO i=1,nel
87 e1x(i)=x2(i)-x1(i)
88 e1y(i)=y2(i)-y1(i)
89 e1z(i)=z2(i)-z1(i)
90 ENDDO
91C
92 DO i=1,nel
93 al(i)=sqrt(e1x(i)**2+e1y(i)**2+e1z(i)**2)
94 ENDDO
95C
96 DO i=1,nel
97 e1x(i)=e1x(i)/al(i)
98 e1y(i)=e1y(i)/al(i)
99 e1z(i)=e1z(i)/al(i)
100 ENDDO
101C
102 DO i=1,nel
103 e3x(i)=e1y(i)*e2z(i)-e1z(i)*e2y(i)
104 e3y(i)=e1z(i)*e2x(i)-e1x(i)*e2z(i)
105 e3z(i)=e1x(i)*e2y(i)-e1y(i)*e2x(i)
106 ENDDO
107C
108 DO i=1,nel
109 e2x(i)=e3y(i)*e1z(i)-e3z(i)*e1y(i)
110 e2y(i)=e3z(i)*e1x(i)-e3x(i)*e1z(i)
111 e2z(i)=e3x(i)*e1y(i)-e3y(i)*e1x(i)
112 ENDDO
113C--------------------------------------------
114C TORSION MOYENNE EN COORDONNEES GLOBALES
115C--------------------------------------------
116 DO i=1,nel
117 rx1(i)=e1x(i)*rx1g(i)+e1y(i)*ry1g(i)+e1z(i)*rz1g(i)
118 rx2(i)=e1x(i)*rx2g(i)+e1y(i)*ry2g(i)+e1z(i)*rz2g(i)
119 theta=(rx1(i)+rx2(i))/two*dt1
120 sum2(i)=sqrt(e2x(i)**2+e2y(i)**2+e2z(i)**2)
121 sum3(i)=sqrt(e3x(i)**2+e3y(i)**2+e3z(i)**2)
122 cost(i)=cos(theta)/sum2(i)
123 sint(i) =sin(theta)/sum3(i)
124 ENDDO
125C
126C ... it is modified.
127C
128 DO i=1,nel
129 e2x(i)=e2x(i)*cost(i)+e3x(i)*sint(i)
130 e2y(i)=e2y(i)*cost(i)+e3y(i)*sint(i)
131 e2z(i)=e2z(i)*cost(i)+e3z(i)*sint(i)
132 ENDDO
133C
134 DO i=1,nel
135 sum(i)=sqrt(e2x(i)**2+e2y(i)**2+e2z(i)**2)
136 ENDDO
137C
138 DO i=1,nel
139 e2x(i)=e2x(i)/sum(i)
140 e2y(i)=e2y(i)/sum(i)
141 e2z(i)=e2z(i)/sum(i)
142 ENDDO
143C
144 DO i=1,nel
145 e3x(i)=e1y(i)*e2z(i)-e1z(i)*e2y(i)
146 e3y(i)=e1z(i)*e2x(i)-e1x(i)*e2z(i)
147 e3z(i)=e1x(i)*e2y(i)-e1y(i)*e2x(i)
148 ENDDO
149C
150 DO i=1,nel
151 sum(i)=sqrt(e3x(i)**2+e3y(i)**2+e3z(i)**2)
152 e3x(i)=e3x(i)/sum(i)
153 e3y(i)=e3y(i)/sum(i)
154 e3z(i)=e3z(i)/sum(i)
155 ENDDO
156C
157 DO i=1,nel
158 rloc(1,i)=e2x(i)
159 rloc(2,i)=e2y(i)
160 rloc(3,i)=e2z(i)
161 ENDDO
162C--------------------------------------------
163 RETURN
164 END
subroutine pevec3(rloc, r, al, nc1, nc2, nc3, x1, x2, x3, y1, y2, y3, z1, z2, z3, rx1g, rx2g, ry1g, ry2g, rz1g, rz2g, e1x, e1y, e1z, e2x, e2y, e2z, e3x, e3y, e3z, nel)
Definition pevec3.F:37