LCOV - code coverage report
Current view: top level - include/criticality - BoratedWater.h (source / functions) Hit Total Coverage
Test: neams-th-coe/cardinal: ddd5f2 Lines: 3 3 100.0 %
Date: 2026-06-07 19:35:24 Functions: 2 2 100.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /********************************************************************/
       2             : /*                  SOFTWARE COPYRIGHT NOTIFICATION                 */
       3             : /*                             Cardinal                             */
       4             : /*                                                                  */
       5             : /*                  (c) 2021 UChicago Argonne, LLC                  */
       6             : /*                        ALL RIGHTS RESERVED                       */
       7             : /*                                                                  */
       8             : /*                 Prepared by UChicago Argonne, LLC                */
       9             : /*               Under Contract No. DE-AC02-06CH11357               */
      10             : /*                With the U. S. Department of Energy               */
      11             : /*                                                                  */
      12             : /*             Prepared by Battelle Energy Alliance, LLC            */
      13             : /*               Under Contract No. DE-AC07-05ID14517               */
      14             : /*                With the U. S. Department of Energy               */
      15             : /*                                                                  */
      16             : /*                 See LICENSE for full restrictions                */
      17             : /********************************************************************/
      18             : 
      19             : #pragma once
      20             : 
      21             : #include "OpenMCMaterialSearch.h"
      22             : 
      23             : /**
      24             :  * Perform a criticality search based on the boron ppm in water
      25             :  */
      26             : class BoratedWater : public OpenMCMaterialSearch
      27             : {
      28             : public:
      29             :   static InputParameters validParams();
      30             : 
      31             :   BoratedWater(const InputParameters & parameters);
      32             : 
      33             :   virtual void updateOpenMCModel(const Real & input) override;
      34             : 
      35             : protected:
      36          16 :   virtual std::string quantity() const override
      37             :   {
      38          32 :     return "material " + std::to_string(_material_id) + " boron";
      39             :   }
      40             : 
      41          16 :   virtual std::string units() const override { return "[ppm]"; }
      42             : 
      43             :   /// Natural isotopes of hydrogen with their abundances
      44             :   std::vector<std::pair<std::string, Real>> _hydrogen_natural;
      45             : 
      46             :   /// Natural isotopes of boron with their abundances
      47             :   std::vector<std::pair<std::string, Real>> _boron_natural;
      48             : 
      49             :   /// Natural isotopes of oxygen with their abundances
      50             :   std::vector<std::pair<std::string, Real>> _oxygen_natural;
      51             : 
      52             :   /// Molar mass of water
      53             :   Real _M_H2O;
      54             : 
      55             :   /// Molar mass of boron
      56             :   Real _M_B;
      57             : 
      58             : private:
      59             :   /** Adjust the natural abundances used for the criticality search if nuclides
      60             :    *  are missing from the cross section library.
      61             :    *  @param[in] allowable possible natural isotopes that will exist in the borated water
      62             :    */
      63             :   void applyAbsentNuclides(const std::vector<std::string> & allowable);
      64             : };

Generated by: LCOV version 1.14