You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
140 lines
3.7 KiB
140 lines
3.7 KiB
2 years ago
|
C Copyright(C) 1999-2020 National Technology & Engineering Solutions
|
||
|
C of Sandia, LLC (NTESS). Under the terms of Contract DE-NA0003525 with
|
||
|
C NTESS, the U.S. Government retains certain rights in this software.
|
||
|
C
|
||
|
C See packages/seacas/LICENSE for details
|
||
|
|
||
|
C=======================================================================
|
||
|
*DECK,CNTR
|
||
|
SUBROUTINE CNTR (ITYPE,XX,YY,ZZ,XCNTR,YCNTR,ZCNTR)
|
||
|
|
||
|
C ******************************************************************
|
||
|
|
||
|
C SUBROUTINE TO FIND THE CENTER COORDINATES OF AN ELEMENT
|
||
|
|
||
|
C Called by ELTON3, LDCENB, SRCH2D, SRCH3D
|
||
|
|
||
|
C ******************************************************************
|
||
|
|
||
|
DIMENSION XX(*), YY(*), ZZ(*)
|
||
|
|
||
|
C ******************************************************************
|
||
|
|
||
|
C SELECT ELEMENT TYPE
|
||
|
|
||
|
GO TO (100, 110, 120, 130, 140, 150, 160, 170, 180, 190,
|
||
|
& 200, 210, 150), ITYPE
|
||
|
|
||
|
C 3-NODE TRIANGLE
|
||
|
|
||
|
100 CONTINUE
|
||
|
XCNTR=(XX(1)+XX(2)+XX(3))/3.
|
||
|
YCNTR=(YY(1)+YY(2)+YY(3))/3.
|
||
|
ZCNTR=0.
|
||
|
RETURN
|
||
|
|
||
|
C 6-NODE TRIANGLE
|
||
|
|
||
|
110 CONTINUE
|
||
|
XCNTR=-(XX(1)+XX(2)+XX(3))/9.+4.*(XX(4)+XX(5)+XX(6))/9.
|
||
|
YCNTR=-(YY(1)+YY(2)+YY(3))/9.+4.*(YY(4)+YY(5)+YY(6))/9.
|
||
|
ZCNTR=0.
|
||
|
RETURN
|
||
|
|
||
|
C 4-NODE QUADRILATERAL
|
||
|
|
||
|
120 CONTINUE
|
||
|
XCNTR=(XX(1)+XX(2)+XX(3)+XX(4))/4.
|
||
|
YCNTR=(YY(1)+YY(2)+YY(3)+YY(4))/4.
|
||
|
ZCNTR=0.
|
||
|
RETURN
|
||
|
|
||
|
C 8-NODE QUADRILATERAL
|
||
|
|
||
|
130 CONTINUE
|
||
|
XCNTR=-(XX(1)+XX(2)+XX(3)+XX(4))/4.+(XX(5)+XX(6)+XX(7)+XX(8))/2.
|
||
|
YCNTR=-(YY(1)+YY(2)+YY(3)+YY(4))/4.+(YY(5)+YY(6)+YY(7)+YY(8))/2.
|
||
|
ZCNTR=0.
|
||
|
RETURN
|
||
|
|
||
|
C 9-NODE QUADRILATERAL
|
||
|
|
||
|
140 CONTINUE
|
||
|
XCNTR=XX(9)
|
||
|
YCNTR=YY(9)
|
||
|
ZCNTR=0.
|
||
|
RETURN
|
||
|
|
||
|
C 4-NODE TETRAHEDRON OR SHELL
|
||
|
|
||
|
150 CONTINUE
|
||
|
XCNTR=(XX(1)+XX(2)+XX(3)+XX(4))/4.
|
||
|
YCNTR=(YY(1)+YY(2)+YY(3)+YY(4))/4.
|
||
|
ZCNTR=(ZZ(1)+ZZ(2)+ZZ(3)+ZZ(4))/4.
|
||
|
RETURN
|
||
|
|
||
|
C 10-NODE TETRAHEDRON
|
||
|
|
||
|
160 CONTINUE
|
||
|
XCNTR=-(XX(1)+XX(2)+XX(3)+XX(4))/8.+(XX(5)+XX(6)+XX(7)+XX(8)+
|
||
|
1XX(9)+XX(10))/4.
|
||
|
YCNTR=-(YY(1)+YY(2)+YY(3)+YY(4))/8.+(YY(5)+YY(6)+YY(7)+YY(8)+
|
||
|
1YY(9)+YY(10))/4.
|
||
|
ZCNTR=-(ZZ(1)+ZZ(2)+ZZ(3)+ZZ(4))/8.+(ZZ(5)+ZZ(6)+ZZ(7)+ZZ(8)+
|
||
|
1ZZ(9)+ZZ(10))/4.
|
||
|
RETURN
|
||
|
|
||
|
C 6-NODE PRISM
|
||
|
|
||
|
170 CONTINUE
|
||
|
XCNTR=(XX(1)+XX(2)+XX(3)+XX(4)+XX(5)+XX(6))/6.
|
||
|
YCNTR=(YY(1)+YY(2)+YY(3)+YY(4)+YY(5)+YY(6))/6.
|
||
|
ZCNTR=(ZZ(1)+ZZ(2)+ZZ(3)+ZZ(4)+ZZ(5)+ZZ(6))/6.
|
||
|
RETURN
|
||
|
|
||
|
C 15-NODE PRISM
|
||
|
|
||
|
180 CONTINUE
|
||
|
XCNTR=-2.*(XX(1)+XX(2)+XX(3)+XX(4)+XX(5)+XX(6))/9.+
|
||
|
12.*(XX(7)+XX(8)+XX(9)+XX(13)+XX(14)+XX(15))/9.+
|
||
|
2(XX(10)+XX(11)+XX(12))/3.
|
||
|
YCNTR=-2.*(YY(1)+YY(2)+YY(3)+YY(4)+YY(5)+YY(6))/9.+
|
||
|
12.*(YY(7)+YY(8)+YY(9)+YY(13)+YY(14)+YY(15))/9.+
|
||
|
2(YY(10)+YY(11)+YY(12))/3.
|
||
|
ZCNTR=-2.*(ZZ(1)+ZZ(2)+ZZ(3)+ZZ(4)+ZZ(5)+ZZ(6))/9.+
|
||
|
12.*(ZZ(7)+ZZ(8)+ZZ(9)+ZZ(13)+ZZ(14)+ZZ(15))/9.+
|
||
|
2(ZZ(10)+ZZ(11)+ZZ(12))/3.
|
||
|
RETURN
|
||
|
|
||
|
C 8-NODE HEX
|
||
|
|
||
|
190 CONTINUE
|
||
|
XCNTR=(XX(1)+XX(2)+XX(3)+XX(4)+XX(5)+XX(6)+XX(7)+XX(8))/8.
|
||
|
YCNTR=(YY(1)+YY(2)+YY(3)+YY(4)+YY(5)+YY(6)+YY(7)+YY(8))/8.
|
||
|
ZCNTR=(ZZ(1)+ZZ(2)+ZZ(3)+ZZ(4)+ZZ(5)+ZZ(6)+ZZ(7)+ZZ(8))/8.
|
||
|
RETURN
|
||
|
|
||
|
C 20-NODE HEX
|
||
|
|
||
|
200 CONTINUE
|
||
|
XCNTR=-(XX(1)+XX(2)+XX(3)+XX(4)+XX(5)+XX(6)+XX(7)+XX(8))/4.+
|
||
|
1(XX(9)+XX(10)+XX(11)+XX(12)+XX(13)+XX(14)+XX(15)+XX(16)+XX(17)+
|
||
|
2XX(18)+XX(19)+XX(20))/4.
|
||
|
YCNTR=-(YY(1)+YY(2)+YY(3)+YY(4)+YY(5)+YY(6)+YY(7)+YY(8))/4.+
|
||
|
1(YY(9)+YY(10)+YY(11)+YY(12)+YY(13)+YY(14)+YY(15)+YY(16)+YY(17)+
|
||
|
2YY(18)+YY(19)+YY(20))/4.
|
||
|
ZCNTR=-(ZZ(1)+ZZ(2)+ZZ(3)+ZZ(4)+ZZ(5)+ZZ(6)+ZZ(7)+ZZ(8))/4.+
|
||
|
1(ZZ(9)+ZZ(10)+ZZ(11)+ZZ(12)+ZZ(13)+ZZ(14)+ZZ(15)+ZZ(16)+ZZ(17)+
|
||
|
2ZZ(18)+ZZ(19)+ZZ(20))/4.
|
||
|
RETURN
|
||
|
|
||
|
C 27-NODE HEX
|
||
|
|
||
|
210 CONTINUE
|
||
|
XCNTR=XX(27)
|
||
|
YCNTR=YY(27)
|
||
|
ZCNTR=ZZ(27)
|
||
|
RETURN
|
||
|
|
||
|
END
|