summaryrefslogtreecommitdiff
path: root/Donjon/data/pmox_sap_proc/Conv.c2m
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/Conv.c2m
Initial commit from Polytechnique Montreal
Diffstat (limited to 'Donjon/data/pmox_sap_proc/Conv.c2m')
-rw-r--r--Donjon/data/pmox_sap_proc/Conv.c2m212
1 files changed, 212 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: ;