OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
r2cum3p.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!|| r2cum3p ../engine/source/elements/spring/r2cum3p.F
25!||--- called by ------------------------------------------------------
26!|| r23law108 ../engine/source/elements/spring/r23law108.f
27!|| rforc3 ../engine/source/elements/spring/rforc3.F
28!||====================================================================
29 SUBROUTINE r2cum3p(
30 1 FORX, FORY, FORZ, XMOM,
31 2 YMOM, ZMOM, STI, STIR,
32 3 FSKY, FSKYV, IADR, FX1,
33 4 FX2, FY1, FY2, FZ1,
34 5 FZ2, MX1, MX2, MY1,
35 6 MY2, MZ1, MZ2, GEO,
36 7 X1, Y1, Z1, X2,
37 8 Y2, Z2, IEQUIL, EXX,
38 9 EYX, EZX, EXY, EYY,
39 A EZY, EXZ, EYZ, EZZ,
40 B NEL, NFT)
41C-----------------------------------------------
42C I m p l i c i t T y p e s
43C-----------------------------------------------
44#include "implicit_f.inc"
45#include "comlock.inc"
46C-----------------------------------------------
47C G l o b a l P a r a m e t e r s
48C-----------------------------------------------
49#include "mvsiz_p.inc"
50C-----------------------------------------------
51C C o m m o n B l o c k s
52C-----------------------------------------------
53#include "parit_c.inc"
54#include "param_c.inc"
55C-----------------------------------------------
56C D u m m y A r g u m e n t s
57C-----------------------------------------------
58 INTEGER, INTENT(IN) :: NEL
59 INTEGER, INTENT(IN) :: NFT
60C REAL
61 my_real
62 . FORX(*), FORY(*), FORZ(*), XMOM(*), YMOM(*),
63 . ZMOM(*),STI(3,*),STIR(3,*),FSKYV(LSKY,8), FSKY(8,LSKY),
64 . FX1(MVSIZ),FY1(MVSIZ),FZ1(MVSIZ),
65 . FX2(MVSIZ),FY2(MVSIZ),FZ2(MVSIZ),
66 . MX1(MVSIZ),MY1(MVSIZ),MZ1(MVSIZ),
67 . MX2(MVSIZ),MY2(MVSIZ),MZ2(MVSIZ),
68 . GEO(NPROPG,*),X1(*),X2(*),Y1(*),Y2(*),
69 . z1(*),z2(*),
70 . exx(mvsiz), eyx(mvsiz), ezx(mvsiz), exy(mvsiz),
71 . eyy(mvsiz), ezy(mvsiz), exz(mvsiz), eyz(mvsiz), ezz(mvsiz)
72 INTEGER IADR(3,*),IEQUIL(*)
73C-----------------------------------------------
74C L o c a l V a r i a b l e s
75C-----------------------------------------------
76 INTEGER I, II, N, J
77C REAL
78 my_real
79 . MMX, MMY, MMZ, XX
80C-----------------------------------------------
81C-------------------------
82C FORCES
83C-------------------------
84 DO i=1,nel
85 fx2(i)=exx(i)*forx(i)+exy(i)*fory(i)+exz(i)*forz(i)
86 fy2(i)=eyx(i)*forx(i)+eyy(i)*fory(i)+eyz(i)*forz(i)
87 fz2(i)=ezx(i)*forx(i)+ezy(i)*fory(i)+ezz(i)*forz(i)
88 fx1(i) = -fx2(i)
89 fy1(i) = -fy2(i)
90 fz1(i) = -fz2(i)
91 ENDDO
92C-------------------------
93C ASSEMBLE
94C-------------------------
95 IF (ivector == 1) THEN
96#include "vectorize.inc"
97 DO i=1,nel
98 ii = i+nft
99 n = iadr(1,ii)
100 fskyv(n,1)=-fx1(i)
101 fskyv(n,2)=-fy1(i)
102 fskyv(n,3)=-fz1(i)
103 fskyv(n,7)=sti(1,i)
104 n = iadr(2,ii)
105 fskyv(n,1)=-fx2(i)
106 fskyv(n,2)=-fy2(i)
107 fskyv(n,3)=-fz2(i)
108 fskyv(n,7)=sti(2,i)
109 ENDDO
110 ELSE
111 DO i=1,nel
112 ii = i+nft
113 n = iadr(1,ii)
114 fsky(1,n)=-fx1(i)
115 fsky(2,n)=-fy1(i)
116 fsky(3,n)=-fz1(i)
117 fsky(7,n)=sti(1,i)
118 n = iadr(2,ii)
119 fsky(1,n)=-fx2(i)
120 fsky(2,n)=-fy2(i)
121 fsky(3,n)=-fz2(i)
122 fsky(7,n)=sti(2,i)
123 ENDDO
124 ENDIF
125C-------------------------
126C MOMENTS
127C-------------------------
128 DO i=1,nel
129 mx2(i)=exx(i)*xmom(i)+exy(i)*ymom(i)+exz(i)*zmom(i)
130 my2(i)=eyx(i)*xmom(i)+eyy(i)*ymom(i)+eyz(i)*zmom(i)
131 mz2(i)=ezx(i)*xmom(i)+ezy(i)*ymom(i)+ezz(i)*zmom(i)
132 mx1(i) = -mx2(i)
133 my1(i) = -my2(i)
134 mz1(i) = -mz2(i)
135 ENDDO
136C
137 DO i=1,nel
138 IF (iequil(i) == 1) THEN
139 mmx = half*((y2(i)-y1(i))*fz2(i) - (z2(i)-z1(i))*fy2(i))
140 mmy = half*((z2(i)-z1(i))*fx2(i) - (x2(i)-x1(i))*fz2(i))
141 mmz = half*((x2(i)-x1(i))*fy2(i) - (y2(i)-y1(i))*fx2(i))
142 mx1(i) = mx1(i) - mmx
143 my1(i) = my1(i) - mmy
144 mz1(i) = mz1(i) - mmz
145 mx2(i) = mx2(i) - mmx
146 my2(i) = my2(i) - mmy
147 mz2(i) = mz2(i) - mmz
148 xx = (x2(i)-x1(i))*(x2(i)-x1(i))
149 . + (y2(i)-y1(i))*(y2(i)-y1(i))
150 . + (z2(i)-z1(i))*(z2(i)-z1(i))
151 stir(1,i) = stir(1,i) + sti(2,i)*xx
152 stir(2,i) = stir(2,i) + sti(1,i)*xx
153 ENDIF
154 ENDDO
155C-------------------------
156C ASSEMBLE
157C-------------------------
158 IF (ivector == 1) THEN
159#include "vectorize.inc"
160 DO i=1,nel
161 ii = i+nft
162 n = iadr(1,ii)
163 fskyv(n,4)=-mx1(i)
164 fskyv(n,5)=-my1(i)
165 fskyv(n,6)=-mz1(i)
166 fskyv(n,8)=stir(1,i)
167 n = iadr(2,ii)
168 fskyv(n,4)=-mx2(i)
169 fskyv(n,5)=-my2(i)
170 fskyv(n,6)=-mz2(i)
171 fskyv(n,8)=stir(2,i)
172 ENDDO
173 ELSE
174 DO i=1,nel
175 ii = i+nft
176 n = iadr(1,ii)
177 fsky(4,n)=-mx1(i)
178 fsky(5,n)=-my1(i)
179 fsky(6,n)=-mz1(i)
180 fsky(8,n)=stir(1,i)
181 n = iadr(2,ii)
182 fsky(4,n)=-mx2(i)
183 fsky(5,n)=-my2(i)
184 fsky(6,n)=-mz2(i)
185 fsky(8,n)=stir(2,i)
186 ENDDO
187 ENDIF
188C---
189 RETURN
190 END
subroutine r23law108(python, elbuf_str, jft, jlt, nel, mtn, igeo, geo, ipm, ixr, x, table, xdp, f, npf, tf, skew, flg_kj2, vr, ar, v, dt2t, neltst, ityptst, stifn, stifr, ms, in, fsky, iadr, nsensor, sensor_tab, offset, anim, partsav, ipartr, tani, bufmat, bufgeo, pm, rby, fx1, fx2, fy1, fy2, fz1, fz2, mx1, mx2, my1, my2, mz1, mz2, gresav, grth, igrth, msrt, dmelrt, h3d_data, jsms, igre, nft, stf, sanin, iresp, snpc)
Definition r23law108.F:61
subroutine r2cum3p(forx, fory, forz, xmom, ymom, zmom, sti, stir, fsky, fskyv, iadr, fx1, fx2, fy1, fy2, fz1, fz2, mx1, mx2, my1, my2, mz1, mz2, geo, x1, y1, z1, x2, y2, z2, iequil, exx, eyx, ezx, exy, eyy, ezy, exz, eyz, ezz, nel, nft)
Definition r2cum3p.F:41