OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
qbilan.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!|| qbilan ../engine/source/elements/solid_2d/quad/qbilan.F
25!||--- called by ------------------------------------------------------
26!|| bforc2 ../engine/source/ale/bimat/bforc2.f
27!|| q4forc2 ../engine/source/elements/solid_2d/quad4/q4forc2.F
28!|| qforc2 ../engine/source/elements/solid_2d/quad/qforc2.F
29!||--- calls -----------------------------------------------------
30!|| grelem_sav ../engine/source/output/th/grelem_sav.F
31!|| sensor_energy_bilan ../engine/source/tools/sensor/sensor_energy_bilan.F
32!||--- uses -----------------------------------------------------
33!|| sensor_mod ../common_source/modules/sensor_mod.F90
34!||====================================================================
35 SUBROUTINE qbilan(
36 1 PARTSAV, OFF, EINT, RHO,
37 2 RK, VOL, VY1, VY2,
38 3 VY3, VY4, VZ1, VZ2,
39 4 VZ3, VZ4, VNEW, IPARTQ,
40 5 EHOU, R22, R23, R32,
41 6 R33, GRESAV, GRTH, IGRTH,
42 7 IEXPAN, EINTTH, ITASK, NEL,
43 8 JTUR, JCVT, IGRE,SENSORS,
44 9 G_WPLA, WPLA)
45C-----------------------------------------------
46C M o d u l e s
47C-----------------------------------------------
48 USE sensor_mod
49C-----------------------------------------------
50C I m p l i c i t T y p e s
51C-----------------------------------------------
52#include "implicit_f.inc"
53C-----------------------------------------------
54C G l o b a l P a r a m e t e r s
55C-----------------------------------------------
56#include "mvsiz_p.inc"
57C----6------------------------------------------
58C C o m m o n B l o c k s
59C-----------------------------------------------
60#include "param_c.inc"
61C-----------------------------------------------
62C D u m m y A r g u m e n t s
63C-----------------------------------------------
64 INTEGER, INTENT(IN) :: NEL
65 INTEGER, INTENT(IN) :: JTUR
66 INTEGER, INTENT(IN) :: JCVT
67 INTEGER, INTENT(IN) :: IGRE
68 my_real
69 . PARTSAV(NPSAV,*), OFF(*), EINT(*), RHO(*), RK(*), VOL(*),
70 . VY1(*),VY2(*),VY3(*),VY4(*),VZ1(*),VZ2(*),VZ3(*),VZ4(*),
71 . VNEW(*), EHOU(*), R22(*), R23(*), R32(*), R33(*),GRESAV(*),
72 . EINTTH(*)
73 INTEGER IEXPAN,ITASK,
74 . ipartq(*),grth(*),igrth(*)
75 type (sensors_),INTENT(INOUT) :: SENSORS
76 INTEGER, INTENT(IN) :: G_WPLA
77 my_real,DIMENSION(NEL*G_WPLA), INTENT(IN) :: wpla
78C-----------------------------------------------
79C L o c a l V a r i a b l e s
80C-----------------------------------------------
81 my_real
82 . vya(mvsiz), vza(mvsiz), va2(mvsiz), xmas(mvsiz), vy, vz,
83 . off_sav(mvsiz),rbidon(1),ei_sav(mvsiz),ek_sav(mvsiz),
84 . xm_sav(mvsiz),ym_sav(mvsiz),zm_sav(mvsiz),ei(mvsiz),ek(mvsiz)
85 INTEGER I,M, FLAG
86C-----------------------------------------------
87 rbidon = zero
88 off_sav= zero
89 ei_sav = zero
90 ek_sav = zero
91 xm_sav = zero
92 ym_sav = zero
93 zm_sav = zero
94
95 DO i=1,nel
96 vya(i)=vy1(i)+vy2(i)+vy3(i)+vy4(i)
97 vza(i)=vz1(i)+vz2(i)+vz3(i)+vz4(i)
98 ENDDO
99
100 IF(jcvt/=0)THEN
101 DO i=1,nel
102 vy=r22(i)*vya(i)+r23(i)*vza(i)
103 vz=r32(i)*vya(i)+r33(i)*vza(i)
104 vya(i)=vy
105 vza(i)=vz
106 END DO
107 END IF
108
109 DO i=1,nel
110 va2(i)=
111 1 vy1(i)*vy1(i)+vy2(i)*vy2(i)+vy3(i)*vy3(i)+vy4(i)*vy4(i)
112 2 +vz1(i)*vz1(i)+vz2(i)*vz2(i)+vz3(i)*vz3(i)+vz4(i)*vz4(i)
113 ENDDO
114
115 DO i=1,nel
116 xmas(i)=rho(i)*vnew(i)*off(i)
117 ENDDO
118
119 flag = 0
120 IF (igre /= 0) THEN
121 DO i=1,nel
122 off_sav(i) = one
123 ei_sav(i) = eint(i)*vol(i)
124 ek_sav(i) = xmas(i)*va2(i)*one_over_8
125 xm_sav(i) = zero
126 ym_sav(i) = xmas(i)*vya(i)*fourth
127 zm_sav(i) = xmas(i)*vza(i)*fourth
128 ENDDO
129 CALL grelem_sav(1 ,nel ,gresav,igrth ,grth ,
130 2 off_sav,ei_sav,ek_sav,xm_sav,ym_sav,
131 3 zm_sav,xmas ,rbidon,rbidon,rbidon,
132 4 rbidon,rbidon,rbidon,rbidon,rbidon,
133 5 rbidon,rbidon,rbidon,rbidon,rbidon,
134 6 rbidon,flag)
135 ENDIF
136
137 DO i=1,nel
138 m=ipartq(i)
139 partsav(1,m)=partsav(1,m) + eint(i)*vol(i)*off(i)
140 partsav(2,m)=partsav(2,m) + xmas(i)*va2(i)*one_over_8
141 partsav(3,m)=zero
142 partsav(4,m)=partsav(4,m) + xmas(i)*vya(i)*fourth
143 partsav(5,m)=partsav(5,m) + xmas(i)*vza(i)*fourth
144 partsav(6,m)=partsav(6,m) + xmas(i)
145 IF (g_wpla > 0) partsav(29,m)=partsav(29,m) + wpla(i)
146 ENDDO
147
148 IF(jtur/=0)THEN
149 DO i=1,nel
150 m=ipartq(i)
151 partsav(7,m)=partsav(7,m) + rk(i)*vol(i)*off(i)
152 ENDDO
153 ENDIF
154
155 IF(iexpan/=0)THEN
156 DO i=1,nel
157 m=ipartq(i)
158 partsav(27,m)=partsav(27,m) + eintth(i)*vol(i)*off(i)
159 ENDDO
160 ENDIF
161
162 DO i=1,nel
163 m=ipartq(i)
164 ei(i) = eint(i)*vol(i)*off(i)
165 ek(i) = xmas(i)*va2(i)*one_over_8
166 ENDDO
167 CALL sensor_energy_bilan(1,nel,ei,ek,off,ipartq,itask,sensors)
168
169 RETURN
170 END
subroutine bforc2(timers, elbuf_tab, ng, pm, geo, ic, x, a, v, ms, w, flux, flu1, veul, ale_connect, iparg, jparg, fill, dfill, ims, nloc_dmg, tf, npf, bufmat, partsav, dt2t, neltst, ityptst, stifn, offset, eani, ipartq, nel, iadq, fsky, ipm, bufvois, gresav, grth, igrth, table, igeo, voln, itask, ms_2d, fskym, mat_elem, h3d_strain, output, sz_bufvois, snpc, stf, sbufmat, svis, nsvois, iresp, idel7nok, idtmin, maxfunc, imon_mat, userl_avail, impl_s, idyna, dt, glob_therm, sensors)
Definition bforc2.F:87
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 qbilan(partsav, off, eint, rho, rk, vol, vy1, vy2, vy3, vy4, vz1, vz2, vz3, vz4, vnew, ipartq, ehou, r22, r23, r32, r33, gresav, grth, igrth, iexpan, eintth, itask, nel, jtur, jcvt, igre, sensors, g_wpla, wpla)
Definition qbilan.F:45
subroutine sensor_energy_bilan(jft, jlt, ei, ek, off, ipart, itask, sensors)