OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
tmass.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!|| tmass ../starter/source/elements/truss/tmass.F
25!||--- called by ------------------------------------------------------
26!|| inivoid ../starter/source/elements/initia/inivoid.F
27!|| tinit3 ../starter/source/elements/truss/tinit3.F
28!||====================================================================
29 SUBROUTINE tmass(X ,NC ,GEO ,PM ,MS ,
30 . STIFN ,PARTSAV ,V ,IPART,MST,
31 . STIFINT,STT ,AREA , MXT, NC1, NC2,
32 . X1, X2, Y1, Y2, Z1, Z2)
33C----------------------------------------------
34C INITIALISATION DES MASSES NODALES
35C----------------------------------------------
36C-----------------------------------------------
37C I m p l i c i t T y p e s
38C-----------------------------------------------
39#include "implicit_f.inc"
40C-----------------------------------------------
41C G l o b a l P a r a m e t e r s
42C-----------------------------------------------
43#include "mvsiz_p.inc"
44C-----------------------------------------------
45C C o m m o n B l o c k s
46C-----------------------------------------------
47#include "param_c.inc"
48#include "vect01_c.inc"
49#include "scr12_c.inc"
50C-----------------------------------------------
51C D u m m y A r g u m e n t s
52C-----------------------------------------------
53 INTEGER NC(NIXT,*),IPART(*), MXT(*), NC1(*), NC2(*)
54 my_real
55 . X(3,*),GEO(NPROPG,*),PM(NPROPM,*),MS(*),STIFN(*),
56 . v(3,*),partsav(20,*),mst(*),stifint(*),stt(*),area(*),
57 . x1(*), x2(*), y1(*), y2(*), z1(*), z2(*)
58C-----------------------------------------------
59C L o c a l V a r i a b l e s
60C-----------------------------------------------
61 INTEGER I,IP,I1,I2,J,K
62 my_real
63 . XX,YY,ZZ,XY,YZ,ZX
64 my_real
65 . al(mvsiz),
66 . rho(mvsiz),ems(mvsiz),
67 . e,sti(mvsiz),dx,dy,dz
68C
69C---------------------------------------------------------------------
70 DO i=lft,llt
71 rho(i) =pm(89,mxt(i))
72 ENDDO
73C----------------------------------------------
74C MASSE ELEMENT /2
75C----------------------------------------------
76 DO i=lft,llt
77 al(i)=sqrt((x2(i)-x1(i))**2
78 . +(y2(i)-y1(i))**2
79 . +(z2(i)-z1(i))**2)
80 ems(i)=rho(i)*al(i)*area(i)*half
81 ENDDO
82C----------------------------------------------
83C INITIALISATION DES MASSES NODALES
84C----------------------------------------------
85C mass init parith/on spmd
86 DO i=lft,llt
87 mst(i)=ems(i)
88 ENDDO
89C----------------------------------------------
90C INITIALISATION DES RIGIDITES NODALES
91C et RIGIDITES NODALES POUR INTERFACES
92C----------------------------------------------
93 DO i=lft,llt
94 sti(i) = pm(20,mxt(i)) * area(i) / al(i)
95 stifn(nc1(i))=stifn(nc1(i))+sti(i)
96 stifn(nc2(i))=stifn(nc2(i))+sti(i)
97 ENDDO
98 IF (i7stifs /= 0) THEN
99 DO i=lft,llt
100 stt(i)=sti(i)
101 ENDDO
102 ENDIF
103C
104 DO i=lft,llt
105 i1 = nc1(i)
106 i2 = nc2(i)
107C
108 ip=ipart(i)
109 partsav(1,ip)=partsav(1,ip) + two*ems(i)
110 partsav(2,ip)=partsav(2,ip) + ems(i)*(x(1,i1)+x(1,i2))
111 partsav(3,ip)=partsav(3,ip) + ems(i)*(x(2,i1)+x(2,i2))
112 partsav(4,ip)=partsav(4,ip) + ems(i)*(x(3,i1)+x(3,i2))
113 xx = (x(1,i1)*x(1,i1)+x(1,i2)*x(1,i2))
114 xy = (x(1,i1)*x(2,i1)+x(1,i2)*x(2,i2))
115 yy = (x(2,i1)*x(2,i1)+x(2,i2)*x(2,i2))
116 yz = (x(2,i1)*x(3,i1)+x(2,i2)*x(3,i2))
117 zz = (x(3,i1)*x(3,i1)+x(3,i2)*x(3,i2))
118 zx = (x(3,i1)*x(1,i1)+x(3,i2)*x(1,i2))
119 partsav(5,ip) =partsav(5,ip) + ems(i) * (yy+zz)
120 partsav(6,ip) =partsav(6,ip) + ems(i) * (zz+xx)
121 partsav(7,ip) =partsav(7,ip) + ems(i) * (xx+yy)
122 partsav(8,ip) =partsav(8,ip) - ems(i) * xy
123 partsav(9,ip) =partsav(9,ip) - ems(i) * yz
124 partsav(10,ip)=partsav(10,ip) - ems(i) * zx
125C
126 partsav(11,ip)=partsav(11,ip) + ems(i)*(v(1,i1)+v(1,i2))
127 partsav(12,ip)=partsav(12,ip) + ems(i)*(v(2,i1)+v(2,i2))
128 partsav(13,ip)=partsav(13,ip) + ems(i)*(v(3,i1)+v(3,i2))
129 partsav(14,ip)=partsav(14,ip) + half * ems(i) *
130 . (v(1,i1)*v(1,i1)+v(2,i1)*v(2,i1)+v(3,i1)*v(3,i1)
131 . +v(1,i2)*v(1,i2)+v(2,i2)*v(2,i2)+v(3,i2)*v(3,i2))
132 ENDDO
133C
134 RETURN
135 END
subroutine area(d1, x, x2, y, y2, eint, stif0)
subroutine tmass(x, nc, geo, pm, ms, stifn, partsav, v, ipart, mst, stifint, stt, area, mxt, nc1, nc2, x1, x2, y1, y2, z1, z2)
Definition tmass.F:33