OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
rmass.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!|| rmass ../starter/source/elements/spring/rmass.F
25!||--- called by ------------------------------------------------------
26!|| rinit3 ../starter/source/elements/spring/rinit3.F
27!||====================================================================
28 SUBROUTINE rmass(IXR ,GEO ,MS ,XIN ,PARTSAV,
29 2 X ,V ,IPART,XL ,MSR ,
30 3 INR ,MSRT ,EMS )
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
112 END
113!||====================================================================
114!|| r23mass ../starter/source/elements/spring/rmass.F
115!||--- called by ------------------------------------------------------
116!|| inivoid ../starter/source/elements/initia/inivoid.F
117!|| rinit3 ../starter/source/elements/spring/rinit3.F
118!||====================================================================
119 SUBROUTINE r23mass(IXR ,GEO ,MS ,XIN ,PARTSAV,
120 2 X ,V ,IPART,XL ,MSR ,
121 3 INR ,MSRT ,EMS , MASS ,UINER,MTYP)
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
210 END
subroutine rmass(ixr, geo, ms, xin, partsav, x, v, ipart, xl, msr, inr, msrt, ems)
Definition rmass.F:31
subroutine r23mass(ixr, geo, ms, xin, partsav, x, v, ipart, xl, msr, inr, msrt, ems, mass, uiner, mtyp)
Definition rmass.F:122