www.mooseframework.org
DiscreteNucleationData.C
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://www.mooseframework.org
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 
13 
14 template <>
15 InputParameters
17 {
18  InputParameters params = validParams<GeneralPostprocessor>();
19  params.addClassDescription("Output diagnostic data on a DiscreteNucleationInserter");
20  params.addRequiredParam<UserObjectName>("inserter", "DiscreteNucleationInserter user object");
21  MooseEnum valueType("COUNT UPDATE RATE INSERTIONS DELETIONS", "COUNT");
22  params.addRequiredParam<MooseEnum>("value",
23  valueType,
24  "Select to output number of active nuclei, wether a change to "
25  "the nucleus list occurred, the total rate over the entire "
26  "domain, and numbers of insertions and deletions applied to "
27  "the nucleus list.");
28  return params;
29 }
30 
31 DiscreteNucleationData::DiscreteNucleationData(const InputParameters & parameters)
32  : GeneralPostprocessor(parameters),
33  _inserter(getUserObject<DiscreteNucleationInserterBase>("inserter")),
34  _nucleus_list(_inserter.getNucleusList()),
35  _value_type(getParam<MooseEnum>("value").getEnum<ValueType>())
36 {
37 }
38 
39 Real
41 {
42  switch (_value_type)
43  {
44  case ValueType::COUNT:
45  return _nucleus_list.size();
46 
47  case ValueType::UPDATE:
49 
50  case ValueType::RATE:
51  return _inserter.getRate();
52 
54  return _inserter.getInsertionsAndDeletions().first;
55 
57  return _inserter.getInsertionsAndDeletions().second;
58 
59  default:
60  mooseError("Invalid value type");
61  }
62 }
registerMooseObject
registerMooseObject("PhaseFieldApp", DiscreteNucleationData)
DiscreteNucleationData::ValueType
ValueType
Type of value to report back.
Definition: DiscreteNucleationData.h:41
DiscreteNucleationData::ValueType::INSERTIONS
validParams< DiscreteNucleationData >
InputParameters validParams< DiscreteNucleationData >()
Definition: DiscreteNucleationData.C:16
DiscreteNucleationInserterBase
This UserObject manages the insertion and expiration of nuclei in the simulation domain it manages a ...
Definition: DiscreteNucleationInserterBase.h:25
DiscreteNucleationData::getValue
Real getValue() override
Definition: DiscreteNucleationData.C:40
DiscreteNucleationData.h
DiscreteNucleationData::_value_type
enum DiscreteNucleationData::ValueType _value_type
DiscreteNucleationInserterBase::isMapUpdateRequired
virtual bool isMapUpdateRequired() const
Definition: DiscreteNucleationInserterBase.h:39
DiscreteNucleationData::ValueType::DELETIONS
DiscreteNucleationData::ValueType::RATE
DiscreteNucleationData
Output diagnostic data on a DiscreteNucleationInserter.
Definition: DiscreteNucleationData.h:23
DiscreteNucleationData::ValueType::UPDATE
DiscreteNucleationData::_inserter
const DiscreteNucleationInserterBase & _inserter
UserObject that manages nucleus insertin and deletion.
Definition: DiscreteNucleationData.h:35
DiscreteNucleationData::_nucleus_list
const DiscreteNucleationInserterBase::NucleusList & _nucleus_list
list of nuclei maintained bu the inserter object
Definition: DiscreteNucleationData.h:38
DiscreteNucleationData::ValueType::COUNT
DiscreteNucleationInserterBase::getInsertionsAndDeletions
virtual const NucleusChanges & getInsertionsAndDeletions() const
Definition: DiscreteNucleationInserterBase.h:41
DiscreteNucleationInserterBase::getRate
virtual const Real & getRate() const =0
DiscreteNucleationData::DiscreteNucleationData
DiscreteNucleationData(const InputParameters &parameters)
Definition: DiscreteNucleationData.C:31