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 : #ifdef ENABLE_DAGMC 20 : 21 : #include "SkinnedBins.h" 22 : 23 : registerMooseObject("CardinalApp", SkinnedBins); 24 : 25 : InputParameters 26 32 : SkinnedBins::validParams() 27 : { 28 32 : InputParameters params = AuxKernel::validParams(); 29 64 : params.addRequiredParam<UserObjectName>("skinner", "MOAB mesh skinner"); 30 : 31 64 : MooseEnum skin_type("temperature subdomain density all", "all"); 32 64 : params.addParam<MooseEnum>("skin_by", skin_type, "Which skin distribution to display"); 33 32 : params.addClassDescription("Bins created by a skinner"); 34 32 : return params; 35 32 : } 36 : 37 16 : SkinnedBins::SkinnedBins(const InputParameters & parameters) : 38 : AuxKernel(parameters), 39 32 : _skin_by(getParam<MooseEnum>("skin_by")) 40 : { 41 16 : const UserObject & base = getUserObjectBase("skinner"); 42 16 : _skinner = dynamic_cast<const MoabSkinner *>(&base); 43 16 : if (!_skinner) 44 0 : paramError("skinner", "This userobject must be of type MoabSkinner!"); 45 16 : } 46 : 47 : Real 48 48480 : SkinnedBins::computeValue() 49 : { 50 48480 : if (_skin_by == "temperature") 51 12120 : return _skinner->getTemperatureBin(_current_elem); 52 36360 : else if (_skin_by == "subdomain") 53 12120 : return _skinner->getSubdomainBin(_current_elem); 54 24240 : else if (_skin_by == "density") 55 10504 : return _skinner->getDensityBin(_current_elem); 56 13736 : else if (_skin_by == "all") 57 13736 : return _skinner->getBin(_skinner->getTemperatureBin(_current_elem), _skinner->getDensityBin(_current_elem), 58 27472 : _skinner->getSubdomainBin(_current_elem)); 59 : else 60 0 : mooseError("Unhandled skin_type enum in SkinnedBins!"); 61 : } 62 : 63 : #endif