OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
sdlen_dege.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!|| sdlen_dege ../engine/source/elements/solid/solide/sdlen_dege.F
25!||--- called by ------------------------------------------------------
26!|| s8cforc3 ../engine/source/elements/thickshell/solide8c/s8cforc3.F
27!|| s8eforc3 ../engine/source/elements/solid/solide8e/s8eforc3.F
28!|| s8sforc3 ../engine/source/elements/solid/solide8s/s8sforc3.F
29!|| s8zforc3 ../engine/source/elements/solid/solide8z/s8zforc3.F
30!|| sdlen8 ../engine/source/elements/solid/solidez/sdlen8.F
31!||--- calls -----------------------------------------------------
32!|| degenes8 ../engine/source/elements/solid/solide/degenes8.F
33!|| deges4v ../engine/source/elements/solid/solide/deges4v.F
34!|| idege8 ../engine/source/elements/solid/solide/idege8.F
35!||====================================================================
36 SUBROUTINE sdlen_dege(
37 1 VOLG, LAT, X1, X2,
38 2 X3, X4, X5, X6,
39 3 X7, X8, Y1, Y2,
40 4 Y3, Y4, Y5, Y6,
41 5 Y7, Y8, Z1, Z2,
42 6 Z3, Z4, Z5, Z6,
43 7 Z7, Z8, IXS, IDEGE,
44 8 NEL)
45C-----------------------------------------------
46C I m p l i c i t T y p e s
47C-----------------------------------------------
48#include "implicit_f.inc"
49C-----------------------------------------------
50C G l o b a l P a r a m e t e r s
51C-----------------------------------------------
52#include "mvsiz_p.inc"
53C-----------------------------------------------
54C C o m m o n B l o c k s
55C-----------------------------------------------
56C-----------------------------------------------
57C D u m m y A r g u m e n t s
58C-----------------------------------------------
59 INTEGER, INTENT(IN) :: NEL
60 INTEGER IXS(NIXS,*), IDEGE(*)
61 my_real
62 . VOLG(*),LAT(*),
63 . X1(*), X2(*), X3(*), X4(*), X5(*), X6(*), X7(*), X8(*),
64 . Y1(*), Y2(*), Y3(*), Y4(*), Y5(*), Y6(*), Y7(*), Y8(*),
65 . Z1(*), Z2(*), Z3(*), Z4(*), Z5(*), Z6(*), Z7(*), Z8(*)
66C-----------------------------------------------
67C L o c a l V a r i a b l e s
68C-----------------------------------------------
69C----------DELTAX crrection for degenerated element
70 INTEGER I,IT
71 my_real
72 . AREAM(MVSIZ), ATAX,FAC,V_G
73C-----------------------------------------------
74 CALL DEGENES8(
75 1 IXS, IDEGE, NEL)
76C
77 DO I=1,nel
78C-------due to the fact that AREA_Max*L is far from V for Dege---
79 IF(idege(i) > 0) THEN
80 aream(i) =em20
81C----tetra 4 ,pyrami
82 IF (idege(i)>2) THEN
83 fac=one_over_9
84 ELSEIF (idege(i)>1) THEN
85 fac=fourth
86 ELSE
87 fac=one
88 END IF
89 it = 0
90 CALL idege8(x1(i),x2(i),x3(i),x4(i),y1(i),y2(i),y3(i),y4(i),
91 . z1(i),z2(i),z3(i),z4(i),aream(i),fac,it)
92 CALL idege8(x5(i),x6(i),x7(i),x8(i),y5(i),y6(i),y7(i),y8(i),
93 . z5(i),z6(i),z7(i),z8(i),aream(i),fac,it)
94 CALL idege8(x1(i),x2(i),x6(i),x5(i),y1(i),y2(i),y6(i),y5(i),
95 . z1(i),z2(i),z6(i),z5(i),aream(i),fac,it)
96 CALL idege8(x2(i),x3(i),x7(i),x6(i),y2(i),y3(i),y7(i),y6(i),
97 . z2(i),z3(i),z7(i),z6(i),aream(i),fac,it)
98 CALL idege8(x3(i),x4(i),x8(i),x7(i),y3(i),y4(i),y8(i),y7(i),
99 . z3(i),z4(i),z8(i),z7(i),aream(i),fac,it)
100 CALL idege8(x4(i),x1(i),x5(i),x8(i),y4(i),y1(i),y5(i),y8(i),
101 . z4(i),z1(i),z5(i),z8(i),aream(i),fac,it)
102C----tetra 4
103 IF (it ==0 ) aream(i)=fac*aream(i)
104 IF (idege(i)>3 ) THEN
105 aream(i)=aream(i)*fac
106 CALL deges4v(v_g,
107 . x1(i), x2(i), x3(i), x4(i), x5(i), x6(i), x7(i), x8(i),
108 . y1(i), y2(i), y3(i), y4(i), y5(i), y6(i), y7(i), y8(i),
109 . z1(i), z2(i), z3(i), z4(i), z5(i), z6(i), z7(i), z8(i))
110 ELSE
111 v_g=volg(i)
112 END IF
113 lat(i) = four*v_g/sqrt(aream(i))
114
115 ENDIF
116 ENDDO
117C
118 RETURN
119 END
subroutine deges4v(det, x1, x2, x3, x4, x5, x6, x7, x8, y1, y2, y3, y4, y5, y6, y7, y8, z1, z2, z3, z4, z5, z6, z7, z8)
Definition deges4v.F:37
subroutine idege8(x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4, amax, fac, it)
Definition idege8.F:30
subroutine sdlen_dege(volg, lat, x1, x2, x3, x4, x5, x6, x7, x8, y1, y2, y3, y4, y5, y6, y7, y8, z1, z2, z3, z4, z5, z6, z7, z8, ixs, idege, nel)
Definition sdlen_dege.F:45