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.
56 lines
1.6 KiB
56 lines
1.6 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
|
||
|
|
||
|
REAL FUNCTION NICKC (ANGLE, LXN)
|
||
|
C***********************************************************************
|
||
|
|
||
|
C FUNCTION NICKC = RETURNS THE PENALTY FOR A BAD ANGLE AND A BAD
|
||
|
C CONNECTIVITY ON A CORNER
|
||
|
|
||
|
C***********************************************************************
|
||
|
|
||
|
DIMENSION LXN(4)
|
||
|
|
||
|
PID2 = 0.5 * ATAN2(0.0, -1.0)
|
||
|
ADIFF = MAX (0., (ANGLE - PID2) )
|
||
|
|
||
|
C IF THE ANGLE HAS 4 LINES ATTACHED
|
||
|
C A REGULAR NODE WOULD BE FORMED - PENALIZE IT LIGHTLY
|
||
|
C USE THIS SAME PENALTY FOR BOUNDARY NODES
|
||
|
|
||
|
IF ( (LXN (4) .GT. 0) .OR. (LXN (2) .LT. 0) ) THEN
|
||
|
NICKC = ADIFF
|
||
|
|
||
|
C IF THE ANGLE HAS 3 LINES ATTACHED
|
||
|
C THEN A THREE DEGREE IRREGULAR NODE WOULD BE FORMED
|
||
|
C PENALIZE IT MORE STRINGENTLY
|
||
|
|
||
|
ELSEIF ( (LXN (3) .GT. 0) .AND. (LXN (4) .EQ. 0) ) THEN
|
||
|
NICKC = ADIFF * 1.3
|
||
|
|
||
|
C IF THE ANGLE HAS MORE THAN 4 LINES ATTACHED
|
||
|
C THEN A FIVE+ DEGREE IRREGULAR NODE WOULD BE FORMED
|
||
|
C PENALIZE IT LESS STRINGENTLY
|
||
|
|
||
|
ELSEIF (LXN (4) .GT. 0) THEN
|
||
|
NICKC = ADIFF * 1.15
|
||
|
|
||
|
C IF THE ANGLE HAS 2 LINES ATTACHED
|
||
|
C THEN A TWO DEGREE IRREGULAR NODE WOULD BE FORMED (HIGHLY UNLIKELY)
|
||
|
C PENALIZE IT SEVERELY
|
||
|
|
||
|
ELSEIF (LXN (3) .EQ. 0) THEN
|
||
|
NICKC = ADIFF * 1.6
|
||
|
else
|
||
|
c write (*,*) 'Undefined Option in nickc',
|
||
|
c $ lxn(1), lxn(2), lxn(3), lxn(4)
|
||
|
nickc = adiff * 2.0
|
||
|
ENDIF
|
||
|
|
||
|
RETURN
|
||
|
|
||
|
END
|