diff options
Diffstat (limited to 'Donjon/data/candu6_iram_proc/Pfluax.c2m')
| -rw-r--r-- | Donjon/data/candu6_iram_proc/Pfluax.c2m | 110 |
1 files changed, 110 insertions, 0 deletions
diff --git a/Donjon/data/candu6_iram_proc/Pfluax.c2m b/Donjon/data/candu6_iram_proc/Pfluax.c2m new file mode 100644 index 0000000..0ab2c42 --- /dev/null +++ b/Donjon/data/candu6_iram_proc/Pfluax.c2m @@ -0,0 +1,110 @@ +!*********************************************************************** +!* ** +!* PROCEDURE: Pfluax ** +!* USAGE: Flux calculation for Gentilly2 for axial Flux shape ** +!* convergence or criticality on exit burnup (TAVG COMP) ** +!* NOTES: ** +!* Precf= Static Flux calculation precision ** +!* Pow = total fission Power ** +!* Eps1 = error on Flux form ** +!* Keff = effective mutltiplication factor ** +!* ** +!* Notice : the Reseau must containt the appropriate BURNUP-ZONE ** +!*********************************************************************** + PARAMETER Reseau Flux System Mactot Macres Macnod Index Track Cpo + Macro Device :: + ::: + LINKED_LIST Reseau Flux System Mactot Macres Macnod Index Cpo Macro + Device Track ; + ; + + MODULE TAVG: CRE: MACINI: NEWMAC: TRIVAA: FLUD: FLPOW: GREP: + DELETE: END: ; + + LINKED_LIST Power Macrso Macro2 Macro3 ; + +!* Declaration and initialization of variables +!********************************************* + INTEGER New Iprint ; + REAL Precf Eps1 epsilon Keff Pow ; + EVALUATE Eps1 := 1.0 ; + EVALUATE epsilon := 1.E-4 ; + +!* Recover the procedure arguments +!********************************* + :: >>Precf<< >>Pow<< >>New<< >>Iprint<< ; + +!* Iterative strategy to converge on the axial Flux shape +!******************************************************** + INTEGER Iter := 0 ; + + IF Iprint 1 > THEN + ECHO "*************************" ; + ECHO "* Flux CALCULATION - TA *" ; + ECHO "*************************" ; + ENDIF ; + EVALUATE Eps1 := epsilon 1. + ; + + WHILE Eps1 epsilon > Iter 20 < * DO + ECHO "Eps1=" Eps1 "epsilon" epsilon ; + + EVALUATE Iter := Iter 1 + ; + IF Iter 1 > THEN + Macrso Macro2 Macro3 := DELETE: Macrso Macro2 Macro3 ; + ENDIF ; +*-- +* fuel-map Macrolib: +*-- + Macrso := CRE: Cpo Reseau :: EDIT 1 READ + TABLE Cpo MIX 1 'MIXTRXE 1' MICRO ALL ENDMIX ; +*-- +* extended Macrolib: +*-- + Macro2 Index := MACINI: Index Macro Macrso :: EDIT 0 ; +*-- +* complete Macrolib: +*-- + Macro3 Index := NEWMAC: Index Macro2 Device :: EDIT 0 ; +*-- +* numerical solution: +*-- + IF Iter 1 = New 1 = * THEN + System := TRIVAA: Macro3 Track :: EDIT 0 ; + Flux := FLUD: System Track :: EDIT 1 + ACCE 3 3 ADI 4 EXTE 1000 <<Precf>> ADJ ; + ELSE + System := TRIVAA: System Macro3 Track :: EDIT 0 ; + Flux := FLUD: Flux System Track :: + EDIT 1 EXTE 1000 <<Precf>> ADJ ; + ENDIF ; +*-- +* Flux and Power: +*-- + Power := FLPOW: Reseau Flux Track Index :: + EDIT 0 PTOT <<Pow>> ; +*-- +* burnups integration limits: +*-- + Reseau := TAVG: Reseau Power :: EDIT 1 AX-SHAPE RELAX 0.65 ; + GREP: Power :: GETVAL 'K-EFFECTIVE' 1 >>Keff<< ; + Power := DELETE: Power ; +*-- +* current parameters: +*-- + GREP: Reseau :: GETVAL EPS-AX 1 >>Eps1<< ; + + IF Iprint 1 > THEN + ECHO "Axial convergence factor : " Eps1 ; + ECHO "Internal iteration number: " Iter ; + ECHO "Keffective : " Keff ; + ENDIF ; +* + ENDWHILE ; + + Macres := Macrso ; + Macnod := Macro2 ; + Mactot := Macro3 ; + + END: ; + +QUIT . |
