Module to deal with fission reactions. More...
Data Types | |
type | fissionrate_type |
fission rate type, designed to save fragment distribution at initialization More... | |
type | fragtype |
Functions/Subroutines | |
subroutine, public | init_fission_rates () |
Initialize the fission reactions. More... | |
subroutine, private | reorder_fragments () |
Reorder the fission fragments. More... | |
subroutine, private | write_reac_verbose_out () |
Write the amount of individual reactions to the out. More... | |
subroutine, private | read_binary_fission_reaction_data (path) |
Read the fission reactions and fragment distributions from a binary file. More... | |
subroutine, public | output_binary_fission_reaction_data (path) |
Save the fission data to a unformatted binary file. More... | |
subroutine, public | merge_fission_rates (rrate_array, rrate_length, fiss_count) |
Merge fission rates with larger array. More... | |
subroutine, private | modify_halflifes (rrate, rrate_length, fissrate_in, nfiss_in) |
Modifies half lifes of beta decays to include fission. More... | |
subroutine, private | count_fission_rates () |
Count the amount of fission rates. More... | |
subroutine, private | count_fission_rates_reaclib_format (fission_rate_file, count_rates) |
Count the amount of fission rates in reaclib format. More... | |
subroutine, private | count_fission_rates_halflife_format (fission_rate_file, count_rates) |
subroutine, private | count_fission_rates_probability_format (fission_rate_file, count_rates, nr_cols) |
subroutine | add_fission_fragments () |
Initializes the rates with fragments. More... | |
subroutine, private | read_fission_rates () |
Read the fission rates, splitted into different types of fission. More... | |
subroutine, private | read_fission_rates_reaclib_format (fission_path, reac_type, start_idx) |
subroutine, private | read_fission_rates_probability_format (fission_path, reac_type, start_idx) |
subroutine, private | read_fission_rates_halflife_format (fission_path, reac_type, start_idx) |
subroutine, private | fiss_dist (fissrate_inout) |
Determines fission fragment mass distribution as described in Panov et al. 2001. More... | |
subroutine, private | kodtakdist (fissrate_inout) |
Kodama-Takahashi distribution. More... | |
subroutine | read_fiss_fragment_file (file, fragment_array) |
subroutine | file_fiss_frag (fissrate_inout, missing_frags) |
Fill the rates with the correct fragments. More... | |
subroutine, private | abla_nfiss (pos, mass, pnr, neutfission, qval) |
Calculates the (neutron-induced) fission fragment mass distribution according to the ABLA07 model: Kelic, Ricciardi, & Schmidt (arXiv:0906.4193) More... | |
subroutine, private | abla_betafiss (pos, mass, pnr, betafission, qval) |
Calculates the (beta-delayed and spontaneous) fission fragment mass distribution according to the ABLA07 model: Kelic, Ricciardi, & Schmidt (arXiv:0906.4193) More... | |
Variables | |
type(fissionrate_type), dimension(:), allocatable, public | fissrate |
Array storing fission reactions. More... | |
real(r_kind), dimension(:,:), allocatable, private | beta_delayed_fiss_probs |
integer, private | amount_cols |
Amount of columns in the beta-delayed fission file. More... | |
character(len= *), parameter, private | fiss_binary_name ='fiss_rates.windat' |
Name of the binary file containing the fission rates. More... | |
type(fragtype), dimension(:), allocatable, private | fissfrags_n_induced |
Array storing fragment distributions of neutron-induced fission from file. More... | |
type(fragtype), dimension(:), allocatable, private | fissfrags_spontaneous |
Array storing fragment distributions of spontaneous fission from file. More... | |
type(fragtype), dimension(:), allocatable, private | fissfrags_beta_delayed |
Array storing fragment distributions of beta-delayed fission from file. More... | |
integer, parameter, public | fiss_neglect =5 |
Amount of fission fragments not to be neglected. More... | |
integer, public | nfiss |
Amount of fission rates. More... | |
integer, private | nfiss_spont |
Amount of spontaneous fission rates. More... | |
integer, private | nfiss_n_ind |
Amount of neutron induced fission rates. More... | |
integer, private | nfiss_bdel |
Amount of beta-delayed fission rates. More... | |
integer, private | nufiss |
total number of fission neutrons More... | |
integer, private | n_nf |
integer, private | n_bf |
integer, private | n_sf |
Amount of individual reactions. More... | |
Module to deal with fission reactions.
This module contains subroutines to read fission reactions and fission fragment distributions. Furthermore, it counts the amount of reactions. Many subroutines here were originally implemented by M. Eichler and C. Winteler.
|
private |
Calculates the (beta-delayed and spontaneous) fission fragment mass distribution according to the ABLA07 model: Kelic, Ricciardi, & Schmidt (arXiv:0906.4193)
Definition at line 2742 of file fission_rate_module.f90.
|
private |
Calculates the (neutron-induced) fission fragment mass distribution according to the ABLA07 model: Kelic, Ricciardi, & Schmidt (arXiv:0906.4193)
Definition at line 2508 of file fission_rate_module.f90.
subroutine fission_rate_module::add_fission_fragments |
Initializes the rates with fragments.
This routine initializes the fission rates with the specified fragments. The fragments can differ for the types of fission.
Edited:
Definition at line 1006 of file fission_rate_module.f90.
|
private |
Count the amount of fission rates.
This subroutine counts the amount of fission rates and stores the result in nfiss. In case that a new fission type will be implemented, the reaction rates should be counted here. The different formats for the different types of fission reactions are:
Type | Value | Description |
---|---|---|
Spontaneous | 0 | No rates are read |
Spontaneous | 1 | Reaclib format |
Spontaneous | 2 | Half life format |
n-induced | 0 | No rates are read |
n-induced | 1 | Reaclib format |
\(\beta\)-delayed | 0 | No rates are read |
\(\beta\)-delayed | 1 | Reaclib format |
\(\beta\)-delayed | 2 | Half life format |
\(\beta\)-delayed | 3 | Probability format |
Definition at line 692 of file fission_rate_module.f90.
|
private |
[in] | fission_rate_file | File containing fission rates |
[out] | count_rates | Amount of fission rates |
Definition at line 839 of file fission_rate_module.f90.
|
private |
[in] | fission_rate_file | File containing fission rates |
[out] | count_rates | Amount of fission rates |
[out] | nr_cols | Number of columns in the file |
Definition at line 922 of file fission_rate_module.f90.
|
private |
Count the amount of fission rates in reaclib format.
This subroutine counts the amount of fission rates in reaclib format and stores the result in count_rates. This is necessary to allocate the fission array with the correct length. The subroutine can be called for any kind of fission (spontaneous, n-induced, beta-delayed).
Edited:
[in] | fission_rate_file | File containing fission rates |
[out] | count_rates | Amount of fission rates |
Definition at line 770 of file fission_rate_module.f90.
subroutine fission_rate_module::file_fiss_frag | ( | type(fissionrate_type), intent(inout) | fissrate_inout, |
integer, intent(in), optional | missing_frags | ||
) |
Fill the rates with the correct fragments.
This subroutine fills the rates with the correct fragments from Mumpower et al. (2020). This subroutine makes use of the fragtype struct. If no fragment is found, the fragment distribution is set to the one given by missing_frags. For beta-delayed fission the fissioning nucleus is the one of (Z+1, A) for neutron induced fission the nucleus with (Z, A+1), and for spontanous fission (not used within fissflag = 3) it is (Z,A).
[in,out] | fissrate_inout | Temporary fission rate |
[in] | missing_frags | Distribution to use if not in the file (1:panov, 2:kodama) |
Definition at line 2333 of file fission_rate_module.f90.
|
private |
Determines fission fragment mass distribution as described in Panov et al. 2001.
This routine is called for parameter_class::fissflag = 1 and fills the array fissrates with indices of the fragment nuclei.
[in,out] | fissrate_inout | Temporary fission rate |
Definition at line 1644 of file fission_rate_module.f90.
subroutine, public fission_rate_module::init_fission_rates |
Initialize the fission reactions.
This subroutine counts and reads fission reactions. After calling it fissrate will be filled as well as the integer nfiss will store the amount of fission reactions.
Definition at line 98 of file fission_rate_module.f90.
|
private |
Kodama-Takahashi distribution.
Subroutine that calculates fission fragment distribution as described in Kodama & Takahashi, Nuc. Phys. Sec.A, Vol. 239, Issue 3, p. 489-510, 1975.
Edited:
[in,out] | fissrate_inout | Temporary fission rate |
Definition at line 1826 of file fission_rate_module.f90.
subroutine, public fission_rate_module::merge_fission_rates | ( | type(reactionrate_type), dimension(:), intent(inout), allocatable | rrate_array, |
integer, intent(inout) | rrate_length, | ||
integer, intent(out) | fiss_count | ||
) |
Merge fission rates with larger array.
This subroutine will merge the fission rates. Since fission rates are treated separately, there is not really much to do. However, in case of beta-delayed fission, the half lifes of the beta decays have to be modified to include the fission rates.
[in,out] | rrate_array | Large rate array, containing all reactions |
[in,out] | rrate_length | length of rrate_array |
[out] | fiss_count | Amount of fission rates |
Definition at line 387 of file fission_rate_module.f90.
|
private |
Modifies half lifes of beta decays to include fission.
In case the beta delayed fission rates are given as a probability, the beta decays are rescaled to include the fission rates without changing the total half life. The fission rates are given by:
\[ \lambda_{\text{fiss}} =P_{\text{fiss}} * \lambda_{\beta} \]
where \(P_{\text{fiss}}\) is the probability of fission and \(\lambda_{\beta}\) is the beta decay rate as given initially in the Reaclib. The beta decay rate is then modified to
\[ \lambda_{\beta, new} = \left(1-P_{\text{fiss}}\right) * \lambda_{\beta} \]
There are special cases to consider, namely \(P_{\text{fiss}}=1\) in which case the reaclib rate has to be removed completely and
[in,out] | rrate | Large rate array, containing all reactions |
[in,out] | rrate_length | length of rrate_array |
[in,out] | fissrate_in | Fission rate array |
[in,out] | nfiss_in | Amount of fission rates |
Definition at line 444 of file fission_rate_module.f90.
subroutine, public fission_rate_module::output_binary_fission_reaction_data | ( | character(len=*), intent(in) | path | ) |
Save the fission data to a unformatted binary file.
This subroutine saves the fission data to a unformatted binary file.
Definition at line 315 of file fission_rate_module.f90.
|
private |
Read the fission reactions and fragment distributions from a binary file.
This subroutine reads the fission reactions and fragment distributions from a binary, unformatted file. The file is assumed to be created beforehand. It is only read when use_prepared_network is set to true.
[in] | path | Path to folder with binary files |
Definition at line 219 of file fission_rate_module.f90.
subroutine fission_rate_module::read_fiss_fragment_file | ( | character(len=*), intent(in) | file, |
type(fragtype), dimension(:), intent(out), allocatable | fragment_array | ||
) |
[in] | file | File path to fission fragment file |
[out] | fragment_array | Array of fission fragments |
Definition at line 2119 of file fission_rate_module.f90.
|
private |
Read the fission rates, splitted into different types of fission.
This routine serves as interface between the reading routines and the different fission formats and types. In case a new type of fission will be implemented, the reaction rates should be read here. The different formats for the different types of fission reactions are:
Type | Value | Description |
---|---|---|
Spontaneous | 0 | No rates are read |
Spontaneous | 1 | Reaclib format |
Spontaneous | 2 | Half life format |
n-induced | 0 | No rates are read |
n-induced | 1 | Reaclib format |
\(\beta\)-delayed | 0 | No rates are read |
\(\beta\)-delayed | 1 | Reaclib format |
\(\beta\)-delayed | 2 | Half life format |
\(\beta\)-delayed | 3 | Probability format |
Definition at line 1207 of file fission_rate_module.f90.
|
private |
[in] | fission_path | Path to fission rates file |
[in] | reac_type | Reaction type |
[in,out] | start_idx | Start index for fission rates |
Definition at line 1546 of file fission_rate_module.f90.
|
private |
[in] | fission_path | Path to fission rates file |
[in] | reac_type | Reaction type |
[in,out] | start_idx | Start index for fission rates |
Definition at line 1433 of file fission_rate_module.f90.
|
private |
[in] | fission_path | Path to fission rates file |
[in] | reac_type | Reaction type |
[in,out] | start_idx | Start index for fission rates |
Definition at line 1299 of file fission_rate_module.f90.
|
private |
Reorder the fission fragments.
Subroutine to reorder the fragments, having the ones with the largest ch_amount at the beginning. This is benificial as we can ignore some of the entries in the jacobian in case the parent abundance is zero.
Definition at line 147 of file fission_rate_module.f90.
|
private |
Write the amount of individual reactions to the out.
The rates are always counted, for a certain verbose level they are also printed to the OUT file
Definition at line 183 of file fission_rate_module.f90.
|
private |
Amount of columns in the beta-delayed fission file.
Definition at line 42 of file fission_rate_module.f90.
|
private |
Definition at line 41 of file fission_rate_module.f90.
|
private |
Name of the binary file containing the fission rates.
Definition at line 45 of file fission_rate_module.f90.
integer, parameter, public fission_rate_module::fiss_neglect =5 |
Amount of fission fragments not to be neglected.
Definition at line 66 of file fission_rate_module.f90.
|
private |
Array storing fragment distributions of beta-delayed fission from file.
Definition at line 61 of file fission_rate_module.f90.
|
private |
Array storing fragment distributions of neutron-induced fission from file.
Definition at line 59 of file fission_rate_module.f90.
|
private |
Array storing fragment distributions of spontaneous fission from file.
Definition at line 60 of file fission_rate_module.f90.
type(fissionrate_type), dimension(:), allocatable, public fission_rate_module::fissrate |
Array storing fission reactions.
Definition at line 39 of file fission_rate_module.f90.
|
private |
Definition at line 74 of file fission_rate_module.f90.
|
private |
Definition at line 74 of file fission_rate_module.f90.
|
private |
Amount of individual reactions.
Definition at line 74 of file fission_rate_module.f90.
integer, public fission_rate_module::nfiss |
Amount of fission rates.
Definition at line 68 of file fission_rate_module.f90.
|
private |
Amount of beta-delayed fission rates.
Definition at line 71 of file fission_rate_module.f90.
|
private |
Amount of neutron induced fission rates.
Definition at line 70 of file fission_rate_module.f90.
|
private |
Amount of spontaneous fission rates.
Definition at line 69 of file fission_rate_module.f90.
|
private |
total number of fission neutrons
Definition at line 72 of file fission_rate_module.f90.