OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
sdet43.F File Reference
#include "implicit_f.inc"
#include "units_c.inc"
#include "comlock.inc"
#include "mvsiz_p.inc"
#include "lockon.inc"
#include "lockoff.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine sdet43 (nel, x, y, z, area, areap, off, solid_id, e1x, e1y, e1z, e2x, e2y, e2z, e3x, e3y, e3z)

Function/Subroutine Documentation

◆ sdet43()

subroutine sdet43 ( integer nel,
x,
y,
z,
area,
areap,
off,
integer, dimension(*) solid_id,
e1x,
e1y,
e1z,
e2x,
e2y,
e2z,
e3x,
e3y,
e3z )

Definition at line 28 of file sdet43.F.

31C-----------------------------------------------
32C I m p l i c i t T y p e s
33C-----------------------------------------------
34#include "implicit_f.inc"
35CC-----------------------------------------------
36C C o m m o n B l o c k s
37C-----------------------------------------------
38#include "units_c.inc"
39#include "comlock.inc"
40#include "mvsiz_p.inc"
41C-----------------------------------------------
42C D u m m y A r g u m e n t s
43C-----------------------------------------------
44 INTEGER NEL
45 INTEGER SOLID_ID(*)
46C REAL
48 . area(nel),areap(mvsiz,4),off(nel),
49 . x(nel,8) ,y(nel,8),z(nel,8),rxx(nel),ryy(nel),
50 . e1x(*),e2x(*),e3x(*),e1y(*),e2y(*),e3y(*),e1z(*),e2z(*),e3z(*)
51C-----------------------------------------------
52C L o c a l V a r i a b l e s
53C-----------------------------------------------
54 INTEGER I,NINDX
55 INTEGER INDX(NEL)
56C REAL
58 . pg, xx1,xx2,xx3,xx4,yy1,yy2,yy3,yy4,zz1,zz2,zz3,zz4,
59 . l1,l2,xl1,xl2,xl3,xl4,yl2,yl3,yl4,
60 . mx13,my13,mx23,mx34,my23,my34,j0,j1,j2
61 my_real
62 . vcx(4),vcy(4),
63 . p1x(nel), p2x(nel), p3x(nel), p4x(nel),
64 . p1y(nel), p2y(nel), p3y(nel), p4y(nel),
65 . p1z(nel), p2z(nel), p3z(nel), p4z(nel)
66 DATA pg/0.5773502691896257645091488/
67C=======================================================================
68 nindx = 0
69C Calcule AREA / P Gauss
70 DO i=1,nel
71 p1x(i)=(x(i,1)+x(i,5))*half
72 p1y(i)=(y(i,1)+y(i,5))*half
73 p1z(i)=(z(i,1)+z(i,5))*half
74 p2x(i)=(x(i,2)+x(i,6))*half
75 p2y(i)=(y(i,2)+y(i,6))*half
76 p2z(i)=(z(i,2)+z(i,6))*half
77 p3x(i)=(x(i,3)+x(i,7))*half
78 p3y(i)=(y(i,3)+y(i,7))*half
79 p3z(i)=(z(i,3)+z(i,7))*half
80 p4x(i)=(x(i,4)+x(i,8))*half
81 p4y(i)=(y(i,4)+y(i,8))*half
82 p4z(i)=(z(i,4)+z(i,8))*half
83 ENDDO
84C
85 DO i=1,nel
86 xx1 = p2x(i)-p1x(i)
87 yy1 = p2y(i)-p1y(i)
88 zz1 = p2z(i)-p1z(i)
89 xl2 = e1x(i)*xx1 + e1y(i)*yy1 + e1z(i)*zz1
90 yl2 = e2x(i)*xx1 + e2y(i)*yy1 + e2z(i)*zz1
91c
92 xx3 = p3x(i)-p1x(i)
93 yy3 = p3y(i)-p1y(i)
94 zz3 = p3z(i)-p1z(i)
95 xl3 = e1x(i)*xx3 + e1y(i)*yy3 + e1z(i)*zz3
96 yl3 = e2x(i)*xx3 + e2y(i)*yy3 + e2z(i)*zz3
97c
98 xx4 = p4x(i)-p1x(i)
99 yy4 = p4y(i)-p1y(i)
100 zz4 = p4z(i)-p1z(i)
101 xl4 = e1x(i)*xx4 + e1y(i)*yy4 + e1z(i)*zz4
102 yl4 = e2x(i)*xx4 + e2y(i)*yy4 + e2z(i)*zz4
103c
104 l1=fourth*(xl2+xl3+xl4)
105 l2=fourth*(yl2+yl3+yl4)
106c
107 vcx(1)=-l1
108 vcx(2)= xl2-l1
109 vcx(3)= xl3-l1
110 vcx(4)= xl4-l1
111 vcy(1)=-l2
112 vcy(2)=yl2-l2
113 vcy(3)=yl3-l2
114 vcy(4)=yl4-l2
115c
116 mx13=(vcx(1)+vcx(3))*half
117 my13=(vcy(1)+vcy(3))*half
118 mx23=(vcx(2)+vcx(3))*half
119 mx34=(vcx(3)+vcx(4))*half
120 my23=(vcy(2)+vcy(3))*half
121 my34=(vcy(3)+vcy(4))*half
122c
123 j1 = (mx23*my13-mx13*my23)*pg
124 j2 =-(mx13*my34-mx34*my13)*pg
125 j0 = area(i)*fourth
126C-----------
127 areap(i,1) = j0+j2-j1
128 areap(i,2) = j0+j2+j1
129 areap(i,3) = j0-j2+j1
130 areap(i,4) = j0-j2-j1
131 IF (off(i) == one .and. ( area(i) < zero .or.
132 . areap(i,1) < zero .or. areap(i,2) < zero .or.
133 . areap(i,3) < zero .or. areap(i,4) < zero)) THEN
134 nindx = nindx+1
135 indx(nindx) = i
136 off(i) = zero
137 ENDIF
138 ENDDO
139C-----------
140 IF (nindx > 0) THEN
141 DO i=1,nindx
142#include "lockon.inc"
143 WRITE(iout ,1000) solid_id(indx(i))
144 WRITE(istdo,1100) solid_id(indx(i))
145#include "lockoff.inc"
146 END DO
147 ENDIF
148C-----------
149 1000 FORMAT(5x,'NEGATIVE AREA: DELETE CONNECTION SOLID ELEMENT ',i10)
150 1100 FORMAT(5x,'NEGATIVE AREA: DELETE CONNECTION SOLID ELEMENT ',i10)
151C-----------
152 RETURN
#define my_real
Definition cppsort.cpp:32
subroutine area(d1, x, x2, y, y2, eint, stif0)