From 587ae1efb76d2ded544731529b6d6b35470a2180 Mon Sep 17 00:00:00 2001 From: Gavin Ridley Date: Tue, 8 Aug 2017 14:37:46 -0500 Subject: [PATCH 1/3] bunch of new documentation --- include/actions/NtAction.h | 16 ++++++++++++++++ include/actions/PrecursorAction.h | 13 +++++++++++++ include/auxkernels/FissionHeatSourceAux.h | 9 +++++++++ .../auxkernels/FissionHeatSourceTransientAux.h | 7 +++++++ include/auxkernels/MatDiffusionAux.h | 8 ++++++++ .../auxkernels/ModeratorHeatSourceTransientAux.h | 9 +++++++++ include/dirackernels/DiracHX.h | 10 ++++++++++ include/kernels/CoupledFissionEigenKernel.h | 6 ++++++ include/kernels/CoupledFissionKernel.h | 4 ++++ include/kernels/INSBoussinesqBodyForce.h | 5 +++++ 10 files changed, 87 insertions(+) diff --git a/include/actions/NtAction.h b/include/actions/NtAction.h index 81287315f3..69ea7cb11e 100644 --- a/include/actions/NtAction.h +++ b/include/actions/NtAction.h @@ -3,6 +3,22 @@ #include "AddVariableAction.h" +/** + * Add neutronics kernels and variables to MSR simulations automatically. + * When writing the multigroup diffusion equation: + * \f[ + * \frac{1}{v_g}\frac{\partial {\phi}_g}{\partial t} = \nabla \cdot D_g + \nabla {\phi}_g + + \sum_{g \ne g'}^G + {\Sigma_{g'\rightarrow g}^s} {\phi}_{g'} + \chi_g^p \sum_{g' = 1}^G (1 - + \beta) \nu {\Sigma_{g'}^f} {\phi}_{g'} + \chi_g^d \sum_i^I + \lambda_i {C_i} - {\Sigma_g^r} {\phi_g} + * \f] + * it's clearly the case that many terms are involved. Moltres, and MOOSE in general represent + * each term as a "kernel". This action adds all of the required kernels for this problem to the + * simulation. In addition, when using many flux variables, it adds the required variables to the + * problem as well. + */ class NtAction : public AddVariableAction { public: diff --git a/include/actions/PrecursorAction.h b/include/actions/PrecursorAction.h index fa0f5e68e1..86c24b861c 100644 --- a/include/actions/PrecursorAction.h +++ b/include/actions/PrecursorAction.h @@ -3,6 +3,19 @@ #include "AddVariableAction.h" +/** + * This Action adds all required delayed neutron precursor variables and + * kernels to the problem. Since the delayed neutron precursors transport + * problem is pure advection, the problem is solved using discontinous Galerkin + * as documented in: + * + * Discontinuous Galerkin Methods for Solving Elliptic and Parabolic + * Equations: Theory and Implementation + * + * Note that the flow velocity must be constant when using the DGAdvection + * or DGTemperatureAdvection. In order to vary to flow through a user-defined + * function, use DGFunctionAdvection or DGFunctionTemperatureAdvection. + */ class PrecursorAction : public AddVariableAction { public: diff --git a/include/auxkernels/FissionHeatSourceAux.h b/include/auxkernels/FissionHeatSourceAux.h index 1118a09811..644df75ffb 100644 --- a/include/auxkernels/FissionHeatSourceAux.h +++ b/include/auxkernels/FissionHeatSourceAux.h @@ -9,6 +9,15 @@ class FissionHeatSourceAux; template <> InputParameters validParams(); +/** + * computes the heating term due to fissions. + * \f[ + * \dot{Q} = \sum_g \phi_g \Sigma_{g,f} \q_{fiss} + * \f] + * Where \f$ q_{fiss} \f$ is the average heat produced per fission. + * Note that in particular, this kernel is not meant for transients and instead is for + * specifying the power through the "power" parameter. + */ class FissionHeatSourceAux : public AuxKernel { public: diff --git a/include/auxkernels/FissionHeatSourceTransientAux.h b/include/auxkernels/FissionHeatSourceTransientAux.h index 2bc6305977..bfe8243430 100644 --- a/include/auxkernels/FissionHeatSourceTransientAux.h +++ b/include/auxkernels/FissionHeatSourceTransientAux.h @@ -6,6 +6,13 @@ // Forward Declarations class FissionHeatSourceTransientAux; +/** + * Computes heat source due to fission during a transient. + * This is the same as FissionHeatSourceAux, but with the exception + * that the power is not normalized to some user-defined value. The reactor + * will produce heat freely. You'll probably see thermal feedback since MSRs are + * nice like that. + */ template <> InputParameters validParams(); diff --git a/include/auxkernels/MatDiffusionAux.h b/include/auxkernels/MatDiffusionAux.h index d17116526a..c1f283fb9c 100644 --- a/include/auxkernels/MatDiffusionAux.h +++ b/include/auxkernels/MatDiffusionAux.h @@ -10,6 +10,14 @@ class MatDiffusionAux; template <> InputParameters validParams(); +/** + * Computes the Euclidean norm of the flux of some diffusing variable at + * any point in space. In other words, this computes: + * \f[ + * | D \nabla f | + * \f] + * Where D is the diffusion coefficient and f is some scalar variable in the simulation. + */ class MatDiffusionAux : public AuxKernel { public: diff --git a/include/auxkernels/ModeratorHeatSourceTransientAux.h b/include/auxkernels/ModeratorHeatSourceTransientAux.h index a7912de4fa..a0f2660c16 100644 --- a/include/auxkernels/ModeratorHeatSourceTransientAux.h +++ b/include/auxkernels/ModeratorHeatSourceTransientAux.h @@ -9,6 +9,15 @@ class ModeratorHeatSourceTransientAux; template <> InputParameters validParams(); +/** + * When a reactor runs, gamma rays are emitted in extraordinary quantity. + * These gammas tend to heat the graphite in thermal MSRs, as experienced at the MSRE, + * and make the graphite's steady temperature quite a bit hotter than then the salt. + * ORNL found that gamma heating in graphite is nearly uniform over the core since gammas have + * a long mean free path. In addition, the gamma heating is proportional to the average fission + * heat. This kernel computes local gamma heating as a function of average fission heat and a + * user-defined proportionality factor (usually between 2 and 10 percent). + */ class ModeratorHeatSourceTransientAux : public AuxKernel { public: diff --git a/include/dirackernels/DiracHX.h b/include/dirackernels/DiracHX.h index 15399a912b..04c93f26d3 100644 --- a/include/dirackernels/DiracHX.h +++ b/include/dirackernels/DiracHX.h @@ -10,6 +10,16 @@ class DiracHX; template <> InputParameters validParams(); +/** + * Provides a Dirac kernel for heating or cooling. At first, + * this was used to model a heat exchanger in the reactor primary + * loop. It was found that this didn't exactly provide the expected + * amount of cooling, so InterfaceHX or InterfaceEffectivenessHX should + * be used instead. + * + * This could still be a useful kernel for easily providing some point heat/ + * cooling sources. + */ class DiracHX : public DiracKernel { public: diff --git a/include/kernels/CoupledFissionEigenKernel.h b/include/kernels/CoupledFissionEigenKernel.h index 8488b95d9b..d51e610703 100644 --- a/include/kernels/CoupledFissionEigenKernel.h +++ b/include/kernels/CoupledFissionEigenKernel.h @@ -10,6 +10,12 @@ class CoupledFissionEigenKernel; template <> InputParameters validParams(); +/** + * Computes the fission source normalized by eigenvalue. In other words: + * \f[ + * \frac{1}{k} \sum_g \nu \Sigma_{g,f} \phi_g + * \f] + */ class CoupledFissionEigenKernel : public EigenKernel, public ScalarTransportBase { public: diff --git a/include/kernels/CoupledFissionKernel.h b/include/kernels/CoupledFissionKernel.h index e174c63cb5..c872563179 100644 --- a/include/kernels/CoupledFissionKernel.h +++ b/include/kernels/CoupledFissionKernel.h @@ -10,6 +10,10 @@ class CoupledFissionKernel; template <> InputParameters validParams(); +/** + * Computes fission source of neutrons without normalizing by + * \f$ 1/k \f$. + */ class CoupledFissionKernel : public Kernel, public ScalarTransportBase { public: diff --git a/include/kernels/INSBoussinesqBodyForce.h b/include/kernels/INSBoussinesqBodyForce.h index d597a12365..d982bab72f 100644 --- a/include/kernels/INSBoussinesqBodyForce.h +++ b/include/kernels/INSBoussinesqBodyForce.h @@ -9,6 +9,11 @@ class INSBoussinesqBodyForce; template <> InputParameters validParams(); +/** + * Computes a body force that approximates natural buoyancy in + * problems where there aren't very large variations in density. + * See wikipedia . + */ class INSBoussinesqBodyForce : public Kernel { public: From d1ca1093889d0024c714c976abaf1dd97aad7d1f Mon Sep 17 00:00:00 2001 From: Gavin Ridley Date: Tue, 8 Aug 2017 14:40:30 -0500 Subject: [PATCH 2/3] moved docstring to above class declaration --- include/auxkernels/FissionHeatSourceTransientAux.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/include/auxkernels/FissionHeatSourceTransientAux.h b/include/auxkernels/FissionHeatSourceTransientAux.h index bfe8243430..8a92d25859 100644 --- a/include/auxkernels/FissionHeatSourceTransientAux.h +++ b/include/auxkernels/FissionHeatSourceTransientAux.h @@ -6,6 +6,9 @@ // Forward Declarations class FissionHeatSourceTransientAux; +template <> +InputParameters validParams(); + /** * Computes heat source due to fission during a transient. * This is the same as FissionHeatSourceAux, but with the exception @@ -13,9 +16,6 @@ class FissionHeatSourceTransientAux; * will produce heat freely. You'll probably see thermal feedback since MSRs are * nice like that. */ -template <> -InputParameters validParams(); - class FissionHeatSourceTransientAux : public AuxKernel { public: From 68dced61782d820d4f1b7004dfacdb7dd811e533 Mon Sep 17 00:00:00 2001 From: Gavin Ridley Date: Tue, 8 Aug 2017 16:46:20 -0400 Subject: [PATCH 3/3] made PR recommended changes --- include/auxkernels/ModeratorHeatSourceTransientAux.h | 3 +++ include/kernels/CoupledFissionKernel.h | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/include/auxkernels/ModeratorHeatSourceTransientAux.h b/include/auxkernels/ModeratorHeatSourceTransientAux.h index a0f2660c16..521f084752 100644 --- a/include/auxkernels/ModeratorHeatSourceTransientAux.h +++ b/include/auxkernels/ModeratorHeatSourceTransientAux.h @@ -17,6 +17,9 @@ InputParameters validParams(); * a long mean free path. In addition, the gamma heating is proportional to the average fission * heat. This kernel computes local gamma heating as a function of average fission heat and a * user-defined proportionality factor (usually between 2 and 10 percent). + * + * Gamma can define a form factor for the gamma heating. That is, gamma heating can be set to be + * cosinusoidal or Bessel. */ class ModeratorHeatSourceTransientAux : public AuxKernel { diff --git a/include/kernels/CoupledFissionKernel.h b/include/kernels/CoupledFissionKernel.h index c872563179..48453640aa 100644 --- a/include/kernels/CoupledFissionKernel.h +++ b/include/kernels/CoupledFissionKernel.h @@ -12,7 +12,7 @@ InputParameters validParams(); /** * Computes fission source of neutrons without normalizing by - * \f$ 1/k \f$. + * \f$ 1/k \f$. Note that this kernel is meant for transients. */ class CoupledFissionKernel : public Kernel, public ScalarTransportBase {