OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
rotbmr.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!|| rotbmr ../engine/source/tools/skew/rotbmr.F
25!||--- called by ------------------------------------------------------
26!|| imp_dycrb ../engine/source/implicit/imp_dyna.f
27!|| lag_gjnt ../engine/source/tools/lagmul/lag_gjnt.F
28!|| movfra2 ../engine/source/tools/skew/movfram.F
29!|| movfra_imp ../engine/source/tools/skew/movfram.F
30!|| rgbodfp ../engine/source/constraints/general/rbody/rgbodfp.F
31!|| rmatpon ../engine/source/materials/mat/mat013/rmatpon.F
32!|| srfvit ../engine/source/constraints/general/rbody/srfvit.F
33!||====================================================================
34 SUBROUTINE rotbmr (VR,RBY,DT)
35C-----------------------------------------------
36C I m p l i c i t T y p e s
37C-----------------------------------------------
38#include "implicit_f.inc"
39C-----------------------------------------------
40C D u m m y A r g u m e n t s
41C-----------------------------------------------
42C REAL
44 . dt
45C REAL
47 . vr(3), rby(9)
48C-----------------------------------------------
49C L o c a l V a r i a b l e s
50C-----------------------------------------------
51C REAL
53 . rx, ry, rz, rx2, ry2, rz2, r2, r, c, cm1, s, sz, cz, e11,
54 . e22, e12, e21, e13, e23, bl11, bl21, bl31, bl12, bl22, bl32,
55 . bn
56C-----------------------------------------------
57 rx = dt*vr(1)
58 ry = dt*vr(2)
59 rz = dt*vr(3)
60C
61 rx2 = rx*rx
62 ry2 = ry*ry
63 rz2 = rz*rz
64C
65 r2 = max(em10,rx2+ry2+rz2)
66 r = sqrt(r2)
67C
68 c = cos(r)
69 cm1 = (1-c)
70 c = c*r2
71 s = sin(r)*r
72 sz = rz*s
73 cz = rz*cm1
74C
75 e11 = rx2*cm1 + c
76 e22 = ry2*cm1 + c
77 e12 = rx*ry*cm1
78 e21 = e12 - sz
79 e12 = e12 + sz
80 e13 = rx*cz - ry*s
81 e23 = ry*cz + rx*s
82C
83 bl11 = rby(1)*e11 + rby(4)*e12 + rby(7)*e13
84 bl21 = rby(2)*e11 + rby(5)*e12 + rby(8)*e13
85 bl31 = rby(3)*e11 + rby(6)*e12 + rby(9)*e13
86C
87 bl12 = rby(1)*e21 + rby(4)*e22 + rby(7)*e23
88 bl22 = rby(2)*e21 + rby(5)*e22 + rby(8)*e23
89 bl32 = rby(3)*e21 + rby(6)*e22 + rby(9)*e23
90C
91 bn = sqrt(bl11*bl11+bl21*bl21+bl31*bl31)
92 bl11=bl11/bn
93 bl21=bl21/bn
94 bl31=bl31/bn
95 bn = sqrt(bl12*bl12+bl22*bl22+bl32*bl32)
96 bl12=bl12/bn
97 bl22=bl22/bn
98 bl32=bl32/bn
99C
100 rby(1) = bl11
101 rby(2) = bl21
102 rby(3) = bl31
103C
104 rby(4) = bl12
105 rby(5) = bl22
106 rby(6) = bl32
107C
108 rby(7) = bl21*bl32 - bl31*bl22
109 rby(8) = bl31*bl12 - bl11*bl32
110 rby(9) = bl11*bl22 - bl21*bl12
111C
112C---------------------------
113 RETURN
114 END
#define my_real
Definition cppsort.cpp:32
subroutine imp_dycrb(am, in, vr, nby, rby0, weight, icodr, iskew, skew)
Definition imp_dyna.F:1211
#define max(a, b)
Definition macros.h:21
subroutine rotbmr(vr, rby, dt)
Definition rotbmr.F:35