diff options
| author | stainer_t <thomas.stainer@oecd-nea.org> | 2025-09-08 13:48:49 +0200 |
|---|---|---|
| committer | stainer_t <thomas.stainer@oecd-nea.org> | 2025-09-08 13:48:49 +0200 |
| commit | 7dfcc480ba1e19bd3232349fc733caef94034292 (patch) | |
| tree | 03ee104eb8846d5cc1a981d267687a729185d3f3 /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.c2m | 212 |
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: ; |
