OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
volpres.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!|| volpre ../engine/source/airbag/volpres.f
25!||--- called by ------------------------------------------------------
26!|| monvol0 ../engine/source/airbag/monvol0.F
27!||--- uses -----------------------------------------------------
28!|| finter_mixed_mod ../engine/source/tools/finter_mixed.F90
29!|| h3d_mod ../engine/share/modules/h3d_mod.F
30!|| python_funct_mod ../common_source/modules/python_mod.F90
31!|| sensor_mod ../common_source/modules/sensor_mod.F90
32!||====================================================================
33 SUBROUTINE volpre(IVOLU ,RVOLU ,NJET ,IBAGJET ,RBAGJET ,
34 2 NSENSOR ,SENSOR_TAB,X ,V ,A ,
35 3 NORMAL ,NPC ,TF ,NN ,SURF_NODES,
36 4 FEXT ,H3D_DATA,SURF_ELTYP,SURF_ELEM,WFEXT,PYTHON)
37C-----------------------------------------------
38C M o d u l e s
39C-----------------------------------------------
40 USE h3d_mod
41 USE sensor_mod
42 USE python_funct_mod
43 USE finter_mixed_mod
44C-----------------------------------------------
45C I m p l i c i t T y p e s
46C-----------------------------------------------
47#include "implicit_f.inc"
48C-----------------------------------------------
49C C o m m o n B l o c k s
50C-----------------------------------------------
51#include "param_c.inc"
52#include "com04_c.inc"
53#include "com06_c.inc"
54#include "com08_c.inc"
55#include "scr14_c.inc"
56#include "scr16_c.inc"
57C-----------------------------------------------
58C D u m m y A r g u m e n t s
59C-----------------------------------------------
60 INTEGER ,INTENT(IN) :: NSENSOR
61 INTEGER IVOLU(*),NJET,IBAGJET(NIBJET,*),NPC(*),NN,SURF_NODES(NN,4),SURF_ELTYP(NN),SURF_ELEM(NN)
62 my_real RVOLU(*),RBAGJET(NRBJET,*), X(3,*), V(3,*), A(3,*), NORMAL(3,NN),TF(*),FEXT(3,*)
63 TYPE(h3d_database) :: H3D_DATA
64 TYPE (SENSOR_STR_) ,DIMENSION(NSENSOR) ,INTENT(IN) :: SENSOR_TAB
65 DOUBLE PRECISION, INTENT(INOUT) :: WFEXT
66 TYPE(python_), intent(inout) :: PYTHON
67C-----------------------------------------------
68C L o c a l V a r i a b l e s
69C-----------------------------------------------
70 INTEGER I,II,NJ1,NJ2,NJ3,IPT,IPA,IPZ,
71 . N1,N2,N3,N4,IJ,ISENS,
72 . ITYP
73 my_real pres,fx,fy,fz,p,pext,dp,q,pj,pj0,dydx,xx,yy,zz,
74 . theta,nx1,nx2,ny1,ny2,nz1,nz2,an1,an,
75 . xm,ym,zm,nx3,ny3,nz3,
76 . ps1,ps2,ps3,an2,an3,det,mu,facr,
77 . api,dist,tstart,ts,tmpo,fpt,fpa,fpz,scalt,scala,scald
78C===============================================
79 api=hundred80/pi
80C-----------------------------------------------
81 pres =rvolu(12)
82 q =rvolu(23)
83 pext =rvolu(3)
84 scalt =rvolu(26)
85 scala =rvolu(29)
86 scald =rvolu(30)
87 dp =q+pres-pext
88 DO i=1,nn
89C
90 IF(surf_eltyp(i) == 3)THEN
91 p=dp*fourth
92 ii=surf_elem(i)
93C
94 fx=p*normal(1,i)
95 fy=p*normal(2,i)
96 fz=p*normal(3,i)
97!
98 n1 = surf_nodes(i,1)
99 n2 = surf_nodes(i,2)
100 n3 = surf_nodes(i,3)
101 n4 = surf_nodes(i,4)
102C
103 a(1,n1)=a(1,n1)+fx
104 a(2,n1)=a(2,n1)+fy
105 a(3,n1)=a(3,n1)+fz
106C
107 a(1,n2)=a(1,n2)+fx
108 a(2,n2)=a(2,n2)+fy
109 a(3,n2)=a(3,n2)+fz
110C
111 a(1,n3)=a(1,n3)+fx
112 a(2,n3)=a(2,n3)+fy
113 a(3,n3)=a(3,n3)+fz
114C
115 a(1,n4)=a(1,n4)+fx
116 a(2,n4)=a(2,n4)+fy
117 a(3,n4)=a(3,n4)+fz
118 IF(anim_v(5)+outp_v(5)+h3d_data%N_VECT_FINT+anim_v(6)+outp_v(6)+h3d_data%N_VECT_FEXT >0) THEN
119 fext(1,n1) = fext(1,n1)+fx
120 fext(2,n1) = fext(2,n1)+fy
121 fext(3,n1) = fext(3,n1)+fz
122 fext(1,n2) = fext(1,n2)+fx
123 fext(2,n2) = fext(2,n2)+fy
124 fext(3,n2) = fext(3,n2)+fz
125 fext(1,n3) = fext(1,n3)+fx
126 fext(2,n3) = fext(2,n3)+fy
127 fext(3,n3) = fext(3,n3)+fz
128 fext(1,n4) = fext(1,n4)+fx
129 fext(2,n4) = fext(2,n4)+fy
130 fext(3,n4) = fext(3,n4)+fz
131 ENDIF
132 ELSEIF(surf_eltyp(i) == 7)THEN
133 p=dp/3.
134 ii=surf_elem(i) + numelc
135C
136 fx=p*normal(1,i)
137 fy=p*normal(2,i)
138 fz=p*normal(3,i)
139!
140 n1 = surf_nodes(i,1)
141 n2 = surf_nodes(i,2)
142 n3 = surf_nodes(i,3)
143C
144 a(1,n1)=a(1,n1)+fx
145 a(2,n1)=a(2,n1)+fy
146 a(3,n1)=a(3,n1)+fz
147C
148 a(1,n2)=a(1,n2)+fx
149 a(2,n2)=a(2,n2)+fy
150 a(3,n2)=a(3,n2)+fz
151C
152 a(1,n3)=a(1,n3)+fx
153 a(2,n3)=a(2,n3)+fy
154 a(3,n3)=a(3,n3)+fz
155 IF(anim_v(5)+outp_v(5)+h3d_data%N_VECT_FINT+anim_v(6)+outp_v(6)+h3d_data%N_VECT_FEXT >0) THEN
156 fext(1,n1) = fext(1,n1)+fx
157 fext(2,n1) = fext(2,n1)+fy
158 fext(3,n1) = fext(3,n1)+fz
159 fext(1,n2) = fext(1,n2)+fx
160 fext(2,n2) = fext(2,n2)+fy
161 fext(3,n2) = fext(3,n2)+fz
162 fext(1,n3) = fext(1,n3)+fx
163 fext(2,n3) = fext(2,n3)+fy
164 fext(3,n3) = fext(3,n3)+fz
165 ENDIF
166 ELSE
167 p=dp*fourth
168 ii=i+numelc+numeltg
169C
170 fx=p*normal(1,i)
171 fy=p*normal(2,i)
172 fz=p*normal(3,i)
173!
174 n1 = surf_nodes(i,1)
175 n2 = surf_nodes(i,2)
176 n3 = surf_nodes(i,3)
177 n4 = surf_nodes(i,4)
178C
179 a(1,n1)=a(1,n1)+fx
180 a(2,n1)=a(2,n1)+fy
181 a(3,n1)=a(3,n1)+fz
182C
183 a(1,n2)=a(1,n2)+fx
184 a(2,n2)=a(2,n2)+fy
185 a(3,n2)=a(3,n2)+fz
186C
187 a(1,n3)=a(1,n3)+fx
188 a(2,n3)=a(2,n3)+fy
189 a(3,n3)=a(3,n3)+fz
190C
191 a(1,n4)=a(1,n4)+fx
192 a(2,n4)=a(2,n4)+fy
193 a(3,n4)=a(3,n4)+fz
194 IF(anim_v(5)+outp_v(5)+h3d_data%N_VECT_FINT+anim_v(6)+outp_v(6)+h3d_data%N_VECT_FEXT >0) THEN
195 fext(1,n1) = fext(1,n1)+fx
196 fext(2,n1) = fext(2,n1)+fy
197 fext(3,n1) = fext(3,n1)+fz
198 fext(1,n2) = fext(1,n2)+fx
199 fext(2,n2) = fext(2,n2)+fy
200 fext(3,n2) = fext(3,n2)+fz
201 fext(1,n3) = fext(1,n3)+fx
202 fext(2,n3) = fext(2,n3)+fy
203 fext(3,n3) = fext(3,n3)+fz
204 fext(1,n4) = fext(1,n4)+fx
205 fext(2,n4) = fext(2,n4)+fy
206 fext(3,n4) = fext(3,n4)+fz
207 ENDIF
208 ENDIF
209 ENDDO
210C
211 ityp=ivolu(2)
212 IF(ityp /= 4 .AND. ityp /= 5 .AND. ityp /= 7 .AND. ityp /= 9)RETURN
213C-------------------------------------------
214C INJECTEURS
215C-------------------------------------------
216 DO ij =1,njet
217 nj1 = ibagjet( 5,ij)
218 nj2 = ibagjet( 6,ij)
219 nj3 = ibagjet( 7,ij)
220 ipt = ibagjet( 8,ij)
221 ipa = ibagjet( 9,ij)
222 ipz = ibagjet(10,ij)
223 fpt = rbagjet(12,ij)
224 fpa = rbagjet(13,ij)
225 fpz = rbagjet(14,ij)
226C
227 isens=ibagjet(4,ij)
228 IF(isens==0)THEN
229 tstart=zero
230 ELSE
231 tstart=sensor_tab(isens)%TSTART
232 ENDIF
233C
234 IF(nj1 /= 0 .AND. tt >= tstart)THEN
235 ts=tt-tstart
236 pj0=fpt*finter_mixed(python,nfunct,ipt,ts*scalt,npc,tf)
237 DO i=1,nn
238 IF(surf_eltyp(i)==3)THEN
239 pj=fourth*pj0
240C
241 n1 = surf_nodes(i,1)
242 n2 = surf_nodes(i,2)
243 n3 = surf_nodes(i,3)
244 n4 = surf_nodes(i,4)
245C
246 ii=surf_elem(i)
247C
248 xx = fourth*(x(1,n1)+x(1,n2)+x(1,n3)+x(1,n4))
249 yy = fourth*(x(2,n1)+x(2,n2)+x(2,n3)+x(2,n4))
250 zz = fourth*(x(3,n1)+x(3,n2)+x(3,n3)+x(3,n4))
251C
252 xm=half*(x(1,nj1)+x(1,nj3))
253 ym=half*(x(2,nj1)+x(2,nj3))
254 zm=half*(x(3,nj1)+x(3,nj3))
255
256C
257 nx1 = xx-xm
258 ny1 = yy-ym
259 nz1 = zz-zm
260C
261C decomposition de (M,P) sur (M,N2) et (M,N3)
262 nx2 = x(1,nj2)-xm
263 ny2 = x(2,nj2)-ym
264 nz2 = x(3,nj2)-zm
265C
266 nx3 = x(1,nj3)-xm
267 ny3 = x(2,nj3)-ym
268 nz3 = x(3,nj3)-zm
269C
270 ps1 = nx1*nx2+ny1*ny2+nz1*nz2
271 ps2 = nx2*nx3+ny2*ny3+nz2*nz3
272 ps3 = nx1*nx3+ny1*ny3+nz1*nz3
273 an2 = nx2*nx2+ny2*ny2+nz2*nz2
274 an3 = nx3*nx3+ny3*ny3+nz3*nz3
275 det = ps2*ps2-an2*an3
276C LAMBDA = (PS3*PS2-PS1*AN3)/SIGN(MAX(EM30,ABS(DET)),DET)
277 mu = (ps2*ps1-ps3*an2)/sign(max(em30,abs(det)),det)
278C
279 facr =min(one,max(-one,mu))
280 nx1=nx1-facr*nx3
281 ny1=ny1-facr*ny3
282 nz1=nz1-facr*nz3
283C
284 an1 = (nx1**2+ny1**2+nz1**2)
285 an = max(em30,sqrt((normal(1,i)**2+normal(2,i)**2+normal(3,i)**2)*an1))
286 pj=pj*max(zero,(nx1*normal(1,i)+ny1*normal(2,i)+nz1*normal(3,i))/an)
287 an = max(em30,sqrt((nx2**2+ny2**2+nz2**2)*an1))
288 tmpo = (nx1*nx2+ny1*ny2+nz1*nz2)/an
289 tmpo = sign(min(one,abs(tmpo)),tmpo)
290 theta=api*acos(tmpo)
291 pj=pj*fpa*finter_mixed(python,nfunct,ipa,theta*scala,npc,tf)
292 dist = sqrt(an1)
293 IF(ipz/=0)pj=pj*fpz*finter_mixed(python,nfunct,ipz,dist*scald,npc,tf)
294C
295 fx=pj*normal(1,i)
296 fy=pj*normal(2,i)
297 fz=pj*normal(3,i)
298C
299 a(1,n1)=a(1,n1)+fx
300 a(2,n1)=a(2,n1)+fy
301 a(3,n1)=a(3,n1)+fz
302C
303 a(1,n2)=a(1,n2)+fx
304 a(2,n2)=a(2,n2)+fy
305 a(3,n2)=a(3,n2)+fz
306C
307 a(1,n3)=a(1,n3)+fx
308 a(2,n3)=a(2,n3)+fy
309 a(3,n3)=a(3,n3)+fz
310C
311 a(1,n4)=a(1,n4)+fx
312 a(2,n4)=a(2,n4)+fy
313 a(3,n4)=a(3,n4)+fz
314C
315 IF(anim_v(5)+outp_v(5)+h3d_data%N_VECT_FINT+anim_v(6)+outp_v(6)+h3d_data%N_VECT_FEXT >0) THEN
316 fext(1,n1) = fext(1,n1)+fx
317 fext(2,n1) = fext(2,n1)+fy
318 fext(3,n1) = fext(3,n1)+fz
319 fext(1,n2) = fext(1,n2)+fx
320 fext(2,n2) = fext(2,n2)+fy
321 fext(3,n2) = fext(3,n2)+fz
322 fext(1,n3) = fext(1,n3)+fx
323 fext(2,n3) = fext(2,n3)+fy
324 fext(3,n3) = fext(3,n3)+fz
325 fext(1,n4) = fext(1,n4)+fx
326 fext(2,n4) = fext(2,n4)+fy
327 fext(3,n4) = fext(3,n4)+fz
328 ENDIF
329C
330 wfext=wfext+dt1*(fx*(v(1,n1)+v(1,n2)+v(1,n3)+v(1,n4))
331 + +fy*(v(2,n1)+v(2,n2)+v(2,n3)+v(2,n4))
332 + +fz*(v(3,n1)+v(3,n2)+v(3,n3)+v(3,n4)))
333 ELSEIF(surf_eltyp(i)==7)THEN
334 pj=pj0*third
335C
336 n1 = surf_nodes(i,1)
337 n2 = surf_nodes(i,2)
338 n3 = surf_nodes(i,3)
339C
340 ii=surf_elem(i) + numelc
341C
342 xx = (x(1,n1)+x(1,n2)+x(1,n3)) * third
343 yy = (x(2,n1)+x(2,n2)+x(2,n3)) * third
344 zz = (x(3,n1)+x(3,n2)+x(3,n3)) * third
345C
346 xm=0.5*(x(1,nj1)+x(1,nj3))
347 ym=0.5*(x(2,nj1)+x(2,nj3))
348 zm=0.5*(x(3,nj1)+x(3,nj3))
349C
350 nx1 = xx-xm
351 ny1 = yy-ym
352 nz1 = zz-zm
353C
354C decomposition de (M,P) sur (M,N2) et (M,N3)
355 nx2 = x(1,nj2)-xm
356 ny2 = x(2,nj2)-ym
357 nz2 = x(3,nj2)-zm
358C
359 nx3 = x(1,nj3)-xm
360 ny3 = x(2,nj3)-ym
361 nz3 = x(3,nj3)-zm
362C
363 ps1 = nx1*nx2+ny1*ny2+nz1*nz2
364 ps2 = nx2*nx3+ny2*ny3+nz2*nz3
365 ps3 = nx1*nx3+ny1*ny3+nz1*nz3
366 an2 = nx2*nx2+ny2*ny2+nz2*nz2
367 an3 = nx3*nx3+ny3*ny3+nz3*nz3
368 det = ps2*ps2-an2*an3
369C LAMBDA = (PS3*PS2-PS1*AN3)/SIGN(MAX(EM30,ABS(DET)),DET)
370 mu = (ps2*ps1-ps3*an2)/sign(max(em30,abs(det)),det)
371C
372 facr =min(one,max(-one,mu))
373 nx1=nx1-facr*nx3
374 ny1=ny1-facr*ny3
375 nz1=nz1-facr*nz3
376C
377 an1 = (nx1**2+ny1**2+nz1**2)
378 an = max(em30,sqrt((normal(1,i)**2+normal(2,i)**2+normal(3,i)**2)*an1))
379 pj=pj*max(zero,(nx1*normal(1,i)+ny1*normal(2,i)+nz1*normal(3,i))/an)
380 an = max(em30,sqrt((nx2**2+ny2**2+nz2**2)*an1))
381 tmpo = (nx1*nx2+ny1*ny2+nz1*nz2)/an
382 tmpo = sign(min(one,abs(tmpo)),tmpo)
383 theta=api*acos(tmpo)
384 pj=pj*fpa*finter_mixed(python,nfunct,ipa,theta*scala,npc,tf)
385 dist = sqrt(an1)
386 IF(ipz/=0)pj=pj*fpz*finter_mixed(python,nfunct,ipz,dist*scald,npc,tf)
387C
388 fx=pj*normal(1,i)
389 fy=pj*normal(2,i)
390 fz=pj*normal(3,i)
391C
392 a(1,n1)=a(1,n1)+fx
393 a(2,n1)=a(2,n1)+fy
394 a(3,n1)=a(3,n1)+fz
395C
396 a(1,n2)=a(1,n2)+fx
397 a(2,n2)=a(2,n2)+fy
398 a(3,n2)=a(3,n2)+fz
399C
400 a(1,n3)=a(1,n3)+fx
401 a(2,n3)=a(2,n3)+fy
402 a(3,n3)=a(3,n3)+fz
403C
404 IF(anim_v(5)+outp_v(5)+h3d_data%N_VECT_FINT+
405 . anim_v(6)+outp_v(6)+h3d_data%N_VECT_FEXT >0) THEN
406 fext(1,n1) = fext(1,n1)+fx
407 fext(2,n1) = fext(2,n1)+fy
408 fext(3,n1) = fext(3,n1)+fz
409 fext(1,n2) = fext(1,n2)+fx
410 fext(2,n2) = fext(2,n2)+fy
411 fext(3,n2) = fext(3,n2)+fz
412 fext(1,n3) = fext(1,n3)+fx
413 fext(2,n3) = fext(2,n3)+fy
414 fext(3,n3) = fext(3,n3)+fz
415 ENDIF
416C
417 wfext=wfext+dt1*(fx*(v(1,n1)+v(1,n2)+v(1,n3))
418 + +fy*(v(2,n1)+v(2,n2)+v(2,n3))
419 + +fz*(v(3,n1)+v(3,n2)+v(3,n3)))
420 ELSE
421 pj=fourth*pj0
422C
423! N1 = ISX(1,I)
424! N2 = ISX(2,I)
425! N3 = ISX(3,I)
426! N4 = ISX(4,I)
427 n1 = surf_nodes(i,1)
428 n2 = surf_nodes(i,2)
429 n3 = surf_nodes(i,3)
430 n4 = surf_nodes(i,4)
431C
432 ii=i+numelc+numeltg
433C
434 xx = fourth*(x(1,n1)+x(1,n2)+x(1,n3)+x(1,n4))
435 yy = fourth*(x(2,n1)+x(2,n2)+x(2,n3)+x(2,n4))
436 zz = fourth*(x(3,n1)+x(3,n2)+x(3,n3)+x(3,n4))
437C
438 xm=half*(x(1,nj1)+x(1,nj3))
439 ym=half*(x(2,nj1)+x(2,nj3))
440 zm=half*(x(3,nj1)+x(3,nj3))
441C
442 nx1 = xx-xm
443 ny1 = yy-ym
444 nz1 = zz-zm
445C
446C decomposition de (M,P) sur (M,N2) et (M,N3)
447 nx2 = x(1,nj2)-xm
448 ny2 = x(2,nj2)-ym
449 nz2 = x(3,nj2)-zm
450C
451 nx3 = x(1,nj3)-xm
452 ny3 = x(2,nj3)-ym
453 nz3 = x(3,nj3)-zm
454C
455 ps1 = nx1*nx2+ny1*ny2+nz1*nz2
456 ps2 = nx2*nx3+ny2*ny3+nz2*nz3
457 ps3 = nx1*nx3+ny1*ny3+nz1*nz3
458 an2 = nx2*nx2+ny2*ny2+nz2*nz2
459 an3 = nx3*nx3+ny3*ny3+nz3*nz3
460 det = ps2*ps2-an2*an3
461C LAMBDA = (PS3*PS2-PS1*AN3)/SIGN(MAX(EM30,ABS(DET)),DET)
462 mu = (ps2*ps1-ps3*an2)/sign(max(em30,abs(det)),det)
463C
464 facr =min(one,max(-one,mu))
465 nx1=nx1-facr*nx3
466 ny1=ny1-facr*ny3
467 nz1=nz1-facr*nz3
468C
469 an1 = (nx1**2+ny1**2+nz1**2)
470 an = max(em30,sqrt((normal(1,i)**2+normal(2,i)**2+normal(3,i)**2)*an1))
471 pj=pj*max(zero,(nx1*normal(1,i)+ny1*normal(2,i)+nz1*normal(3,i))/an)
472 an = max(em30,sqrt((nx2**2+ny2**2+nz2**2)*an1))
473 tmpo = (nx1*nx2+ny1*ny2+nz1*nz2)/an
474 tmpo = sign(min(one,abs(tmpo)),tmpo)
475 theta=api*acos(tmpo)
476 pj=pj*fpa*finter_mixed(python,nfunct,ipa,theta*scala,npc,tf)
477 dist = sqrt(an1)
478 IF(ipz/=0)pj=pj*fpz*finter_mixed(python,nfunct,ipz,dist*scald,npc,tf)
479C
480 fx=pj*normal(1,i)
481 fy=pj*normal(2,i)
482 fz=pj*normal(3,i)
483C
484 a(1,n1)=a(1,n1)+fx
485 a(2,n1)=a(2,n1)+fy
486 a(3,n1)=a(3,n1)+fz
487C
488 a(1,n2)=a(1,n2)+fx
489 a(2,n2)=a(2,n2)+fy
490 a(3,n2)=a(3,n2)+fz
491C
492 a(1,n3)=a(1,n3)+fx
493 a(2,n3)=a(2,n3)+fy
494 a(3,n3)=a(3,n3)+fz
495C
496 a(1,n4)=a(1,n4)+fx
497 a(2,n4)=a(2,n4)+fy
498 a(3,n4)=a(3,n4)+fz
499C
500 IF(anim_v(5)+outp_v(5)+h3d_data%N_VECT_FINT+
501 . anim_v(6)+outp_v(6)+h3d_data%N_VECT_FEXT >0) THEN
502 fext(1,n1) = fext(1,n1)+fx
503 fext(2,n1) = fext(2,n1)+fy
504 fext(3,n1) = fext(3,n1)+fz
505 fext(1,n2) = fext(1,n2)+fx
506 fext(2,n2) = fext(2,n2)+fy
507 fext(3,n2) = fext(3,n2)+fz
508 fext(1,n3) = fext(1,n3)+fx
509 fext(2,n3) = fext(2,n3)+fy
510 fext(3,n3) = fext(3,n3)+fz
511 fext(1,n4) = fext(1,n4)+fx
512 fext(2,n4) = fext(2,n4)+fy
513 fext(3,n4) = fext(3,n4)+fz
514 ENDIF
515C
516 wfext=wfext+dt1*(fx*(v(1,n1)+v(1,n2)+v(1,n3)+v(1,n4))
517 + +fy*(v(2,n1)+v(2,n2)+v(2,n3)+v(2,n4))
518 + +fz*(v(3,n1)+v(3,n2)+v(3,n3)+v(3,n4)))
519 ENDIF
520 ENDDO
521C
522 ENDIF
523 ENDDO
524C
525 RETURN
526 END
#define min(a, b)
Definition macros.h:20
#define max(a, b)
Definition macros.h:21
subroutine volpre(ivolu, rvolu, njet, ibagjet, rbagjet, nsensor, sensor_tab, x, v, a, normal, npc, tf, nn, surf_nodes, fext, h3d_data, surf_eltyp, surf_elem, wfext, python)
Definition volpres.F:37