*---- * Nom : Fessenheim.x2m * Type : fichier DONJON *---- * First start-up of Fessenheim-1, 2 and Bugey-2 PWRs, in hot zero power * state * Author : V. Salino (IRSN), 02/2021 * * Source : * 'Contribution a l'elaboration et a la qualification d'un schema de * calcul pour la gestion des reacteurs PWR, a l'aide du systeme Neptune * Suivi du reacteur Fessenheim 2', E. Kamha, Ph.D. Thesis, Universite * Paris-Sud Centre d'Orsay, 1981. * Link : https://inis.iaea.org/ * collection/NCLCollectionStore/_Public/18/076/18076909.pdf * See also : * - 'Incertitudes et ajustements de donnees nucleaires au moyen de * methodes deterministes, probabilistes et de mesures effectuees sur * des reacteurs a eau sous pression', V. Salino, Ph.D. Thesis, École * Polytechnique de Montreal, 2022. * Link : https://publications.polymtl.ca/10545/ * - https://github.com/IRSN/SalinoPhD *---- * Definition STRUCTURES, MODULES et PROCEDURES *---- SEQ_ASCII aREFL :: FILE './REFL.ascii' ; SEQ_ASCII aUOX210 :: FILE './UOX210.ascii' ; SEQ_ASCII aUOX310 :: FILE './UOX310.ascii' ; SEQ_ASCII aUOX260_Py12 :: FILE './UOX260_Py12.ascii' ; SEQ_ASCII aUOX260_Py16 :: FILE './UOX260_Py16.ascii' ; SEQ_ASCII aUOX260_Py20 :: FILE './UOX260_Py20.ascii' ; SEQ_ASCII aUOX310_Py12 :: FILE './UOX310_Py12.ascii' ; SEQ_ASCII aUOX310_Py16 :: FILE './UOX310_Py16.ascii' ; XSM_FILE REFL UOX210 UOX310 UOX260_Py12 UOX260_Py16 UOX260_Py20 UOX310_Py12 UOX310_Py16 ; LINKED_LIST GeoRes Track System Flux Matex MacroTot Fmap MicroFuel GeoCoeur Thermo List Idetec PowerARO ActivARO ; MODULE TRIVAT: TRIVAA: FLUD: GREP: DELETE: END: FLPOW: RESINI: THM: NSST: NSSF: ; PROCEDURE InterpCP0 GetTechData GeoCoreCP0 ThermaExpans DetFissChamb ; PROCEDURE assertS ; *---- * Retrieve cross sections from ASCII files *---- REFL := aREFL ; UOX210 := aUOX210 ; UOX310 := aUOX310 ; UOX260_Py12 := aUOX260_Py12 ; UOX260_Py16 := aUOX260_Py16 ; UOX260_Py20 := aUOX260_Py20 ; UOX310_Py12 := aUOX310_Py12 ; UOX310_Py16 := aUOX310_Py16 ; *---- * Modelling parameters *---- STRING Gestion := 'FSH' ; ! FSH=Fessenheim REAL CB := 1325.0 ; ! ppm *---- * Choice of reflector modelling : * - TousPaliers * - MargCpy * - MargCpyAdjus *---- STRING TypeRefl := "TousPaliers" ; STRING CondLimite ; *---- * If and only if TousPaliers is being used : * Palier : * - CP0_900 * MethodRefl : * - Lefebvre-Leb * - Koebke-a *---- STRING Palier := "CP0_900" ; STRING MethodRefl := "Lefebvre-Leb" ; ECHO "TypeRefl =" TypeRefl ; ECHO "Palier =" Palier ; ECHO "MethodRefl =" MethodRefl ; *---- * Geometry description *---- REAL dx z1 z2 ; GeoCoeur GeoRes Matex Fmap := GeoCoreCP0 :: >>dx<< >>z1<< >>z2<< ; *---- * Variables for thermalhydraulics *---- REAL CoreFlowRate CoreFlowByp ; REAL Tinlet OpePressure dmod tfuel tclad ; REAL Prel Ptot Pnom ; (* MWth *) REAL NbAss NbFuelPin NbPinAssXY ; REAL rTubeEx rCladFuel eCladFuel rFuel ; List := GetTechData :: <> 'UOX' 0 'None' 'DEPLPARAMAVG' ; GREP: List :: GETVAL 'dmod' 1 >>dmod<< ; GREP: List :: GETVAL 'tmod' 1 >>Tinlet<< ; GREP: List :: GETVAL 'tfuel' 1 >>tfuel<< ; EVALUATE tclad := 0.12 tfuel * 0.88 Tinlet * + ; List := DELETE: List ; List := GetTechData :: <> 'UOX' 0 'None' 'GENERAL' ; GREP: List :: GETVAL 'OpePressure' 1 >>OpePressure<< ; GREP: List :: GETVAL 'CoreFlowRate' 1 >>CoreFlowRate<< ; GREP: List :: GETVAL 'CoreFlowByp' 1 >>CoreFlowByp<< ; GREP: List :: GETVAL 'PowMWth' 1 >>Pnom<< ; GREP: List :: GETVAL 'NbAss' 1 >>NbAss<< ; GREP: List :: GETVAL 'NbFuelPin' 1 >>NbFuelPin<< ; GREP: List :: GETVAL 'NbPinAssXY' 1 >>NbPinAssXY<< ; List := DELETE: List ; List := GetTechData :: <> 'UOX' 0 'None' 'DISTANCES' ; GREP: List :: GETVAL 'rTubeEx' 1 >>rTubeEx<< ; GREP: List :: GETVAL 'rCladFuel' 1 >>rCladFuel<< ; GREP: List :: GETVAL 'eCladFuel' 1 >>eCladFuel<< ; GREP: List :: GETVAL 'rFuel' 1 >>rFuel<< ; List := DELETE: List ; REAL rCladFuelIn := rCladFuel eCladFuel - ; REAL DUMMY_R0 := 0.0 ; ThermaExpans :: <> "Zr4" <> "Distance" 'TIH' <> <> >>rTubeEx<< ; ThermaExpans :: <> "Zr4" <> "Distance" 'TIH' <> <> >>rCladFuel<< ; ThermaExpans :: <> "Zr4" <> "Distance" 'TIH' <> <> >>rCladFuelIn<< ; ThermaExpans :: <> "UO2" <> "Distance" 'TIH' <> <> >>rFuel<< ; * The unit of GetTechData is centimeters, while THM expects meters. EVALUATE rTubeEx := rTubeEx 100.0 / ; EVALUATE rCladFuel := rCladFuel 100.0 / ; EVALUATE rCladFuelIn := rCladFuelIn 100.0 / ; EVALUATE rFuel := rFuel 100.0 / ; REAL NbTube := NbPinAssXY 2.0 ** NbFuelPin - ; REAL Tot_tub := rTubeEx 2.0 ** $Pi_R * NbTube * ; ! m2 REAL Tot_pin := rCladFuel 2.0 ** $Pi_R * NbFuelPin * ; ! m2 REAL sass := dx 100.0 / 2.0 ** ; ! m2 REAL asssect := sass Tot_tub - Tot_pin - ; ! m2 REAL coresect := NbAss asssect * ; ! m2 * The 2x2 meshing implies dividing the number of rods by the same * amount, in order to correctly calculate the area available for the * hydraulic flow. EVALUATE NbFuelPin := NbFuelPin 4.0 / ; EVALUATE NbTube := NbTube 4.0 / ; * Convert flow rate from [kg/h] (from GetTechData) into [m3/h] (for * THM). Also, remove the bypass flow. EVALUATE CoreFlowRate := CoreFlowRate 1000.0 * ! [kg/h] to [g/h] dmod / ! [g/h] to [cm3/h] 1.0E+6 / ! [cm3/g] to [m3/h] 1.0 CoreFlowByp - * ; * Convert temperatures into Kelvin, for proper THM usage and proper * cross section interpolation EVALUATE Tinlet := Tinlet 273.15 + ; EVALUATE tfuel := tfuel 273.15 + ; *---- * Variables used for hot zero power physics testing *---- Fmap := RESINI: Fmap :: SET-PARAM 'C-BORE' <> SET-PARAM 'D-COOL' <> SET-PARAM 'T-FUEL' <> ; MicroFuel MacroTot Matex Fmap := InterpCP0 Matex Fmap REFL UOX210 UOX310 UOX260_Py12 UOX260_Py16 UOX260_Py20 UOX310_Py12 UOX310_Py16 :: <> <> <> <> ; STRING Solver := 'ANM' ; *STRING Solver := 'FiniteElem' ; IF Solver 'ANM' = THEN Track := NSST: GeoRes :: TITLE 'REP900 TESTCASE' MAXR 1000000 ANM ; Flux := NSSF: Track MacroTot :: EDIT 2 NUPD 100 3 1.0E-6 EXTE 500 1.0E-5 LEAK quadratic ; ELSEIF Solver 'FiniteElem' = THEN Track := TRIVAT: GeoRes :: MAXR 1000000 DUAL 2 3 ; System := TRIVAA: MacroTot Track ; Flux := FLUD: System Track :: EDIT 2 ADI 4 EXTE 1.0E-6 ACCE 5 3 ; System := DELETE: System ; ENDIF ; EVALUATE Prel := 1.0E-9 ; ! 0% PN EVALUATE Ptot := Pnom Prel * ; PowerARO Fmap := FLPOW: Fmap Flux Track Matex :: EDIT 2 PTOT <> PRINT DISTR POWER ; Thermo Fmap := THM: Fmap :: EDIT 0 ASSMB <> <> CWSECT <> <> INLET <> <> RADIUS <> <> <> <> ; ActivARO := DetFissChamb Track Flux MicroFuel Fmap :: <> <> <> ; assertS Flux :: 'K-EFFECTIVE' 1 1.00567544 ; assertS ActivARO :: 'RESPON' 5 32.38300 ; ECHO "test Fessenheim.x2m completed" ; END: ; QUIT "LIST" .