OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
ig3dmass3.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!|| ig3dmass3 ../starter/source/elements/ige3d/ig3dmass3.F
25!||--- called by ------------------------------------------------------
26!|| ig3dinit3 ../starter/source/elements/ige3d/ig3dinit3.F
27!||--- uses -----------------------------------------------------
28!||====================================================================
29 SUBROUTINE ig3dmass3(
30 1 RHO ,MS ,PARTSAV,X ,Y ,
31 2 Z ,VX ,VY ,VZ ,IPART ,
32 3 MSIG3D ,VOLU ,MSNF ,MSSF ,IN ,
33 4 VR ,INS ,WMA ,RHOCP ,MCP ,
34 5 MCPS ,MSSA ,RHOF ,FRAC ,NCTRL ,
35 6 KXIG3D ,IXIG3D,R ,DETJAC,PGAUSS ,
36 7 I )
37C-----------------------------------------------
38C M o d u l e s
39C-----------------------------------------------
40 USE ale_mod
41C-----------------------------------------------
42C I m p l i c i t T y p e s
43C-----------------------------------------------
44#include "implicit_f.inc"
45C-----------------------------------------------
46C G l o b a l P a r a m e t e r s
47C-----------------------------------------------
48#include "mvsiz_p.inc"
49C-----------------------------------------------
50C D u m m y A r g u m e n t s
51C-----------------------------------------------
52 INTEGER IPART(*),NDDIM, NCTRL, I, KXIG3D(NIXIG3D,*),IXIG3D(*)
53 my_real
54 . RHO(*),MS(*),X(NCTRL,*),
55 . Y(NCTRL,*),Z(NCTRL,*),
56 . VX(NCTRL,MVSIZ),VY(NCTRL,MVSIZ),VZ(NCTRL,MVSIZ),
57 . PARTSAV(20,*),VOLU(*),
58 . MSIG3D(NUMELIG3D,*), MSSF(8,*), MSNF(*),
59 . in(*),vr(3,*),ins(8,*),wma(*),
60 . rhocp(*),mcp(*),mcps(8,*), mssa(*),rhof(*),
61 . frac(*),pgauss,detjac,r(*)
62C-----------------------------------------------
63C C o m m o n B l o c k s
64C-----------------------------------------------
65#include "com01_c.inc"
66#include "com04_c.inc"
67#include "vect01_c.inc"
68#include "param_c.inc"
69C-----------------------------------------------
70C L o c a l V a r i a b l e s
71C-----------------------------------------------
72 INTEGER J,IP,I1,I2,I3,I4,I5,I6,I7,I8, ITNCTRL, INCTRL
73 my_real XX,YY,ZZ,XY,YZ,ZX,INER,RCP
74 my_real MASS(MVSIZ),MASSF(MVSIZ)
75
76C=======================================================================
77C S o u r c e L i n e s
78C=======================================================================
79C
80 xx=zero
81 xy=zero
82 yy=zero
83 yz=zero
84 zz=zero
85 zx=zero
86C
87 DO itnctrl=1,nctrl
88 mass(i)= rho(i)*r(itnctrl)*detjac*pgauss
89 massf(i)= frac(i)*rhof(i)*r(itnctrl)*detjac*pgauss
90 msig3d(i+nft,itnctrl)=msig3d(i+nft,itnctrl) + mass(i)
91C
92 ip=ipart(i)
93 partsav(1,ip)=partsav(1,ip) + mass(i)
94c
95 partsav(2,ip)=partsav(2,ip) + mass(i)*x(itnctrl,i)
96 partsav(3,ip)=partsav(3,ip) + mass(i)*y(itnctrl,i)
97 partsav(4,ip)=partsav(4,ip) + mass(i)*z(itnctrl,i)
98c
99 xx = xx + mass(i) * x(itnctrl,i)*x(itnctrl,i)
100 xy = xy + mass(i) * x(itnctrl,i)*y(itnctrl,i)
101 yy = yy + mass(i) * y(itnctrl,i)*y(itnctrl,i)
102 yz = yz + mass(i) * y(itnctrl,i)*z(itnctrl,i)
103 zz = zz + mass(i) * z(itnctrl,i)*z(itnctrl,i)
104 zx = zx + mass(i) * z(itnctrl,i)*x(itnctrl,i)
105 ENDDO
106C
107 partsav(5,ip) =partsav(5,ip) + (yy+zz)
108 partsav(6,ip) =partsav(6,ip) + (zz+xx)
109 partsav(7,ip) =partsav(7,ip) + (xx+yy)
110 partsav(8,ip) =partsav(8,ip) - xy
111 partsav(9,ip) =partsav(9,ip) - yz
112 partsav(10,ip)=partsav(10,ip) - zx
113C
114 DO itnctrl=1,nctrl
115 partsav(11,ip)=partsav(11,ip) + mass(i)*
116 . vx(itnctrl,i)
117 partsav(12,ip)=partsav(12,ip) + mass(i)*
118 . vy(itnctrl,i)
119 partsav(13,ip)=partsav(13,ip) + mass(i)*
120 . vz(itnctrl,i)
121 partsav(14,ip)=partsav(14,ip) + half * mass(i) *
122 . (vx(itnctrl,i)*vx(itnctrl,i) +
123 . vy(itnctrl,i)*vy(itnctrl,i) +
124 . vz(itnctrl,i)*vz(itnctrl,i))
125 ENDDO
126C
127 IF(irest_mselt /= 0)THEN
128 mssa(nft+i)=mass(i)
129 ENDIF
130C
131 IF(jale == 3 .AND. jlag == 1)THEN
132 DO itnctrl=1,nctrl
133 mssf(itnctrl,i)=massf(i)
134 ENDDO
135 ELSEIF(jale+jeul>0)THEN
136 DO itnctrl=1,nctrl
137 mssf(itnctrl,i)=mass(i)
138 ENDDO
139 ENDIF
140C
141c IF(JTHE < 0 ) THEN
142c RCP=RHOCP(I)*VOLU(I)/NCTRL
143c DO ITNCTRL=1,NCTRL
144c MCPS(ITNCTRL,I) =RCP
145c ENDDO
146c ENDIF
147c IF(ISROT==1)THEN
148c IF(IRODDL==0)THEN
149C prov gw
150c STOP 1119
151c ENDIF
152c INER=(MASS(I)*VOLU(I)**TWO_THIRD)/SIX
153c DO ITNCTRL=1,NCTRL
154c INS(ITNCTRL,I)=INER
155c ENDDO
156c ENDIF
157C
158 IF(jale > 0 .AND. ale%GRID%NWALE == 4)THEN
159 DO itnctrl=1,nctrl
160 inctrl = ixig3d(kxig3d(4,i+nft)+itnctrl-1)
161 wma(inctrl)=wma(inctrl)+three_half
162 ENDDO
163 ENDIF
164C-----------
165 RETURN
166 END
subroutine ig3dmass3(rho, ms, partsav, x, y, z, vx, vy, vz, ipart, msig3d, volu, msnf, mssf, in, vr, ins, wma, rhocp, mcp, mcps, mssa, rhof, frac, nctrl, kxig3d, ixig3d, r, detjac, pgauss, i)
Definition ig3dmass3.F:37
type(ale_) ale
Definition ale_mod.F:249