OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
sr8bilan.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!|| sr8bilan ../engine/source/elements/solid/solide8/sr8bilan.F
25!||--- called by ------------------------------------------------------
26!|| s8forc3 ../engine/source/elements/solid/solide8/s8forc3.F
27!||--- calls -----------------------------------------------------
28!|| grelem_sav ../engine/source/output/th/grelem_sav.F
29!|| sensor_energy_bilan ../engine/source/tools/sensor/sensor_energy_bilan.f
30!||--- uses -----------------------------------------------------
31!|| sensor_mod ../common_source/modules/sensor_mod.F90
32!||====================================================================
33 SUBROUTINE sr8bilan(PARTSAV,EINT,RHO,RK,VOL,VNEW,
34 . VXA,VYA,VZA,VA2,IPARTS,
35 . GRESAV,GRTH,IGRTH,XX,YY,ZZ,
36 . XX2,YY2,ZZ2,XY,YZ,ZX,ITASK,IPARG,SENSORS)
37C-----------------------------------------------
38C M o d u l e s
39C-----------------------------------------------
40 USE sensor_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 C o m m o n B l o c k s
51C-----------------------------------------------
52#include "param_c.inc"
53#include "vect01_c.inc"
54C-----------------------------------------------
55C D u m m y A r g u m e n t s
56C-----------------------------------------------
57C REAL
59 . partsav(npsav,*), eint(*), rho(*), rk(*), vol(*),
60 . vnew(mvsiz), vxa(mvsiz), vya(mvsiz), vza(mvsiz), va2(mvsiz),
61 . gresav(*), xx(mvsiz), yy(mvsiz), zz(mvsiz),
62 . xx2(mvsiz), yy2(mvsiz), zz2(mvsiz),
63 . xy(mvsiz), yz(mvsiz), zx(mvsiz)
64 INTEGER
65 . IPARTS(*),GRTH(*),IGRTH(*),IPARG(*),ITASK
66 type (sensors_),INTENT(INOUT) :: SENSORS
67C-----------------------------------------------
68C L o c a l V a r i a b l e s
69C-----------------------------------------------
70 INTEGER I, M, FLAG
71C REAL
72 my_real
73 . xmas(mvsiz),
74 . off(mvsiz), ei(mvsiz) , ek(mvsiz),
75 . xm(mvsiz) , ym(mvsiz) , zm(mvsiz),
76 . xcg(mvsiz), ycg(mvsiz), zcg(mvsiz),
77 . xxm(mvsiz), yym(mvsiz), zzm(mvsiz),
78 . ixx(mvsiz), iyy(mvsiz), izz(mvsiz),
79 . ixy(mvsiz), iyz(mvsiz), izx(mvsiz),
80 . rei(mvsiz), rek(mvsiz), off_l(mvsiz)
81C-----------------------------------------------
82 flag = iparg(80) ! Flag pour sorties additionnelles
83C-----------------------------------------------
84C CALCUL BILAN SORTIES DEF
85C-----------------------------------------------
86 DO i=lft,llt
87 vxa(i) = vxa(i)*one_over_8
88 vya(i) = vya(i)*one_over_8
89 vza(i) = vza(i)*one_over_8
90 va2(i) = va2(i)*one_over_8
91 ENDDO
92C
93 DO i=lft,llt
94 xmas(i)= rho(i)*vnew(i)
95 ei(i) = eint(i)*vol(i)
96 ek(i) = xmas(i)*va2(i)*half
97 xm(i) = xmas(i)*vxa(i)
98 ym(i) = xmas(i)*vya(i)
99 zm(i) = xmas(i)*vza(i)
100 ENDDO
101C
102 DO i=lft,llt
103 m=iparts(i)
104 partsav(1,m)=partsav(1,m) + ei(i)
105 partsav(2,m)=partsav(2,m) + ek(i)
106 partsav(3,m)=partsav(3,m) + xm(i)
107 partsav(4,m)=partsav(4,m) + ym(i)
108 partsav(5,m)=partsav(5,m) + zm(i)
109 partsav(6,m)=partsav(6,m) + xmas(i)
110 ENDDO
111C
112C-----------------------------------------------
113C CALCUL BILAN SORTIES ADDITIONNELLES
114C-----------------------------------------------
115 IF(flag==1) THEN
116 DO i=lft,llt
117 xx(i) = xx(i)*one_over_8
118 yy(i) = yy(i)*one_over_8
119 zz(i) = zz(i)*one_over_8
120 xy(i) = xy(i)*one_over_8
121 yz(i) = yz(i)*one_over_8
122 zx(i) = zx(i)*one_over_8
123 xx2(i)= xx2(i)*one_over_8
124 yy2(i)= yy2(i)*one_over_8
125 zz2(i)= zz2(i)*one_over_8
126 ENDDO
127C
128 DO i=lft,llt
129 xcg(i)= xmas(i)*xx(i)
130 ycg(i)= xmas(i)*yy(i)
131 zcg(i)= xmas(i)*zz(i)
132 ixy(i)= -xmas(i)*xy(i)
133 iyz(i)= -xmas(i)*yz(i)
134 izx(i)= -xmas(i)*zx(i)
135 ixx(i)= xmas(i)*(yy2(i) + zz2(i))
136 iyy(i)= xmas(i)*(zz2(i) + xx2(i))
137 izz(i)= xmas(i)*(xx2(i) + yy2(i))
138 xxm(i)= vza(i)*ycg(i)-vya(i)*zcg(i)
139 yym(i)= vxa(i)*zcg(i)-vza(i)*xcg(i)
140 zzm(i)= vya(i)*xcg(i)-vxa(i)*ycg(i)
141 rei(i)= zero
142 rek(i)= zero
143 ENDDO
144C
145 DO i=lft,llt
146 m=iparts(i)
147 partsav(9,m) =partsav(9,m) + xcg(i)
148 partsav(10,m)=partsav(10,m) + ycg(i)
149 partsav(11,m)=partsav(11,m) + zcg(i)
150 partsav(12,m)=partsav(12,m) + xxm(i)
151 partsav(13,m)=partsav(13,m) + yym(i)
152 partsav(14,m)=partsav(14,m) + zzm(i)
153 partsav(15,m)=partsav(15,m) + ixx(i)
154 partsav(16,m)=partsav(16,m) + iyy(i)
155 partsav(17,m)=partsav(17,m) + izz(i)
156 partsav(18,m)=partsav(18,m) + ixy(i)
157 partsav(19,m)=partsav(19,m) + iyz(i)
158 partsav(20,m)=partsav(20,m) + izx(i)
159 partsav(21,m)=partsav(21,m) + rei(i)
160 partsav(22,m)=partsav(22,m) + rek(i)
161 ENDDO
162 ENDIF
163C
164C-----------------------------------------------
165 IF (igre /= 0) THEN
166 DO i=lft,llt
167 off(i) = one
168 ENDDO
169 CALL grelem_sav(lft ,llt ,gresav,igrth ,grth ,
170 2 off ,ei ,ek ,xm ,ym ,
171 3 zm ,xmas ,xcg ,ycg ,zcg ,
172 4 xxm ,yym ,zzm ,ixx ,iyy ,
173 5 izz ,ixy ,iyz ,izx ,rei ,
174 6 rek ,flag )
175 ENDIF
176C-----------------------------------------------
177C
178 IF(jtur/=0)THEN
179 DO 50 i=lft,llt
180 m=iparts(i)
181 partsav(7,m)=partsav(7,m) + rk(i)*vol(i)
182 50 CONTINUE
183 ENDIF
184
185 DO i=lft,llt
186 off_l(i) = one
187 ENDDO
188 CALL sensor_energy_bilan(lft,llt,ei,ek,off_l,iparts,itask,sensors)
189C
190 RETURN
191 END
#define my_real
Definition cppsort.cpp:32
subroutine grelem_sav(jft, jlt, gresav, igrth, grth, off, ei, ek, xm, ym, zm, xmas, xcg, ycg, zcg, xxm, yym, zzm, ixx, iyy, izz, ixy, iyz, izx, rei, rek, flag)
Definition grelem_sav.F:54
subroutine sensor_energy_bilan(jft, jlt, ei, ek, off, ipart, itask, sensors)
subroutine sr8bilan(partsav, eint, rho, rk, vol, vnew, vxa, vya, vza, va2, iparts, gresav, grth, igrth, xx, yy, zz, xx2, yy2, zz2, xy, yz, zx, itask, iparg, sensors)
Definition sr8bilan.F:37