summaryrefslogtreecommitdiff
path: root/Donjon/data/pmox_sap_proc
diff options
context:
space:
mode:
authorstainer_t <thomas.stainer@oecd-nea.org>2025-09-08 13:48:49 +0200
committerstainer_t <thomas.stainer@oecd-nea.org>2025-09-08 13:48:49 +0200
commit7dfcc480ba1e19bd3232349fc733caef94034292 (patch)
tree03ee104eb8846d5cc1a981d267687a729185d3f3 /Donjon/data/pmox_sap_proc
Initial commit from Polytechnique Montreal
Diffstat (limited to 'Donjon/data/pmox_sap_proc')
-rw-r--r--Donjon/data/pmox_sap_proc/Conv.c2m212
-rw-r--r--Donjon/data/pmox_sap_proc/FMap.c2m185
-rw-r--r--Donjon/data/pmox_sap_proc/Geo.c2m189
-rw-r--r--Donjon/data/pmox_sap_proc/Init.c2m183
-rw-r--r--Donjon/data/pmox_sap_proc/_Saphyb_UOX3
5 files changed, 772 insertions, 0 deletions
diff --git a/Donjon/data/pmox_sap_proc/Conv.c2m b/Donjon/data/pmox_sap_proc/Conv.c2m
new file mode 100644
index 0000000..4bf529a
--- /dev/null
+++ b/Donjon/data/pmox_sap_proc/Conv.c2m
@@ -0,0 +1,212 @@
+*****************************************************************
+* *
+* Procedure : Steady.c2m *
+* Purpose : reactor steady state computation including *
+* neutron physics, thermalhydraulics, local xenon *
+* effects and critical boron search feature *
+* Author : V. Salino *
+* *
+* CALL : *
+* Power Fmap Matex Thermo XeMicroF XeBurn := Steady *
+* Fmap Matex Thermo XeMicroF XeBurn ReflXS Track :: *
+* <<CritCB>> <<CBinit>> <<Prel>> <<InletTmod> *
+* >>CB<< >>keff<< ; *
+* *
+* Parameters: input *
+* CritCB set to True to search critical boron concentration *
+* computation, False otherwise (logical variable). *
+* CBinit initialization for boron concentration (ppm) when *
+* CritCB.EQ.True, otherwise boron concentration to *
+* be used. *
+* Prel relative power=requested power/nominal power. *
+* InletTmod inlet coolant temperature (Celsius). *
+* *
+* Parameters: output *
+* CB critical boron concentration if CritCB.EQ.True, *
+* can be negative in which case CB is extrapolated *
+* and should not considered physical but fictive. *
+* keff k-effective, differs from 1 only if CB is *
+* negative or if CritCB.EQ.False. *
+* *
+*****************************************************************
+PARAMETER Power Flux Fmap Matex Thermo XeMicroF Track SapUOX ::
+ ::: LINKED_LIST Power Flux Fmap Matex Thermo XeMicroF
+ Track SapUOX ; ;
+MODULE SCR: NCR: MACINI: RESINI: TRIVAA: FLUD: FLPOW: EVO: SIM:
+ GREP: UTL: DELETE: ABORT: END: MAC: ;
+*--
+* Local objects and procedure
+*--
+LINKED_LIST MacroTot MacroRefl MacroF System PowerIter ;
+*--
+* Procedure arguments
+*--
+LOGICAL CritCB ;
+REAL CBmax := 2000.0 ;
+REAL CBmin := 0.0 ;
+INTEGER BUindex ;
+REAL CB Prel InletTmod ;
+
+ :: >>CritCB<< >>CB<< >>Prel<< >>InletTmod<< ;
+REAL InletTmodK := InletTmod 273.15 + ;
+*--
+* Local variables
+*--
+REAL ErrorRho ErrorCB ErrorTFuel ErrorDCool ErrorTCool ErrorPdis ;
+REAL EpsRho EpsCB EpsTFuel EpsDCool EpsPdis :=
+ 0.5 0.05 0.5 5.0E-5 5.0E-4 ;
+INTEGER Iter := 1 ;
+REAL CBinterp CBp1 CBm1 keff DeltaRho Rho Rhom1 ;
+LOGICAL CONV := $False_L ;
+REAL DiffBorWorth ;
+REAL TOTAL1_inf TOTAL2_inf
+ DIFF1_inf DIFF2_inf ;
+REAL TOTAL1_sup TOTAL2_sup
+ DIFF1_sup DIFF2_sup ;
+REAL TOTAL1_rad TOTAL2_rad
+ DIFF1_rad DIFF2_rad ;
+EVALUATE TOTAL1_sup TOTAL2_sup :=
+ .158287E+01 .276758E-01 +
+ .503068E+00 .282751E-01 + ;
+EVALUATE DIFF1_sup DIFF2_sup :=
+ 1. 3. TOTAL1_sup * /
+ 1. 3. TOTAL2_sup * / ;
+EVALUATE TOTAL1_inf TOTAL2_inf :=
+ .141535E+01 .261305E-01 +
+ .511240E+00 .198432E-01 + ;
+EVALUATE DIFF1_inf DIFF2_inf :=
+ 1. 3. TOTAL1_inf * /
+ 1. 3. TOTAL2_inf * / ;
+EVALUATE TOTAL1_rad TOTAL2_rad :=
+ .82752 .270997E-01 +
+ .35577 .110125E+00 + ;
+EVALUATE DIFF1_rad DIFF2_rad :=
+ 1. 3. TOTAL1_rad * /
+ 1. 3. TOTAL2_rad * / ;
+*--
+* Thermalhydraulics parameters
+*--
+REAL Tinlet := 286.5 273.15 + ;
+REAL Ptot := 1.0E-6 ; ! 1W
+*--
+* Determine CB to use for interpolation
+*--
+ IF CB CBmin < THEN
+ EVALUATE CBinterp := CBmin ;
+ ELSEIF CB CBmax > THEN
+ EVALUATE CBinterp := CBmax ;
+ ELSE
+ EVALUATE CBinterp := CB ;
+ ENDIF ;
+*--
+* Thermalhydraulics computation, xenon saturation
+*--
+Fmap := SIM: Fmap ::
+SET-PARAM 'C-BORE' <<CBinterp>> ;
+*--
+* Saphyb Interpolation
+* Historic effects are neglected for simplicity's sake
+*--
+ XeMicroF := SCR: XeMicroF SapUOX Fmap ::
+ EDIT 1 RES
+ MICRO LINEAR
+ EQUI EQVS
+ TABLE SapUOX 'BURN'
+ MIX 4
+ INST-BURN
+ SET 'DMOD' MAP
+ SET 'TCOM' MAP
+ SET 'BARR' 1.
+ MICRO ALL
+* Recherche poids Xenon : commenter/decommenter
+! 'XE135PF' *
+! 'I135PF' 0.
+ 'B10' *
+ 'B11' *
+* Temporairement, Sm/Pm sont remis a leurs valeurs de Saphyb
+* (equivalent a ne pas les particulariser). Apres premier
+* appel a Steady, on pourrait enlever cela pour les laisser
+* evoluer librement.
+! 'ND147PF' 0.
+! 'PM147PF' 0.
+! 'PM148PF' 0.
+! 'PM148MPF' 0.
+! 'PM149PF' 0.
+! 'SM149PF' 0.
+ '*MAC*RES' 1.
+ ENDMIX
+ CHAIN
+ B10 STABLE
+ B11 STABLE
+ I135PF NG 0.
+ XE135PF NG 0. FROM DECAY 1.0E+00 I135PF
+ ND147PF STABLE
+ PM147PF STABLE
+ PM148PF STABLE
+ PM148MPF STABLE
+ PM149PF STABLE
+ SM149PF STABLE
+ MACR NFTOT 0.
+ ENDCHAIN
+
+ ;
+ MacroF := XeMicroF :: STEP UP "MACROLIB" ;
+*---
+* Reflector definition
+*---
+
+ MacroRefl := MAC: ::
+ EDIT 3 NGRO 2 NMIX 3 NIFI 0
+ ANIS 1 CTRA NONE
+ ENER 2.E7 0.625 1.E-3
+ VOLUME 1. 1. 1.
+ READ INPUT
+
+*---
+* Upscattering is set to zero, as done in HEMERA, despite having an upscattering cross section available.
+*---
+ MIX 1 ! Radial Reflector
+ FLUX-INTG 1. 1.
+ TOTAL <<TOTAL1_rad>> <<TOTAL2_rad>>
+ DIFF <<DIFF1_rad>> <<DIFF2_rad>>
+ SCAT 2 2 (*2->1*) 0. (*1->1*) .82752
+ 2 2 (*2->2*) .35577 (*1->2*) .113898E-01
+
+ MIX 2 ! Lower Reflector
+ FLUX-INTG 1. 1.
+ TOTAL <<TOTAL1_inf>> <<TOTAL2_inf>>
+ DIFF <<DIFF1_inf>> <<DIFF2_inf>>
+ SCAT 2 2 (*2->1*) 0. (*1->1*) .141535E+01
+ 2 2 (*2->2*) .511240E+00 (*1->2*) .187184E-01
+
+ MIX 3 ! Higher Reflector
+ FLUX-INTG 1. 1.
+ TOTAL <<TOTAL1_sup>> <<TOTAL2_sup>>
+ DIFF <<DIFF1_sup>> <<DIFF2_sup>>
+ SCAT 2 2 (*2->1*) 0. (*1->1*) .158287E+01
+ 2 2 (*2->2*) .503068E+00 (*1->2*) .200239E-01
+
+ NORM
+ ;
+*--
+* Flux and power computation
+*--
+ MacroTot Matex := MACINI: Matex MacroRefl MacroF ;
+ MacroF MacroRefl := DELETE: MacroF MacroRefl ;
+ System := TRIVAA: MacroTot Track :: EDIT 0 ;
+ MacroTot := DELETE: MacroTot ;
+ Flux := FLUD: Flux System Track :: EDIT 0
+ ADI 4 EXTE 1.0E-5 ACCE 5 3 ;
+ GREP: Flux :: GETVAL 'K-EFFECTIVE ' 1 >>keff<< ;
+ EVALUATE Rho := 1. 1. keff / - 1.0E5 * ;
+ PowerIter Fmap := FLPOW: Fmap Flux Track Matex ::
+ EDIT 0 PTOT <<Ptot>> PRINT DISTR POWER ;
+
+Power := PowerIter ;
+PowerIter := DELETE: PowerIter ;
+System := DELETE: System ;
+
+ :: <<CB>> ;
+ :: <<keff>> ;
+
+END: ;
diff --git a/Donjon/data/pmox_sap_proc/FMap.c2m b/Donjon/data/pmox_sap_proc/FMap.c2m
new file mode 100644
index 0000000..a55a4a0
--- /dev/null
+++ b/Donjon/data/pmox_sap_proc/FMap.c2m
@@ -0,0 +1,185 @@
+***********************************************************
+* *
+* Procedure : SetFuelMap.c2m *
+* Purpose : Fuel-map specifications for REP900 *
+* Author(s) : M. Guyot (2010) *
+* Modified by : A. Hebert (2011) *
+* *
+* CALL : FMAP MATEX := SetFuelMap MATEX ; *
+* *
+***********************************************************
+
+PARAMETER FMAP MATEX ::
+ ::: LINKED_LIST
+ FMAP MATEX ; ;
+
+MODULE RESINI: END: ;
+
+*----
+* Get calculation options
+*----
+REAL dx dz ;
+:: >>dx<< >>dz<< ;
+
+REAL x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14
+ x15 x16 x17 :=
+ 1. dx * 2. dx * 3. dx * 4. dx * 5. dx * 6. dx *
+ 7. dx * 8. dx * 9. dx * 10. dx * 11. dx * 12. dx *
+ 13. dx * 14. dx * 15. dx * 16. dx * 17. dx * ;
+
+REAL z1 z2 z3 z4 z5 z6 z7 z8 z9 z10 z11 z12 z13 z14
+ z15 z16 z17 z18 z19 z20 z21 z22 z23 z24 z25
+ z26 z27 z28 z29 z30 z31 z32 z33 :=
+ 1. dz * 2. dz * 3. dz * 4. dz * 5. dz * 6. dz *
+ 7. dz * 8. dz * 9. dz * 10. dz * 11. dz * 12. dz *
+ 13. dz * 14. dz * 15. dz * 16. dz * 17. dz * 18. dz *
+ 19. dz * 20. dz * 21. dz * 22. dz * 23. dz * 24. dz *
+ 25. dz * 26. dz * 27. dz * 28. dz * 29. dz * 30. dz *
+ 31. dz * 32. dz * 33. dz * ;
+
+ECHO 'SetFuelMap: elementary length=' dx 'cm' ;
+ECHO 'SetFuelMap: elementary axial length=' dz 'cm' ;
+
+FMAP MATEX := RESINI: MATEX ::
+ ::: GEO: CAR3D 17 17 33
+ EDIT 0
+ X- VOID X+ VOID
+ Y- VOID Y+ VOID
+ Z- VOID Z+ VOID
+MIX
+PLANE 1
+ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+
+ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+
+ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+!
+PLANE 2
+ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 0 0 0 4 4 4 0 0 0 0 0 0 0
+ 0 0 0 0 0 4 4 4 4 4 4 4 0 0 0 0 0
+ 0 0 0 0 4 4 4 4 4 4 4 4 4 0 0 0 0
+ 0 0 0 4 4 4 4 4 4 4 4 4 4 4 0 0 0
+ 0 0 4 4 4 4 4 4 4 4 4 4 4 4 4 0 0
+ 0 0 4 4 4 4 4 4 4 4 4 4 4 4 4 0 0
+ 0 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 0
+
+ 0 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 0
+
+ 0 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 0
+ 0 0 4 4 4 4 4 4 4 4 4 4 4 4 4 0 0
+ 0 0 4 4 4 4 4 4 4 4 4 4 4 4 4 0 0
+ 0 0 0 4 4 4 4 4 4 4 4 4 4 4 0 0 0
+ 0 0 0 0 4 4 4 4 4 4 4 4 4 0 0 0 0
+ 0 0 0 0 0 4 4 4 4 4 4 4 0 0 0 0 0
+ 0 0 0 0 0 0 0 4 4 4 0 0 0 0 0 0 0
+ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+
+PLANE 3 SAME 2
+PLANE 4 SAME 2
+PLANE 5 SAME 2
+PLANE 6 SAME 2
+PLANE 7 SAME 2
+PLANE 8 SAME 2
+PLANE 9 SAME 2
+PLANE 10 SAME 2
+PLANE 11 SAME 2
+PLANE 12 SAME 2
+PLANE 13 SAME 2
+PLANE 14 SAME 2
+PLANE 15 SAME 2
+PLANE 16 SAME 2
+PLANE 17 SAME 2
+PLANE 18 SAME 2
+PLANE 19 SAME 2
+PLANE 20 SAME 2
+PLANE 21 SAME 2
+PLANE 22 SAME 2
+PLANE 23 SAME 2
+PLANE 24 SAME 2
+PLANE 25 SAME 2
+PLANE 26 SAME 2
+PLANE 27 SAME 2
+PLANE 28 SAME 2
+PLANE 29 SAME 2
+PLANE 30 SAME 2
+PLANE 31 SAME 2
+PLANE 32 SAME 2
+PLANE 33 SAME 1
+!
+MESHX 0.0 <<x1>> <<x2>> <<x3>> <<x4>> <<x5>> <<x6>> <<x7>>
+ <<x8>> <<x9>> <<x10>> <<x11>> <<x12>> <<x13>> <<x14>>
+ <<x15>> <<x16>> <<x17>>
+
+MESHY 0.0 <<x1>> <<x2>> <<x3>> <<x4>> <<x5>> <<x6>> <<x7>>
+ <<x8>> <<x9>> <<x10>> <<x11>> <<x12>> <<x13>> <<x14>>
+ <<x15>> <<x16>> <<x17>>
+
+
+MESHZ 0.0 <<z1>> <<z2>> <<z3>> <<z4>> <<z5>> <<z6>> <<z7>>
+ <<z8>> <<z9>> <<z10>> <<z11>> <<z12>> <<z13>> <<z14>>
+ <<z15>> <<z16>> <<z17>> <<z18>> <<z19>> <<z20>> <<z21>>
+ <<z22>> <<z23>> <<z24>> <<z25>> <<z26>> <<z27>> <<z28>>
+ <<z29>> <<z30>> <<z31>> <<z32>> <<z33>> ;
+!
+NXNAME '-' 'R' 'P' 'N' 'M' 'L' 'K' 'J' 'H' 'G' 'F' 'E' 'D' 'C'
+ 'B' 'A' '-'
+!
+NYNAME '--' '01' '02' '03' '04' '05' '06' '07' '08' '09'
+ '10' '11' '12' '13' '14' '15' '--'
+!
+
+SIM 15 15
+ J01 H01 G01
+ L02 K02 J02 H02 G02 F02 E02
+ M03 L03 K03 J03 H03 G03 F03 E03 D03
+ N04 M04 L04 K04 J04 H04 G04 F04 E04 D04 C04
+ P05 N05 M05 L05 K05 J05 H05 G05 F05 E05 D05 C05 B05
+ P06 N06 M06 L06 K06 J06 H06 G06 F06 E06 D06 C06 B06
+ R07 P07 N07 M07 L07 K07 J07 H07 G07 F07 E07 D07 C07 B07 A07
+
+ R08 P08 N08 M08 L08 K08 J08 H08 G08 F08 E08 D08 C08 B08 A08
+
+ R09 P09 N09 M09 L09 K09 J09 H09 G09 F09 E09 D09 C09 B09 A09
+ P10 N10 M10 L10 K10 J10 H10 G10 F10 E10 D10 C10 B10
+ P11 N11 M11 L11 K11 J11 H11 G11 F11 E11 D11 C11 B11
+ N12 M12 L12 K12 J12 H12 G12 F12 E12 D12 C12
+ M13 L13 K13 J13 H13 G13 F13 E13 D13
+ L14 K14 J14 H14 G14 F14 E14
+ J15 H15 G15
+
+* On precise a RESINI les isotopes que l'on veut suivre
+FOLLOW 8 XE135PF I135PF ND147PF PM147PF PM148PF PM148MPF
+ PM149PF SM149PF
+NCOMB ALL
+! Conversion factor : 38,4 MWj/t / JEPP = 38,4 MW/t (at full power)
+! Mass (in full core) = Power (MW)/ConversionFactor
+! Mass (in full core) = 2775/38,4 = 72,27 t = 72266 kg
+! Mass (per node) = 72450/31/157 = 14,85 kg
+FUEL WEIGHT 14.85 ! values needed for SIM:
+BTYPE INST-BURN
+ADD-PARAM PNAME 'C-BORE' PARKEY 'CBOR' GLOBAL
+ADD-PARAM PNAME 'T-FUEL' PARKEY 'TCOM' GLOBAL
+ADD-PARAM PNAME 'D-COOL' PARKEY 'DMOD' GLOBAL
+* Initialization values needed for THM:
+SET-PARAM 'T-FUEL' 900.0
+SET-PARAM 'D-COOL' .753915906
+!SET-PARAM 'T-COOL' 300.0
+;
+
+END: ;
+QUIT .
diff --git a/Donjon/data/pmox_sap_proc/Geo.c2m b/Donjon/data/pmox_sap_proc/Geo.c2m
new file mode 100644
index 0000000..e622b81
--- /dev/null
+++ b/Donjon/data/pmox_sap_proc/Geo.c2m
@@ -0,0 +1,189 @@
+*DECK GeoCo.c2m
+*----
+* Name : GeoCo.c2m
+* Type : DONJON procedure
+* Use : Core Geometry
+* Procedure called as:
+*
+* Bench := GeoCo ::
+* <<Splitx>> <<Splitz>> <<dx>> ;
+*
+* Parameters of the procedure
+* Bench : Core Geometry
+* Input data:
+* Splitx : cartesian splitting
+* Splitz : axial splitting
+* dx : length of an assembly
+*----
+* Definition of the input and output data structures and
+* of the input and output parameters for this procedure
+*----
+PARAMETER GeoRes Matex ::
+::: LINKED_LIST GeoRes Matex ; ;
+*----
+* Local modules, procedures and structures
+*----
+MODULE USPLIT: GEO: END: ;
+LINKED_LIST GeoCoeur ;
+*----
+* Get calculation options
+*----
+INTEGER Splitx Splitz MaxR ;
+REAL dx dz ;
+:: >>Splitx<< >>Splitz<< >>MaxR<< >>dx<< >>dz<< ;
+
+REAL x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14
+ x15 x16 x17 :=
+ 1. dx * 2. dx * 3. dx * 4. dx * 5. dx * 6. dx *
+ 7. dx * 8. dx * 9. dx * 10. dx * 11. dx * 12. dx *
+ 13. dx * 14. dx * 15. dx * 16. dx * 17. dx * ;
+
+REAL z1 z2 z3 z4 z5 z6 z7 z8 z9 z10 z11 z12 z13 z14
+ z15 z16 z17 z18 z19 z20 z21 z22 z23 z24 z25
+ z26 z27 z28 z29 z30 z31 z32 z33 :=
+ 1. dz * 2. dz * 3. dz * 4. dz * 5. dz * 6. dz *
+ 7. dz * 8. dz * 9. dz * 10. dz * 11. dz * 12. dz *
+ 13. dz * 14. dz * 15. dz * 16. dz * 17. dz * 18. dz *
+ 19. dz * 20. dz * 21. dz * 22. dz * 23. dz * 24. dz *
+ 25. dz * 26. dz * 27. dz * 28. dz * 29. dz * 30. dz *
+ 31. dz * 32. dz * 33. dz * ;
+
+GeoCoeur := GEO: :: CAR3D 17 17 33
+ EDIT 3
+ X+ VOID X- VOID
+ Y+ VOID Y- VOID
+ Z+ VOID Z- VOID
+ MIX
+
+PLANE 1 (* lower core *)
+ 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
+ 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
+ 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
+ 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
+ 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
+ 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
+ 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
+ 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
+
+ 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
+
+ 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
+ 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
+ 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
+ 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
+ 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
+ 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
+ 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
+ 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
+PLANE 2
+ 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+ 1 1 1 1 1 1 1 4 4 4 1 1 1 1 1 1 1
+ 1 1 1 1 1 4 4 4 4 4 4 4 1 1 1 1 1
+ 1 1 1 1 4 4 4 4 4 4 4 4 4 1 1 1 1
+ 1 1 1 4 4 4 4 4 4 4 4 4 4 4 1 1 1
+ 1 1 4 4 4 4 4 4 4 4 4 4 4 4 4 1 1
+ 1 1 4 4 4 4 4 4 4 4 4 4 4 4 4 1 1
+ 1 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 1
+
+ 1 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 1
+
+ 1 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 1
+ 1 1 4 4 4 4 4 4 4 4 4 4 4 4 4 1 1
+ 1 1 4 4 4 4 4 4 4 4 4 4 4 4 4 1 1
+ 1 1 1 4 4 4 4 4 4 4 4 4 4 4 1 1 1
+ 1 1 1 1 4 4 4 4 4 4 4 4 4 1 1 1 1
+ 1 1 1 1 1 4 4 4 4 4 4 4 1 1 1 1 1
+ 1 1 1 1 1 1 1 4 4 4 1 1 1 1 1 1 1
+ 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+
+PLANE 3 SAME 2
+PLANE 4 SAME 2
+PLANE 5 SAME 2
+PLANE 6 SAME 2
+PLANE 7 SAME 2
+PLANE 8 SAME 2
+PLANE 9 SAME 2
+PLANE 10 SAME 2
+PLANE 11 SAME 2
+PLANE 12 SAME 2
+PLANE 13 SAME 2
+PLANE 14 SAME 2
+PLANE 15 SAME 2
+PLANE 16 SAME 2
+PLANE 17 SAME 2
+PLANE 18 SAME 2
+PLANE 19 SAME 2
+PLANE 20 SAME 2
+PLANE 21 SAME 2
+PLANE 22 SAME 2
+PLANE 23 SAME 2
+PLANE 24 SAME 2
+PLANE 25 SAME 2
+PLANE 26 SAME 2
+PLANE 27 SAME 2
+PLANE 28 SAME 2
+PLANE 29 SAME 2
+PLANE 30 SAME 2
+PLANE 31 SAME 2
+PLANE 32 SAME 2
+PLANE 33 (* higher core *)
+ 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
+ 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
+ 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
+ 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
+ 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
+ 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
+ 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
+ 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
+
+ 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
+
+ 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
+ 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
+ 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
+ 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
+ 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
+ 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
+ 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
+ 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
+
+ MESHX 0. <<x1>> <<x2>> <<x3>> <<x4>> <<x5>> <<x6>> <<x7>>
+ <<x8>> <<x9>> <<x10>> <<x11>> <<x12>> <<x13>> <<x14>>
+ <<x15>> <<x16>> <<x17>>
+
+ MESHY 0. <<x1>> <<x2>> <<x3>> <<x4>> <<x5>> <<x6>> <<x7>>
+ <<x8>> <<x9>> <<x10>> <<x11>> <<x12>> <<x13>> <<x14>>
+ <<x15>> <<x16>> <<x17>>
+
+ MESHZ 0.0 <<z1>> <<z2>> <<z3>> <<z4>> <<z5>> <<z6>> <<z7>>
+ <<z8>> <<z9>> <<z10>> <<z11>> <<z12>> <<z13>> <<z14>>
+ <<z15>> <<z16>> <<z17>> <<z18>> <<z19>> <<z20>> <<z21>>
+ <<z22>> <<z23>> <<z24>> <<z25>> <<z26>> <<z27>> <<z28>>
+ <<z29>> <<z30>> <<z31>> <<z32>> <<z33>>
+
+ SPLITX <<Splitx>> <<Splitx>> <<Splitx>> <<Splitx>> <<Splitx>>
+ <<Splitx>> <<Splitx>> <<Splitx>> <<Splitx>> <<Splitx>>
+ <<Splitx>> <<Splitx>> <<Splitx>> <<Splitx>> <<Splitx>>
+ <<Splitx>> <<Splitx>>
+ SPLITY <<Splitx>> <<Splitx>> <<Splitx>> <<Splitx>> <<Splitx>>
+ <<Splitx>> <<Splitx>> <<Splitx>> <<Splitx>> <<Splitx>>
+ <<Splitx>> <<Splitx>> <<Splitx>> <<Splitx>> <<Splitx>>
+ <<Splitx>> <<Splitx>>
+
+ SPLITZ <<Splitz>> <<Splitz>> <<Splitz>> <<Splitz>> <<Splitz>>
+ <<Splitz>> <<Splitz>> <<Splitz>> <<Splitz>> <<Splitz>>
+ <<Splitz>> <<Splitz>> <<Splitz>> <<Splitz>> <<Splitz>>
+ <<Splitz>> <<Splitz>> <<Splitz>> <<Splitz>> <<Splitz>>
+ <<Splitz>> <<Splitz>> <<Splitz>> <<Splitz>> <<Splitz>>
+ <<Splitz>> <<Splitz>> <<Splitz>> <<Splitz>> <<Splitz>>
+ <<Splitz>> <<Splitz>> <<Splitz>>
+;
+
+GeoRes Matex := USPLIT: GeoCoeur :: NGRP 2 MAXR <<MaxR>> NMIX 4
+ NREFL 3 RMIX 1 2 3
+ NFUEL 1 FMIX 4 (* UOX 3,7%, MOX 8,65% *)
+;
+
+END: ;
+
+QUIT "LIST" .
diff --git a/Donjon/data/pmox_sap_proc/Init.c2m b/Donjon/data/pmox_sap_proc/Init.c2m
new file mode 100644
index 0000000..70934f2
--- /dev/null
+++ b/Donjon/data/pmox_sap_proc/Init.c2m
@@ -0,0 +1,183 @@
+****************************************************************
+* *
+* Procedure : InitSteady.c2m *
+* Purpose : initialize objects for Steady procedure *
+* Author : V. Salino *
+* *
+* CALL : *
+* Flux Thermo XeMicroF XeBurn Fmap Matex := InitSteady *
+* Fmap Matex ReflXS Track ; *
+* *
+****************************************************************
+PARAMETER Flux Thermo XeMicroF Fmap Matex Track SapUOX ::
+ ::: LINKED_LIST Flux Thermo XeMicroF Fmap Matex Track SapUOX ; ;
+MODULE SCR: NCR: MACINI: RESINI: TRIVAA: FLUD: FLPOW: THM: EVO:
+ SIM: GREP: UTL: DELETE: ABORT: END: MAC: ;
+*--
+* Local objects and variable
+*--
+LINKED_LIST MacroTot MacroRefl MacroF System PowerIter ;
+REAL CBinterp := 0.0 ;
+REAL TOTAL1_inf TOTAL2_inf
+ DIFF1_inf DIFF2_inf ;
+REAL TOTAL1_sup TOTAL2_sup
+ DIFF1_sup DIFF2_sup ;
+REAL TOTAL1_rad TOTAL2_rad
+ DIFF1_rad DIFF2_rad ;
+EVALUATE TOTAL1_sup TOTAL2_sup :=
+ .158287E+01 .276758E-01 +
+ .503068E+00 .282751E-01 + ;
+EVALUATE DIFF1_sup DIFF2_sup :=
+ 1. 3. TOTAL1_sup * /
+ 1. 3. TOTAL2_sup * / ;
+EVALUATE TOTAL1_inf TOTAL2_inf :=
+ .141535E+01 .261305E-01 +
+ .511240E+00 .198432E-01 + ;
+EVALUATE DIFF1_inf DIFF2_inf :=
+ 1. 3. TOTAL1_inf * /
+ 1. 3. TOTAL2_inf * / ;
+EVALUATE TOTAL1_rad TOTAL2_rad :=
+ .82752 .270997E-01 +
+ .35577 .110125E+00 + ;
+EVALUATE DIFF1_rad DIFF2_rad :=
+ 1. 3. TOTAL1_rad * /
+ 1. 3. TOTAL2_rad * / ;
+*--
+* Thermalhydraulics parameters
+*--
+*100% PN
+REAL Tinlet := 286.5 273.15 + ;
+*0% PN
+!REAL Tinlet := 286.0 273.15 + ;
+REAL FlowRate := 21724.0 3.0 * 1.0 0.065 - * ; ! m3/h, 6.5% bypass
+*REAL dx := 21.504E-2 ; ! m
+REAL dx := 21.613E-2 ; ! m
+REAL R_Tub_OD := 1.245E-2 2.0 / ; ! m
+REAL R_Tub_ID := R_Tub_OD 0.05E-2 - ; ! m
+REAL R_Pin_OD := 0.950E-2 2.0 / ; ! m
+REAL R_Pin_ID := R_Pin_OD 0.057E-2 - ; ! m
+REAL R_Pel := 0.8192E-2 2.0 / ; ! m
+REAL Tot_tub := R_Tub_OD 2.0 ** $Pi_R * 25.0 * ; ! m2
+REAL Tot_pin := R_Pin_OD 2.0 ** $Pi_R * 264.0 * ; ! m2
+REAL sass := dx 2.0 ** ; ! m2
+REAL asssect := sass Tot_tub - Tot_pin - ; ! m2
+REAL coresect := 157.0 asssect * ; ! m2
+REAL densB1 := 0. ;
+*--
+* Flat power distribution
+*--
+REAL Ptot := 1.0E-6 ; ! 1W
+REAL BundPow := Ptot 157.0 / 31.0 / 1.0E+3 * (* MW to kW *) ;
+Fmap := RESINI: Fmap ::
+ BUNDLE-POW SAME <<BundPow>> ;
+*--
+* Thermalhydraulics computation
+*--
+ Thermo Fmap := THM: Fmap ::
+ EDIT 3
+ CRITFL 1.80E+6 (* W/m^2 *)
+ ASSMB 264 25
+ CWSECT <<coresect>> <<FlowRate>>
+ INLET 1.57E+07 <<Tinlet>>
+ RADIUS <<R_Pel>> <<R_Pin_ID>> <<R_Pin_OD>> <<R_Tub_OD>>
+ POROS 0.05
+ FPUISS 0.95
+ SET-PARAM 'C-BORE' <<densB1>>
+ CONV 50 50 50 0.1 1.0E-3
+ ;
+*--
+* Saphyb Interpolation
+* Historic effects are neglected for simplicity's sake
+XeMicroF := SCR: SapUOX Fmap ::
+ EDIT 0
+ MICRO LINEAR
+ EQUI EQVS
+ TABLE SapUOX 'BURN'
+ MIX 4
+ INST-BURN
+ SET 'DMOD' MAP
+ SET 'TCOM' MAP
+ SET 'BARR' 1.
+ MICRO ALL
+ 'B10' *
+ 'B11' *
+ 'XE135PF' *
+ 'I135PF' *
+ 'ND147PF' *
+ 'PM147PF' *
+ 'PM148PF' *
+ 'PM148MPF' *
+ 'PM149PF' *
+ 'SM149PF' *
+ '*MAC*RES' 1.
+ ENDMIX
+ CHAIN
+ B10 STABLE
+ B11 STABLE
+ I135PF NG 0.
+ XE135PF NG 0. FROM DECAY 1.0E+00 I135PF
+ ND147PF STABLE
+ PM147PF STABLE
+ PM148PF STABLE
+ PM148MPF STABLE
+ PM149PF STABLE
+ SM149PF STABLE
+ MACR NFTOT 0.
+ ENDCHAIN
+
+ ;
+MacroF := XeMicroF :: STEP UP "MACROLIB" ;
+*---
+* Reflector definition
+*---
+
+ MacroRefl := MAC: ::
+ EDIT 3 NGRO 2 NMIX 3 NIFI 0
+ ANIS 1 CTRA NONE
+ ENER 2.E7 0.625 1.E-3
+ VOLUME 1. 1. 1.
+ READ INPUT
+
+*---
+* Upscattering is set to zero, as done in HEMERA, despite having an upscattering cross section available.
+*---
+ MIX 1 ! Radial Reflector
+ FLUX-INTG 1. 1.
+ TOTAL <<TOTAL1_rad>> <<TOTAL2_rad>>
+ DIFF <<DIFF1_rad>> <<DIFF2_rad>>
+ SCAT 2 2 (*2->1*) 0. (*1->1*) .82752
+ 2 2 (*2->2*) .35577 (*1->2*) .113898E-01
+
+ MIX 2 ! Lower Reflector
+ FLUX-INTG 1. 1.
+ TOTAL <<TOTAL1_inf>> <<TOTAL2_inf>>
+ DIFF <<DIFF1_inf>> <<DIFF2_inf>>
+ SCAT 2 2 (*2->1*) 0. (*1->1*) .141535E+01
+ 2 2 (*2->2*) .511240E+00 (*1->2*) .187184E-01
+
+ MIX 3 ! Higher Reflector
+ FLUX-INTG 1. 1.
+ TOTAL <<TOTAL1_sup>> <<TOTAL2_sup>>
+ DIFF <<DIFF1_sup>> <<DIFF2_sup>>
+ SCAT 2 2 (*2->1*) 0. (*1->1*) .158287E+01
+ 2 2 (*2->2*) .503068E+00 (*1->2*) .200239E-01
+
+ NORM
+ ;
+*--
+* Flux and power computation
+*--
+MacroTot Matex := MACINI: Matex MacroRefl MacroF ;
+MacroF MacroRefl := DELETE: MacroF MacroRefl ;
+System := TRIVAA: MacroTot Track :: EDIT 0 ;
+MacroTot := DELETE: MacroTot ;
+Flux := FLUD: System Track :: EDIT 0 ACCE 5 3 ;
+System := DELETE: System ;
+PowerIter Fmap := FLPOW: Fmap Flux Track Matex ::
+ EDIT 0 PTOT <<Ptot>> PRINT DISTR POWER ;
+*--
+* Xenon saturation
+*--
+PowerIter := DELETE: PowerIter ;
+
+END: ;
diff --git a/Donjon/data/pmox_sap_proc/_Saphyb_UOX b/Donjon/data/pmox_sap_proc/_Saphyb_UOX
new file mode 100644
index 0000000..1729dcf
--- /dev/null
+++ b/Donjon/data/pmox_sap_proc/_Saphyb_UOX
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:2e8edca868cb81305ad8284cbc3446ab59878143d79d8ca9a53dbc84b4ca6b92
+size 12025579