OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
rmatacce.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!|| rmatacce ../engine/source/materials/mat/mat013/rmatacce.F
25!||--- called by ------------------------------------------------------
26!|| resol ../engine/source/engine/resol.F
27!||====================================================================
28 SUBROUTINE rmatacce(RBYM ,ARBYM ,ARRBYM ,VRBYM,VRRBYM,
29 2 IRBYM,LNRBYM,X ,A ,AR ,
30 3 V ,VR ,KIND )
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 "com04_c.inc"
39#include "com08_c.inc"
40C-----------------------------------------------
41C D u m m y A r g u m e n t s
42C-----------------------------------------------
43 INTEGER IRBYM(NIRBYM,*),LNRBYM(*), KIND(*)
44C REAL
46 . x(3,*), a(3,*), ar(3,*), vr(3,*),v(3,*),
47 . vrrbym(3,*), arbym(3,*),arrbym(3,*),vrbym(3,*),
48 . rbym(nfrbym,*)
49C-----------------------------------------------
50C L o c a l V a r i a b l e s
51C-----------------------------------------------
52 INTEGER I, J, N, M, NSL, NSLT
53C REAL
54 my_real rx, ry, rz, msx, msy, msz, fsx, fsy, fsz,
55 . xg,yg,zg,usdt,v1x2,v2x1,v2x3,v3x2,v3x1,v1x3,
56 . vx2,vx1,vx3,vg(3)
57
58C======================================================================|
59 usdt = one /dt12
60
61!$OMP DO
62
63 DO m=1,nrbym
64C
65 nsl = irbym(2,m)
66 xg = rbym(2,m)
67 yg = rbym(3,m)
68 zg = rbym(4,m)
69C
70 nslt= kind(m)-1
71C
72 vg(1) = vrrbym(1,m) + arrbym(1,m)*dt12
73 vg(2) = vrrbym(2,m) + arrbym(2,m)*dt12
74 vg(3) = vrrbym(3,m) + arrbym(3,m)*dt12
75 DO i=1,nsl
76 n = lnrbym(nslt + i)
77C
78 rx = x(1,n) - xg
79 ry = x(2,n) - yg
80 rz = x(3,n) - zg
81C
82 ar(1,n) = (vg(1) - vr(1,n)) * usdt
83 ar(2,n) = (vg(2) - vr(2,n)) * usdt
84 ar(3,n) = (vg(3) - vr(3,n)) * usdt
85C
86 v1x2 = vg(1)*ry
87 v2x1 = vg(2)*rx
88 v2x3 = vg(2)*rz
89 v3x2 = vg(3)*ry
90 v3x1 = vg(3)*rx
91 v1x3 = vg(1)*rz
92C
93 vx1 = v2x3 - v3x2
94 vx2 = v3x1 - v1x3
95 vx3 = v1x2 - v2x1
96C
97 a(1,n)= arbym(1,m) + usdt*(
98 . vrbym(1,m) + vx1+half*dt2*(vg(2)*vx3-vg(3)*vx2)-v(1,n) )
99 a(2,n)= arbym(2,m) + usdt*(
100 . vrbym(2,m) + vx2+half*dt2*(vg(3)*vx1-vg(1)*vx3)-v(2,n))
101 a(3,n)= arbym(3,m) + usdt*(
102 . vrbym(3,m)+vx3+half*dt2*(vg(1)*vx2-vg(2)*vx1)-v(3,n))
103C compute rotational velocity
104C
105 ENDDO
106
107 vrbym(1,m) = vrbym(1,m) + arbym(1,m)*dt12
108 vrbym(2,m) = vrbym(2,m) + arbym(2,m)*dt12
109 vrbym(3,m) = vrbym(3,m) + arbym(3,m)*dt12
110C
111 vrrbym(1,m) = vg(1)
112 vrrbym(2,m) = vg(2)
113 vrrbym(3,m) = vg(3)
114 ENDDO
115
116!$OMP END DO
117
118C---
119 RETURN
120 END
#define my_real
Definition cppsort.cpp:32
subroutine rmatacce(rbym, arbym, arrbym, vrbym, vrrbym, irbym, lnrbym, x, a, ar, v, vr, kind)
Definition rmatacce.F:31