OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
rmass.F File Reference
#include "implicit_f.inc"
#include "com01_c.inc"
#include "param_c.inc"
#include "vect01_c.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine rmass (ixr, geo, ms, xin, partsav, x, v, ipart, xl, msr, inr, msrt, ems)
subroutine r23mass (ixr, geo, ms, xin, partsav, x, v, ipart, xl, msr, inr, msrt, ems, mass, uiner, mtyp)

Function/Subroutine Documentation

◆ r23mass()

subroutine r23mass ( integer, dimension(nixr,*) ixr,
geo,
ms,
xin,
partsav,
x,
v,
integer, dimension(*) ipart,
xl,
msr,
inr,
msrt,
ems,
mass,
uiner,
integer mtyp )

Definition at line 119 of file rmass.F.

122C----------------------------------------------
123C INITIALISATION DES MASSES NODALES
124C----------------------------------------------
125C-----------------------------------------------
126C I m p l i c i t T y p e s
127C-----------------------------------------------
128#include "implicit_f.inc"
129C-----------------------------------------------
130C C o m m o n B l o c k s
131C-----------------------------------------------
132#include "com01_c.inc"
133#include "param_c.inc"
134#include "vect01_c.inc"
135C-----------------------------------------------
136C D u m m y A r g u m e n t s
137C-----------------------------------------------
138 INTEGER IXR(NIXR,*),IPART(*),MTYP
139 my_real
140 . geo(npropg,*), ms(*), xin(*),x(3,*),v(3,*),partsav(20,*),
141 . xl(*),msr(3,*),inr(3,*), msrt(*),ems(*),mass(*),uiner(*)
142C-----------------------------------------------
143C L o c a l V a r i a b l e s
144C-----------------------------------------------
145 INTEGER I, IP,I1,I2,ILENG
146 my_real :: xx,yy,zz,xy,yz,zx
147 my_real :: xi
148C---------------------------------------------------------------------
149C----------------------------------------------
150C MASSE ELEMENT /2
151C----------------------------------------------
152 DO i=lft,llt
153 ems(i)=half*mass(i)
154 ENDDO
155C
156 IF(irest_mselt/=0)THEN
157 DO i=lft,llt
158 msrt(i)=two*ems(i)
159 ENDDO
160 END IF
161C----------------------------------------------
162C INITIALISATION DES MASSES NODALES
163C----------------------------------------------
164
165 DO i=lft,llt
166 i1 = ixr(2,i+nft)
167 i2 = ixr(3,i+nft)
168C
169 IF (mtyp == 114) THEN
170 xi=half*uiner(i)
171 ELSE
172 xi=half*geo(2,ixr(1,i+nft))
173 ENDIF
174C
175 msr(1,i)=ems(i)
176 msr(2,i)=ems(i)
177 msr(3,i)=ems(i)
178 inr(1,i)=xi
179 inr(2,i)=xi
180 inr(3,i)=xi
181
182 ip=ipart(i)
183 partsav(1,ip)=partsav(1,ip) + two*ems(i)
184 partsav(2,ip)=partsav(2,ip) + ems(i)*(x(1,i1)+x(1,i2))
185 partsav(3,ip)=partsav(3,ip) + ems(i)*(x(2,i1)+x(2,i2))
186 partsav(4,ip)=partsav(4,ip) + ems(i)*(x(3,i1)+x(3,i2))
187 xx = (x(1,i1)*x(1,i1)+x(1,i2)*x(1,i2))
188 xy = (x(1,i1)*x(2,i1)+x(1,i2)*x(2,i2))
189 yy = (x(2,i1)*x(2,i1)+x(2,i2)*x(2,i2))
190 yz = (x(2,i1)*x(3,i1)+x(2,i2)*x(3,i2))
191 zz = (x(3,i1)*x(3,i1)+x(3,i2)*x(3,i2))
192 zx = (x(3,i1)*x(1,i1)+x(3,i2)*x(1,i2))
193 partsav(5,ip) =partsav(5,ip) + two*xi + ems(i) * (yy+zz)
194 partsav(6,ip) =partsav(6,ip) + two*xi + ems(i) * (zz+xx)
195 partsav(7,ip) =partsav(7,ip) + two*xi + ems(i) * (xx+yy)
196 partsav(8,ip) =partsav(8,ip) - ems(i) * xy
197 partsav(9,ip) =partsav(9,ip) - ems(i) * yz
198 partsav(10,ip)=partsav(10,ip) - ems(i) * zx
199
200 partsav(11,ip)=partsav(11,ip) + ems(i)*(v(1,i1)+v(1,i2))
201 partsav(12,ip)=partsav(12,ip) + ems(i)*(v(2,i1)+v(2,i2))
202 partsav(13,ip)=partsav(13,ip) + ems(i)*(v(3,i1)+v(3,i2))
203 partsav(14,ip)=partsav(14,ip) + half* ems(i) *
204 . (v(1,i1)*v(1,i1)+v(2,i1)*v(2,i1)+v(3,i1)*v(3,i1)
205 . +v(1,i2)*v(1,i2)+v(2,i2)*v(2,i2)+v(3,i2)*v(3,i2))
206 ENDDO
207
208
209 RETURN
#define my_real
Definition cppsort.cpp:32

◆ rmass()

subroutine rmass ( integer, dimension(nixr,*) ixr,
geo,
ms,
xin,
partsav,
x,
v,
integer, dimension(*) ipart,
xl,
msr,
inr,
msrt,
ems )

Definition at line 28 of file rmass.F.

31C----------------------------------------------
32C INITIALISATION DES MASSES NODALES
33C----------------------------------------------
34C-----------------------------------------------
35C I m p l i c i t T y p e s
36C-----------------------------------------------
37#include "implicit_f.inc"
38C-----------------------------------------------
39C C o m m o n B l o c k s
40C-----------------------------------------------
41#include "com01_c.inc"
42#include "param_c.inc"
43#include "vect01_c.inc"
44C-----------------------------------------------
45C D u m m y A r g u m e n t s
46C-----------------------------------------------
47 INTEGER :: IXR(NIXR,*),IPART(*)
48 my_real :: geo(npropg,*), ms(*), xin(*),x(3,*),v(3,*),partsav(20,*)
49 my_real :: xl(*),msr(3,*),inr(3,*), msrt(*),ems(*)
50C-----------------------------------------------
51C L o c a l V a r i a b l e s
52C-----------------------------------------------
53 INTEGER :: I, IP,I1,I2,ILENG
54 my_real :: xx,yy,zz,xy,yz,zx
55 my_real :: xi
56C---------------------------------------------------------------------
57C----------------------------------------------
58C MASSE ELEMENT /2
59C----------------------------------------------
60 DO i=lft,llt
61 ems(i)=half*geo(1,ixr(1,i+nft))*xl(i)
62 ENDDO
63C
64 IF(irest_mselt/=0)THEN
65 DO i=lft,llt
66 msrt(i)=two*ems(i)
67 ENDDO
68 END IF
69C----------------------------------------------
70C INITIALISATION DES MASSES NODALES
71C----------------------------------------------
72
73 DO i=lft,llt
74 i1 = ixr(2,i+nft)
75 i2 = ixr(3,i+nft)
76
77 xi=half*geo(9,ixr(1,i+nft))*xl(i)
78 msr(1,i)=ems(i)
79 msr(2,i)=ems(i)
80 msr(3,i)=ems(i)
81 inr(1,i)=xi
82 inr(2,i)=xi
83 inr(3,i)=xi
84
85 ip=ipart(i)
86 partsav(1,ip)=partsav(1,ip) + two*ems(i)
87 partsav(2,ip)=partsav(2,ip) + ems(i)*(x(1,i1)+x(1,i2))
88 partsav(3,ip)=partsav(3,ip) + ems(i)*(x(2,i1)+x(2,i2))
89 partsav(4,ip)=partsav(4,ip) + ems(i)*(x(3,i1)+x(3,i2))
90 xx = (x(1,i1)*x(1,i1)+x(1,i2)*x(1,i2))
91 xy = (x(1,i1)*x(2,i1)+x(1,i2)*x(2,i2))
92 yy = (x(2,i1)*x(2,i1)+x(2,i2)*x(2,i2))
93 yz = (x(2,i1)*x(3,i1)+x(2,i2)*x(3,i2))
94 zz = (x(3,i1)*x(3,i1)+x(3,i2)*x(3,i2))
95 zx = (x(3,i1)*x(1,i1)+x(3,i2)*x(1,i2))
96 partsav(5,ip) =partsav(5,ip) + two*xi + ems(i) * (yy+zz)
97 partsav(6,ip) =partsav(6,ip) + two*xi + ems(i) * (zz+xx)
98 partsav(7,ip) =partsav(7,ip) + two*xi + ems(i) * (xx+yy)
99 partsav(8,ip) =partsav(8,ip) - ems(i) * xy
100 partsav(9,ip) =partsav(9,ip) - ems(i) * yz
101 partsav(10,ip)=partsav(10,ip) - ems(i) * zx
102
103 partsav(11,ip)=partsav(11,ip) + ems(i)*(v(1,i1)+v(1,i2))
104 partsav(12,ip)=partsav(12,ip) + ems(i)*(v(2,i1)+v(2,i2))
105 partsav(13,ip)=partsav(13,ip) + ems(i)*(v(3,i1)+v(3,i2))
106 partsav(14,ip)=partsav(14,ip) + half* ems(i) *
107 . (v(1,i1)*v(1,i1)+v(2,i1)*v(2,i1)+v(3,i1)*v(3,i1)
108 . +v(1,i2)*v(1,i2)+v(2,i2)*v(2,i2)+v(3,i2)*v(3,i2))
109 ENDDO
110
111 RETURN