OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
multi_fvm2fem.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!|| multi_fvm2fem ../engine/source/multifluid/multi_fvm2fem.F
25!||--- called by ------------------------------------------------------
26!|| alemain ../engine/source/ale/alemain.F
27!||--- calls -----------------------------------------------------
28!|| a4mass3 ../engine/source/elements/solid/solide4/a4mass3.F
29!|| a4mass3p ../engine/source/elements/solid/solide4/a4mass3p.F
30!|| amass3 ../engine/source/elements/solid/solide/amass3.F
31!|| amass3p ../engine/source/elements/solid/solide/amass3p.F
32!|| initbuf ../engine/share/resol/initbuf.F
33!|| s4cumu3 ../engine/source/elements/solid/solide4/s4cumu3.F
34!|| s4cumu3p ../engine/source/elements/solid/solide4/s4cumu3p.F
35!|| scumu3 ../engine/source/elements/solid/solide/scumu3.F
36!|| scumu3p ../engine/source/elements/solid/solide/scumu3p.F
37!|| snorm3 ../engine/source/multifluid/snorm3.F
38!|| snorm3t ../engine/source/multifluid/snorm3t.F
39!||--- uses -----------------------------------------------------
40!|| elbufdef_mod ../common_source/modules/mat_elem/elbufdef_mod.F90
41!|| element_mod ../common_source/modules/elements/element_mod.F90
42!|| initbuf_mod ../engine/share/resol/initbuf.F
43!|| multi_fvm_mod ../common_source/modules/ale/multi_fvm_mod.F90
44!||====================================================================
45 SUBROUTINE multi_fvm2fem(TIMESTEP, ELBUF_TAB, ITASK,
46 . IXS, IXQ, IPARG, XGRID, ACCELE, VEL, WGRID, MS, MSNF, VEUL,
47 . STIFN, FSKY, IADS, FSKYM,
48 . CONDN, CONDNSKY, MULTI_FVM,NODADT_THERM)
49C-----------------------------------------------
50C M o d u l e s
51C-----------------------------------------------
52 USE initbuf_mod
53 USE elbufdef_mod
54 USE multi_fvm_mod
55 use element_mod , only : nixs,nixq
56C-----------------------------------------------
57C I m p l i c i t T y p e s
58C-----------------------------------------------
59#include "implicit_f.inc"
60#include "comlock.inc"
61C-----------------------------------------------
62C G l o b a l P a r a m e t e r s
63C-----------------------------------------------
64#include "mvsiz_p.inc"
65C-----------------------------------------------
66C C o m m o n B l o c k s
67C-----------------------------------------------
68#include "vect01_c.inc"
69#include "com01_c.inc"
70#include "com08_c.inc"
71#include "parit_c.inc"
72#include "param_c.inc"
73#include "task_c.inc"
74C-----------------------------------------------
75C D u m m y A r g u m e n t s
76C-----------------------------------------------
77 TYPE (ELBUF_STRUCT_), TARGET, DIMENSION(NGROUP), INTENT(IN) :: ELBUF_TAB
78 INTEGER, INTENT(IN) :: NODADT_THERM
79 INTEGER, INTENT(IN) :: ITASK, IPARG(NPARG, *), IXS(NIXS, *), IXQ(NIXQ, *),
80 . iads(8, *)
81
82 my_real, INTENT(IN) ::
83 . xgrid(3, *), wgrid(3, *), veul(*), vel(3, *), timestep
84 my_real, INTENT(INOUT) :: accele(*)
85 my_real, INTENT(INOUT) ::
86 . ms(*), msnf(*)
87 my_real, INTENT(INOUT) :: fskym(*), stifn(*), fsky(8,lsky),
88 . condn(*), condnsky(*)
89 TYPE(multi_fvm_struct), INTENT(IN) :: MULTI_FVM
90
91C-----------------------------------------------
92C L o c a l V a r i a b l e s
93C-----------------------------------------------
94 INTEGER :: I, II, K, NF1, ISTRA, ISOLNOD, NSG, IPLA, NG, NEL, NVC
95 my_real
96 . PRES(MVSIZ)
97 my_real :: norm(3, 6, mvsiz), surf(6, mvsiz), wfac(3, 6, mvsiz)
98 my_real
99 . xg(mvsiz, 8, 3)
100 my_real
101 . xx(3), yy(3)
102 my_real
103 . sti(mvsiz), fr_wav(mvsiz), them(mvsiz,8), conde(mvsiz)
104 my_real
105 . mx1(mvsiz),my1(mvsiz),mz1(mvsiz),
106 . mx2(mvsiz),my2(mvsiz),mz2(mvsiz),
107 . mx3(mvsiz),my3(mvsiz),mz3(mvsiz),
108 . mx4(mvsiz),my4(mvsiz),mz4(mvsiz),
109 . mx5(mvsiz),my5(mvsiz),mz5(mvsiz),
110 . mx6(mvsiz),my6(mvsiz),mz6(mvsiz),
111 . mx7(mvsiz),my7(mvsiz),mz7(mvsiz),
112 . mx8(mvsiz),my8(mvsiz),mz8(mvsiz),
113 . f11(mvsiz),f21(mvsiz),f31(mvsiz),
114 . f12(mvsiz),f22(mvsiz),f32(mvsiz),
115 . f13(mvsiz),f23(mvsiz),f33(mvsiz),
116 . f14(mvsiz),f24(mvsiz),f34(mvsiz),
117 . f15(mvsiz),f25(mvsiz),f35(mvsiz),
118 . f16(mvsiz),f26(mvsiz),f36(mvsiz),
119 . f17(mvsiz),f27(mvsiz),f37(mvsiz),
120 . f18(mvsiz),f28(mvsiz),f38(mvsiz),
121 . dmass1(mvsiz), dmass2(mvsiz), dmass3(mvsiz), dmass4(mvsiz),
122 . dmass5(mvsiz), dmass6(mvsiz), dmass7(mvsiz), dmass8(mvsiz),
123 . x(3), xc(3)
124 integer
125 . nc1(mvsiz), nc2(mvsiz), nc3(mvsiz), nc4(mvsiz),
126 . nc5(mvsiz), nc6(mvsiz), nc7(mvsiz), nc8(mvsiz)
127 INTEGER :: IBID
128 my_real
129 . AR, FR_WAVE, FTHE, FTHESKY, FFSKY, T1,T2,T3
130
131 TYPE(g_bufel_) ,POINTER :: GBUF
132
133C-----------------------------------------------
134C S o u r c e L i n e s
135C-----------------------------------------------
136
137 DO ng=itask+1,ngroup,nthread
138C ALE ON / OFF
139 IF (tt > zero .AND. iparg(76, ng) == 1) cycle ! --> OFF
140 IF(iparg(8,ng) /= 1) THEN
141C
142 CALL initbuf(iparg ,ng ,
143 2 mtn ,nel ,nft ,iad ,ity ,
144 3 npt ,jale ,ismstr ,jeul ,jtur ,
145 4 jthe ,jlag ,jmult ,jhbe ,jivf ,
146 5 nvaux ,jpor ,jcvt ,jclose ,ipla ,
147 6 irep ,iint ,igtyp ,israt ,isrot ,
148 7 icsen ,isorth ,isorthg ,ifailure,jsms )
149 IF (mtn == 151) THEN
150 gbuf => elbuf_tab(ng)%GBUF
151 IF(jlag /= 1 .AND. ity<=2) THEN
152 nsg =iparg(10,ng)
153 nvc =iparg(19,ng)
154 isolnod=iparg(28,ng)
155 istra =iparg(44,ng)
156 jsph =0
157 jplasol=ipla
158 isph2sol = 0
159 ipartsph = iparg(69,ng)
160 lft=1
161 llt=nel
162 nf1=nft+1
163 IF (ity == 1 .AND. isolnod /= 4) THEN
164C HEXA CASE
165 gbuf => elbuf_tab(ng)%GBUF
166
167 CALL snorm3(nel, nft, jale, ixs, xgrid, wgrid,
168 . norm(1:3, 1:6, 1:nel), wfac(1:3, 1:6, 1:nel), surf(1:6, 1:nel))
169
170 f11(:) = zero ; f21(:) = zero ; f31(:) = zero
171 f12(:) = zero ; f22(:) = zero ; f32(:) = zero
172 f13(:) = zero ; f23(:) = zero ; f33(:) = zero
173 f14(:) = zero ; f24(:) = zero ; f34(:) = zero
174 f15(:) = zero ; f25(:) = zero ; f35(:) = zero
175 f16(:) = zero ; f26(:) = zero ; f36(:) = zero
176 f17(:) = zero ; f27(:) = zero ; f37(:) = zero
177 f18(:) = zero ; f28(:) = zero ; f38(:) = zero
178C Assembly of nodal forces
179 DO ii = lft, llt
180 i = ii + nft
181 nc1(ii) = ixs(2, i)
182 nc2(ii) = ixs(3, i)
183 nc3(ii) = ixs(4, i)
184 nc4(ii) = ixs(5, i)
185 nc5(ii) = ixs(6, i)
186 nc6(ii) = ixs(7, i)
187 nc7(ii) = ixs(8, i)
188 nc8(ii) = ixs(9, i)
189C Pressure
190 pres(ii) = third * (gbuf%SIG(ii) + gbuf%SIG(ii + nel) + gbuf%SIG(ii + 2 * nel))
191C Node 1
192 f11(ii) = f11(ii) - fourth * pres(ii) *
193 . (norm(1, 1, ii) * surf(1, ii) + norm(1, 4, ii) * surf(4, ii) + norm(1, 6, ii) * surf(6, ii))
194 f21(ii) = f21(ii) - fourth * pres(ii) *
195 . (norm(2, 1, ii) * surf(1, ii) + norm(2, 4, ii) * surf(4, ii) + norm(2, 6, ii) * surf(6, ii))
196 f31(ii) = f31(ii) - fourth * pres(ii) *
197 . (norm(3, 1, ii) * surf(1, ii) + norm(3, 4, ii) * surf(4, ii) + norm(3, 6, ii) * surf(6, ii))
198C Node 2
199 f12(ii) = f12(ii) - fourth * pres(ii) *
200 . (norm(1, 1, ii) * surf(1, ii) + norm(1, 4, ii) * surf(4, ii) + norm(1, 5, ii) * surf(5, ii))
201 f22(ii) = f22(ii) - fourth * pres(ii) *
202 . (norm(2, 1, ii) * surf(1, ii) + norm(2, 4, ii) * surf(4, ii) + norm(2, 5, ii) * surf(5, ii))
203 f32(ii) = f32(ii) - fourth * pres(ii) *
204 . (norm(3, 1, ii) * surf(1, ii) + norm(3, 4, ii) * surf(4, ii) + norm(3, 5, ii) * surf(5, ii))
205C Node 3
206 f13(ii) = f13(ii) - fourth * pres(ii) *
207 . (norm(1, 1, ii) * surf(1, ii) + norm(1, 2, ii) * surf(2, ii) + norm(1, 5, ii) * surf(5, ii))
208 f23(ii) = f23(ii) - fourth * pres(ii) *
209 . (norm(2, 1, ii) * surf(1, ii) + norm(2, 2, ii) * surf(2, ii) + norm(2, 5, ii) * surf(5, ii))
210 f33(ii) = f33(ii) - fourth * pres(ii) *
211 . (norm(3, 1, ii) * surf(1, ii) + norm(3, 2, ii) * surf(2, ii) + norm(3, 5, ii) * surf(5, ii))
212C Node 4
213 f14(ii) = f14(ii) - fourth * pres(ii) *
214 . (norm(1, 1, ii) * surf(1, ii) + norm(1, 2, ii) * surf(2, ii) + norm(1, 6, ii) * surf(6, ii))
215 f24(ii) = f24(ii) - fourth * pres(ii) *
216 . (norm(2, 1, ii) * surf(1, ii) + norm(2, 2, ii) * surf(2, ii) + norm(2, 6, ii) * surf(6, ii))
217 f34(ii) = f34(ii) - fourth * pres(ii) *
218 . (norm(3, 1, ii) * surf(1, ii) + norm(3, 2, ii) * surf(2, ii) + norm(3, 6, ii) * surf(6, ii))
219C Node 5
220 f15(ii) = f15(ii) - fourth * pres(ii) *
221 . (norm(1, 3, ii) * surf(3, ii) + norm(1, 4, ii) * surf(4, ii) + norm(1, 6, ii) * surf(6, ii))
222 f25(ii) = f25(ii) - fourth * pres(ii) *
223 . (norm(2, 3, ii) * surf(3, ii) + norm(2, 4, ii) * surf(4, ii) + norm(2, 6, ii) * surf(6, ii))
224 f35(ii) = f35(ii) - fourth * pres(ii) *
225 . (norm(3, 3, ii) * surf(3, ii) + norm(3, 4, ii) * surf(4, ii) + norm(3, 6, ii) * surf(6, ii))
226C Node 6
227 f16(ii) = f16(ii) - fourth * pres(ii) *
228 . (norm(1, 3, ii) * surf(3, ii) + norm(1, 4, ii) * surf(4, ii) + norm(1, 5, ii) * surf(5, ii))
229 f26(ii) = f26(ii) - fourth * pres(ii) *
230 . (norm(2, 3, ii) * surf(3, ii) + norm(2, 4, ii) * surf(4, ii) + norm(2, 5, ii) * surf(5, ii))
231 f36(ii) = f36(ii) - fourth * pres(ii) *
232 . (norm(3, 3, ii) * surf(3, ii) + norm(3, 4, ii) * surf(4, ii) + norm(3, 5, ii) * surf(5, ii))
233C Node 7
234 f17(ii) = f17(ii) - fourth * pres(ii) *
235 . (norm(1, 2, ii) * surf(2, ii) + norm(1, 3, ii) * surf(3, ii) + norm(1, 5, ii) * surf(5, ii))
236 f27(ii) = f27(ii) - fourth * pres(ii) *
237 . (norm(2, 2, ii) * surf(2, ii) + norm(2, 3, ii) * surf(3, ii) + norm(2, 5, ii) * surf(5, ii))
238 f37(ii) = f37(ii) - fourth * pres(ii) *
239 . (norm(3, 2, ii) * surf(2, ii) + norm(3, 3, ii) * surf(3, ii) + norm(3, 5, ii) * surf(5, ii))
240C Node 8
241 f18(ii) = f18(ii) - fourth * pres(ii) *
242 . (norm(1, 2, ii) * surf(2, ii) + norm(1, 3, ii) * surf(3, ii) + norm(1, 6, ii) * surf(6, ii))
243 f28(ii) = f28(ii) - fourth * pres(ii) *
244 . (norm(2, 2, ii) * surf(2, ii) + norm(2, 3, ii) * surf(3, ii) + norm(2, 6, ii) * surf(6, ii))
245 f38(ii) = f38(ii) - fourth * pres(ii) *
246 . (norm(3, 2, ii) * surf(2, ii) + norm(3, 3, ii) * surf(3, ii) + norm(3, 6, ii) * surf(6, ii))
247 ENDDO
248
249C--------------------------
250C UPDATE OF MASSES
251C----------------------------
252 IF(iparit == 0)THEN
253 CALL amass3(
254 1 ms, gbuf%RHO, veul(lveul*nft+44),gbuf%TAG22,
255 2 gbuf%VOL, nc1, nc2, nc3,
256 3 nc4, nc5, nc6, nc7,
257 4 nc8, msnf, nvc, gbuf%OFF,
258 5 ixs, nel, jeul)
259 ELSE
260 CALL amass3p(
261 1 fskym, gbuf%RHO, veul(lveul*nft+44),gbuf%TAG22,
262 2 gbuf%VOL, iads, gbuf%OFF, ixs,
263 3 nel, nft, jeul)
264 ENDIF
265
266C ASSEMBLE
267 sti(:) = zero
268 fr_wav(:) = zero
269 ibid = 0
270 IF(iparit == 0)THEN
271 CALL scumu3(
272 1 gbuf%OFF,accele, nc1, nc2,
273 2 nc3, nc4, nc5, nc6,
274 3 nc7, nc8, stifn, sti,
275 4 f11, f21, f31, f12,
276 5 f22, f32, f13, f23,
277 6 f33, f14, f24, f34,
278 7 f15, f25, f35, f16,
279 8 f26, f36, f17, f27,
280 9 f37, f18, f28, f38,
281 a nvc, ar, fr_wave, fr_wav,
282 b mx1, my1, mz1, mx2,
283 c my2, mz2, mx3, my3,
284 d mz3, mx4, my4, mz4,
285 e mx5, my5, mz5, mx6,
286 f my6, mz6, mx7, my7,
287 g mz7, mx8, my8, mz8,
288 h them, fthe, condn, conde,
289 i nel, jthe, isrot, ipartsph,nodadt_therm)
290 ELSE
291 CALL scumu3p(
292 1 gbuf%OFF,sti, fsky, fsky,
293 2 iads, f11, f21, f31,
294 3 f12, f22, f32, f13,
295 4 f23, f33, f14, f24,
296 5 f34, f15, f25, f35,
297 6 f16, f26, f36, f17,
298 7 f27, f37, f18, f28,
299 8 f38, nc1, nc2, nc3,
300 9 nc4, nc5, nc6, nc7,
301 a nc8, ar, fr_wave, fr_wav,
302 b mx1, my1, mz1, mx2,
303 c my2, mz2, mx3, my3,
304 d mz3, mx4, my4, mz4,
305 e mx5, my5, mz5, mx6,
306 f my6, mz6, mx7, my7,
307 g mz7, mx8, my8, mz8,
308 h them, fthesky, condnsky,conde,
309 i nel, nft, jthe, isrot,
310 j ipartsph,nodadt_therm)
311 ENDIF
312 ELSE IF (ity == 1 .AND. isolnod == 4) THEN
313C TETRA CASE
314 gbuf => elbuf_tab(ng)%GBUF
315C-----------------------------------------------
316C Compute nodal normals
317C-----------------------------------------------
318 CALL snorm3t(nel, nft, jale, ixs, xgrid, wgrid,
319 . norm(1:3, 1:6, 1:nel), wfac(1:3, 1:6, 1:nel), surf(1:6, 1:nel))
320 f11(:) = zero ; f21(:) = zero ; f31(:) = zero
321 f12(:) = zero ; f22(:) = zero ; f32(:) = zero
322 f13(:) = zero ; f23(:) = zero ; f33(:) = zero
323 f14(:) = zero ; f24(:) = zero ; f34(:) = zero
324 dmass1(:) = zero ; dmass2(:) = zero ; dmass3(:) = zero ; dmass4(:) = zero
325
326C Assembly of nodal forces
327 DO ii = lft, llt
328 i = ii + nft
329 nc1(ii) = ixs(2, i)
330 nc2(ii) = ixs(4, i)
331 nc3(ii) = ixs(7, i)
332 nc4(ii) = ixs(6, i)
333C Pressure
334 pres(ii) = third * (gbuf%SIG(ii) + gbuf%SIG(ii + nel) + gbuf%SIG(ii + 2 * nel))
335C Node 1
336 f11(ii) = f11(ii) - third * pres(ii) *
337 . (norm(1, 4, ii) * surf(4, ii) + norm(1, 5, ii) * surf(5, ii) + norm(1, 6, ii) * surf(6, ii))
338 f21(ii) = f21(ii) - third * pres(ii) *
339 . (norm(2, 4, ii) * surf(4, ii) + norm(2, 5, ii) * surf(5, ii) + norm(2, 6, ii) * surf(6, ii))
340 f31(ii) = f31(ii) - third * pres(ii) *
341 . (norm(3, 4, ii) * surf(4, ii) + norm(3, 5, ii) * surf(5, ii) + norm(3, 6, ii) * surf(6, ii))
342C Node 2
343 f12(ii) = f12(ii) - third * pres(ii) *
344 . (norm(1, 2, ii) * surf(2, ii) + norm(1, 5, ii) * surf(5, ii) + norm(1, 6, ii) * surf(6, ii))
345 f22(ii) = f22(ii) - third * pres(ii) *
346 . (norm(2, 2, ii) * surf(2, ii) + norm(2, 5, ii) * surf(5, ii) + norm(2, 6, ii) * surf(6, ii))
347 f32(ii) = f32(ii) - third * pres(ii) *
348 . (norm(3, 2, ii) * surf(2, ii) + norm(3, 5, ii) * surf(5, ii) + norm(3, 6, ii) * surf(6, ii))
349C Node 3
350 f13(ii) = f13(ii) - third * pres(ii) *
351 . (norm(1, 4, ii) * surf(4, ii) + norm(1, 5, ii) * surf(5, ii) + norm(1, 2, ii) * surf(2, ii))
352 f23(ii) = f23(ii) - third * pres(ii) *
353 . (norm(2, 4, ii) * surf(4, ii) + norm(2, 5, ii) * surf(5, ii) + norm(2, 2, ii) * surf(2, ii))
354 f33(ii) = f33(ii) - third * pres(ii) *
355 . (norm(3, 4, ii) * surf(4, ii) + norm(3, 5, ii) * surf(5, ii) + norm(3, 2, ii) * surf(2, ii))
356C Node 4
357 f14(ii) = f14(ii) - third * pres(ii) *
358 . (norm(1, 4, ii) * surf(4, ii) + norm(1, 2, ii) * surf(2, ii) + norm(1, 6, ii) * surf(6, ii))
359 f24(ii) = f24(ii) - third * pres(ii) *
360 . (norm(2, 4, ii) * surf(4, ii) + norm(2, 2, ii) * surf(2, ii) + norm(2, 6, ii) * surf(6, ii))
361 f34(ii) = f34(ii) - third * pres(ii) *
362 . (norm(3, 4, ii) * surf(4, ii) + norm(3, 2, ii) * surf(2, ii) + norm(3, 6, ii) * surf(6, ii))
363 ENDDO
364C--------------------------
365C UPDATE OF MASSES
366C----------------------------
367 IF (iparit == 0) THEN
368 CALL a4mass3(
369 1 ms, gbuf%RHO,gbuf%VOL,nc1,
370 2 nc2, nc3, nc4, msnf,
371 3 gbuf%OFF,nel)
372 ELSE
373 CALL a4mass3p(
374 1 fskym, gbuf%RHO,gbuf%VOL,iads,
375 2 gbuf%OFF,nel, nft)
376 ENDIF
377
378C ASSEMBLE
379 sti(:) = zero
380 fr_wav(:) = zero
381 ibid = 0
382 IF(iparit == 0)THEN
383 CALL s4cumu3(
384 1 gbuf%OFF,accele, nc1, nc2,
385 2 nc3, nc4, stifn, sti,
386 3 f11, f21, f31, f12,
387 4 f22, f32, f13, f23,
388 5 f33, f14, f24, f34,
389 6 them, fthe, condn, conde,
390 7 nel, jthe, nodadt_therm)
391 ELSE
392 CALL s4cumu3p(
393 1 gbuf%OFF,sti, fsky, fsky,
394 2 iads, f11, f21, f31,
395 3 f12, f22, f32, f13,
396 4 f23, f33, f14, f24,
397 5 f34, them, fthesky, condnsky,
398 6 conde, nel, nft, jthe, nodadt_therm)
399 ENDIF
400 ENDIF
401 ENDIF
402 ENDIF
403 ENDIF
404 ENDDO
405C
406C-----------
407 RETURN
408 END SUBROUTINE multi_fvm2fem
409
410!||====================================================================
411!|| vector_prod ../engine/source/multifluid/multi_fvm2fem.F
412!||====================================================================
413 SUBROUTINE vector_prod(X, Y, RES, FAC)
414C-----------------------------------------------
415C I m p l i c i t T y p e s
416C-----------------------------------------------
417#include "implicit_f.inc"
418 my_real, INTENT(IN) :: x(3), y(3), fac
419 my_real, INTENT(OUT) :: res(3)
420
421 res(1) = fac * (x(2) * y(3) - x(3) * y(2))
422 res(2) = fac * (x(3) * y(1) - x(1) * y(3))
423 res(3) = fac * (x(1) * y(2) - x(2) * y(1))
424 END
subroutine a4mass3(ms, rho, volu, nc1, nc2, nc3, nc4, msnf, off, nel)
Definition a4mass3.F:33
subroutine a4mass3p(fskym, rho, volu, iads, off, nel, nft)
Definition a4mass3p.F:32
subroutine accele(a, ar, v, ms, in, size_nale, nale, ms_2d, size_npby, npby)
Definition accele.F:32
subroutine amass3(ms, rho, volgp, tag22, volu, nc1, nc2, nc3, nc4, nc5, nc6, nc7, nc8, msnf, nvc, off, ixs, nel, jeul)
Definition amass3.F:39
subroutine amass3p(fskym, rho, volgp, tag22, volu, iads, off, ixs, nel, nft, jeul)
Definition amass3p.F:38
#define my_real
Definition cppsort.cpp:32
norm(diag(diag(diag(inv(mat))) -id.SOL), 2) % destroy mumps instance id.JOB
subroutine vector_prod(x, y, res, fac)
subroutine multi_fvm2fem(timestep, elbuf_tab, itask, ixs, ixq, iparg, xgrid, accele, vel, wgrid, ms, msnf, veul, stifn, fsky, iads, fskym, condn, condnsky, multi_fvm, nodadt_therm)
subroutine initbuf(iparg, ng, mtn, llt, nft, iad, ity, npt, jale, ismstr, jeul, jtur, jthe, jlag, jmult, jhbe, jivf, mid, jpor, jcvt, jclose, jpla, irep, iint, igtyp, israt, isrot, icsen, isorth, isorthg, ifailure, jsms)
Definition initbuf.F:261
subroutine s4cumu3(offg, e, nc1, nc2, nc3, nc4, stifn, sti, f11, f21, f31, f12, f22, f32, f13, f23, f33, f14, f24, f34, them, fthe, condn, conde, nel, jthe, nodadt_therm)
Definition s4cumu3.F:37
subroutine s4cumu3p(offg, sti, fsky, fskyv, iads, f11, f21, f31, f12, f22, f32, f13, f23, f33, f14, f24, f34, them, fthesky, condnsky, conde, nel, nft, jthe, nodadt_therm)
Definition s4cumu3p.F:37
subroutine scumu3(offg, e, nc1, nc2, nc3, nc4, nc5, nc6, nc7, nc8, stifn, sti, f11, f21, f31, f12, f22, f32, f13, f23, f33, f14, f24, f34, f15, f25, f35, f16, f26, f36, f17, f27, f37, f18, f28, f38, nvc, ar, fr_wave, fr_wav, mx1, my1, mz1, mx2, my2, mz2, mx3, my3, mz3, mx4, my4, mz4, mx5, my5, mz5, mx6, my6, mz6, mx7, my7, mz7, mx8, my8, mz8, them, fthe, condn, conde, nel, jthe, isrot, ipartsph, nodadt_therm)
Definition scumu3.F:55
subroutine scumu3p(offg, sti, fsky, fskyv, iads, f11, f21, f31, f12, f22, f32, f13, f23, f33, f14, f24, f34, f15, f25, f35, f16, f26, f36, f17, f27, f37, f18, f28, f38, nc1, nc2, nc3, nc4, nc5, nc6, nc7, nc8, ar, fr_wave, fr_wav, mx1, my1, mz1, mx2, my2, mz2, mx3, my3, mz3, mx4, my4, mz4, mx5, my5, mz5, mx6, my6, mz6, mx7, my7, mz7, mx8, my8, mz8, them, fthesky, condnsky, conde, nel, nft, jthe, isrot, ipartsph, nodadt_therm)
Definition scumu3p.F:56
subroutine snorm3(nel, nft, jale, ixs, xgrid, wgrid, norm, wfac, surf)
Definition snorm3.F:33
subroutine snorm3t(nel, nft, jale, ixs, xgrid, wgrid, norm, wfac, surf)
Definition snorm3t.F:35