*---- * 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 <> 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 <> DIAM <> SN <> SCAT <> 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 <> DIAM <> SN <> SCAT <> 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 <> 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 <> DIAM <> SN <> SCAT <> 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 <> DIAM <> SN <> SCAT <> 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 <> DIAM <> SN <> SCAT <> 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 <> 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 <> DIAM <> SN <> SCAT <> 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 <> DIAM <> SN <> SCAT <> 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 <> 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 <> DIAM <> SN <> SCAT <> 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 <> DIAM <> SN <> SCAT <> 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 <> DIAM <> SN <> SCAT <> 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: ;