Loading [MathJax]/extensions/tex2jax.js
Cardinal
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros
OpenMCVolumeCalculation.h
Go to the documentation of this file.
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 "GeneralUserObject.h"
22
23#include "OpenMCBase.h"
24#include "openmc/volume_calc.h"
25
30class OpenMCVolumeCalculation : public GeneralUserObject, public OpenMCBase
31{
32public:
33 static InputParameters validParams();
34
35 OpenMCVolumeCalculation(const InputParameters & parameters);
36
37 virtual void initialize() {}
38 virtual void finalize() {}
39 virtual void execute() {}
40
43
45 virtual void computeVolumes();
46
48 virtual void resetVolumeCalculation();
49
55 openmc::Position position(const Point & pt) const;
56
63 void cellVolume(const unsigned int & index, Real & vol, Real & std_dev) const;
64
65protected:
67 const unsigned int & _n_samples;
68
70 const MooseEnum _trigger;
71
74
77
80
83
85 std::unique_ptr<openmc::VolumeCalculation> _volume_calc;
86
88 std::vector<openmc::VolumeCalculation::Result> _results;
89
91 std::map<int, int> _index_to_calc_index;
92
94 unsigned int _calc_index;
95};
Definition OpenMCBase.h:31
Definition OpenMCVolumeCalculation.h:31
virtual void execute()
Definition OpenMCVolumeCalculation.h:39
virtual void finalize()
Definition OpenMCVolumeCalculation.h:38
Point _upper_right
Upper right of the box within which to compute OpenMC volumes.
Definition OpenMCVolumeCalculation.h:82
virtual void initialize()
Definition OpenMCVolumeCalculation.h:37
const MooseEnum _trigger
Trigger for deciding when to terminate the stochastic volume calculation.
Definition OpenMCVolumeCalculation.h:70
void cellVolume(const unsigned int &index, Real &vol, Real &std_dev) const
virtual void resetVolumeCalculation()
Erase previously-added volume calculation.
static InputParameters validParams()
virtual void computeVolumes()
Compute the cell volumes.
Real _trigger_threshold
Threshold for terminating the trigger.
Definition OpenMCVolumeCalculation.h:73
unsigned int _calc_index
Index of volume calculation we add in OpenMC.
Definition OpenMCVolumeCalculation.h:94
virtual void initializeVolumeCalculation()
Initialize the volume calculation (not in initialize() because we want to control this from the Probl...
Point _lower_left
Lower left of the box within which to compute OpenMC volumes.
Definition OpenMCVolumeCalculation.h:79
openmc::Position position(const Point &pt) const
const unsigned int & _n_samples
Number of stochastic samples for calculation.
Definition OpenMCVolumeCalculation.h:67
std::vector< openmc::VolumeCalculation::Result > _results
Results of the volume calculation.
Definition OpenMCVolumeCalculation.h:88
std::unique_ptr< openmc::VolumeCalculation > _volume_calc
Volume calculation object.
Definition OpenMCVolumeCalculation.h:85
Real _scaling
Length multiplier applied to [Mesh] to get into OpenMC centimeters.
Definition OpenMCVolumeCalculation.h:76
std::map< int, int > _index_to_calc_index
Map from cell index to its volume calculation result.
Definition OpenMCVolumeCalculation.h:91
OpenMCVolumeCalculation(const InputParameters &parameters)