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!||--- uses -----------------------------------------------------
29!||====================================================================
30 SUBROUTINE tmass(X ,NC ,GEO ,PM ,MS ,
31 . STIFN ,PARTSAV ,V ,IPART,MST,
32 . STIFINT,STT ,AREA , MXT, NC1, NC2,
33 . X1, X2, Y1, Y2, Z1, Z2)
34C----------------------------------------------
35C initialization of nodal masses
36C----------------------------------------------
37 use element_mod , only : nixt
38C-----------------------------------------------
39C I m p l i c i t T y p e s
40C-----------------------------------------------
41#include "implicit_f.inc"
42C-----------------------------------------------
43C G l o b a l P a r a m e t e r s
44C-----------------------------------------------
45#include "mvsiz_p.inc"
46C-----------------------------------------------
47C C o m m o n B l o c k s
48C-----------------------------------------------
49#include "param_c.inc"
50#include "vect01_c.inc"
51#include "scr12_c.inc"
52C-----------------------------------------------
53C D u m m y A r g u m e n t s
54C-----------------------------------------------
55 INTEGER NC(NIXT,*),IPART(*), MXT(*), NC1(*), NC2(*)
56 my_real
57 . X(3,*),GEO(NPROPG,*),PM(NPROPM,*),MS(*),STIFN(*),
58 . v(3,*),partsav(20,*),mst(*),stifint(*),stt(*),area(*),
59 . x1(*), x2(*), y1(*), y2(*), z1(*), z2(*)
60C-----------------------------------------------
61C L o c a l V a r i a b l e s
62C-----------------------------------------------
63 INTEGER I, IP, I1, I2
64 my_real
65 . XX,YY,ZZ,XY,YZ,ZX
66 my_real
67 . al(mvsiz),
68 . rho(mvsiz),ems(mvsiz),
69 . sti(mvsiz)
70C
71C---------------------------------------------------------------------
72 DO i=lft,llt
73 rho(i) =pm(89,mxt(i))
74 ENDDO
75C----------------------------------------------
76C MASSE ELEMENT /2
77C----------------------------------------------
78 DO i=lft,llt
79 al(i)=sqrt((x2(i)-x1(i))**2
80 . +(y2(i)-y1(i))**2
81 . +(z2(i)-z1(i))**2)
82 ems(i)=rho(i)*al(i)*area(i)*half
83 ENDDO
84C----------------------------------------------
85C initialization of nodal masses
86C----------------------------------------------
87C mass init parith/on spmd
88 DO i=lft,llt
89 mst(i)=ems(i)
90 ENDDO
91C----------------------------------------------
92C initialization of nodal stiffnesses
93C and nodal stiffnesses for interfaces
94C----------------------------------------------
95 DO i=lft,llt
96 sti(i) = pm(20,mxt(i)) * area(i) / al(i)
97 stifn(nc1(i))=stifn(nc1(i))+sti(i)
98 stifn(nc2(i))=stifn(nc2(i))+sti(i)
99 ENDDO
100 IF (i7stifs /= 0) THEN
101 DO i=lft,llt
102 stt(i)=sti(i)
103 ENDDO
104 ENDIF
105C
106 DO i=lft,llt
107 i1 = nc1(i)
108 i2 = nc2(i)
109C
110 ip=ipart(i)
111 partsav(1,ip)=partsav(1,ip) + two*ems(i)
112 partsav(2,ip)=partsav(2,ip) + ems(i)*(x(1,i1)+x(1,i2))
113 partsav(3,ip)=partsav(3,ip) + ems(i)*(x(2,i1)+x(2,i2))
114 partsav(4,ip)=partsav(4,ip) + ems(i)*(x(3,i1)+x(3,i2))
115 xx = (x(1,i1)*x(1,i1)+x(1,i2)*x(1,i2))
116 xy = (x(1,i1)*x(2,i1)+x(1,i2)*x(2,i2))
117 yy = (x(2,i1)*x(2,i1)+x(2,i2)*x(2,i2))
118 yz = (x(2,i1)*x(3,i1)+x(2,i2)*x(3,i2))
119 zz = (x(3,i1)*x(3,i1)+x(3,i2)*x(3,i2))
120 zx = (x(3,i1)*x(1,i1)+x(3,i2)*x(1,i2))
121 partsav(5,ip) =partsav(5,ip) + ems(i) * (yy+zz)
122 partsav(6,ip) =partsav(6,ip) + ems(i) * (zz+xx)
123 partsav(7,ip) =partsav(7,ip) + ems(i) * (xx+yy)
124 partsav(8,ip) =partsav(8,ip) - ems(i) * xy
125 partsav(9,ip) =partsav(9,ip) - ems(i) * yz
126 partsav(10,ip)=partsav(10,ip) - ems(i) * zx
127C
128 partsav(11,ip)=partsav(11,ip) + ems(i)*(v(1,i1)+v(1,i2))
129 partsav(12,ip)=partsav(12,ip) + ems(i)*(v(2,i1)+v(2,i2))
130 partsav(13,ip)=partsav(13,ip) + ems(i)*(v(3,i1)+v(3,i2))
131 partsav(14,ip)=partsav(14,ip) + half * ems(i) *
132 . (v(1,i1)*v(1,i1)+v(2,i1)*v(2,i1)+v(3,i1)*v(3,i1)
133 . +v(1,i2)*v(1,i2)+v(2,i2)*v(2,i2)+v(3,i2)*v(3,i2))
134 ENDDO
135C
136 RETURN
137 END
subroutine area(d1, x, x2, y, y2, eint, stif0)
subroutine initia(iparg, elbuf, ms, in, v, x, ixs, ixq, ixc, ixt, ixp, ixr, detonators, geo, pm, rby, npby, lpby, npc, npts, pld, veul, ale_connectivity, skew, fill, ipart, itab, sensors, skvol, ixtg, thk, nloc_dmg, group_param_tab, glob_therm, igrnod, igrsurf, bufsf, vr, bufmat, xlas, las, dtelem, mss, msq, msc, mst, msp, msr, mstg, ptg, inc, nod2eltg, knod2eltg, inp, inr, intg, index, itri, kxx, ixx, xelemwa, iwa, nod2elq, knod2elq, nod2els, knod2els, kxsp, ixsp, nod2sp, ispcond, icode, iskew, iskn, ispsym, xframe, isptag, spbuf, mssx, nsigi, npbyl, lpbyl, rbyl, msnf, mssf, nsigsh, igeo, ipm, nsigs, nsigsph, vns, vnsx, stc, stt, stp, str, sttg, stur, bns, bnsx, volnod, bvolnod, etnod, nshnod, stifint, fxbdep, fxbvit, fxbacc, fxbipm, fxbrpm, fxbelm, fxbsig, fxbmod, ins, ptshel, ptsh3n, ptsol, ptquad, wma, ptsph, fxbnod, mbufel, mdepl, fxani, numel, nsigrs, sh4tree, sh3tree, mcp, temp, imerge2, iadmerge2, slnrbm, nslnrbm, rmstifn, rmstifr, ms_layer, zi_layer, itag, itagel, mcpc, mcptg, xrefc, xreftg, xrefs, mssa, msrt, irbe2, lrbe2, inivol, kvol, nbsubmat, ixs10, ixs16, ixs20, totaddmas, ipmas, stifn, msz2, itagn, sitage, itage, ixr_kj, elbuf_tab, nom_opt, ptr_nopt_rbe2, ptr_nopt_adm, ptr_nopt_fun, sol2sph, irst, sh3trim, xfem_tab, kxig3d, ixig3d, msig3d, knot, nctrlmax, wige, stack, rnoise, drape, sh4ang, sh3ang, geo_stack, igeo_stack, stifintr, strc, strp, strr, strtg, perturb, itagnd, nativ_sms, iloadp, facload, ptspri, nsigbeam, ptbeam, nsigtruss, pttruss, multi_fvm, sigi, sigsh, sigsp, sigsph, sigrs, sigbeam, sigtruss, strsglob, straglob, orthoglob, isigsh, iyldini, ksigsh3, fail_ini, iusolyld, iuser, iddlevel, inimap1d, inimap2d, func2d, fvm_inivel, tagprt_sms, igrbric, igrquad, igrsh4n, igrsh3n, igrpart, totmas, knotlocpc, knotlocel, vnige, bnige, fxbglm, fxbcpm, fxbcps, fxblm, fxbfls, fxbdls, fxb_matrix, fxb_matrix_add, fxb_last_adress, ptr_nopt_fxb, r_skew, knod2el1d, nod2el1d, ebcs_tab, rby_iniaxis, alea, knod2elc, nod2elc, dr, slrbody, drapeg, ipari, intbuf_tab, interfaces, mat_param, npreload_a, preload_a, fail_fractal, fail_brokmann, defaults, ndamp_freq_range, dampr, ibeam_vector, rbeam_vector, ikine, lsigi, lsigsp, srnoise, nprw, lprw, rwstif_pen, sln_pen)
Definition initia.F:198
subroutine inivoid(elbuf_str, ixc, ixs, ixtg, x, v, pm, geo, ms, in, ptg, msc, mss, mstg, inc, intg, thkc, thkt, partsav, iparts, ipartc, ipartt, veul, dtelem, ihbe, isolnod, nvc, i8mi, msnf, mssf, igeo, etnod, nshnod, stc, sttg, wma, sh4tree, sh3tree, mcp, mcpc, temp, mcps, xrefc, xreftg, xrefs, mssa, volnod, bvolnod, vns, bns, sh3trim, isubstack, stack, rnoise, perturb, ele_area, part_area, iparttr, ixt, ipartp, ixp, mst, msp, stt, stp, strp, inp, stifint, mcpp, inr, msr, msrt, str, ipartr, itab, ixr, imerge2, iadmerge2, nel, defaults, glob_therm, ibeam_vector, rbeam_vector)
Definition inivoid.F:76
program starter
Definition starter.F:39
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:34