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 "DiscreteNucleationData.h" 11 : 12 : registerMooseObject("PhaseFieldApp", DiscreteNucleationData); 13 : 14 : InputParameters 15 158 : DiscreteNucleationData::validParams() 16 : { 17 158 : InputParameters params = GeneralPostprocessor::validParams(); 18 158 : params.addClassDescription("Output diagnostic data on a DiscreteNucleationInserter"); 19 316 : params.addRequiredParam<UserObjectName>("inserter", "DiscreteNucleationInserter user object"); 20 316 : MooseEnum valueType("COUNT UPDATE RATE INSERTIONS DELETIONS", "COUNT"); 21 316 : params.addRequiredParam<MooseEnum>("value", 22 : valueType, 23 : "Select to output number of active nuclei, wether a change to " 24 : "the nucleus list occurred, the total rate over the entire " 25 : "domain, and numbers of insertions and deletions applied to " 26 : "the nucleus list."); 27 158 : return params; 28 158 : } 29 : 30 79 : DiscreteNucleationData::DiscreteNucleationData(const InputParameters & parameters) 31 : : GeneralPostprocessor(parameters), 32 79 : _inserter(getUserObject<DiscreteNucleationInserterBase>("inserter")), 33 79 : _nucleus_list(_inserter.getNucleusList()), 34 237 : _value_type(getParam<MooseEnum>("value").getEnum<ValueType>()) 35 : { 36 79 : } 37 : 38 : Real 39 400 : DiscreteNucleationData::getValue() const 40 : { 41 400 : switch (_value_type) 42 : { 43 80 : case ValueType::COUNT: 44 80 : return _nucleus_list.size(); 45 : 46 80 : case ValueType::UPDATE: 47 80 : return _inserter.isMapUpdateRequired(); 48 : 49 80 : case ValueType::RATE: 50 80 : return _inserter.getRate(); 51 : 52 80 : case ValueType::INSERTIONS: 53 80 : return _inserter.getInsertionsAndDeletions().first; 54 : 55 80 : case ValueType::DELETIONS: 56 80 : return _inserter.getInsertionsAndDeletions().second; 57 : 58 0 : default: 59 0 : mooseError("Invalid value type"); 60 : } 61 : }