summaryrefslogtreecommitdiff
path: root/Dragon
diff options
context:
space:
mode:
Diffstat (limited to 'Dragon')
-rw-r--r--Dragon/data/salmacro_proc/TDCM63.c2m4
-rw-r--r--Dragon/data/salmacro_proc/TDCM67.c2m13
-rw-r--r--Dragon/src/EDIG2S.f9048
3 files changed, 59 insertions, 6 deletions
diff --git a/Dragon/data/salmacro_proc/TDCM63.c2m b/Dragon/data/salmacro_proc/TDCM63.c2m
index edc2211..49e01a6 100644
--- a/Dragon/data/salmacro_proc/TDCM63.c2m
+++ b/Dragon/data/salmacro_proc/TDCM63.c2m
@@ -1,5 +1,5 @@
*----
-* TEST CASE TDCM54
+* TEST CASE TDCM63
* MACROSCOPIC CROSS SECTIONS
* 4-group equilateral triangular geometry
* Author: A. Hebert
@@ -7,7 +7,7 @@
* Define STRUCTURES and MODULES used
*----
MODULE G2S: SALT: MCCGT: MAC: ASM: FLU: TLM: DELETE: END: ;
-SEQ_ASCII LatTEST_b :: FILE './LatTEST_b_S60.ps' ;
+SEQ_ASCII LatTEST_b :: FILE './LatTEST_b_S60.eps' ;
SEQ_ASCII GT_SAL :: FILE './lattice_hex_tspc_S30_7cells.dat' ;
SEQ_ASCII GT_SAL_iso :: FILE './lattice_hex_tiso_S30_7cells.dat' ;
LINKED_LIST TRACKF MACRO4G SYS FLUX ;
diff --git a/Dragon/data/salmacro_proc/TDCM67.c2m b/Dragon/data/salmacro_proc/TDCM67.c2m
index 2a2363e..9697b1f 100644
--- a/Dragon/data/salmacro_proc/TDCM67.c2m
+++ b/Dragon/data/salmacro_proc/TDCM67.c2m
@@ -5,8 +5,8 @@
*----
* Define STRUCTURES and MODULES used
*----
-LINKED_LIST MACRO GEOM TRACK PIJ FLUX ;
-MODULE MAC: G2S: SALT: ASM: FLU: GREP: DELETE: END: ;
+LINKED_LIST MACRO GEOM TRACK PIJ FLUX OUT ;
+MODULE MAC: G2S: SALT: ASM: FLU: EDI: GREP: DELETE: END: ;
SEQ_BINARY TRACK_FIL ;
SEQ_ASCII Fic_SAL :: FILE 'lattice_hex_tiso_S30_7cells_macro.dat' ;
SEQ_ASCII Fic_SAL.eps :: FILE 'Fic_SAL_TDCM67.eps' ;
@@ -42,6 +42,15 @@ PIJ FLUX := DELETE: PIJ FLUX ;
* FLUX-CURRENT ITERATION WITHOUT FULL PIJ MATRIX RECONSTRUCTION
PIJ := ASM: MACRO TRACK TRACK_FIL :: ARM EDIT 2 ;
FLUX := FLU: PIJ MACRO TRACK :: EDIT 4 TYPE K ;
+
+* PIN-BY-PIN EDITION
+OUT := EDI: FLUX MACRO TRACK Fic_SAL :: EDIT 2
+ MERG G2S 2
+ TRIA 0.0 0.0 0.68002 0.0 0.068002 0.39261
+ QUAD 0.68002 0.0 2.382203 0.0 1.786652 1.031524 0.068002 0.39261
+ ;
+
+* ASSERTS
assertS FLUX :: 'K-EFFECTIVE' 1 <<keff>> ;
assertS FLUX :: 'K-EFFECTIVE' 1 0.5548652 ;
PIJ FLUX := DELETE: PIJ FLUX ;
diff --git a/Dragon/src/EDIG2S.f90 b/Dragon/src/EDIG2S.f90
index 24ef2e7..c236d95 100644
--- a/Dragon/src/EDIG2S.f90
+++ b/Dragon/src/EDIG2S.f90
@@ -76,7 +76,7 @@ CONTAINS
CALL REDGET(ITYPLU,NMERGE,REALIR,CARLIR,DBLLIR)
IF(ITYPLU.NE.1) CALL XABORT('EDIG2S: INTEGER VARIABLE EXPECTED.')
IF(NMERGE.LE.0) CALL XABORT('EDIG2S: INVALID VALUE OF NMERGE.')
- ALLOCATE(NODE(6,NMERGE),ITNODE(NMERGE))
+ ALLOCATE(NODE(8,NMERGE),ITNODE(NMERGE))
DO IM=1,NMERGE
CALL REDGET(ITYPLU,INTLIR,REALIR,CARLIR,DBLLIR)
IF(ITYPLU.NE.3) CALL XABORT('EDIG2S: CHARACTER VARIABLE EXPECTED.')
@@ -95,8 +95,15 @@ CONTAINS
IF(ITYPLU.NE.2) CALL XABORT('EDIG2S: REAL VARIABLE EXPECTED(2).')
NODE(I,IM)=REALIR
ENDDO
+ ELSE IF(CARLIR.EQ.'QUAD') THEN
+ ITNODE(IM)=3
+ DO I=1,8
+ CALL REDGET(ITYPLU,INTLIR,REALIR,CARLIR,DBLLIR)
+ IF(ITYPLU.NE.2) CALL XABORT('EDIG2S: REAL VARIABLE EXPECTED(3).')
+ NODE(I,IM)=REALIR
+ ENDDO
ELSE
- CALL XABORT('EDIG2S: *RECT* OR *TRIA* KEYWORD EXPECTED.')
+ CALL XABORT('EDIG2S: *RECT*, *TRIA* OR *QUAD* KEYWORD EXPECTED.')
ENDIF
ENDDO
!----
@@ -177,6 +184,25 @@ CONTAINS
IF(IPAR(3).GT.0) ICOUNT(IPAR(3),IM)=ICOUNT(IPAR(3),IM)+1
ENDIF
ENDIF
+ ELSE IF(ITNODE(IM).EQ.3) THEN
+ ! the quadrilateral is represented as two triangles
+ DO ITRI=1,2
+ TLAMB1=EDIBAR(NODE((ITRI-1)*2+1:(ITRI-1)*2+6,IM),CX,CY)
+ TLAMB2=EDIBAR(NODE((ITRI-1)*2+1:(ITRI-1)*2+6,IM),DX,DY)
+ IF((TLAMB1(1).GE.-EPS).AND.(TLAMB1(2).GE.-EPS).AND.(TLAMB1(3).GE.-EPS).AND. &
+ (TLAMB2(1).GE.-EPS).AND.(TLAMB2(2).GE.-EPS).AND.(TLAMB2(3).GE.-EPS)) THEN
+ IF((ABS(TLAMB1(1)).LE.EPS).AND.(ABS(TLAMB2(1)).LE.EPS)) THEN
+ IF(IPAR(3).GT.0) ICOUNT(IPAR(3),IM)=ICOUNT(IPAR(3),IM)+1
+ ELSE IF((ABS(TLAMB1(2)).LE.EPS).AND.(ABS(TLAMB2(2)).LE.EPS)) THEN
+ IF(IPAR(3).GT.0) ICOUNT(IPAR(3),IM)=ICOUNT(IPAR(3),IM)+1
+ ELSE IF((ABS(TLAMB1(3)).LE.EPS).AND.(ABS(TLAMB2(3)).LE.EPS)) THEN
+ IF(IPAR(3).GT.0) ICOUNT(IPAR(3),IM)=ICOUNT(IPAR(3),IM)+1
+ ELSE
+ IF(IPAR(2).GT.0) ICOUNT(IPAR(2),IM)=ICOUNT(IPAR(2),IM)+1
+ IF(IPAR(3).GT.0) ICOUNT(IPAR(3),IM)=ICOUNT(IPAR(3),IM)+1
+ ENDIF
+ ENDIF
+ ENDDO
ENDIF
ENDDO
ELSE IF(ITYPE.EQ.2) THEN
@@ -196,6 +222,15 @@ CONTAINS
IF(IPAR(2).GT.0) ICOUNT(IPAR(2),IM)=ICOUNT(IPAR(2),IM)+1
IF(IPAR(3).GT.0) ICOUNT(IPAR(3),IM)=ICOUNT(IPAR(3),IM)+1
ENDIF
+ ELSE IF(ITNODE(IM).EQ.3) THEN
+ ! the quadrilateral is represented as two triangles
+ DO ITRI=1,2
+ TLAMB1=EDIBAR(NODE((ITRI-1)*2+1:(ITRI-1)*2+6,IM),CX,CY)
+ IF((TLAMB1(1).GE.-EPS).AND.(TLAMB1(2).GE.-EPS).AND.(TLAMB1(3).GE.-EPS)) THEN
+ IF(IPAR(2).GT.0) ICOUNT(IPAR(2),IM)=ICOUNT(IPAR(2),IM)+1
+ IF(IPAR(3).GT.0) ICOUNT(IPAR(3),IM)=ICOUNT(IPAR(3),IM)+1
+ ENDIF
+ ENDDO
ENDIF
ENDDO
ELSE IF(ITYPE.EQ.3) THEN
@@ -221,6 +256,15 @@ CONTAINS
IF(IPAR(2).GT.0) ICOUNT(IPAR(2),IM)=ICOUNT(IPAR(2),IM)+1
IF(IPAR(3).GT.0) ICOUNT(IPAR(3),IM)=ICOUNT(IPAR(3),IM)+1
ENDIF
+ ELSE IF(ITNODE(IM).EQ.3) THEN
+ ! the quadrilateral is represented as two triangles
+ DO ITRI=1,2
+ TLAMB1=EDIBAR(NODE((ITRI-1)*2+1:(ITRI-1)*2+6,IM),CX,CY)
+ IF((TLAMB1(1).GE.-EPS).AND.(TLAMB1(2).GE.-EPS).AND.(TLAMB1(3).GE.-EPS)) THEN
+ IF(IPAR(2).GT.0) ICOUNT(IPAR(2),IM)=ICOUNT(IPAR(2),IM)+1
+ IF(IPAR(3).GT.0) ICOUNT(IPAR(3),IM)=ICOUNT(IPAR(3),IM)+1
+ ENDIF
+ ENDDO
ENDIF
ENDDO
ENDIF