Line data Source code
1 : //* This file is part of the MOOSE framework 2 : //* https://mooseframework.inl.gov 3 : //* 4 : //* All rights reserved, see COPYRIGHT for full restrictions 5 : //* https://github.com/idaholab/moose/blob/master/COPYRIGHT 6 : //* 7 : //* Licensed under LGPL 2.1, please see LICENSE for details 8 : //* https://www.gnu.org/licenses/lgpl-2.1.html 9 : 10 : #include "SideDiffusiveFluxAverage.h" 11 : 12 : registerMooseObject("MooseApp", SideDiffusiveFluxAverage); 13 : registerMooseObject("MooseApp", ADSideDiffusiveFluxAverage); 14 : registerMooseObjectRenamed("MooseApp", 15 : SideFluxAverage, 16 : "06/30/2021 24:00", 17 : SideDiffusiveFluxAverage); 18 : registerMooseObjectRenamed("MooseApp", 19 : ADSideFluxAverage, 20 : "06/30/2021 24:00", 21 : ADSideDiffusiveFluxAverage); 22 : 23 : template <bool is_ad> 24 : InputParameters 25 57183 : SideDiffusiveFluxAverageTempl<is_ad>::validParams() 26 : { 27 57183 : InputParameters params = SideDiffusiveFluxIntegralTempl<is_ad, Real>::validParams(); 28 57183 : return params; 29 : } 30 : 31 : template <bool is_ad> 32 63 : SideDiffusiveFluxAverageTempl<is_ad>::SideDiffusiveFluxAverageTempl( 33 : const InputParameters & parameters) 34 63 : : SideDiffusiveFluxIntegralTempl<is_ad, Real>(parameters), _volume(0) 35 : { 36 63 : } 37 : 38 : template <bool is_ad> 39 : void 40 58 : SideDiffusiveFluxAverageTempl<is_ad>::initialize() 41 : { 42 58 : SideDiffusiveFluxIntegralTempl<is_ad, Real>::initialize(); 43 58 : _volume = 0; 44 58 : } 45 : 46 : template <bool is_ad> 47 : void 48 400 : SideDiffusiveFluxAverageTempl<is_ad>::execute() 49 : { 50 400 : SideDiffusiveFluxIntegralTempl<is_ad, Real>::execute(); 51 400 : _volume += this->_current_side_volume; 52 400 : } 53 : 54 : template <bool is_ad> 55 : Real 56 55 : SideDiffusiveFluxAverageTempl<is_ad>::getValue() const 57 : { 58 55 : return _integral_value / _volume; 59 : } 60 : 61 : template <bool is_ad> 62 : void 63 55 : SideDiffusiveFluxAverageTempl<is_ad>::finalize() 64 : { 65 55 : SideDiffusiveFluxIntegralTempl<is_ad, Real>::gatherSum(_integral_value); 66 55 : SideDiffusiveFluxIntegralTempl<is_ad, Real>::gatherSum(_volume); 67 55 : } 68 : 69 : template <bool is_ad> 70 : void 71 3 : SideDiffusiveFluxAverageTempl<is_ad>::threadJoin(const UserObject & y) 72 : { 73 3 : SideDiffusiveFluxIntegralTempl<is_ad, Real>::threadJoin(y); 74 3 : const auto & pps = static_cast<const SideDiffusiveFluxAverageTempl<is_ad> &>(y); 75 3 : _volume += pps._volume; 76 3 : } 77 : 78 : template class SideDiffusiveFluxAverageTempl<false>; 79 : template class SideDiffusiveFluxAverageTempl<true>;