OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
sdlensh14.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!|| sdlensh14 ../engine/source/elements/thickshell/solide8c/sdlensh14.F
25!||--- called by ------------------------------------------------------
26!|| s8cforc3 ../engine/source/elements/thickshell/solide8c/s8cforc3.f
27!||====================================================================
28 SUBROUTINE sdlensh14(
29 1 VOLN, LLSH, AREA, X1, X2,
30 2 X3, X4, X5, X6,
31 3 X7, X8, Y1, Y2,
32 4 Y3, Y4, Y5, Y6,
33 5 Y7, Y8, Z1, Z2,
34 6 Z3, Z4, Z5, Z6,
35 7 Z7, Z8, ICS , NEL)
36C-----------------------------------------------
37C I m p l i c i t T y p e s
38C-----------------------------------------------
39#include "implicit_f.inc"
40C-----------------------------------------------
41C G l o b a l P a r a m e t e r s
42C-----------------------------------------------
43#include "mvsiz_p.inc"
44C-----------------------------------------------
45C C o m m o n B l o c k s
46C-----------------------------------------------
47C-----------------------------------------------
48C D u m m y A r g u m e n t s
49C-----------------------------------------------
50 INTEGER, INTENT(IN) :: NEL,ICS
51 my_real, DIMENSION(MVSIZ) , INTENT(OUT) :: AREA,LLSH
52 my_real, DIMENSION(MVSIZ) , INTENT(IN) ::
53 . VOLN,
54 . X1, X2, X3, X4, X5, X6, X7, X8,
55 . Y1, Y2, Y3, Y4, Y5, Y6, Y7, Y8,
56 . Z1, Z2, Z3, Z4, Z5, Z6, Z7, Z8
57C-----------------------------------------------
58C L o c a l V a r i a b l e s
59C-----------------------------------------------
60 INTEGER I, J, N
61 my_real
62 . RX(MVSIZ),RY(MVSIZ),RZ(MVSIZ),SX(MVSIZ),SY(MVSIZ),SZ(MVSIZ),
63 . XN(MVSIZ,4) , YN(MVSIZ,4) , ZN(MVSIZ,4)
64 my_real
65 . AL1,AL2,E3X,E3Y,E3Z,DET
66C=======================================================================
67 SELECT CASE(ics)
68 CASE (1)
69 DO i=1,nel
70 xn(i,1) = half*(x1(i)+x4(i))
71 yn(i,1) = half*(y1(i)+y4(i))
72 zn(i,1) = half*(z1(i)+z4(i))
73 xn(i,2) = half*(x2(i)+x3(i))
74 yn(i,2) = half*(y2(i)+y3(i))
75 zn(i,2) = half*(z2(i)+z3(i))
76 xn(i,3) = half*(x6(i)+x7(i))
77 yn(i,3) = half*(y6(i)+y7(i))
78 zn(i,3) = half*(z6(i)+z7(i))
79 xn(i,4) = half*(x5(i)+x8(i))
80 yn(i,4) = half*(y5(i)+y8(i))
81 zn(i,4) = half*(z5(i)+z8(i))
82 ENDDO
83 CASE (10)
84 DO i=1,nel
85 xn(i,1) = half*(x1(i)+x5(i))
86 yn(i,1) = half*(y1(i)+y5(i))
87 zn(i,1) = half*(z1(i)+z5(i))
88 xn(i,2) = half*(x2(i)+x6(i))
89 yn(i,2) = half*(y2(i)+y6(i))
90 zn(i,2) = half*(z2(i)+z6(i))
91 xn(i,3) = half*(x3(i)+x7(i))
92 yn(i,3) = half*(y3(i)+y7(i))
93 zn(i,3) = half*(z3(i)+z7(i))
94 xn(i,4) = half*(x4(i)+x8(i))
95 yn(i,4) = half*(y4(i)+y8(i))
96 zn(i,4) = half*(z4(i)+z8(i))
97 ENDDO
98 CASE (100)
99 DO i=1,nel
100 xn(i,1) = half*(x1(i)+x2(i))
101 yn(i,1) = half*(y1(i)+y2(i))
102 zn(i,1) = half*(z1(i)+z2(i))
103 xn(i,2) = half*(x5(i)+x6(i))
104 yn(i,2) = half*(y5(i)+y6(i))
105 zn(i,2) = half*(z5(i)+z6(i))
106 xn(i,3) = half*(x8(i)+x7(i))
107 yn(i,3) = half*(y8(i)+y7(i))
108 zn(i,3) = half*(z8(i)+z7(i))
109 xn(i,4) = half*(x4(i)+x3(i))
110 yn(i,4) = half*(y4(i)+y3(i))
111 zn(i,4) = half*(z4(i)+z3(i))
112 ENDDO
113 END SELECT
114C------g1,g2 :
115 DO i=1,nel
116 rx(i)=xn(i,2)+xn(i,3)-xn(i,1)-xn(i,4)
117 ry(i)=yn(i,2)+yn(i,3)-yn(i,1)-yn(i,4)
118 rz(i)=zn(i,2)+zn(i,3)-zn(i,1)-zn(i,4)
119 sx(i)=xn(i,3)+xn(i,4)-xn(i,1)-xn(i,2)
120 sy(i)=yn(i,3)+yn(i,4)-yn(i,1)-yn(i,2)
121 sz(i)=zn(i,3)+zn(i,4)-zn(i,1)-zn(i,2)
122 ENDDO
123 DO i=1,nel
124 e3x = ry(i) * sz(i) - rz(i) * sy(i)
125 e3y = rz(i) * sx(i) - rx(i) * sz(i)
126 e3z = rx(i) * sy(i) - ry(i) * sx(i)
127 det = sqrt(e3x*e3x + e3y*e3y + e3z*e3z)
128 area(i)=fourth*det
129 al1 = rx(i)*rx(i) + ry(i)*ry(i)+ rz(i)*rz(i)
130 al2 = sx(i)*sx(i) + sy(i)*sy(i)+ sz(i)*sz(i)
131 llsh(i) = fourth*max(al1,al2)
132 ENDDO
133C
134 RETURN
135 END
subroutine sdlensh14(voln, llsh, area, x1, x2, x3, x4, x5, x6, x7, x8, y1, y2, y3, y4, y5, y6, y7, y8, z1, z2, z3, z4, z5, z6, z7, z8, ics, nel)
Definition sdlensh14.F:36
#define max(a, b)
Definition macros.h:21
subroutine s8cforc3(timers, output, elbuf_tab, ng, pm, geo, ixs, x, a, v, ms, w, flux, flu1, veul, fv, ale_connect, iparg, tf, npf, bufmat, partsav, nloc_dmg, dt2t, neltst, ityptst, stifn, fsky, iads, offset, eani, iparts, f11, f21, f31, f12, f22, f32, f13, f23, f33, f14, f24, f34, f15, f25, f35, f16, f26, f36, f17, f27, f37, f18, f28, f38, nel, icp, icsig, smr, sms, smt, mfxx, mfxy, mfxz, mfyx, mfyy, mfyz, mfzx, mfzy, mfzz, nvc, ipm, itask, istrain, temp, fthe, fthesky, iexpan, igeo, nnpt, gresav, grth, igrth, mssa, dmels, table, xdp, voln, condn, condnsky, sensors, ioutprt, mat_elem, h3d_strain, dt, nodadt, dtfac1, dtmin1, idtmin, snpc, stf, sbufmat, svis, nsvois, idtmins, iresp, maxfunc, userl_avail, glob_therm, impl_s, idyna)
Definition s8cforc3.F:110