Chi-Tech
doc_ChiFormatXS.h
Go to the documentation of this file.
1/**\defgroup ChiXSFile Chi-Tech Cross-section format 1
2*\ingroup LuaPhysics
3*
4* An example Chi-Tech cross section file is shown below. The bare-bones
5* format is shown below with more examples below:
6 \code
7# This header can be as large as you please. The actual processing
8# starts at NUM_GROUPS as the first word. After that, NUM_MOMENTS needs to
9# be processed before any of the other keywords.
10NUM_GROUPS 2
11NUM_MOMENTS 2
12SIGMA_T_BEGIN
130 0.5
141 0.5
15SIGMA_T_END
16
17Comments
18
19TRANSFER_MOMENTS_BEGIN
20#Zeroth moment (l=0)
21M_GPRIME_G_VAL 0 0 0 0.01
22M_GPRIME_G_VAL 0 0 1 0.09
23M_GPRIME_G_VAL 0 1 1 0.08
24
25#(l=1)
26M_GPRIME_G_VAL 1 0 0 -0.001
27M_GPRIME_G_VAL 1 0 1 0.001
28M_GPRIME_G_VAL 1 1 1 0.001
29TRANSFER_MOMENTS_END
30\endcode
31
32## Steady state simulations:
33
34The cross sections can be used in simulations solving the steady state
35Linear Boltzmann Equation of the form:
36
37\f[
38\vec{\Omega}_n \boldsymbol{\cdot} \vec{\nabla} \psi_{ng} +
39\sigma_{tg} \psi_{ng} =
40\sum_{\ell=0}^L \sum_{m=-\ell}^{+\ell} \frac{2\ell+1}{4\pi}
41Y_{\ell m} (\vec{\Omega}_n)
42\sum_{g'=0}^{G-1} \sigma_{s\ell,g'{\to}g} \phi_{\ell m,g'} +
43q_{ext,ng} + q_{fission,ng}
44\f]
45
46The two most prominent items required here includes \f$ \sigma_{tg} \f$ and
47\f$ \sigma_{s\ell,g'{\to}g} \f$. The latter is an entry in a structure we
48call a generic transfer matrix for moment \f$ \ell \f$ with rows \f$g=0..G-1\f$
49and columns \f$g'=0..G-1\f$. These two items are often the only items required
50in a transport simulation.
51
52In simulations with fission-sources, cross sections support two formats,
53the simple combined cross sections without delayed neutrons
54
55\f[
56q_{fission,ng} = \frac{\chi_g}{4\pi}
57\sum_{g'=0}^{G-1} \nu_{g'} \sigma_{fg'} \phi_{00g'}
58\f]
59
60and those with delayed neutrons, the latter which are currently only used in
61the k-eigenvalue solver.
62
63## k-eigenvalue related items
64As stated before, the cross section file supports two formats, the simple
65combined cross sections without delayed neutrons which are depicted above
66and those with delayed neutrons shown below
67
68\f[
69q_{fission,ng} = \frac{\chi_g}{4\pi}
70\sum_{g'=0}^{G-1} \nu_{prompt,g'} \sigma_{fg'} \phi_{00g'}
71+ \sum_{j=0}^{J-1} \frac{\chi_{delayed,jg}}{4\pi} \gamma_j
72 \sum_{g'=0}^{G-1} \nu_{delayed,g'} \sigma_{fg'} \phi_{00g'}
73 \f].
74
75Codes may also choose to update precursor concentrations for which their decay
76constants, \f$ \lambda_j \f$ are required.
77
78## Keyword definitions
79
80- NUM_GROUPS num_groups Required. Specifies the number of groups for this
81 cross section. Symbol \f$ G \f$.
82- NUM_MOMENTS num_moments Required. The number of transfer matrices to allocate
83 for this cross section (whether used or not). Typically this number is one
84 greater than the scattering order (i.e., \f$ L+1 \f$)
85- NUM_PRECURSORS num_precursors Optional. Indicates how many precursors are used
86 in this cross section. Symbol \f$ J \f$
87- Optional key words per line:
88 - SIGMA_T_BEGIN. Optional. Starts a block that is terminated by a line
89 SIGMA_T_END. Each line in the block processes the first two words as
90 [group, sigma_t]. Populates the sigma_tg field. Symbol \f$ \sigma_{tg} \f$.
91 - SIGMA_A_BEGIN. Optional. Starts a block that is terminated by a line
92 SIGMA_A_END. Each line in the block processes the first two words as
93 [group, sigma_a]. Populates the sigma_ag field. Symbol \f$ \sigma_{ag} \f$.
94 If this is not supplied then sigma_a is estimated from the transfer matrix
95 and may erroneously estimate balance.
96 - SIGMA_F_BEGIN. Optional. Starts a block that is terminated by a line
97 SIGMA_F_END. Each line in the block processes the first two words as
98 [group, sigma_f]. Populates the sigma_fg field. Symbol \f$ \sigma_{fg} \f$.
99 - NU_BEGIN. Optional. Starts a block that is terminated by a line NU_END.
100 Each line in the block processes the first two words as [group, nu].
101 Populates the nu field. Upon completing the file processing the nu_sigma_fg
102 field gets populated from the product of nu and sigma_fg.
103 Symbol \f$ \nu_g \f$.
104 - NU_PROMPT_BEGIN. Optional. Starts a block that is terminated by a line
105 NU_PROMPT_END. Each line in the block processes the first two words as
106 [group, nu_prompt]. Populates the nu_prompt field. Upon completing the file
107 processing the nu_p_sigma_fg field gets populated from the product of
108 nu_prompt and sigma_fg. Symbol \f$ \nu_{prompt,g} \f$.
109 - NU_DELAYED_BEGIN. Optional. Starts a block that is terminated by a line
110 NU_DELAYED_END. Each line in the block processes the first two words as
111 [group, nu_delayed]. Populates the nu_delayed field. Upon completing the
112 file processing the nu_d_sigma_fg field gets populated from the product of
113 nu_delayed and sigma_fg. Symbol \f$ \nu_{delayed,g} \f$.
114 - CHI_BEGIN. Optional. Starts a block that is terminated by a line
115 CHI_END. Each line in the block processes the first two words as
116 [group, chi]. Populates the chi field. Symbol \f$ \chi_{g} \f$.
117 - CHI_PROMPT_BEGIN. Optional. Starts a block that is terminated by a line
118 CHI_PROMPT_END. Each line in the block processes the first two words as
119 [group, chi]. Populates the chi_prompt field.
120 Symbol \f$ \chi_{prompt, g} \f$.
121 - VELOCITY_BEGIN. Optional. Starts a block that is terminated by a line
122 VELOCITY_END. Each line in the block processes the first two words as
123 [group, velocity]. Populates the inv_velocity field by inverting parsed
124 values. Symbol \f$ \frac{1}{v_g} \f$.
125 - INV_VELOCITY_BEGIN. Optional. Starts a block that is terminated by a line
126 INV_VELOCITY_END. Each line in the block processes the first two words as
127 [group, inv_velocity]. Populates the inv_velocity field. If this field and
128 VELOCITY are provided, this field will be used.
129 Symbol \f$ \frac{1}{v_g} \f$.
130 - PRECURSOR_DECAY_CONSTANTS_BEGIN. Optional. Starts a block that is terminated by a
131 line PRECURSOR_DECAY_CONSTANTS_END. Each line in the block processes the first two
132 words as [precursor, lambda]. Populates the lambda field (the precursor
133 decay constant). Symbol \f$ \lambda_j \f$.
134 - PRECURSOR_FRACTIONAL_YIELDS_BEGIN. Optional. Starts a block that is terminated by a
135 line PRECURSOR_FRACTIONAL_YIELDS_END. Each line in the block processes the first two
136 words as [precursor, gamma]. Populates the gamma field (the precursor
137 production fraction per fission). Symbol \f$ \gamma_j \f$.
138 - CHI_DELAYED_BEGIN. Optional. Starts a block that is terminated by a line
139 CHI_DELAYED_END. Each line in the block processes the first word as the
140 group index and the remaining NUM_PRECURSORS words as the the individual
141 precursor's associated delayed spectrum (chi). Populates the chi_d field.
142 Symbol \f$ \chi_{delayed,jg} \f$.
143 - TRANSFER_MOMENTS_BEGIN. Optional. Starts a block that is terminated by a
144 line TRANSFER_MOMENTS_END. Each line in the block processes a line only if
145 it starts with the keyword M_GPRIME_G_VAL which needs to be followed by four
146 values [moment,gprime,g,value]. Populates transfer-matrix for moment m,
147 row g, column gprime, with value. Symbol \f$ \sigma_{s\ell,g'{\to}g} \f$.
148
149- Comments can be between individual blocks but only the TRANSFER_MOMENTS block
150 may have comments between the _BEGIN and _END
151- Comments do not have to start with any specific character since the file
152 format is keyword driven.
153- Any number that is not convertible to its required type (integer, double)
154 will throw an error to that effect.
155- All errors will indicate the current file, line number and nature of the error.
156
157## More Advanced Examples
158\code
159# This header can be as large as you please. The actual processing
160# starts at NUM_GROUPS as the first word. After that, NUM_MOMENTS needs to
161# be processed before any of the other keywords.
162NUM_GROUPS 2
163NUM_MOMENTS 2
164NUM_PRECURSORS 3
165SIGMA_T_BEGIN
1660 0.5
1671 0.5
168SIGMA_T_END
169
170Comments
171
172SIGMA_F_BEGIN
1730 0.01
1741 0.40737
175SIGMA_F_END
176
177NU_PROMPT_BEGIN
1780 2.45
1791 2.45
180NU_PROMPT_END
181
182CHI_PROMPT_BEGIN
1830 1.0
1841 0.0
185CHI_PROMPT_END
186
187VELOCITY_BEGIN
1880 2.2e10
1891 272.145
190VELOCITY_END
191
192TRANSFER_MOMENTS_BEGIN
193#Zeroth moment (l=0)
194M_GPRIME_G_VAL 0 0 0 0.01
195M_GPRIME_G_VAL 0 0 1 0.09
196M_GPRIME_G_VAL 0 1 1 0.08
197
198#(l=1)
199M_GPRIME_G_VAL 1 0 0 -0.001
200M_GPRIME_G_VAL 1 0 1 0.001
201M_GPRIME_G_VAL 1 1 1 0.001
202TRANSFER_MOMENTS_END
203
204PRECURSOR_DECAY_CONSTANTS_BEGIN
2050 0.1
2061 0.2
2072 0.3
208PRECURSOR_DECAY_CONSTANTS_END
209
210PRECURSOR_GAMMA_BEGIN
2110 0.25
2121 0.5
2132 0.25
214PRECURSOR_GAMMA_END
215
216NU_DELAYED_BEGIN
2170 0.01
2181 0.02
2192 0.01
220NU_DELAYED_END
221
222CHI_DELAYED_BEGIN
223G_PRECURSOR_VAL 0 0 1.0
224G_PRECURSOR_VAL 0 1 1.0
225G_PRECURSOR_VAL 0 2 1.0
226
227G_PRECURSOR_VAL 1 0 0.0
228G_PRECURSOR_VAL 1 1 0.0
229G_PRECURSOR_VAL 1 2 0.0
230CHI_DELAYED_END
231\endcode
232* */