summaryrefslogtreecommitdiff
path: root/Donjon/data/channel_mphy_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/channel_mphy_proc
Initial commit from Polytechnique Montreal
Diffstat (limited to 'Donjon/data/channel_mphy_proc')
-rwxr-xr-xDonjon/data/channel_mphy_proc/Axial_Refl.c2m147
-rw-r--r--Donjon/data/channel_mphy_proc/GeoCo.c2m99
-rw-r--r--Donjon/data/channel_mphy_proc/GetDim.c2m119
-rw-r--r--Donjon/data/channel_mphy_proc/IniPowCompo.c2m97
-rw-r--r--Donjon/data/channel_mphy_proc/PowComponent.c2m105
-rw-r--r--Donjon/data/channel_mphy_proc/SetFuelMap.c2m82
-rw-r--r--Donjon/data/channel_mphy_proc/ThmComponent.c2m52
7 files changed, 701 insertions, 0 deletions
diff --git a/Donjon/data/channel_mphy_proc/Axial_Refl.c2m b/Donjon/data/channel_mphy_proc/Axial_Refl.c2m
new file mode 100755
index 0000000..f6fe4aa
--- /dev/null
+++ b/Donjon/data/channel_mphy_proc/Axial_Refl.c2m
@@ -0,0 +1,147 @@
+***********************************************************
+* *
+* Procedure : Axial_Refl.c2m *
+* Purpose : Set the PWR axial reflector properties *
+* *
+* CALL : CpRefl := Axial_Refl ; *
+* *
+***********************************************************
+
+PARAMETER CpRefl ::
+ ::: LINKED_LIST
+ CpRefl ; ;
+
+MODULE MAC: UTL: EDI: COMPO: DELETE: END: ;
+LINKED_LIST Macro Edition ;
+
+REAL TOTAL1_inf TOTAL2_inf
+ DIFF1_inf DIFF2_inf
+ SCAT1to1_inf SCAT2to2_inf
+ SCAT1to2_inf SCAT2to1_inf ;
+
+REAL TOTAL1_sup TOTAL2_sup
+ DIFF1_sup DIFF2_sup
+ SCAT1to1_sup SCAT2to2_sup
+ SCAT1to2_sup SCAT2to1_sup ;
+
+*---
+* Inferior (Foot)
+*---
+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 SCAT1to1_inf SCAT2to2_inf :=
+ .141535E+01 .511240E+00 ;
+
+EVALUATE SCAT1to2_inf SCAT2to1_inf :=
+ .187184E-01 .742590E-04 ;
+
+*---
+* Superior (Head)
+*---
+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 SCAT1to1_sup SCAT2to2_sup :=
+ .158287E+01 .503068E+00 ;
+
+EVALUATE SCAT1to2_sup SCAT2to1_sup :=
+ .200239E-01 .955672E-04 ;
+
+INTEGER BoronIndex := 1 ;
+REAL BoronConc ;
+
+WHILE BoronIndex 5 <= DO
+*---
+* BoronIndex BoronConc [ppm]
+* ---------- --------------
+* 1 0.
+* 2 100.
+* 3 600.
+* 4 1800.
+* 5 2200.
+*---
+ IF BoronIndex 1 = THEN
+
+ EVALUATE BoronConc := 0. ;
+
+ ELSEIF BoronIndex 2 = THEN
+
+ EVALUATE BoronConc := 100. ;
+
+ ELSEIF BoronIndex 3 = THEN
+
+ EVALUATE BoronConc := 600. ;
+
+ ELSEIF BoronIndex 4 = THEN
+
+ EVALUATE BoronConc := 1800. ;
+
+ ELSEIF BoronIndex 5 = THEN
+
+ EVALUATE BoronConc := 2200. ;
+
+ ENDIF ;
+
+*---
+* Reflector definition
+*---
+
+ Macro := MAC: ::
+ EDIT 1 NGRO 2 NMIX 1 NIFI 0
+ ANIS 1 CTRA NONE
+ ENER 2.E7 0.625 1.E-3
+ VOLUME 1.
+ READ INPUT
+
+ MIX 1 ! Lower Reflector
+ FLUX-INTG 1. 1.
+ TOTAL <<TOTAL1_inf>> <<TOTAL2_inf>>
+ DIFF <<DIFF1_inf>> <<DIFF2_inf>>
+ SCAT 2 2 (*2->1*) 0. (*1->1*) <<SCAT1to1_inf>>
+ 2 2 (*2->2*) <<SCAT2to2_inf>> (*1->2*) <<SCAT1to2_inf>>
+
+ NORM
+ ;
+
+ Edition := EDI: Macro ::
+ EDIT 1
+ SAVE
+ ;
+
+ IF BoronIndex 1 = THEN
+
+ CpRefl := COMPO: ::
+ EDIT 1
+ COMM
+ 'light reflector XS'
+ ENDC
+ PARA 'C-BORE' VALU REAL
+ INIT
+ ;
+ ENDIF ;
+
+ CpRefl := COMPO: CpRefl Edition ::
+ EDIT 1
+ C-BORE <<BoronConc>>
+ MACRO
+ ;
+
+ Macro Edition := DELETE: Macro Edition ;
+
+ EVALUATE BoronIndex := BoronIndex 1 + ;
+
+ENDWHILE ;
+
+END: ;
+QUIT .
diff --git a/Donjon/data/channel_mphy_proc/GeoCo.c2m b/Donjon/data/channel_mphy_proc/GeoCo.c2m
new file mode 100644
index 0000000..41a6e2d
--- /dev/null
+++ b/Donjon/data/channel_mphy_proc/GeoCo.c2m
@@ -0,0 +1,99 @@
+*DECK GeoCo.c2m
+*----
+* Name : GeoCo.c2m
+* Type : DONJON procedure
+* Use : Core Geometry
+* Procedure called as:
+*
+* Bench := GeoCo ::
+* <<Splitx>> <<Splitz>> <<MaxR>> ;
+*
+* Parameters of the procedure
+* Bench : Core Geometry
+* Input data:
+* Splitx : cartesian splitting
+* Splitz : axial splitting
+*----
+* 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 ;
+:: >>Splitx<< >>Splitz<< >>MaxR<< ;
+
+REAL x1 := 21.6 ;
+
+REAL z1 dz := 20.0 23.0 ;
+
+REAL z2 z3 z4 z5 z6 z7 z8 z9 z10 z11 z12 z13 z14
+ z15 z16 z17 :=
+ z1 dz + z1 2. dz * + z1 3. dz * + z1 4. dz * +
+ z1 5. dz * + z1 6. dz * + z1 7. dz * + z1 8. dz * +
+ z1 9. dz * + z1 10. dz * + z1 11. dz * + z1 12. dz * +
+ z1 13. dz * + z1 14. dz * + z1 15. dz * + z1 16. dz * + ;
+
+REAL z18 := z17 z1 + ;
+
+GeoCoeur := GEO: :: CAR3D 1 1 18
+ EDIT 3
+ X+ REFL X- REFL
+ Y+ REFL Y- REFL
+ Z+ VOID Z- VOID
+ MIX
+
+PLANE 1 (* lower core *)
+ 2
+PLANE 2
+ 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 (* higher core *)
+ 2
+
+ MESHX 0. <<x1>>
+
+ MESHY 0. <<x1>>
+
+ MESHZ 0.0 <<z1>> <<z2>> <<z3>> <<z4>> <<z5>> <<z6>> <<z7>>
+ <<z8>> <<z9>> <<z10>> <<z11>> <<z12>> <<z13>> <<z14>>
+ <<z15>> <<z16>> <<z17>> <<z18>>
+
+ SPLITX <<Splitx>>
+ SPLITY <<Splitx>>
+
+ 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>>
+ NREFL 1 RMIX 2
+ NFUEL 1 FMIX 1
+;
+
+END: ;
+
+QUIT "LIST" .
diff --git a/Donjon/data/channel_mphy_proc/GetDim.c2m b/Donjon/data/channel_mphy_proc/GetDim.c2m
new file mode 100644
index 0000000..94d46b0
--- /dev/null
+++ b/Donjon/data/channel_mphy_proc/GetDim.c2m
@@ -0,0 +1,119 @@
+*DECK GetDim.c2m
+*----
+* Name : GetDim.c2m
+* Type : DRAGON procedure
+* Use : Public dimensions for assembly calculation
+*
+* Procedure called as:
+*
+* GetDim ::
+* >>Rcomb1<< >>Rcomb2<< >>Rcomb3<< >>Rcomb4<<
+* >>R_int_TG<< >>R_ext_TG<< >>R_int_TI<< >>R_ext_TI<<
+* >>R_int_G<< >>R_ext_G<< >>Cote<< >>Lame<< >>CoteL<<
+* >>RmodeN1<< >>RmodeN2<< >>R_ext_G2<< >>R_ext_TGm<< >>R_ext_TIm<<
+* >>N_U5_UOX<< >>N_U5_MOX<< >>N_Pu8<< >>N_Pu9<< >>N_Pu0<<
+* >>N_Pu1<< >>N_Pu2<< >>N_Am1<< >>densU_UOX<< >>densU_MOX<<
+* >>densPu_MOX<< >>teneur1_Pu<< >>teneur2_Pu<< >>teneur3_Pu<<
+* >>temp_comb<< >>temp_mode<< >>dens_mod<< ;
+*
+* Input data : none
+*
+* Output data:
+* Rcomb1 : 50/100 of outer radius of fuel (cm)
+* Rcomb2 : 80/100 of outer radius of fuel (cm)
+* Rcomb3 : 95/100 of outer radius of fuel (cm)
+* Rcomb4 : 100/100 of outer radius of fuel (cm)
+* R_int_TG : Inner radius of cladding of guide tube (cm)
+* R_ext_TG : Outer radius of cladding of guide tube (cm)
+* R_int_TI : Inner radius of cladding of guide tube (cm)
+* R_ext_TI : Outer radius of cladding of guide tube (cm)
+* R_int_G : Inner radius of cladding of fuel tube (cm)
+* R_ext_G : Outer radius of cladding of fuel tube (cm)
+* Cote : Lattice pitch (cm)
+* Lame : Water space on the side of the assembly (cm)
+* CoteL : Lattice pitch + Water space (cm)
+* RmodeN1 : Parameter for flux calculation in Level 1 (cm)
+* RmodeN2 : Parameter for flux calculation in Level 2 (cm)
+* R_ext_G2 : R_ext_G * 2 (cm)
+* R_ext_TGm : -R_ext_TGm (cm)
+* R_ext_TIm : -R_ext_TIm (cm)
+* N_U5_UOX : U235 enrichment in UOX-Fuel
+* N_U5_MOX : U235 enrichment in MOX-Fuel
+* N_Pu8 : Pu238 percentage in Pu-vector
+* N_Pu9 : Pu239 percentage in Pu-vector
+* N_Pu0 : Pu240 percentage in Pu-vector
+* N_Pu1 : Pu241 percentage in Pu-vector
+* N_Pu2 : Pu242 percentage in Pu-vector
+* N_Am1 : Am241 percentage in Pu-vector
+* densU_UOX : Theoretical density of Uranium in UOX-Fuel
+* densU_MOX : Theoretical density of Uranium in MOX-Fuel
+* densPu_MOX : Theoretical density of Plutonium in MOX-Fuel
+* teneur1_Pu : Plutonium content in MOX-high enrichment region
+* teneur2_Pu : Plutonium content in MOX-medium enrichment region
+* teneur3_Pu : Plutonium content in MOX-low enrichment region
+* temp_comb : Theoretical Fuel temperature (K)
+* temp_mode : Theoretical moderator temperature (K)
+* dens_mod : Theoretical moderator density (g/cc)
+
+MODULE
+ END: ;
+
+REAL Rcomb1 Rcomb2 Rcomb3 Rcomb4
+ R_int_TG R_ext_TG R_int_TI R_ext_TI R_int_G R_ext_G
+ Cote Lame CoteL
+ RmodeN1 RmodeN2
+ R_ext_G2 R_ext_TGm R_ext_TIm
+ N_U5_UOX N_U5_MOX
+ N_Pu8 N_Pu9 N_Pu0 N_Pu1 N_Pu2 N_Am1
+ densU_UOX densU_MOX densPu_MOX
+ teneur1_Pu teneur2_Pu teneur3_Pu
+ temp_comb temp_mode dens_mod ;
+
+
+EVALUATE Rcomb4 := 0.41 ;
+EVALUATE Rcomb1 := 0.5 SQRT Rcomb4 * ;
+EVALUATE Rcomb2 := 0.8 SQRT Rcomb4 * ;
+EVALUATE Rcomb3 := 0.95 SQRT Rcomb4 * ;
+
+EVALUATE R_int_TG := 0.56 ;
+EVALUATE R_ext_TG := 0.62 ;
+EVALUATE R_int_TI := 0.56 ;
+EVALUATE R_ext_TI := 0.62 ;
+EVALUATE R_int_G := 0.418 ;
+EVALUATE R_ext_G := 0.48 ;
+
+EVALUATE Cote := 1.26 ;
+EVALUATE Lame := 0.04 ;
+EVALUATE CoteL := Cote Lame + ;
+
+EVALUATE RmodeN1 := 0.60 ;
+EVALUATE RmodeN2 := 0.627 ;
+
+EVALUATE R_ext_G2 := R_ext_G 2.0 * ;
+EVALUATE R_ext_TGm := R_ext_TG -1.0 * ;
+EVALUATE R_ext_TIm := R_ext_TI -1.0 * ;
+
+EVALUATE N_U5_UOX := 3.70E-02 ;
+EVALUATE N_U5_MOX := 0.25E-02 ;
+
+EVALUATE N_Pu8 N_Pu9 N_Pu0 N_Pu1 N_Pu2 N_Am1 :=
+ 1.20E-02 59.50E-02 24.10E-02 9.00E-02 4.70E-02 1.50E-02 ;
+
+EVALUATE densU_UOX densU_MOX densPu_MOX := 10.0 10.0 10.5 ;
+
+EVALUATE teneur1_Pu teneur2_Pu teneur3_Pu :=
+ 7.50E-02 4.90E-02 2.80E-02 ;
+
+EVALUATE temp_comb temp_mode dens_mod := 800.0 600.0 0.659 ;
+
+
+:: <<Rcomb1>> <<Rcomb2>> <<Rcomb3>> <<Rcomb4>> <<R_int_TG>> <<R_ext_TG>>
+ <<R_int_TI>> <<R_ext_TI>> <<R_int_G>> <<R_ext_G>> <<Cote>> <<Lame>>
+ <<CoteL>> <<RmodeN1>> <<RmodeN2>> <<R_ext_G2>> <<R_ext_TGm>>
+ <<R_ext_TIm>> <<N_U5_UOX>> <<N_U5_MOX>> <<N_Pu8>> <<N_Pu9>> <<N_Pu0>>
+ <<N_Pu1>> <<N_Pu2>> <<N_Am1>> <<densU_UOX>> <<densU_MOX>>
+ <<densPu_MOX>> <<teneur1_Pu>> <<teneur2_Pu>> <<teneur3_Pu>>
+ <<temp_comb>> <<temp_mode>> <<dens_mod>> ;
+
+END: ;
+QUIT .
diff --git a/Donjon/data/channel_mphy_proc/IniPowCompo.c2m b/Donjon/data/channel_mphy_proc/IniPowCompo.c2m
new file mode 100644
index 0000000..3300e9c
--- /dev/null
+++ b/Donjon/data/channel_mphy_proc/IniPowCompo.c2m
@@ -0,0 +1,97 @@
+****************************************************************
+* *
+* Procedure : IniPowCompo.c2m *
+* Purpose : Initialization component *
+* Author : A. Hebert *
+* *
+* CALL : *
+* Fmap Matex Track := IniPowCompo ; *
+* *
+****************************************************************
+PARAMETER Fmap Matex Track ::
+ ::: LINKED_LIST Fmap Matex Track ; ;
+
+LINKED_LIST GeoCoeur ;
+MODULE TRIVAT: RESINI: UTL: END: ;
+
+PROCEDURE GetDim GeoCo SetFuelMap ;
+*----
+* Local Parameters
+*----
+REAL densB1 := 2000.0 ;
+REAL densB2 := 1000.0 ;
+INTEGER Splitx Splitz := 4 4 ;
+REAL powi := 0.0 ;
+
+REAL Rcomb1 Rcomb2 Rcomb3 Rcomb4
+ R_int_TG R_ext_TG R_int_TI R_ext_TI R_int_G R_ext_G
+ Cote CoteL
+ RmodeN1 RmodeN2
+ R_ext_G2 R_ext_TGm R_ext_TIm
+ N_U5_UOX N_U5_MOX
+ N_Pu8 N_Pu9 N_Pu0 N_Pu1 N_Pu2 N_Am1
+ densU_UOX densU_MOX densPu_MOX
+ teneur1_Pu teneur2_Pu teneur3_Pu
+ temp_comb temp_mode dens_mode
+ temp_comb_0 temp_mode_0 dens_mode_0 ;
+
+REAL ORF IRC ORC IRCGT ORCGT ORAG ORAN
+ IRCA ORCA ORDET ORDETC Lame LPitch Height ;
+
+REAL pbore_0 := 500. ; ! natural boron concentration in ppm
+REAL bVal := 8000. ; ! uniform burnup value
+
+ GetDim ::
+ >>Rcomb1<< >>Rcomb2<< >>Rcomb3<< >>Rcomb4<<
+ >>R_int_TG<< >>R_ext_TG<< >>R_int_TI<< >>R_ext_TI<<
+ >>R_int_G<< >>R_ext_G<< >>Cote<< >>Lame<< >>CoteL<<
+ >>RmodeN1<< >>RmodeN2<< >>R_ext_G2<< >>R_ext_TGm<< >>R_ext_TIm<<
+ >>N_U5_UOX<< >>N_U5_MOX<< >>N_Pu8<< >>N_Pu9<< >>N_Pu0<<
+ >>N_Pu1<< >>N_Pu2<< >>N_Am1<< >>densU_UOX<< >>densU_MOX<<
+ >>densPu_MOX<< >>teneur1_Pu<< >>teneur2_Pu<< >>teneur3_Pu<<
+ >>temp_comb_0<< >>temp_mode_0<< >>dens_mode_0<< ;
+
+EVALUATE temp_comb temp_mode dens_mode := 800.0 600.0 0.659 ;
+
+EVALUATE
+ ORF IRC ORC IRCGT ORCGT
+ ORAG ORAN IRCA ORCA
+ ORDET ORDETC
+ Lame LPitch Height
+ :=
+ Rcomb4 R_int_TG R_ext_TG R_int_TI R_ext_TI
+ R_int_TG R_ext_TG R_int_TI R_ext_TI
+ R_int_TG R_ext_TG
+ Lame Cote 10.0
+ ;
+
+REAL rPavX := 17.0 ; ! assemblage 17 x 17
+INTEGER iPavX := 17 ; ! assemblage 17 x 17
+
+INTEGER MaxR := iPavX iPavX * 33 * Splitx * Splitx * Splitz * ;
+
+GeoCoeur Matex := GeoCo ::
+ <<Splitx>> <<Splitz>> <<MaxR>> ;
+
+Track := TRIVAT: GeoCoeur ::
+ EDIT 1 MAXR <<MaxR>> DUAL 3 3 ;
+
+*--
+* Fuel map definition
+*--
+Fmap Matex := SetFuelMap Matex ;
+
+UTL: Fmap :: STEP UP GEOMAP DIR IMPR MESHX * IMPR MESHY * IMPR MESHZ * ;
+
+Fmap := RESINI: Fmap :: EDIT 1
+
+ BTYPE INST-BURN
+ INST-BVAL SAME <<bVal>>
+ SET-PARAM 'C-BORE' <<densB1>>
+ SET-PARAM 'T-FUEL' <<temp_comb>>
+ SET-PARAM 'T-COOL' <<temp_mode>>
+ SET-PARAM 'D-COOL' <<dens_mode>>
+ ;
+
+END: ;
+QUIT "LIST" .
diff --git a/Donjon/data/channel_mphy_proc/PowComponent.c2m b/Donjon/data/channel_mphy_proc/PowComponent.c2m
new file mode 100644
index 0000000..11948c4
--- /dev/null
+++ b/Donjon/data/channel_mphy_proc/PowComponent.c2m
@@ -0,0 +1,105 @@
+****************************************************************
+* *
+* Procedure : PowComponent.c2m *
+* Purpose : Reactor Physics component *
+* Author : A. Hebert *
+* *
+* CALL : *
+* Fmap Matex MacroP Flux := PowComponent Fmap Matex Flux Cpo *
+* CpRefl Track :: <<iter>> <<powi>> <<densB>> ; *
+* *
+****************************************************************
+PARAMETER Fmap Matex MacroP Flux Cpo CpRefl Track ::
+ ::: LINKED_LIST Fmap Matex MacroP Flux Cpo CpRefl Track ; ;
+MODULE NCR: MACINI: TRIVAA: FLUD: FLPOW: GREP: DELETE: END: ;
+LINKED_LIST MacroF System Macro1 Macro2 Power ;
+INTEGER iter ;
+ :: >>iter<< ;
+REAL powi densB ;
+ :: >>powi<< >>densB<< ;
+
+STRING Dir := "EDI2B" ;
+REAL keffn ;
+
+*--
+* Reference parameter values
+*--
+REAL pbore_0 temp_comb_0 temp_mode_0 dens_mode_0 :=
+ 500.0 800.0 600.0 0.659 ;
+*--
+* Cross-section database interpolation
+*--
+ECHO "uniform Boron concentration=" densB ;
+MacroF := NCR: Cpo Fmap ::
+ EDIT 1
+ MACRO LINEAR
+ TABLE Cpo <<Dir>> 'burnup'
+ MIX 1 INST-BURN
+ SET LINEAR 'burnup' MAP
+ SET LINEAR 'ppmBore' <<pbore_0>>
+ SET CUBIC 'TF' <<temp_comb_0>>
+ SET CUBIC 'TCA' <<temp_mode_0>>
+ SET CUBIC 'DCA' <<dens_mode_0>>
+ ADD 'ppmBore' <<pbore_0>> MAP
+ REF 'burnup' SAMEASREF
+ 'TF' <<temp_comb_0>>
+ 'TCA' <<temp_mode_0>>
+ 'DCA' <<dens_mode_0>>
+ ENDREF
+ ADD 'TCA' <<temp_mode_0>> MAP
+ REF 'burnup' SAMEASREF
+ 'ppmBore' <<pbore_0>>
+ 'TF' <<temp_comb_0>>
+ 'DCA' <<dens_mode_0>>
+ ENDREF
+ ADD 'TF' <<temp_comb_0>> MAP
+ REF 'burnup' SAMEASREF
+ 'ppmBore' <<pbore_0>>
+ 'TCA' <<temp_mode_0>>
+ 'DCA' <<dens_mode_0>>
+ ENDREF
+ ADD 'DCA' <<dens_mode_0>> MAP
+ REF 'burnup' SAMEASREF
+ 'ppmBore' <<pbore_0>>
+ 'TCA' <<temp_mode_0>>
+ 'TF' <<temp_comb_0>>
+ ENDREF
+ ENDMIX
+;
+
+ Macro1 := NCR: CpRefl ::
+ EDIT 1
+ MACRO LINEAR NMIX 2
+ COMPO CpRefl 'default'
+ MIX 2 FROM 1 SET 'C-BORE' <<densB>> ENDMIX (*lower*)
+;
+
+Macro2 Matex := MACINI: Matex Macro1 MacroF ;
+*--
+* Steady-state diffusion calculation
+*--
+System := TRIVAA: Macro2 Track ;
+
+IF iter 1 = THEN
+ Flux := FLUD: System Track ::
+ EDIT 1 ADI 4 ACCE 5 3 ;
+ELSE
+ Flux := FLUD: Flux System Track ::
+ EDIT 1 ;
+ENDIF ;
+
+MacroP := Macro2 ;
+System MacroF Macro1 Macro2 := DELETE: System MacroF Macro1 Macro2 ;
+*--
+* Power distribution calculation
+*--
+ECHO "total reactor power=" powi "MW" ;
+Power Fmap := FLPOW: Fmap Flux Track Matex
+ :: EDIT 0 PTOT <<powi>> ;
+
+Power := DELETE: Power ;
+GREP: Flux ::
+ GETVAL 'K-EFFECTIVE ' 1 >>keffn<< ;
+ECHO "K-effective = " keffn " densB=" densB ;
+
+END: ;
diff --git a/Donjon/data/channel_mphy_proc/SetFuelMap.c2m b/Donjon/data/channel_mphy_proc/SetFuelMap.c2m
new file mode 100644
index 0000000..3dad643
--- /dev/null
+++ b/Donjon/data/channel_mphy_proc/SetFuelMap.c2m
@@ -0,0 +1,82 @@
+***********************************************************
+* *
+* 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: ;
+
+REAL x1 := 21.6 ;
+
+REAL z1 dz := 20.0 23.0 ;
+
+REAL z2 z3 z4 z5 z6 z7 z8 z9 z10 z11 z12 z13 z14
+ z15 z16 z17 :=
+ z1 dz + z1 2. dz * + z1 3. dz * + z1 4. dz * +
+ z1 5. dz * + z1 6. dz * + z1 7. dz * + z1 8. dz * +
+ z1 9. dz * + z1 10. dz * + z1 11. dz * + z1 12. dz * +
+ z1 13. dz * + z1 14. dz * + z1 15. dz * + z1 16. dz * + ;
+
+REAL z18 := z17 z1 + ;
+
+FMAP MATEX := RESINI: MATEX ::
+ ::: GEO: CAR3D 1 1 18
+ EDIT 0
+ X- REFL X+ REFL
+ Y- REFL Y+ REFL
+ Z- VOID Z+ VOID
+MIX
+PLANE 1
+ 0
+PLANE 2
+ 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 1
+!
+MESHX 0.0 <<x1>>
+
+MESHY 0.0 <<x1>>
+
+MESHZ 0.0 <<z1>> <<z2>> <<z3>> <<z4>> <<z5>> <<z6>> <<z7>>
+ <<z8>> <<z9>> <<z10>> <<z11>> <<z12>> <<z13>> <<z14>>
+ <<z15>> <<z16>> <<z17>> <<z18>>
+;
+!
+NXNAME '01'
+!
+NYNAME 'A'
+!
+NCOMB 1
+B-ZONE 1
+
+ ADD-PARAM PNAME 'C-BORE' PARKEY 'ppmBore' GLOBAL
+ ADD-PARAM PNAME 'T-FUEL' PARKEY 'TF' GLOBAL
+ ADD-PARAM PNAME 'T-COOL' PARKEY 'TCA' GLOBAL
+ ADD-PARAM PNAME 'D-COOL' PARKEY 'DCA' GLOBAL
+;
+
+END: ;
+QUIT .
diff --git a/Donjon/data/channel_mphy_proc/ThmComponent.c2m b/Donjon/data/channel_mphy_proc/ThmComponent.c2m
new file mode 100644
index 0000000..9bc94f1
--- /dev/null
+++ b/Donjon/data/channel_mphy_proc/ThmComponent.c2m
@@ -0,0 +1,52 @@
+****************************************************************
+* *
+* Procedure : ThmComponent.c2m *
+* Purpose : Thermo-hydraulics component *
+* Author : A. Hebert *
+* *
+* CALL : *
+* Fmap Thm := ThmComponent Fmap Thm *
+* :: <<iter>> <<densB>> >>CONV<< ; *
+* *
+****************************************************************
+PARAMETER Fmap Thm ::
+ ::: LINKED_LIST Fmap Thm ; ;
+MODULE THM: GREP: END: ;
+INTEGER iter ;
+ :: >>iter<< ;
+REAL densB ;
+ :: >>densB<< ;
+
+REAL erra1 ;
+LOGICAL CONV ;
+
+IF iter 1 = THEN
+ Thm Fmap := THM: Fmap ::
+ EDIT 1
+ TIME 0.0 (* s *)
+ CONV 50 50 50 0.5 1.0E-3
+ CRITFL 1.80E+6 (* W/m^2 *)
+ ASSMB 264 25
+ CWSECT 3.86 (* m^2 *) 67398.0 (* m^3/hr *)
+ INLET 15500000.0 (* Pa *) 560.95 (* K *)
+ RADIUS 0.4095E-2 0.418E-2 0.475E-2 0.6025E-2 (* m *)
+ SET-PARAM 'C-BORE' <<densB>>
+ RODMESH 5 10
+ CONV 50 50 50 1.0 1.0E-4
+ RELAX 0.5
+ ;
+
+ELSE
+ Thm Fmap := THM: Thm Fmap :: EDIT 1 ;
+ENDIF ;
+*--
+* Convergence test
+*--
+GREP: Thm :: GETVAL 'ERROR-T-FUEL' 1 >>erra1<< ;
+ECHO "error on fuel temperature at iteration" iter "=" erra1 ;
+EVALUATE CONV := erra1 1.0 < iter 50 > + ;
+ECHO "at iter=" iter ", CONV =" CONV ;
+ECHO "-------------------------------" ;
+ :: <<CONV>> ;
+
+END: ;