*---- * Name : rep1300_reflector_sp1.x2m * Type : DONJON CLE2000 procedure * Author : Alain Hebert * * Compute the reflector parameters using a 26-group reference * solution and a sequence of 2-group SP1 macro-calculations. * *---- * STRUCTURES, MODULES and PROCEDURES definitions *---- MODULE GEO: UTL: GREP: SCR: TRIVAT: EDI: DELETE: ABORT: END: ; LINKED_LIST SAPOBJ MACRO MACRO2 EDIT2 MACROGEOM TRACK MACRO3 OPTIM ; INTEGER itype ; REAL REFVALUE DELTA ; DOUBLE Fobj ; SEQ_ASCII _ASaphyb :: FILE 'referenceSaphybCalculation.sap' ; PROCEDURE reflectorOpt ; *---- * Check the Saphyb signature. Add one if missing. Extract MACRO. *---- SAPOBJ := _ASaphyb ; GREP: SAPOBJ :: TYPE 'SIGNATURE' >>itype<< ; ECHO "type signature=" itype ; IF itype 99 = THEN SAPOBJ := UTL: SAPOBJ :: CREA 'SIGNATURE' 3 = 'L_SA' 'PHYB' ' ' ; ENDIF ; MACRO := SCR: SAPOBJ :: EDIT 2 NMIX 55 SAPHYB SAPOBJ MIX 1 USE SET 'BURN' 0.0 ENDMIX MIX 2 USE SET 'BURN' 0.0 ENDMIX MIX 3 USE SET 'BURN' 0.0 ENDMIX MIX 4 USE SET 'BURN' 0.0 ENDMIX MIX 5 USE SET 'BURN' 0.0 ENDMIX MIX 6 USE SET 'BURN' 0.0 ENDMIX MIX 7 USE SET 'BURN' 0.0 ENDMIX MIX 8 USE SET 'BURN' 0.0 ENDMIX MIX 9 USE SET 'BURN' 0.0 ENDMIX MIX 10 USE SET 'BURN' 0.0 ENDMIX MIX 11 USE SET 'BURN' 0.0 ENDMIX MIX 12 USE SET 'BURN' 0.0 ENDMIX MIX 13 USE SET 'BURN' 0.0 ENDMIX MIX 14 USE SET 'BURN' 0.0 ENDMIX MIX 15 USE SET 'BURN' 0.0 ENDMIX MIX 16 USE SET 'BURN' 0.0 ENDMIX MIX 17 USE SET 'BURN' 0.0 ENDMIX MIX 18 USE SET 'BURN' 0.0 ENDMIX MIX 19 USE SET 'BURN' 0.0 ENDMIX MIX 20 USE SET 'BURN' 0.0 ENDMIX MIX 21 USE SET 'BURN' 0.0 ENDMIX MIX 22 USE SET 'BURN' 0.0 ENDMIX MIX 23 USE SET 'BURN' 0.0 ENDMIX MIX 24 USE SET 'BURN' 0.0 ENDMIX MIX 25 USE SET 'BURN' 0.0 ENDMIX MIX 26 USE SET 'BURN' 0.0 ENDMIX MIX 27 USE SET 'BURN' 0.0 ENDMIX MIX 28 USE SET 'BURN' 0.0 ENDMIX MIX 29 USE SET 'BURN' 0.0 ENDMIX MIX 30 USE SET 'BURN' 0.0 ENDMIX MIX 31 USE SET 'BURN' 0.0 ENDMIX MIX 32 USE SET 'BURN' 0.0 ENDMIX MIX 33 USE SET 'BURN' 0.0 ENDMIX MIX 34 USE SET 'BURN' 0.0 ENDMIX MIX 35 USE SET 'BURN' 0.0 ENDMIX MIX 36 USE SET 'BURN' 0.0 ENDMIX MIX 37 USE SET 'BURN' 0.0 ENDMIX MIX 38 USE SET 'BURN' 0.0 ENDMIX MIX 39 USE SET 'BURN' 0.0 ENDMIX MIX 40 USE SET 'BURN' 0.0 ENDMIX MIX 41 USE SET 'BURN' 0.0 ENDMIX MIX 42 USE SET 'BURN' 0.0 ENDMIX MIX 43 USE SET 'BURN' 0.0 ENDMIX MIX 44 USE SET 'BURN' 0.0 ENDMIX MIX 45 USE SET 'BURN' 0.0 ENDMIX MIX 46 USE SET 'BURN' 0.0 ENDMIX MIX 47 USE SET 'BURN' 0.0 ENDMIX MIX 48 USE SET 'BURN' 0.0 ENDMIX MIX 49 USE SET 'BURN' 0.0 ENDMIX MIX 50 USE SET 'BURN' 0.0 ENDMIX MIX 51 USE SET 'BURN' 0.0 ENDMIX MIX 52 USE SET 'BURN' 0.0 ENDMIX MIX 53 USE SET 'BURN' 0.0 ENDMIX MIX 54 USE SET 'BURN' 0.0 ENDMIX MIX 55 USE SET 'BURN' 0.0 ENDMIX ; *---- * Define the macro geometry (MACROGEOM) *---- MACROGEOM := GEO: :: CAR2D 11 11 (*EIGHTH OF A REP1300 REACTOR*) X- DIAG X+ VOID Y- SYME Y+ DIAG MIX 1 2 3 4 5 6 7 8 9 34 34 10 11 12 13 14 15 16 17 34 34 18 19 20 21 22 23 34 34 34 24 25 26 27 28 34 34 34 29 30 31 34 34 34 0 32 33 34 34 34 0 34 34 34 0 0 34 34 0 0 0 0 0 0 0 0 MESHX 0.0 21.611253 43.222506 64.833759 86.445012 108.056265 129.667518 151.278771 172.890024 194.501277 216.112530 237.723783 MESHY 0.0 21.611253 43.222506 64.833759 86.445012 108.056265 129.667518 151.278771 172.890024 194.501277 216.112530 237.723783 SPLITX 2 2 2 2 2 2 2 2 2 2 2 SPLITY 2 2 2 2 2 2 2 2 2 2 2 ; TRACK := TRIVAT: MACROGEOM :: DUAL (*IELEM=*) 3 (*ICOL=*) 3 SPN 1 SCAT 2 MAXR 500 ; *---- * Define the 26-group reference macrolib (MACRO) *---- EDIT2 := EDI: MACRO :: EDIT 3 MERG MIX 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 0 SAVE ; MACRO := DELETE: MACRO ; MACRO := EDIT2 :: STEP UP 'REF-CASE0001' STEP UP MACROLIB ; EDIT2 := DELETE: EDIT2 ; *---- * Define the 2-group reference macrolib (MACRO2) *---- EDIT2 := EDI: MACRO :: EDIT 3 COND 19 26 MERG MIX 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 SAVE ; MACRO := DELETE: MACRO ; MACRO2 := EDIT2 :: STEP UP 'REF-CASE0001' STEP UP MACROLIB ; *---- * Compute optimal reflector *---- MACRO3 OPTIM := reflectorOpt MACRO2 MACROGEOM TRACK :: 33 34 0.5 1.5 1.0E-4 ; *---- * Edit some output results *---- ECHO "control variables at convergence" ; UTL: OPTIM :: IMPR 'VAR-VALUE' * ; GREP: OPTIM :: GETVAL 'FOBJ-CST-VAL' 1 >>Fobj<< ; ECHO "optimal objective function=" Fobj ; EVALUATE REFVALUE := 2.421035E-05 ; EVALUATE DELTA := Fobj D_TO_R REFVALUE - REFVALUE / ABS ; IF DELTA 5.0E-4 < THEN PRINT "TEST SUCCESSFUL; DELTA=" DELTA ; ELSE PRINT "------------" ; PRINT "TEST FAILURE" ; PRINT "------------" ; PRINT "REFERENCE=" REFVALUE " CALCULATED=" Fobj ; ABORT: ; ENDIF ; ECHO "test rep1300_reflector_sp1 completed" ; END: ; QUIT "LIST" .