summaryrefslogtreecommitdiff
path: root/Donjon/data/AFMtest_proc/Pburncal.c2m
blob: ffcc674c7822577deceef2917486a254c5354e21 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
!***********************************************************************
!*    Main Input File for DONJON                                      **
!*    2 zone only                                                     **
!*                                                                    **
!*    W. Shen  Nov. 11, 1998                                          **
!*    B. Dionne (2001/03/04) (pour cours ENE6209)                     **
!*    E. Varin  (2004/02/23) (pour Reingenierie)                      **
!*    A. Hebert (11/11/11) (pour DONJON4)                             **
!*                                                                    **
!***********************************************************************
 PARAMETER G23D2 INDEX MACRO DEVICE RESEAU DBASE ::
           :::
       LINKED_LIST   G23D2 INDEX MACRO DEVICE RESEAU DBASE ;
                 ;

 PROCEDURE    PgeoG2 Pmacfix PdevT Pinires PcritAx ;

 MODULE       DSET: RESINI: DELETE: FIND0: END: ;

 LINKED_LIST  INFOF ;

!* Declaration et initialisation des variables
!*********************************************
 INTEGER Maxreg := 27700 ;
 INTEGER Iter := 0 ;
 !* Numeros de melange des devices
 INTEGER  m23M m23E m23F m12M m12E m12F m01M m01E m01F :=
           17   18   19    20   21   22   23   24   25 ;
 INTEGER  mRai  mRao  mRbi  mRci  mRco  mRdi
         mNRai mNRao mNRbi mNRci mNRco mNRdi  :=
           5     6      7     8     9    10
           11   12     13    14    15    16  ;
 INTEGER  mRbs mNobs :=
           26   27  ;
 !***

 LOGICAL Conv ;

 REAL Fact BCinout Eps1 Keff fmean ;
 REAL Timbc := 60.0 ;
 REAL Kref := 1.0  ;
 REAL B1 B2 Burn Precf Pow ;
 REAL Dk1 Dk2 BP1 Aux Out ;

 EVALUATE Pow := 2064.0 ; ! Puissance totale de fission
 EVALUATE fmean :=  0.50   ;
 EVALUATE Precf := 1.E-6 ; !* Precision du calcul de flux

!* Lecture des arguments de la procedure
!***************************************
 :: >>Fact<<  >>BCinout<< >>Maxreg<< ;

!* Definition de la geometrie
!****************************
 G23D2 INDEX := PgeoG2 :: <<Maxreg>> ;

!* Definition initiale des melanges (sections efficaces macroscopiques)
!**********************************************************************
!proprietes fixes=independant du burnup
 MACRO := Pmacfix ;

!proprietes dependantes du burnup
 EVALUATE B1 := 4000.0 ;
 EVALUATE B2 := B1 Fact / ;
 RESEAU INDEX := Pinires INDEX :: <<B1>> <<B2>> ;

!* Definition des devices (ADJUSTER,LZC, ...) et leurs mouvements
*****************************************************************
 DEVICE INDEX := PdevT INDEX :: <<fmean>>
     <<m23M>> <<m12M>> <<m01M>> <<mNRai>> <<mNRao>> <<mNRbi>>
     <<mNRci>> <<mNRco>> <<mNRdi>> <<mNobs>> ;

!* Positions initiales de devices
!********************************

DEVICE := DSET: DEVICE ::
  EDIT 5
  ROD-GROUP 1 LEVEL <<BCinout>> TIME <<Timbc>> END
  LZC 1 LEVEL <<fmean>> TIME 60. END
  LZC 2 LEVEL <<fmean>> TIME 36. END
  LZC 3 LEVEL <<fmean>> TIME 36. END
  LZC 4 LEVEL <<fmean>> TIME 36. END
  LZC 5 LEVEL <<fmean>> TIME 36. END
  LZC 6 LEVEL <<fmean>> TIME 60. END
  LZC 7 LEVEL <<fmean>> TIME 36. END
  LZC 8 LEVEL <<fmean>> TIME 60. END
  LZC 9 LEVEL <<fmean>> TIME 36. END
  LZC 10 LEVEL <<fmean>> TIME 36. END
  LZC 11 LEVEL <<fmean>> TIME 36. END
  LZC 12 LEVEL <<fmean>> TIME 36. END
  LZC 13 LEVEL <<fmean>> TIME 60. END
  LZC 14 LEVEL <<fmean>> TIME 36. END
 ;

!* Calculs de flux et convergence vers le burnup de sortie
!*********************************************************
 !* Calcul de la borne positive
 RESEAU := PcritAx RESEAU DBASE INDEX MACRO DEVICE G23D2 ::
 <<Precf>> <<B1>> <<B2>> <<Maxreg>> <<Pow>> >>Keff<< >>Eps1<< ;

 EVALUATE Dk1 := Keff Kref - ;
 EVALUATE BP1 := B1 ;

 !* Calcul de la borne negative
 EVALUATE B1 := 12000.0 ;
 EVALUATE B2 := B1 Fact / ;

 RESEAU := PcritAx RESEAU DBASE INDEX MACRO DEVICE G23D2 ::
 <<Precf>> <<B1>> <<B2>> <<Maxreg>> <<Pow>> >>Keff<< >>Eps1<< ;

 ECHO "Pburncal init Keff=" Keff ;

 EVALUATE Dk2 := Keff Kref - ;

 !* Recherche de la racine avec methode de Brent
 EVALUATE B1 BP1 := B1 1000.0 / BP1 1000.0 / ;

 INFOF := FIND0: :: TOL 5.0E-4 ITMAX 10
                    POINT X <<BP1>>   Y <<Dk1>>
                    POINT X <<B1>>    Y <<Dk2>>
                    >>Conv<< >>Burn<< ;

 EVALUATE Aux := Burn 1000.0 * ;

!* Boucle pour faire converger les burnup de sorties
!* pour un coeur critique
!***************************************************
 REPEAT

   EVALUATE Iter := Iter 1 + ;

   EVALUATE B1 := Aux ;
   EVALUATE B2 := Aux Fact / ;

   RESEAU := PcritAx RESEAU DBASE INDEX MACRO DEVICE G23D2 ::
   <<Precf>> <<B1>> <<B2>> <<Maxreg>> <<Pow>> >>Keff<< >>Eps1<< ;

   ECHO "Pburncal iter=" Iter "Keff=" Keff ;

   EVALUATE Out := Keff Kref - ;

   INFOF := FIND0: INFOF :: Y <<Out>> >>Conv<< >>Burn<< ;

   EVALUATE Aux := Burn 1000.0 * ;

 UNTIL Conv ;

 ECHO "BURNUP ET FORME AXIALE DU FLUX CONVERGES" ;
 ECHO "-----------------------------------------" ;
 ECHO "NBRE ITERATIONS EXTERNES    = " Iter ;
 ECHO "KEFF FINAL                  = " Keff ;
 ECHO "ERREUR FORME AXIALE DU FLUX = " Eps1 ;
 ECHO "-----------------------------------------" ;
 ECHO "THE FINAL T/A EXIT BURNUP B1,B2: " B1 B2 ;
 ECHO "AT THE CONVERGENCE" ;

 RESEAU := RESINI: RESEAU :: TIMAV-BVAL  <<B1>> <<B2>> ;

 END: ;

QUIT .