OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
i9grd2.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!|| i9grd2 ../engine/source/interfaces/int09/i9grd2.F
25!||--- called by ------------------------------------------------------
26!|| i9wal2 ../engine/source/interfaces/int09/i9wal2.F
27!||--- calls -----------------------------------------------------
28!|| initbuf ../engine/share/resol/initbuf.F
29!||--- uses -----------------------------------------------------
30!|| elbufdef_mod ../common_source/modules/mat_elem/elbufdef_mod.F90
31!|| initbuf_mod ../engine/share/resol/initbuf.F
32!||====================================================================
33 SUBROUTINE i9grd2(IERR ,AREA ,TSTIF ,T ,VOL ,
34 2 II ,X ,IXQ ,IX ,
35 3 IPARG ,PM ,ELBUF_TAB,IGROU ,IELN )
36C-----------------------------------------------
37C M o d u l e s
38C-----------------------------------------------
39 USE initbuf_mod
40 USE elbufdef_mod
41C-----------------------------------------------
42C I m p l i c i t T y p e s
43C-----------------------------------------------
44#include "implicit_f.inc"
45C-----------------------------------------------
46C C o m m o n B l o c k s
47C-----------------------------------------------
48#include "com01_c.inc"
49#include "param_c.inc"
50C-----------------------------------------------
51C D u m m y A r g u m e n t s
52C-----------------------------------------------
53 INTEGER II, IGROU, IELN, IERR, IX(4), IXQ(NIXQ),IPARG(NPARG,*)
54C REAL
56 . dist, area, tstif, t, vol, x(3,*), pm(npropm,*)
57 TYPE (ELBUF_STRUCT_), DIMENSION(NGROUP) :: ELBUF_TAB
58C-----------------------------------------------
59C L o c a l V a r i a b l e s
60C-----------------------------------------------
61 INTEGER I, N1, N2, N3, N4, IE, NG,MAT, IFA
62 my_real
63 . y1, y2, z1, z2,ny, nz, dy, dz,norm,cond
64 INTEGER :: LLT ,NFT ,MTN ,IAD ,ITY ,NPT ,JALE ,ISMSTR ,JEUL ,JTUR ,JTHE ,JLAG ,JMULT ,JHBE
65 INTEGER :: JIVF, NVAUX, JPOR, JCVT, JCLOSE, JPLASOL, IREP, IINT, IGTYP
66 INTEGER :: ISORTH, ISORTHG, ISRAT, ISROT, ICSEN, IFAILURE, JSMS
67
68C-----------------------------------------------
69 ierr = 0
70C---------------------------------
71C RECHERCHE DE L'ELEMENT DANS LE BUFFER
72C---------------------------------
73 DO 200 ng=1,ngroup
74 CALL initbuf(iparg ,ng ,
75 2 mtn ,llt ,nft ,iad ,ity ,
76 3 npt ,jale ,ismstr ,jeul ,jtur ,
77 4 jthe ,jlag ,jmult ,jhbe ,jivf ,
78 5 nvaux ,jpor ,jcvt ,jclose ,jplasol ,
79 6 irep ,iint ,igtyp ,israt ,isrot ,
80 7 icsen ,isorth ,isorthg ,ifailure,jsms )
81 IF(ity/=2) GO TO 200
82 IF(ii>nft+llt) GO TO 200
83 IF(iparg(8,ng)==1.OR.jthe/=1)THEN
84 ierr = 1
85 RETURN
86 ENDIF
87 i = ii - nft
88 GOTO 250
89 200 CONTINUE
90 ierr = 1
91 RETURN
92 250 CONTINUE
93
94 igrou = ng
95 ieln = i
96 vol = elbuf_tab(ng)%GBUF%VOL(i)
97C----------------------
98C CONDUCTION
99C----------------------
100 n1=ix(1)
101 n2=ix(2)
102C
103 y1=x(2,n1)
104 z1=x(3,n1)
105C
106 y2=x(2,n2)
107 z2=x(3,n2)
108C
109C------------------------------------------
110C CALCUL DE LA SURFACE VECTORIELLE (*1.)
111C------------------------------------------
112 ny= (z2-z1)
113 nz=-(y2-y1)
114 norm = sqrt(ny**2 + nz**2)
115C--------+---------+---------+---------+---------+---------+---------+--
116C CALCUL DE LA DISTANCE ENTRE CENTRE ET SURFACE ( * 4. )
117C-------------------------------------------------------------
118 dy = two*(y1 + y2)
119 . -x(2,ixq(2))-x(2,ixq(3))
120 . -x(2,ixq(4))-x(2,ixq(5))
121C
122 dz = two*(z1 + z2)
123 . -x(3,ixq(2))-x(3,ixq(3))
124 . -x(3,ixq(4))-x(3,ixq(5))
125C----------------------------------------------------------
126C CALCUL DISTANCE ET 1/2 SURFACE(SURFACE NODALE))
127C----------------------------------------------------------
128 dist = fourth*(dy*ny+dz*nz) / max(em15,norm)
129 area = half*norm
130C--------------------------------------------
131C CALCUL DE LA RESISTANCE THERMIQUE
132C--------------------------------------------
133 t = elbuf_tab(ng)%GBUF%TEMP(i)
134 mat =ixq(1)
135 IF(t<=pm(80,mat))THEN
136 cond=pm(75,mat)+pm(76,mat)*t
137 ELSE
138 cond=pm(77,mat)+pm(78,mat)*t
139 ENDIF
140 tstif = dist / cond
141C
142 600 CONTINUE
143C
144 RETURN
145 END
#define my_real
Definition cppsort.cpp:32
norm(diag(diag(diag(inv(mat))) -id.SOL), 2) % destroy mumps instance id.JOB
subroutine area(d1, x, x2, y, y2, eint, stif0)
subroutine i9grd2(ierr, area, tstif, t, vol, ii, x, ixq, ix, iparg, pm, elbuf_tab, igrou, ieln)
Definition i9grd2.F:36
#define max(a, b)
Definition macros.h:21
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