From e121c11c9dea867cde14012443adf515f545c842 Mon Sep 17 00:00:00 2001 From: Sebastian Schunert Date: Tue, 5 Jun 2018 15:54:36 -0600 Subject: [PATCH] Refactor neutronics pka generators to include averaged number densities as input. Add documentation (#302) --- doc/content/bib/magpie.bib | 8 +++ .../PKAFissionFragmentNeutronics.md | 59 +++++++++++++--- doc/content/index.md | 4 +- doc/hidden.yml | 1 - .../PKAFissionFragmentNeutronics.h | 11 --- .../userobjects/PKAGeneratorNeutronicsBase.h | 14 ++++ include/userobjects/PKAGeneratorRecoil.h | 7 -- .../PKAFissionFragmentNeutronics.C | 38 ++--------- src/userobjects/PKAGeneratorNeutronicsBase.C | 64 ++++++++++++++++++ src/userobjects/PKAGeneratorRecoil.C | 38 ++--------- .../coupled_fission_mockup/damage_sub.i | 2 +- .../coupled_fission_mockup/damage_sub_3D.i | 2 +- .../gold/coupled_fission_mockup.e | Bin 53640 -> 53640 bytes ...fission_mockup_out_radiation_damage_app0.e | Bin 8723544 -> 8723624 bytes 14 files changed, 153 insertions(+), 95 deletions(-) create mode 100644 doc/content/bib/magpie.bib diff --git a/doc/content/bib/magpie.bib b/doc/content/bib/magpie.bib new file mode 100644 index 00000000..ef598ba8 --- /dev/null +++ b/doc/content/bib/magpie.bib @@ -0,0 +1,8 @@ + +@inproceedings{SchunertTREATHeatSource, + author={S. Schunert and others}, + title={{Heat Source Characterization In A TREAT Fuel Particle Using Coupled Neutronics Binary Collision Monte-Carlo Calculations}}, + booktitle={{M\&C 2017 International Conference on Mathematics \& Computational Methods Applied to Nuclear Science \& Engineering}}, + month={April}, + year={2017} +} diff --git a/doc/content/documentation/systems/UserObjects/PKAFissionFragmentNeutronics.md b/doc/content/documentation/systems/UserObjects/PKAFissionFragmentNeutronics.md index 388394a6..2c4e06d0 100644 --- a/doc/content/documentation/systems/UserObjects/PKAFissionFragmentNeutronics.md +++ b/doc/content/documentation/systems/UserObjects/PKAFissionFragmentNeutronics.md @@ -1,14 +1,57 @@ - - # PKAFissionFragmentNeutronics -!alert construction title=Undocumented Class -The PKAFissionFragmentNeutronics has not been documented, if you would like to contribute to MOOSE by -writing documentation, please see [/generate.md]. The content contained on this page explains -the typical documentation associated with a MooseObject; however, what is contained is ultimately -determined by what is necessary to make the documentation clear for users. +`PKAFissionFragmentNeutronics` generates primary knock-on atoms (PKA) originating +from fission reactions. The difference to PKAFissionFragmentEmpirical is that +it uses isotopic fission rates computed by neutronics calculations and ENDF data +for sampling fission product species. + +The partial fission rate for isotope $i$ is denoted by $F_i(\vec{r}, \vec{\rho})$. +It is computed by: + +\begin{equation} +F_i(\vec{r}, \vec{\rho}) = \sum\limits_{g=1}^G N_i(\vec{r},\vec{\rho})\sigma_{f,g,i} \phi_g(\vec{r}), +\end{equation} + +where $\vec{r}$ is the location in the macroscopic, neutronics domain and $\vec{\rho}$ +is the location in the microscopic domain. These two locations are separated because their +scale is significantly separated by 3-4 orders of magnitude. Changes with $\vec{r}$ are +understood to be smooth changes of the average composition of the microscopic domain (orders of centimeters), while changes with $\vec{\rho}$ captures compositional changes between grains on the microscopic domain, i.e. on the orders of micro-meters. The notation of separating the spatial dependence into two scales follows homogenization theory. $N_i$ is the number density of isotope $i$, $\sigma_{f,g,i}$ is the microscopic fission cross section of isotope $i$ in group $g$, and $\phi_g$ is the scalar flux in group $g$. + +Denoting the microscopic domain as $\Theta_m$ located at $\vec{r}_m$, we can define a slowly varying average of the number densities: + +\begin{equation} + N_i(\vec{r}) = \frac{1}{\Theta_m} \int_{\Theta_m} N_i(\vec{r},\vec{\rho}) d\vec{\rho}. +\end{equation} + +$N_i(\vec{r})$ is the number density provided to neutronics calculations. The nuclide fission rates computed by the neutronics calculation is consequently the slowly varying average +given by: + +\begin{equation} +F_i (\vec{r}) = \sum\limits_{g=1}^G N_i(\vec{r})\sigma_{f,g,i}. +\end{equation} + +The `PKAFissionFragmentNeutronics` accepts the values of $F_i (\vec{r}_m)$ as the `partial_reaction_rates` parameter. +The fission rate density in the microscopic domain is computed by: +\begin{equation} + F_i (\vec{r}_m, \vec{\rho}) = \frac{N_i(\vec{r}_m, \vec{\rho})}{N_i(\vec{r}_m)} F_i(\vec{r}_m), +\end{equation} +where $N_i(\vec{r}_m, \vec{\rho}) = \gamma_i(\vec{\rho}) / \Omega(\vec{\rho})$, $\Omega(\vec{\rho})$ is the site volume +that is provided to the `MyTRIMRasterizer` and $\gamma_i$ is the $i$-th variable provided to the `MyTRIMRasterizer's` `var` +parameter. Hence, we have: +\begin{equation} + F_i (\vec{r}_m, \vec{\rho}) = \frac{\gamma_i(\vec{\rho})}{\Omega(\vec{r}) N_i(\vec{r}_m)} F_i(\vec{r}_m), +\end{equation} + +`PKAFissionFragmentNeutronics` accepts the values of $N_i(\vec{r}_m)$ in the `averaged_number_densities` parameter. + +The expected number of fissions in a mesh element with index $j$ and volume $V_j$ is given by: + +\begin{equation} +C_i = \Delta t \int_{V_j} F_i (\vec{r}_m, \vec{\rho}) d\vec{\rho}. +\end{equation} -!syntax description /UserObjects/PKAFissionFragmentNeutronics +Non-integer results are rounded up with a probability of the $C_i - \text{int}(C_i)$; otherwise +rounded down. Two PKAs are created from each fission event. The algorithm for sampling their type, energy, and direction of motion is described in [cite:SchunertTREATHeatSource]. !syntax parameters /UserObjects/PKAFissionFragmentNeutronics diff --git a/doc/content/index.md b/doc/content/index.md index 74bebb96..6cdbb41d 100644 --- a/doc/content/index.md +++ b/doc/content/index.md @@ -7,7 +7,7 @@

Mesoscale-Atomistics Glue Program for Integrated Execution

Welcome to the Magpie project. Magpie is an Idaho National Laboratory tool for coupling -atomistic and Monte Carlo methods to the finite element MOOSE framework. Iy currently couples -the MyTRIM binary collision Montecarlo code and teh Sandia SPPARKS Monte Carlo toolkit. +atomistic and Monte Carlo methods to the finite element MOOSE framework. It currently couples +the MyTRIM binary collision Monte-Carlo code and the Sandia SPPARKS Monte Carlo toolkit. diff --git a/doc/hidden.yml b/doc/hidden.yml index 27082f04..3e91eae6 100644 --- a/doc/hidden.yml +++ b/doc/hidden.yml @@ -21,7 +21,6 @@ - /UserObjects/NeutronicsSpectrumSamplerFission - /UserObjects/PKAConstant - /UserObjects/PKAFissionFragmentEmpirical -- /UserObjects/PKAFissionFragmentNeutronics - /UserObjects/PKAFixedPointGenerator - /UserObjects/PKAFunction - /UserObjects/PKAGeneratorAlphaDecay diff --git a/include/userobjects/PKAFissionFragmentNeutronics.h b/include/userobjects/PKAFissionFragmentNeutronics.h index 6536398a..8d77d9c8 100644 --- a/include/userobjects/PKAFissionFragmentNeutronics.h +++ b/include/userobjects/PKAFissionFragmentNeutronics.h @@ -34,17 +34,6 @@ class PKAFissionFragmentNeutronics : public PKAGeneratorNeutronicsBase * will be sampled to determine the initial state of the ions passed to MyTRIM */ DiscreteFissionPKAPDF _pdf; - - /** - * _partial_fission_rates: the fission rate per nuclide is: - * f_i = N_i * (sum_g sigma_{f,g,i} phi_g), - * where i is the nuclide ID and g is the energy group. - * N_i is provided as variable in the Rasterizer, but the (sum_g sigma_{f,g,i} phi_g) must - * be provided as partial fission rate here - * Note: the fission rate densities are in units of [ fissions / ( mesh-length-unit^3 sec ) ] - */ - std::vector _partial_fission_rates; - std::vector _stored_pps; }; #endif //PKAFISSIONFRAGMENTNEUTRONICS_H diff --git a/include/userobjects/PKAGeneratorNeutronicsBase.h b/include/userobjects/PKAGeneratorNeutronicsBase.h index 418bdbc2..48bb678b 100644 --- a/include/userobjects/PKAGeneratorNeutronicsBase.h +++ b/include/userobjects/PKAGeneratorNeutronicsBase.h @@ -31,6 +31,20 @@ class PKAGeneratorNeutronicsBase : public PKAGeneratorBase /// helper function to set pdf based on neutronics information from Mammoth virtual void setPDF(const std::vector & ZAID, const std::vector & energies, const MultiIndex & probabilities) = 0; + +protected: + /** + * The partial reaction rates are reaction rates of a certain type from the neutronics calculation + * for a single nculide, e.g. fission rate of U-235. NOTE: it multiplies the smoothly varying _average_ + * of the U-235 number density already + * + * In Magpie, the rate of PKA creation is obtained by multiplying with the _local_ number density. To obtain a + * proper PKA creation rate, we need to divide by the smooth average. This is what _averaged_number_densities is for. + */ + std::vector _partial_neutronics_reaction_rates; + std::vector _stored_reaction_rates; + std::vector _averaged_number_densities; + std::vector _stored_densities; }; #endif // PKAGENERATORNEUTRONICSBASE_H diff --git a/include/userobjects/PKAGeneratorRecoil.h b/include/userobjects/PKAGeneratorRecoil.h index 445ab21b..3f3e9e93 100644 --- a/include/userobjects/PKAGeneratorRecoil.h +++ b/include/userobjects/PKAGeneratorRecoil.h @@ -33,13 +33,6 @@ class PKAGeneratorRecoil : public PKAGeneratorNeutronicsBase * are sampled */ DiscretePKAPDF _pdf; - - /** - * The partial reaction rates [# reactions / time / volume] of the particular - * recoil reaction for each nuclide - */ - std::vector _partial_recoil_rates; - std::vector _stored_pps; }; #endif //PKAGeneratorRecoil_H diff --git a/src/userobjects/PKAFissionFragmentNeutronics.C b/src/userobjects/PKAFissionFragmentNeutronics.C index e6814d95..c6a1a69d 100644 --- a/src/userobjects/PKAFissionFragmentNeutronics.C +++ b/src/userobjects/PKAFissionFragmentNeutronics.C @@ -17,8 +17,6 @@ template<> InputParameters validParams() { InputParameters params = validParams(); - params.addParam>("partial_fission_rates", "Partial fission rates per unit volume [sum_g sigma_{f,g,i} * phi_g]. " - "Provide number density as variable in rasterizer!"); params.addClassDescription("PKA generator (fission) user object.\n Takes pdf and samples PKAs due to fission."); return params; } @@ -26,32 +24,6 @@ InputParameters validParams() PKAFissionFragmentNeutronics::PKAFissionFragmentNeutronics(const InputParameters & parameters): PKAGeneratorNeutronicsBase(parameters) { - if (isParamValid("partial_fission_rates")) - { - std::vector names = getParam>("partial_fission_rates"); - _partial_fission_rates.resize(names.size()); - _stored_pps.resize(names.size()); - for (unsigned int j = 0; j < names.size(); ++j) - if (_fe_problem.hasPostprocessor(names[j])) - _partial_fission_rates[j] = &getPostprocessorValueByName(names[j]); - else - { - Real real_value = -std::numeric_limits::max(); - std::istringstream ss(names[j]); - - if (ss >> real_value && ss.eof()) - _stored_pps[j] = real_value; - else - mooseError("Illegal entry in partial_fission_rates: ", names[j]); - - _partial_fission_rates[j] = &_stored_pps[j]; - } - } - else - { - _stored_pps = {1.0e-8}; - _partial_fission_rates = {&_stored_pps[0]}; - } } void @@ -66,12 +38,14 @@ PKAFissionFragmentNeutronics::appendPKAs(std::vector & ion_l mooseAssert(dt >= 0, "Passed a negative time window into PKAFissionFragmentNeutronics::appendPKAs"); mooseAssert(vol >= 0, "Passed a negative volume into PKAFissionFragmentNeutronics::appendPKAs"); - if (averaged_data._elements.size() != _partial_fission_rates.size()) - mooseError("Size of averaged_data and partial_fission_rates must be equal"); + if (averaged_data._elements.size() != _partial_neutronics_reaction_rates.size()) + mooseError("Size of averaged_data and partial_reaction_rates must be equal"); - for (unsigned int nuclide = 0; nuclide < _partial_fission_rates.size(); ++nuclide) + for (unsigned int nuclide = 0; nuclide < _partial_neutronics_reaction_rates.size(); ++nuclide) { - unsigned int num_fission = std::floor(recoil_rate_scaling * dt * vol * (*_partial_fission_rates[nuclide]) * averaged_data._elements[nuclide] + getRandomReal()); + unsigned int num_fission = std::floor(recoil_rate_scaling * dt * vol * + (*_partial_neutronics_reaction_rates[nuclide]) / (*_averaged_number_densities[nuclide] * averaged_data._site_volume) + * averaged_data._elements[nuclide] + getRandomReal()); for (unsigned i = 0; i < num_fission; ++i) { diff --git a/src/userobjects/PKAGeneratorNeutronicsBase.C b/src/userobjects/PKAGeneratorNeutronicsBase.C index 80521f80..8fa54de7 100644 --- a/src/userobjects/PKAGeneratorNeutronicsBase.C +++ b/src/userobjects/PKAGeneratorNeutronicsBase.C @@ -15,6 +15,9 @@ template<> InputParameters validParams() { InputParameters params = validParams(); + params.addParam>("partial_reaction_rates", "Partial neutronic reaction rates per unit volume [sum_g xs_{r,g,i} * phi_g], " + "r: reaction type, g: energy group, i: nuclide id.Provide number density as variable in rasterizer!"); + params.addParam>("averaged_number_densities", "The number density of the species averaged over the domain."); params.addClassDescription("PKA generator (neutronics) user object base class.\n Takes pdf and samples PKAs due to various interactions."); return params; } @@ -22,4 +25,65 @@ InputParameters validParams() PKAGeneratorNeutronicsBase::PKAGeneratorNeutronicsBase(const InputParameters & parameters) : PKAGeneratorBase(parameters) { + if (isParamValid("partial_reaction_rates")) + { + std::vector names = getParam>("partial_reaction_rates"); + _partial_neutronics_reaction_rates.resize(names.size()); + _stored_reaction_rates.resize(names.size()); + for (unsigned int j = 0; j < names.size(); ++j) + if (_fe_problem.hasPostprocessor(names[j])) + _partial_neutronics_reaction_rates[j] = &getPostprocessorValueByName(names[j]); + else + { + Real real_value = -std::numeric_limits::max(); + std::istringstream ss(names[j]); + + if (ss >> real_value && ss.eof()) + _stored_reaction_rates[j] = real_value; + else + mooseError("Illegal entry in _partial_neutronics_reaction_rates: ", names[j]); + + _partial_neutronics_reaction_rates[j] = &_stored_reaction_rates[j]; + } + } + else + { + _stored_reaction_rates = {1.0e-8}; + _partial_neutronics_reaction_rates = {&_stored_reaction_rates[0]}; + } + + if (isParamValid("averaged_number_densities")) + { + std::vector names = getParam>("averaged_number_densities"); + _averaged_number_densities.resize(names.size()); + _stored_densities.resize(names.size()); + for (unsigned int j = 0; j < names.size(); ++j) + if (_fe_problem.hasPostprocessor(names[j])) + _averaged_number_densities[j] = &getPostprocessorValueByName(names[j]); + else + { + Real real_value = -std::numeric_limits::max(); + std::istringstream ss(names[j]); + + if (ss >> real_value && ss.eof()) + _stored_densities[j] = real_value; + else + mooseError("Illegal entry in _partial_neutronics_reaction_rates: ", names[j]); + + _averaged_number_densities[j] = &_stored_reaction_rates[j]; + } + } + else + { + _averaged_number_densities.resize(_stored_reaction_rates.size()); + _stored_densities.resize(_stored_reaction_rates.size()); + for (unsigned int j = 0; j < _stored_densities.size(); ++j) + { + _stored_densities[j] = 1; + _averaged_number_densities[j] = &_stored_densities[j]; + } + } + + if (_averaged_number_densities.size() != _partial_neutronics_reaction_rates.size()) + mooseError("partial_reaction_rates and averaged_number_densities must have the same number of entries."); } diff --git a/src/userobjects/PKAGeneratorRecoil.C b/src/userobjects/PKAGeneratorRecoil.C index fd791c40..9c1a2144 100644 --- a/src/userobjects/PKAGeneratorRecoil.C +++ b/src/userobjects/PKAGeneratorRecoil.C @@ -16,8 +16,6 @@ template<> InputParameters validParams() { InputParameters params = validParams(); - params.addParam>("partial_recoil_rates", "Partial recoil rates per unit volume [recoil reaction rate per nuclide]. " - "Provide number density as variable in rasterizer!"); params.addClassDescription("PKA recoil generator user object.\n Takes pdf and samples PKAs due to recoil reaction."); return params; } @@ -25,32 +23,6 @@ InputParameters validParams() PKAGeneratorRecoil::PKAGeneratorRecoil(const InputParameters & parameters): PKAGeneratorNeutronicsBase(parameters) { - if (isParamValid("partial_recoil_rates")) - { - std::vector names = getParam>("partial_recoil_rates"); - _partial_recoil_rates.resize(names.size()); - _stored_pps.resize(names.size()); - for (unsigned int j = 0; j < names.size(); ++j) - if (_fe_problem.hasPostprocessor(names[j])) - _partial_recoil_rates[j] = &getPostprocessorValueByName(names[j]); - else - { - Real real_value = -std::numeric_limits::max(); - std::istringstream ss(names[j]); - - if (ss >> real_value && ss.eof()) - _stored_pps[j] = real_value; - else - mooseError("Illegal entry in partial_recoil_rates: ", names[j]); - - _partial_recoil_rates[j] = &_stored_pps[j]; - } - } - else - { - _stored_pps = {1.0e-8}; - _partial_recoil_rates = {&_stored_pps[0]}; - } } void @@ -68,12 +40,14 @@ PKAGeneratorRecoil::appendPKAs(std::vector & ion_list, Real mooseAssert(dt >= 0, "Passed a negative time window into PKAGeneratorRecoil::appendPKAs"); mooseAssert(vol >= 0, "Passed a negative volume into PKAGeneratorRecoil::appendPKAs"); - if (averaged_data._elements.size() != _partial_recoil_rates.size()) - mooseError("Size of averaged_data and partial_recoil_rates must be equal"); + if (averaged_data._elements.size() != _partial_neutronics_reaction_rates.size()) + mooseError("Size of averaged_data and partial_reaction_rates must be equal"); - for (unsigned int nuclide = 0; nuclide < _partial_recoil_rates.size(); ++nuclide) + for (unsigned int nuclide = 0; nuclide < _partial_neutronics_reaction_rates.size(); ++nuclide) { - unsigned int num_recoils = std::floor(recoil_rate_scaling * dt * vol * (*_partial_recoil_rates[nuclide]) * averaged_data._elements[nuclide] + getRandomReal()); + unsigned int num_recoils = std::floor(recoil_rate_scaling * dt * vol * + (*_partial_neutronics_reaction_rates[nuclide]) / (*_averaged_number_densities[nuclide]) + * averaged_data._elements[nuclide] + getRandomReal()); for (unsigned i = 0; i < num_recoils; ++i) { diff --git a/tests/radiation_damage/coupled_fission_mockup/damage_sub.i b/tests/radiation_damage/coupled_fission_mockup/damage_sub.i index caa11f37..98da393b 100644 --- a/tests/radiation_damage/coupled_fission_mockup/damage_sub.i +++ b/tests/radiation_damage/coupled_fission_mockup/damage_sub.i @@ -137,7 +137,7 @@ [./neutronics_fission_generator] type = PKAFissionFragmentNeutronics relative_density = 1 - partial_fission_rates = '2.0e-11 0 0' + partial_reaction_rates = '2.0e-11 0 0' [../] [./rasterizer] type = MyTRIMRasterizer diff --git a/tests/radiation_damage/coupled_fission_mockup/damage_sub_3D.i b/tests/radiation_damage/coupled_fission_mockup/damage_sub_3D.i index 86492849..40cc18bc 100644 --- a/tests/radiation_damage/coupled_fission_mockup/damage_sub_3D.i +++ b/tests/radiation_damage/coupled_fission_mockup/damage_sub_3D.i @@ -138,7 +138,7 @@ [./neutronics_fission_generator] type = PKAFissionFragmentNeutronics relative_density = 1 - partial_fission_rates = '1.0e-14 0 0' + partial_reaction_rates = '1.0e-14 0 0' [../] [./rasterizer] type = MyTRIMRasterizer diff --git a/tests/radiation_damage/coupled_fission_mockup/gold/coupled_fission_mockup.e b/tests/radiation_damage/coupled_fission_mockup/gold/coupled_fission_mockup.e index 6188eb9ba8b25aef0720bdd4bc8374ecbbfa4c2e..248f44de218d538c2df6060509fe3fdc764ec0f5 100644 GIT binary patch delta 277 zcmeBJ%-per&-RKcq>Pr=Ag!O+0U)YQt< zVDegJJK>PhRIs?ArGlZEm5HU5vE}A}$_n~i76xFLXlOBcp}EpzuV7VVp++Hv$qCJi KH`|2x)B*slwJ|LK delta 271 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 z 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 EA1$b>*8l(j delta 13331 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