OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
rcum33p.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!|| rcum33p ../engine/source/elements/joint/rcum33p.F
25!||--- called by ------------------------------------------------------
26!|| rgjoint ../engine/source/elements/joint/rgjoint.F
27!||====================================================================
28 SUBROUTINE rcum33p(
29 1 JFT, JLT, XL, FSKY,
30 2 FSKYV, FORX, FORY, FORZ,
31 3 XMOM, YMOM, ZMOM, STI,
32 4 STIR, FX1, FX2, FY1,
33 5 FY2, FZ1, FZ2, MX1,
34 6 MX2, MY1, MY2, MZ1,
35 7 MZ2, IADR, NUVAR, UVAR,
36 8 NFT)
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 "parit_c.inc"
49C-----------------------------------------------
50C D u m m y A r g u m e n t s
51C-----------------------------------------------
52 INTEGER, INTENT(IN) :: NFT
53 INTEGER JFT,JLT,IADR(3,*),NUVAR
54 my_real FORX(*), FORY(*), FORZ(*), XMOM(*), YMOM(*), ZMOM(*),
55 . STI(3,*),STIR(3,*),FSKY(8,LSKY),FSKYV(LSKY,8),
56 . FX1(*),FX2(*),FY1(*),FY2(*),FZ1(*),FZ2(*),
57 . MX1(*),MX2(*),MY1(*),MY2(*),MZ1(*),MZ2(*),UVAR(NUVAR,*)
58 DOUBLE PRECISION XL(MVSIZ,3)
59C-----------------------------------------------
60C L o c a l V a r i a b l e s
61C-----------------------------------------------
62 INTEGER I, II, N,J
63 my_real F11(MVSIZ), F21(MVSIZ), F31(MVSIZ),
64 . M11(MVSIZ), M21(MVSIZ), M31(MVSIZ),
65 . M12(MVSIZ), M22(MVSIZ), M32(MVSIZ),
66 . xmom1, xmom2, ymom1, ymom2, zmom1, zmom2, m1,m2,m3,
67 . ex(9), xx
68C=======================================================================
69C-------------------------
70C FORCES
71C-------------------------
72C
73 DO i=jft,jlt
74 DO j=1,9
75 ex(j) = uvar(21+j,i)
76 END DO
77 f11(i)=ex(1)*forx(i)+ex(4)*fory(i)+ex(7)*forz(i)
78 f21(i)=ex(2)*forx(i)+ex(5)*fory(i)+ex(8)*forz(i)
79 f31(i)=ex(3)*forx(i)+ex(6)*fory(i)+ex(9)*forz(i)
80 ENDDO
81C
82C---- Assembly
83C
84 IF(ivector==1) THEN
85#include "vectorize.inc"
86 DO i=jft,jlt
87 ii = i+nft
88 n = iadr(1,ii)
89 fskyv(n,1)=f11(i)
90 fskyv(n,2)=f21(i)
91 fskyv(n,3)=f31(i)
92 fx1(i) = -f11(i)
93 fy1(i) = -f21(i)
94 fz1(i) = -f31(i)
95 fskyv(n,7)=sti(1,i)*two
96 n = iadr(2,ii)
97 fskyv(n,1)=-f11(i)
98 fskyv(n,2)=-f21(i)
99 fskyv(n,3)=-f31(i)
100 fx2(i) = f11(i)
101 fy2(i) = f21(i)
102 fz2(i) = f31(i)
103 fskyv(n,7)=sti(2,i)*two
104 ENDDO
105 ELSE
106 DO i=jft,jlt
107 ii = i+nft
108 n = iadr(1,ii)
109 fsky(1,n)=f11(i)
110 fsky(2,n)=f21(i)
111 fsky(3,n)=f31(i)
112 fx1(i) = -f11(i)
113 fy1(i) = -f21(i)
114 fz1(i) = -f31(i)
115 fsky(7,n)=sti(1,i)*two
116 n = iadr(2,ii)
117 fsky(1,n)=-f11(i)
118 fsky(2,n)=-f21(i)
119 fsky(3,n)=-f31(i)
120 fx2(i) = f11(i)
121 fy2(i) = f21(i)
122 fz2(i) = f31(i)
123 fsky(7,n)=sti(2,i)*two
124 ENDDO
125 ENDIF
126C
127C-------------------------
128C momentum
129C-------------------------
130C
131 DO i=jft,jlt
132 DO j=1,9
133 ex(j) = uvar(21+j,i)
134 END DO
135C
136 m1 = half*(xl(i,2)*forz(i)-xl(i,3)*fory(i))
137 m2 = half*(xl(i,3)*forx(i)-xl(i,1)*forz(i))
138 m3 = half*(xl(i,1)*fory(i)-xl(i,2)*forx(i))
139C
140 xmom1 = xmom(i) + m1
141 ymom1 = ymom(i) + m2
142 zmom1 = zmom(i) + m3
143 m11(i)=ex(1)*xmom1+ex(4)*ymom1+ex(7)*zmom1
144 m21(i)=ex(2)*xmom1+ex(5)*ymom1+ex(8)*zmom1
145 m31(i)=ex(3)*xmom1+ex(6)*ymom1+ex(9)*zmom1
146C
147 xmom2 = xmom(i) - m1
148 ymom2 = ymom(i) - m2
149 zmom2 = zmom(i) - m3
150 m12(i)=ex(1)*xmom2+ex(4)*ymom2+ex(7)*zmom2
151 m22(i)=ex(2)*xmom2+ex(5)*ymom2+ex(8)*zmom2
152 m32(i)=ex(3)*xmom2+ex(6)*ymom2+ex(9)*zmom2
153C
154 xx = xl(i,1)*xl(i,1) + xl(i,2)*xl(i,2) + xl(i,3)*xl(i,3)
155 stir(1,i) = stir(1,i) + sti(2,i)*xx
156 stir(2,i) = stir(2,i) + sti(1,i)*xx
157 ENDDO
158C
159C---- Assemble
160C
161 IF(ivector==1) THEN
162#include "vectorize.inc"
163 DO i=jft,jlt
164 ii = i+nft
165 n = iadr(1,ii)
166 fskyv(n,4)=m11(i)
167 fskyv(n,5)=m21(i)
168 fskyv(n,6)=m31(i)
169 mx1(i) = -m11(i)
170 my1(i) = -m21(i)
171 mz1(i) = -m31(i)
172 fskyv(n,8)=stir(1,i)
173 n = iadr(2,ii)
174 fskyv(n,4)=-m12(i)
175 fskyv(n,5)=-m22(i)
176 fskyv(n,6)=-m32(i)
177 mx2(i) = m12(i)
178 my2(i) = m22(i)
179 mz2(i) = m32(i)
180 fskyv(n,8)=stir(2,i)
181 ENDDO
182 ELSE
183 DO i=jft,jlt
184 ii = i+nft
185 n = iadr(1,ii)
186 fsky(4,n)=m11(i)
187 fsky(5,n)=m21(i)
188 fsky(6,n)=m31(i)
189 mx1(i) = -m11(i)
190 my1(i) = -m21(i)
191 mz1(i) = -m31(i)
192 fsky(8,n)=stir(1,i)
193 n = iadr(2,ii)
194 fsky(4,n)=-m12(i)
195 fsky(5,n)=-m22(i)
196 fsky(6,n)=-m32(i)
197 mx2(i) = m12(i)
198 my2(i) = m22(i)
199 mz2(i) = m32(i)
200 fsky(8,n)=stir(2,i)
201 ENDDO
202 ENDIF
203C-----------------------------------------------
204 RETURN
205 END
subroutine rcum33p(jft, jlt, xl, fsky, fskyv, forx, fory, forz, xmom, ymom, zmom, sti, stir, fx1, fx2, fy1, fy2, fz1, fz2, mx1, mx2, my1, my2, mz1, mz2, iadr, nuvar, uvar, nft)
Definition rcum33p.F:37