diff options
Diffstat (limited to 'Donjon/data/rep1300_reflector.x2m')
| -rw-r--r-- | Donjon/data/rep1300_reflector.x2m | 138 |
1 files changed, 138 insertions, 0 deletions
diff --git a/Donjon/data/rep1300_reflector.x2m b/Donjon/data/rep1300_reflector.x2m new file mode 100644 index 0000000..d252b16 --- /dev/null +++ b/Donjon/data/rep1300_reflector.x2m @@ -0,0 +1,138 @@ +*---- +* Name : rep1300_reflector.x2m +* Type : DONJON CLE2000 procedure +* Author : Alain Hebert +* +* Compute the reflector parameters using a 26-group reference +* solution and a sequence of 2-group 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 + EDIOUT ; +INTEGER itype ; +REAL REFVALUE DELTA ; +DOUBLE Fobj ; +SEQ_ASCII _ASaphyb :: FILE 'referenceSaphybCalculation.sap' ; +XSM_FILE SAPFIL :: FILE 'SAPFIL' ; +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 + 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.554216E-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 completed" ; +END: ; +QUIT "LIST" . |
