summaryrefslogtreecommitdiff
path: root/Donjon/data/FourChannels.x2m
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/FourChannels.x2m
Initial commit from Polytechnique Montreal
Diffstat (limited to 'Donjon/data/FourChannels.x2m')
-rw-r--r--Donjon/data/FourChannels.x2m250
1 files changed, 250 insertions, 0 deletions
diff --git a/Donjon/data/FourChannels.x2m b/Donjon/data/FourChannels.x2m
new file mode 100644
index 0000000..7b726a5
--- /dev/null
+++ b/Donjon/data/FourChannels.x2m
@@ -0,0 +1,250 @@
+******************************************************************
+!* **
+!* DONJON calculation for a simplified 4-channel test reactor **
+!* used to develop CANDU capabilities in module THM: **
+!* **
+!*****************************************************************
+!* R. Chambon (23/11/2007) **
+!* M. Fassi Fehri (28/01/2007) **
+!* A. Hebert (27/08/2018) **
+!*****************************************************************
+MODULE GREP: CRE: DELETE: TAVG: FLPOW: MACINI: RESINI: FLUD:
+ GEO: USPLIT: TRIVAA: TRIVAT: THM: AFM: UTL: END: ;
+MODULE ABORT: ;
+
+SEQ_ASCII fnat rnat neutrodata thermodata macfme5 ;
+
+LINKED_LIST NFUEL NREFL GEOM INDEX MACRO DEVICE PROCEDE RESEAU
+ GEOM2 SYSTEM POWER MACRO2 MACRES FLUX TRACK THER DBASE ;
+
+!* AFM database
+!*******************************************
+DBASE := macfme5 ;
+UTL: DBASE :: DIR ;
+
+!* Neutronics variables
+!*******************************************
+INTEGER Maxreg ;
+REAL B1 := 7500.0 ;
+REAL Keff ;
+INTEGER Iter Edit := 0 0 ;
+REAL Precf := 1.0E-6 ;
+REAL Pow := 2064.0 380.0 / 4.0 * ;
+REAL Eps1 := 1.0 ;
+STRING NamCpo1 NamCpo2 ;
+EVALUATE NamCpo1 := "FULBU7114WGT" ;
+EVALUATE NamCpo2 := "FULBU5135WGT" ;
+
+!* Thermalhydraulics variables
+!************************************************
+REAL theta rufc := 1.570796320E0 3.0E-7 ;
+REAL pout tinit tcini := 1.1205836E7 5.3552E2 6.0E2 ;
+REAL erra1 tmax ;
+LOGICAL CONV ;
+EVALUATE Maxreg := 27700 ; ! number of regions in the geometry
+
+!* Define the two-zone geometry
+!***************************************
+GEOM := GEO: :: CAR3D 4 4 12
+ EDIT 0
+ X- ZERO X+ ZERO
+ Y- ZERO Y+ ZERO
+ Z- ZERO Z+ ZERO
+ MIX
+ PLANE 1
+ 2 2 2 2
+ 2 1 1 2
+ 2 1 1 2
+ 2 2 2 2
+ PLANE 2 SAME 1
+ PLANE 3 SAME 1
+ PLANE 4 SAME 1
+ PLANE 5 SAME 1
+ PLANE 6 SAME 1
+ PLANE 7 SAME 1
+ PLANE 8 SAME 1
+ PLANE 9 SAME 1
+ PLANE 10 SAME 1
+ PLANE 11 SAME 1
+ PLANE 12 SAME 1
+MESHX 68.525 97.100 125.675 154.250 182.825
+MESHY 68.525 97.100 125.675 154.250 182.825
+MESHZ 3.940 53.470 103.000 152.530 202.060 251.590 301.120 350.650
+ 400.180 449.710 499.240 548.770 598.30
+;
+
+!* Link material index and geometry:
+!****************************************
+GEOM2 INDEX := USPLIT: GEOM :: EDIT 0 NGRP 2
+ MAXR <<Maxreg>>
+ NREFL 1 RMIX 2
+ NFUEL 1 FMIX 1 ;
+
+!* Import compo files
+!****************************************
+ NFUEL := fnat ;
+ NREFL := rnat ;
+
+!* Macroscopic cross sections of the mixtures
+!*************************************************************
+ MACRO := CRE: NREFL ::
+ EDIT 0 NMIX 2
+ READ
+ COMPO NREFL MIX 2 'MIXTMOD 1' ENDMIX
+ ;
+
+!* Create the fuelmap
+!**************************************
+ RESEAU INDEX := RESINI: INDEX ::
+ ::: GEO: CAR3D 4 4 12
+ EDIT 9
+ X- VOID X+ VOID
+ Y- VOID Y+ VOID
+ Z- VOID Z+ VOID
+ MIX PLANE 1
+ 0 0 0 0
+ 0 1 1 0
+ 0 1 1 0
+ 0 0 0 0
+ PLANE 2 SAME 1
+ PLANE 3 SAME 1
+ PLANE 4 SAME 1
+ PLANE 5 SAME 1
+ PLANE 6 SAME 1
+ PLANE 7 SAME 1
+ PLANE 8 SAME 1
+ PLANE 9 SAME 1
+ PLANE 10 SAME 1
+ PLANE 11 SAME 1
+ PLANE 12 SAME 1
+MESHX 68.525 97.100 125.675 154.250 182.825
+MESHY 68.525 97.100 125.675 154.250 182.825
+MESHZ 3.940 53.470 103.000 152.530 202.060 251.590 301.120
+ 350.650 400.180 449.710 499.240 548.770 598.30 ;
+NXNAME '-' '1' '2' '-'
+NYNAME '-' 'A' 'B' '-'
+NCOMB 1
+B-ZONE
+ 1 1
+ 1 1
+BTYPE TIMAV-BURN
+REF-SHIFT 8
+TIMAV-BVAL <<B1>>
+ADD-PARAM PNAME 'T-FUEL' PARKEY 'TF' GLOBAL
+;
+
+!* Tracking
+!**************************************
+ TRACK := TRIVAT: GEOM2 ::
+ EDIT 0
+ TITLE 'G2 3D '
+ MAXR <<Maxreg>> MCFD 1 ;
+
+!* set global parameters:
+!********************
+RESEAU := RESINI: RESEAU :: EDIT 2
+ SET-PARAM 'T-FUEL' <<tcini>>
+;
+
+!* Coupling loop
+!********************
+INTEGER iterc := 1 ;
+REPEAT
+!* Iteration loop on axial flux shape
+!***************************************************
+ REPEAT
+ EVALUATE Iter := Iter 1 + ;
+
+!* Interpolate cross sections
+!***************************************************
+ MACRES := AFM: DBASE RESEAU ::
+ MAP
+ INFOR SISSAOUI_ENDFB5_CANDU6_FEBRUARY_98
+ DNAME 2 <<NamCpo1>> <<NamCpo1>>
+ EDIT 0
+ REFT 1 <<NamCpo1>> 3 <<NamCpo1>> ;
+ MACRO2 INDEX := MACINI: INDEX MACRO MACRES ;
+
+!* Creatte finite-element matrices
+!***************************************************
+ SYSTEM := TRIVAA: MACRO2 TRACK :: EDIT 0 ;
+
+!* Compute the neutron flux
+!***********************************************
+ FLUX := FLUD: SYSTEM TRACK :: EDIT 1
+ ACCE 3 3 ADI 4 EXTE 1000 <<Precf>> ;
+!*--
+!* flux and power:
+!*--
+ POWER RESEAU := FLPOW: RESEAU FLUX TRACK INDEX MACRO2 ::
+ EDIT 1 PTOT <<Pow>> ;
+!*--
+!* core-average exit burnup:
+!*--
+ RESEAU := TAVG: RESEAU POWER :: EDIT 999 AX-SHAPE B-EXIT ;
+
+!* Recover exit variables
+!***************************************************
+ GREP: RESEAU :: GETVAL EPS-AX 1 >>Eps1<< ;
+ GREP: FLUX :: GETVAL K-EFFECTIVE 1 >>Keff<< ;
+ POWER MACRO2 MACRES SYSTEM FLUX := DELETE:
+ POWER MACRO2 MACRES SYSTEM FLUX ;
+
+UNTIL Eps1 0.001 < Iter 10 = + ;
+
+!* Initialization of the thermalhydraulics calculation
+!************************************************************
+ IF iterc 2 < THEN
+ THER RESEAU := THM: RESEAU ::
+ EDIT 5
+ FLUID D2O
+ FPUISS 0.945
+ CRITFL 1.80E+6 (* W/m^2 *)
+ INLET <<pout>> (* Pa *) <<tinit>> (* K *)
+ INLET-Q 1.3809E-2 (* m2 *) 96.7718 (* kg/s *)
+ CLUSTER 1.4885E-2 (* m *) 37
+ RADIUS 0.0056 0.00598 0.00654 0.0 (* m *)
+ RODMESH 15 20
+ F-RUG <<rufc>> THETA <<theta>>
+ HGAP 10.0E3 (* W/m2/K *)
+ SAHA
+ ;
+ ELSE
+
+!* Thermalhydraulics calculation
+!************************************************************
+ THER RESEAU := THM: THER RESEAU ::
+ EDIT 4
+ ;
+ ENDIF ;
+
+!* Convergence test
+!************************************************************
+ EVALUATE iterc := iterc 1 + ;
+ GREP: THER :: GETVAL 'ERROR-T-FUEL' 1 >>erra1<< ;
+ ECHO "error on fuel temperature at iteration" iterc "=" erra1 ;
+ EVALUATE CONV := erra1 1.0 < iterc 50 > + ;
+ ECHO "CONV =" CONV ;
+ ECHO "-------------------------------" ;
+UNTIL CONV ;
+ECHO "at convergence, iter=" iterc ;
+thermodata := THER ;
+neutrodata := RESEAU ;
+
+!* Non-regression test
+!************************************************************
+REAL REFVALUE := 1143.495 ;
+GREP: THER :: MAXVAL 'MAX-T-FUEL' 1 >>tmax<< ;
+REAL DELTA := tmax REFVALUE - REFVALUE / ABS ;
+IF DELTA 1.0E-3 < THEN
+ ECHO "TEST SUCCESSFUL; DELTA=" DELTA ;
+ELSE
+ ECHO "------------" ;
+ ECHO "TEST FAILURE" ;
+ ECHO "------------" ;
+ ECHO "REFERENCE=" REFVALUE " CALCULATED=" tmax ;
+ ABORT: ;
+ENDIF ;
+ECHO "test FourChannels completed" ;
+END: ;
+QUIT .