OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
relfram_m1.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!|| relfram_m1 ../engine/source/tools/skew/relfram_m1.F
25!||--- called by ------------------------------------------------------
26!|| cfield_1 ../engine/source/loads/general/load_centri/cfield.F
27!|| cfield_imp ../engine/source/loads/general/load_centri/cfield_imp.F
28!||====================================================================
29 SUBROUTINE relfram_m1(XG ,VG ,AREL ,XFRAME ,
30 2 VO , AO )
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-----------------------------------------------
38#include "com08_c.inc"
39#include "param_c.inc"
40C-----------------------------------------------
41C D u m m y A r g u m e n t s
42C-----------------------------------------------
43C REAL
45 . xg(3), vg(3), arel(3),
46 . xframe(nxframe), vo(3), ao(3)
47C-----------------------------------------------
48C L o c a l V a r i a b l e s
49C-----------------------------------------------
50 INTEGER N, K
51C REAL
53 . rot(9),rot0(9),rotdt05(9),rott05(9),
54 . omegax, omegay, omegaz, nn, cs, sn, ux, uy, uz,
55 . omegaxx, omegaxy, omegaxz, omegayy, omegayz, omegazz,
56 . o(3), om(3), w(3), dwdt(3), wom(3), ve(3), ae(3), ac(3), om2(3),
57 . dt05, drel(3), vrel(3), ag(3), vrrel(3), arrel(3)
58C-----------------------------------------------
59C S o u r c e L i n e s
60C-----------------------------------------------
61C ACTUAL FRAME POSITION & ORIENTATION WRT GLOBAL SYSTEM
62C-----------------
63C Frame position at time T (O == position of node N1).
64 o(1)=xframe(10)
65 o(2)=xframe(11)
66 o(3)=xframe(12)
67C-----------
68C ANGULAR VELOCITY at time T-1/2 and acceleration at time T.
69C-----------
70 w(1)=xframe(13)
71 w(2)=xframe(14)
72 w(3)=xframe(15)
73C-----------
74C local coordinates.
75C-----------
76 om(1)=xg(1)-o(1)
77 om(2)=xg(2)-o(2)
78 om(3)=xg(3)-o(3)
79C-----------
80C vitesse d'entrainement (T-1/2).
81C-----------
82 dt05=0.5*dt1
83 om2(1)=om(1)-dt05*(vg(1)-vo(1))
84 om2(2)=om(2)-dt05*(vg(2)-vo(2))
85 om2(3)=om(3)-dt05*(vg(3)-vo(3))
86 wom(1)=w(2)*om2(3)-w(3)*om2(2)
87 wom(2)=w(3)*om2(1)-w(1)*om2(3)
88 wom(3)=w(1)*om2(2)-w(2)*om2(1)
89 ve(1)=vo(1)+wom(1)
90 ve(2)=vo(2)+wom(2)
91 ve(3)=vo(3)+wom(3)
92C-----------
93C relative velocity in global frame at time T-1/2.
94C-----------
95 vrel(1)=vg(1)-ve(1)
96 vrel(2)=vg(2)-ve(2)
97 vrel(3)=vg(3)-ve(3)
98C-----------
99C RELATIVE ACCELERATIONS.
100C-----------
101 dwdt(1)=xframe(16)
102 dwdt(2)=xframe(17)
103 dwdt(3)=xframe(18)
104C second order correction.
105C W(1)=W(1)+DWDT(1)*DT05
106C W(2)=W(2)+DWDT(2)*DT05
107C W(3)=W(3)+DWDT(3)*DT05
108C-----------
109C acceleration d'entrainement.
110C-----------
111 wom(1)=w(2)*om(3)-w(3)*om(2)
112 wom(2)=w(3)*om(1)-w(1)*om(3)
113 wom(3)=w(1)*om(2)-w(2)*om(1)
114 ae(1)=ao(1)+dwdt(2)*om(3)-dwdt(3)*om(2)
115 . +w(2)*wom(3)-w(3)*wom(2)
116 ae(2)=ao(2)+dwdt(3)*om(1)-dwdt(1)*om(3)
117 . +w(3)*wom(1)-w(1)*wom(3)
118 ae(3)=ao(3)+dwdt(1)*om(2)-dwdt(2)*om(1)
119 . +w(1)*wom(2)-w(2)*wom(1)
120C-----------
121C acceleration de Coriolis.
122C-----------
123C second order correction.
124C vitesse d'entrainement (T).
125C VE(1)=VO(1)+WOM(1)
126C VE(2)=VO(2)+WOM(2)
127C VE(3)=VO(3)+WOM(3)
128C relative velocity in global frame at time T.
129C VREL(1)=VG(1)-VE(1)
130C VREL(2)=VG(2)-VE(2)
131C VREL(3)=VG(3)-VE(3)
132 ac(1)=2.*(w(2)*vrel(3)-w(3)*vrel(2))
133 ac(2)=2.*(w(3)*vrel(1)-w(1)*vrel(3))
134 ac(3)=2.*(w(1)*vrel(2)-w(2)*vrel(1))
135C-----------
136C relative acceleration in global frame at time T.
137C-----------
138 arel(1)=arel(1)+ae(1)+ac(1)
139 arel(2)=arel(2)+ae(2)+ac(2)
140 arel(3)=arel(3)+ae(3)+ac(3)
141C-----------------------------------------------
142 999 CONTINUE
143 RETURN
144 END
#define my_real
Definition cppsort.cpp:32
subroutine relfram_m1(xg, vg, arel, xframe, vo, ao)
Definition relfram_m1.F:31