summaryrefslogtreecommitdiff
path: root/Dragon/data/tmacro_proc/TCM57.c2m
diff options
context:
space:
mode:
Diffstat (limited to 'Dragon/data/tmacro_proc/TCM57.c2m')
-rw-r--r--Dragon/data/tmacro_proc/TCM57.c2m373
1 files changed, 373 insertions, 0 deletions
diff --git a/Dragon/data/tmacro_proc/TCM57.c2m b/Dragon/data/tmacro_proc/TCM57.c2m
new file mode 100644
index 0000000..af4bcbb
--- /dev/null
+++ b/Dragon/data/tmacro_proc/TCM57.c2m
@@ -0,0 +1,373 @@
+*----
+* TEST CASE TCM57
+* PHYSOR 2D HEXAGONAL PROBLEM -- BASED ON 2010 RAVIART-THOMAS
+* HEBERT/LE TELLIER PROBLEM -- MULTIGROUP MACROLIB-DEFINED CROSS
+* SECTIONS
+*
+* Ref: A. A. Calloo and A. Hebert, PHYSOR 2020
+*----
+* Define STRUCTURES and MODULES used
+*----
+LINKED_LIST GEOM MACRO TRACK SYSTEM FLUX EDIT ;
+MODULE GEO: MAC: ASM: END: SNT: FLU: UTL: DELETE: ;
+PROCEDURE assertS ;
+*
+* spl = region split
+* sch = scheme parameter
+* spa = spatial order
+* and = sn order
+* sca = scattering
+*
+LOGICAL condition ;
+INTEGER spl ;
+INTEGER sch ;
+INTEGER spa ;
+INTEGER ang := 4 ;
+INTEGER sca := 2 ;
+*
+MACRO := MAC: ::
+ EDIT 2 NGRO 1 NMIX 3 NIFI 1 ANIS 2
+ READ INPUT
+ MIX 1
+ TOTAL 0.025
+ NUSIGF 0.0155
+ CHI 1.0
+ SCAT 1 1 0.013
+ 1 1 0.0
+ MIX 2
+ TOTAL 0.025
+ SCAT 1 1 0.024
+ 1 1 0.006
+ MIX 3
+ TOTAL 0.075
+ SCAT 1 1 0.0
+ 1 1 0.0
+ ;
+*
+************************************************************************
+EVALUATE spl := 0 ;
+*----
+* TEST HODD/DG ORDER 1 FOR MESHING 1, 2, 3
+*----
+REPEAT
+ EVALUATE spl := spl 1 + ;
+ GEOM := GEO: :: HEX 127
+ EDIT 2
+ SPLITL <<spl>>
+ HBC COMPLETE VOID
+ SIDE 19.0
+ MIX
+ 1
+ 1 1 1 1 1 1
+ 1 1 1 1 1 1 1 1 1 1 1 1
+ 2 1 1 2 1 1 2 1 1 2 1 1 2 1 1 2 1 1
+ 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
+ 3 2 2 2 2 3 2 2 2 2 3 2 2 2 2 3 2 2 2 2 3 2 2 2 2 3 2 2 2 2
+ 0 3 3 3 3 3 0 3 3 3 3 3 0 3 3 3 3 3 0 3 3 3 3 3 0 3 3 3 3 3 0 3 3 3 3 3
+ ;
+
+ ECHO "Testing mesh split size:" spl ;
+
+ ! High-Order Diamond Difference method
+ EVALUATE sch := 1 ;
+ EVALUATE spa := 1 ;
+ TRACK := SNT: GEOM ::
+ TITLE '2D HEXA ANISOTROPIC PHYSOR HODD BENCHMARK, 1 GROUP'
+ EDIT 2 MAXR 25000
+ SCHM <<sch>>
+ DIAM <<spa>>
+ SN <<ang>>
+ SCAT <<sca>>
+ MAXI 25 EPSI 1.E-5
+ QUAD 2 (*Level-Symmetric*) ;
+ SYSTEM := ASM: MACRO TRACK :: EDIT 1 ARM ;
+ FLUX := FLU: MACRO TRACK SYSTEM ::
+ EDIT 2 TYPE K EXTE 100 1E-6 ;
+ IF spl 1 = THEN assertS FLUX :: 'K-EFFECTIVE' 1 1.002178 ;
+ ELSEIF spl 2 = THEN assertS FLUX :: 'K-EFFECTIVE' 1 1.002180 ;
+ ELSEIF spl 3 = THEN assertS FLUX :: 'K-EFFECTIVE' 1 1.002177 ;
+ ENDIF ;
+ TRACK SYSTEM FLUX := DELETE: TRACK SYSTEM FLUX ;
+
+ ! Discontinuous Galerkin
+ EVALUATE sch := 2 ;
+ EVALUATE spa := 1 ;
+ TRACK := SNT: GEOM ::
+ TITLE '2D HEXA ANISOTROPIC PHYSOR HODD BENCHMARK, 1 GROUP'
+ EDIT 2 MAXR 25000
+ SCHM <<sch>>
+ DIAM <<spa>>
+ SN <<ang>>
+ SCAT <<sca>>
+ MAXI 25 EPSI 1.E-5
+ QUAD 2 (*Level-Symmetric*) ;
+ SYSTEM := ASM: MACRO TRACK :: EDIT 1 ARM ;
+ FLUX := FLU: MACRO TRACK SYSTEM ::
+ EDIT 2 TYPE K EXTE 100 1E-6 ;
+ IF spl 1 = THEN assertS FLUX :: 'K-EFFECTIVE' 1 1.001961 ;
+ ELSEIF spl 2 = THEN assertS FLUX :: 'K-EFFECTIVE' 1 1.002147 ;
+ ELSEIF spl 3 = THEN assertS FLUX :: 'K-EFFECTIVE' 1 1.002168 ;
+ ENDIF ;
+ TRACK SYSTEM FLUX := DELETE: TRACK SYSTEM FLUX ;
+
+ GEOM := DELETE: GEOM ;
+
+UNTIL spl 3 = ;
+*
+************************************************************************
+*----
+* TEST HODD/DG MESH 2 FOR ORDER 0, 1, 2
+*----
+EVALUATE spl := 2 ;
+GEOM := GEO: :: HEX 127
+ EDIT 2
+ SPLITL <<spl>>
+ HBC COMPLETE VOID
+ SIDE 19.0
+ MIX
+ 1
+ 1 1 1 1 1 1
+ 1 1 1 1 1 1 1 1 1 1 1 1
+ 2 1 1 2 1 1 2 1 1 2 1 1 2 1 1 2 1 1
+ 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
+ 3 2 2 2 2 3 2 2 2 2 3 2 2 2 2 3 2 2 2 2 3 2 2 2 2 3 2 2 2 2
+ 0 3 3 3 3 3 0 3 3 3 3 3 0 3 3 3 3 3 0 3 3 3 3 3 0 3 3 3 3 3 0 3 3 3 3 3
+ ;
+
+EVALUATE spa := -1 ;
+REPEAT
+ EVALUATE spa := spa 1 + ;
+ ECHO "Testing spatial order:" spl ;
+
+ ! High-Order Diamond Difference method
+ EVALUATE sch := 1 ;
+ TRACK := SNT: GEOM ::
+ TITLE '2D HEXA ANISOTROPIC PHYSOR HODD BENCHMARK, 1 GROUP'
+ EDIT 2 MAXR 25000
+ SCHM <<sch>>
+ DIAM <<spa>>
+ SN <<ang>>
+ SCAT <<sca>>
+ MAXI 25 EPSI 1.E-5
+ QUAD 2 (*Level-Symmetric*) ;
+ SYSTEM := ASM: MACRO TRACK :: EDIT 1 ARM ;
+ FLUX := FLU: MACRO TRACK SYSTEM ::
+ EDIT 2 TYPE K EXTE 100 1E-6 ;
+ IF spa 0 = THEN assertS FLUX :: 'K-EFFECTIVE' 1 1.001900 ;
+ ELSEIF spl 1 = THEN assertS FLUX :: 'K-EFFECTIVE' 1 1.002180 ;
+ ELSEIF spa 2 = THEN assertS FLUX :: 'K-EFFECTIVE' 1 1.002178 ;
+ ENDIF ;
+ TRACK SYSTEM FLUX := DELETE: TRACK SYSTEM FLUX ;
+
+ ! Discontinuous Galerkin
+ EVALUATE sch := 2 ;
+ TRACK := SNT: GEOM ::
+ TITLE '2D HEXA ANISOTROPIC PHYSOR HODD BENCHMARK, 1 GROUP'
+ EDIT 2 MAXR 25000
+ SCHM <<sch>>
+ DIAM <<spa>>
+ SN <<ang>>
+ SCAT <<sca>>
+ MAXI 25 EPSI 1.E-5
+ QUAD 2 (*Level-Symmetric*) ;
+ SYSTEM := ASM: MACRO TRACK :: EDIT 1 ARM ;
+ FLUX := FLU: MACRO TRACK SYSTEM ::
+ EDIT 2 TYPE K EXTE 100 1E-6 ;
+ IF spa 0 = THEN assertS FLUX :: 'K-EFFECTIVE' 1 0.9769528 ;
+ ELSEIF spa 1 = THEN assertS FLUX :: 'K-EFFECTIVE' 1 1.002147 ;
+ ELSEIF spa 2 = THEN assertS FLUX :: 'K-EFFECTIVE' 1 1.002178 ;
+ ENDIF ;
+ TRACK SYSTEM FLUX := DELETE: TRACK SYSTEM FLUX ;
+
+UNTIL spa 2 = ;
+*----
+* TEST DG MESH 1 FOR ORDER 3
+*----
+! Discontinuous Galerkin
+EVALUATE sch := 2 ;
+EVALUATE spa := 3 ;
+TRACK := SNT: GEOM ::
+ TITLE '2D HEXA ANISOTROPIC PHYSOR HODD BENCHMARK, 1 GROUP'
+ EDIT 2 MAXR 25000
+ SCHM <<sch>>
+ DIAM <<spa>>
+ SN <<ang>>
+ SCAT <<sca>>
+ MAXI 25 EPSI 1.E-5
+ QUAD 2 (*Level-Symmetric*) ;
+SYSTEM := ASM: MACRO TRACK :: EDIT 1 ARM ;
+FLUX := FLU: MACRO TRACK SYSTEM ::
+ EDIT 2 TYPE K EXTE 100 1E-6 ;
+assertS FLUX :: 'K-EFFECTIVE' 1 1.002178 ;
+GEOM TRACK SYSTEM FLUX := DELETE: GEOM TRACK SYSTEM FLUX ;
+*
+************************************************************************
+*----
+* REPEAT ABOVE TESTS FOR KBA STYLE ALGORITHM
+*----
+************************************************************************
+*----
+* TEST HODD/DG ORDER 1 FOR MESHING 1, 2, 3
+*----
+REPEAT
+ EVALUATE spl := spl 1 + ;
+ GEOM := GEO: :: HEX 127
+ EDIT 2
+ SPLITL <<spl>>
+ HBC COMPLETE VOID
+ SIDE 19.0
+ MIX
+ 1
+ 1 1 1 1 1 1
+ 1 1 1 1 1 1 1 1 1 1 1 1
+ 2 1 1 2 1 1 2 1 1 2 1 1 2 1 1 2 1 1
+ 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
+ 3 2 2 2 2 3 2 2 2 2 3 2 2 2 2 3 2 2 2 2 3 2 2 2 2 3 2 2 2 2
+ 0 3 3 3 3 3 0 3 3 3 3 3 0 3 3 3 3 3 0 3 3 3 3 3 0 3 3 3 3 3 0 3 3 3 3 3
+ ;
+
+ ECHO "Testing mesh split size:" spl ;
+
+ ! High-Order Diamond Difference method
+ EVALUATE sch := 1 ;
+ EVALUATE spa := 1 ;
+ TRACK := SNT: GEOM ::
+ TITLE '2D HEXA ANISOTROPIC PHYSOR HODD BENCHMARK, 1 GROUP'
+ EDIT 2 MAXR 25000
+ SCHM <<sch>>
+ DIAM <<spa>>
+ SN <<ang>>
+ SCAT <<sca>>
+ KBA 1
+ MAXI 25 EPSI 1.E-5
+ QUAD 2 (*Level-Symmetric*) ;
+ SYSTEM := ASM: MACRO TRACK :: EDIT 1 ARM ;
+ FLUX := FLU: MACRO TRACK SYSTEM ::
+ EDIT 2 TYPE K EXTE 100 1E-6 ;
+ IF spl 1 = THEN assertS FLUX :: 'K-EFFECTIVE' 1 1.002178 ;
+ ELSEIF spl 2 = THEN assertS FLUX :: 'K-EFFECTIVE' 1 1.002180 ;
+ ELSEIF spl 3 = THEN assertS FLUX :: 'K-EFFECTIVE' 1 1.002177 ;
+ ENDIF ;
+ TRACK SYSTEM FLUX := DELETE: TRACK SYSTEM FLUX ;
+
+ ! Discontinuous Galerkin
+ EVALUATE sch := 2 ;
+ EVALUATE spa := 1 ;
+ TRACK := SNT: GEOM ::
+ TITLE '2D HEXA ANISOTROPIC PHYSOR HODD BENCHMARK, 1 GROUP'
+ EDIT 2 MAXR 25000
+ SCHM <<sch>>
+ DIAM <<spa>>
+ SN <<ang>>
+ SCAT <<sca>>
+ KBA 1
+ MAXI 25 EPSI 1.E-5
+ QUAD 2 (*Level-Symmetric*) ;
+ SYSTEM := ASM: MACRO TRACK :: EDIT 1 ARM ;
+ FLUX := FLU: MACRO TRACK SYSTEM ::
+ EDIT 2 TYPE K EXTE 100 1E-6 ;
+ IF spl 1 = THEN assertS FLUX :: 'K-EFFECTIVE' 1 1.001961 ;
+ ELSEIF spl 2 = THEN assertS FLUX :: 'K-EFFECTIVE' 1 1.002147 ;
+ ELSEIF spl 3 = THEN assertS FLUX :: 'K-EFFECTIVE' 1 1.002168 ;
+ ENDIF ;
+ TRACK SYSTEM FLUX := DELETE: TRACK SYSTEM FLUX ;
+
+ GEOM := DELETE: GEOM ;
+
+UNTIL spl 3 = ;
+*
+************************************************************************
+*----
+* TEST HODD/DG MESH 1 FOR ORDER 0, 1, 2
+*----
+EVALUATE spl := 2 ;
+GEOM := GEO: :: HEX 127
+ EDIT 2
+ SPLITL <<spl>>
+ HBC COMPLETE VOID
+ SIDE 19.0
+ MIX
+ 1
+ 1 1 1 1 1 1
+ 1 1 1 1 1 1 1 1 1 1 1 1
+ 2 1 1 2 1 1 2 1 1 2 1 1 2 1 1 2 1 1
+ 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
+ 3 2 2 2 2 3 2 2 2 2 3 2 2 2 2 3 2 2 2 2 3 2 2 2 2 3 2 2 2 2
+ 0 3 3 3 3 3 0 3 3 3 3 3 0 3 3 3 3 3 0 3 3 3 3 3 0 3 3 3 3 3 0 3 3 3 3 3
+ ;
+
+EVALUATE spa := -1 ;
+REPEAT
+ EVALUATE spa := spa 1 + ;
+
+ ECHO "Testing spatial order:" spl ;
+
+ ! High-Order Diamond Difference method
+ EVALUATE sch := 1 ;
+ TRACK := SNT: GEOM ::
+ TITLE '2D HEXA ANISOTROPIC PHYSOR HODD BENCHMARK, 1 GROUP'
+ EDIT 2 MAXR 25000
+ SCHM <<sch>>
+ DIAM <<spa>>
+ SN <<ang>>
+ SCAT <<sca>>
+ KBA 1
+ MAXI 25 EPSI 1.E-5
+ QUAD 2 (*Level-Symmetric*) ;
+ SYSTEM := ASM: MACRO TRACK :: EDIT 1 ARM ;
+ FLUX := FLU: MACRO TRACK SYSTEM ::
+ EDIT 2 TYPE K EXTE 100 1E-6 ;
+ IF spa 0 = THEN assertS FLUX :: 'K-EFFECTIVE' 1 1.001900 ;
+ ELSEIF spl 1 = THEN assertS FLUX :: 'K-EFFECTIVE' 1 1.002180 ;
+ ELSEIF spa 2 = THEN assertS FLUX :: 'K-EFFECTIVE' 1 1.002178 ;
+ ENDIF ;
+ TRACK SYSTEM FLUX := DELETE: TRACK SYSTEM FLUX ;
+
+ ! Discontinuous Galerkin
+ EVALUATE sch := 2 ;
+ TRACK := SNT: GEOM ::
+ TITLE '2D HEXA ANISOTROPIC PHYSOR HODD BENCHMARK, 1 GROUP'
+ EDIT 2 MAXR 25000
+ SCHM <<sch>>
+ DIAM <<spa>>
+ SN <<ang>>
+ SCAT <<sca>>
+ KBA 1
+ MAXI 25 EPSI 1.E-5
+ QUAD 2 (*Level-Symmetric*) ;
+ SYSTEM := ASM: MACRO TRACK :: EDIT 1 ARM ;
+ FLUX := FLU: MACRO TRACK SYSTEM ::
+ EDIT 2 TYPE K EXTE 100 1E-6 ;
+ IF spa 0 = THEN assertS FLUX :: 'K-EFFECTIVE' 1 0.9769528 ;
+ ELSEIF spa 1 = THEN assertS FLUX :: 'K-EFFECTIVE' 1 1.002147 ;
+ ELSEIF spa 2 = THEN assertS FLUX :: 'K-EFFECTIVE' 1 1.002178 ;
+ ENDIF ;
+ ! assertS FLUX :: 'K-EFFECTIVE' 1 1.002175 ;
+ TRACK SYSTEM FLUX := DELETE: TRACK SYSTEM FLUX ;
+
+UNTIL spa 2 = ;
+*----
+* TEST DG MESH 1 FOR ORDER 3
+*----
+! Discontinuous Galerkin
+EVALUATE sch := 2 ;
+EVALUATE spa := 3 ;
+TRACK := SNT: GEOM ::
+ TITLE '2D HEXA ANISOTROPIC PHYSOR HODD BENCHMARK, 1 GROUP'
+ EDIT 2 MAXR 25000
+ SCHM <<sch>>
+ DIAM <<spa>>
+ SN <<ang>>
+ SCAT <<sca>>
+ KBA 1
+ MAXI 25 EPSI 1.E-5
+ QUAD 2 (*Level-Symmetric*) ;
+SYSTEM := ASM: MACRO TRACK :: EDIT 1 ARM ;
+FLUX := FLU: MACRO TRACK SYSTEM ::
+ EDIT 2 TYPE K EXTE 100 1E-6 ;
+assertS FLUX :: 'K-EFFECTIVE' 1 1.002178 ;
+TRACK SYSTEM FLUX := DELETE: TRACK SYSTEM FLUX ;
+************************************************************************
+
+ECHO "test TCM57 completed" ;
+END: ; \ No newline at end of file