* * Input file to compute diffusion flux on a homogenize assembly * in an infinite space * Homogenization can be homogeneous or heterogeneous * * Author : R. Chambon (05/2014) * modified : R. Chambon (09/2015) * Note: The '_ACompoHet' multicompo can be obtained by running * ----- the 'rep900_het_gff.x2m' Dragon input file with * 'All' option for TypeCal * 'Yes' option for Gff * 'UOX' option for Fuel * 'NONE' option for SelOpt. * SEQ_ASCII XCOMPOU :: FILE '_ACompoHet' ; * SEQ_ASCII AMF Amap AFLU ATRK :: FILE 'AMF' 'Amap' 'AFLU' 'ATRK' ; SEQ_ASCII ACPOnew :: FILE 'ACPOnew' ; LINKED_LIST Cpo DONNEES GeoInf GeoRes Matex Flux Track Micro MacroF Macro2 System Fmap Macro ; * MODULE GEO: USPLIT: TRIVAT: RESINI: END: FLUD: TRIVAA: MACINI: NCR: DELETE: GREP: NAP: UTL: ABORT: ; * *REAL pbore_0 := 600. ; ! natural boron concentration in ppm INTEGER maxstep istep npin npinHt ifx ; INTEGER MaxR := 16 ; REAL Cote Lame mxel mxhl mxhr mxer Size ; REAL burnup ppmBore crod ; INTEGER iBoreMax := 1 ; !5 INTEGER iTfMax := 1 ; INTEGER iTcaMax := 1 ; INTEGER iDcaMax := 1 ; INTEGER iBarrMax := 1 ; STRING Fuel := "UOX" ; ! UOX or MOX * EVALUATE Cote := 1.26 ; EVALUATE Lame := .04 ; * STRING TypeCompo := "Heter1" ; STRING Dir ; * IF TypeCompo "Heter0" = THEN EVALUATE npinHt := 1 ; EVALUATE Dir := "Ass " ; ELSEIF TypeCompo "Heter1" = THEN EVALUATE npinHt := 1 ; EVALUATE Dir := "Het1 " ; ELSEIF TypeCompo "Heter2" = THEN EVALUATE npinHt := 2 ; EVALUATE Dir := "Het2 " ; ENDIF ; IF TypeCompo "Heter0" = THEN EVALUATE ifx := 0 ; ELSE EVALUATE ifx := npinHt ; ENDIF ; * REAL keff2 ; * EVALUATE npin := 17 ; EVALUATE mxer := npin I_TO_R Cote * Lame 2. * + 2. / ; EVALUATE mxhr := npin npinHt 2 * - I_TO_R Cote * 2. / ; EVALUATE mxhl := mxhr -1. * ; EVALUATE mxel := mxer -1. * ; EVALUATE Size := npin I_TO_R Cote * Lame 2. * + ; ECHO mxel mxhl mxhr mxer ; * Cpo := XCOMPOU ; IF ifx 0 = THEN GeoInf := GEO: :: CAR2D 1 1 EDIT 1 X- REFL X+ REFL Y- REFL Y+ REFL MIX 1 MESHX <> <> MESHY <> <> SPLITX 1 SPLITY 1 ; Track := TRIVAT: GeoInf :: MAXR <> MCFD 1 ; ELSE GeoInf := GEO: :: CAR2D 3 3 EDIT 1 X- REFL X+ REFL Y- REFL Y+ REFL MIX 3 2 3 2 1 2 3 2 3 MESHX <> <> <> <> MESHY <> <> <> <> SPLITX 1 1 1 SPLITY 1 1 1 ; Track := TRIVAT: GeoInf :: MAXR <> DUAL 3 3 ; ENDIF ; ATRK := Track ; IF Fuel "MOX" = THEN EVALUATE maxstep := 1 ; ! EVALUATE maxstep := 2 ; ! EVALUATE maxstep := 6 ; ! EVALUATE maxstep := 71 ; DONNEES := UTL: :: CREA burn <> = 0.0 ! 0.0 9.37499 ! 0.0 9.37499 18.7500 37.5000 74.9999 150.000 ! 325.000 500.000 750.000 1000.00 1500.00 2000.00 ! 2500.00 3000.00 4000.00 5000.00 6000.00 7000.00 ! 8000.00 9000.00 10000.0 11000.0 12000.0 13000.0 ! 14000.0 15000.0 16000.0 17000.0 18000.0 19000.0 ! 20000.0 21000.0 22000.0 23000.0 24000.0 25000.0 ! 26000.0 27000.0 28000.0 29000.0 30000.0 31000.0 ! 32000.0 33000.0 34000.0 35000.0 36000.0 37000.0 ! 38000.0 39000.0 40000.0 41000.0 42000.0 43000.0 ! 44000.0 45000.0 46000.0 47000.0 48000.0 49000.0 ! 50000.0 51000.0 52000.0 53000.0 54000.0 55000.0 ! 56000.0 57000.0 58000.0 59000.0 60000.0 ; ELSEIF Fuel "UOX" = THEN EVALUATE maxstep := 1 ; ! EVALUATE maxstep := 2 ; ! EVALUATE maxstep := 6 ; ! EVALUATE maxstep := 73 ; DONNEES := UTL: :: CREA burn <> = 0.0 ! 0.0 9.37498 ! 0.0 9.37498 18.7500 37.4999 74.9999 150.000 ! 237.500 325.000 412.500 500.000 625.000 750.000 ! 1000.00 1250.00 1500.00 1750.00 2000.00 2500.00 ! 3000.00 3500.00 4000.00 4500.00 5000.00 5500.00 ! 6000.00 6500.00 7000.00 7500.00 8000.00 8500.00 ! 9000.00 9500.00 10000.0 10500.0 11000.0 11500.0 ! 12000.0 12500.0 13000.0 13500.0 14000.0 14500.0 ! 15000.0 15500.0 16000.0 16500.0 17000.0 17500.0 ! 18000.0 18500.0 19000.0 19500.0 20000.0 22000.0 ! 24000.0 26000.0 28000.0 30000.0 32000.0 34000.0 ! 36000.0 38000.0 40000.0 42000.0 44000.0 46000.0 ! 48000.0 50000.0 52000.0 54000.0 56000.0 58000.0 ! 60000.0 ; ELSE ECHO "Fuel incorrect" ; ABORT: ; ENDIF ; DONNEES := UTL: DONNEES :: CREA ppmBore <> = 600.0 ! 0.0 600.0 ! 0.0 600.0 1200.0 1800.0 2400.0 CREA tf <> = * 550.0 800.0 1150.0 800.0 CREA tca <> = * 500.0 600.0 700.0 600.0 CREA dca <> = * 0.500 0.659 0.800 0.659 CREA BARR <> = * 0.0 1.0 0.0 ; INTEGER iBoreStep := 0 ; ECHO "$$$ Crod loop" ; INTEGER iCrodStep := 0 ; WHILE iCrodStep iBarrMax < DO EVALUATE iCrodStep := iCrodStep 1 + ; ECHO "iCrodStep = " iCrodStep " of " iBarrMax ; GREP: DONNEES :: GETVAL 'BARR' <> >>crod<< ; ECHO "$$$ Boron loop" ; EVALUATE iBoreStep := 0 ; WHILE iBoreStep iBoreMax < DO EVALUATE iBoreStep := iBoreStep 1 + ; ECHO "iBoreStep = " iBoreStep " of " iBoreMax ; GREP: DONNEES :: GETVAL 'ppmBore' <> >>ppmBore<< ; ECHO "$$$ Burnup loop" ; EVALUATE istep := 0 ; WHILE istep maxstep < DO EVALUATE istep := istep 1 + ; GREP: DONNEES :: GETVAL 'burn' <> >>burnup<< ; IF ifx 0 = THEN Micro := NCR: Cpo :: EDIT 0 NMIX 1 COMPO Cpo <> MIX 1 FROM 1 SET 'burnup' <> SET 'ppmBore' <> SET 'TF' 800.0 SET 'DCA' 0.659 SET 'TCA' 600.0 SET 'BARR' <> ENDMIX ; ELSE Micro := NCR: Cpo :: EDIT 0 NMIX 3 COMPO Cpo <> MIX 1 FROM 1 SET 'burnup' <> SET 'ppmBore' <> SET 'TF' 800.0 SET 'DCA' 0.659 SET 'TCA' 600.0 SET 'BARR' <> ENDMIX MIX 2 FROM 2 SET 'burnup' <> SET 'ppmBore' <> SET 'TF' 800.0 SET 'DCA' 0.659 SET 'TCA' 600.0 SET 'BARR' <> ENDMIX MIX 3 FROM 3 SET 'burnup' <> SET 'ppmBore' <> SET 'TF' 800.0 SET 'DCA' 0.659 SET 'TCA' 600.0 SET 'BARR' <> ENDMIX ; ENDIF ; MacroF := Micro :: STEP UP MACROLIB ; *AMF := MacroF ; Macro2 := MacroF ; System := TRIVAA: Macro2 Track ; Flux := FLUD: System Track :: EDIT 0 ADI 5 ; *AFLU := Flux ; GREP: Flux :: GETVAL 'K-EFFECTIVE ' 1 >>keff2<< ; ECHO "ppmBore=" ppmBore "K-effective 2 = " keff2 ; Cpo := NAP: Cpo Track Flux :: EDIT 10 PROJECTION STEP <> IFX <> SET 'burnup' <> SET 'ppmBore' <> SET 'TF' 800.0 SET 'DCA' 0.659 SET 'TCA' 600.0 ! SET 'BARR' <> ; Flux MacroF Macro2 Micro System := DELETE: Flux MacroF Macro2 Micro System ; ENDWHILE ; ! reference burnup loop ENDWHILE ; ! boron loop ENDWHILE ; ! crod loop ACPOnew := Cpo ; ECHO "test rep900EnrichCOMPOhet.x2m completed" ; END: ; QUIT .