www.mooseframework.org
PolycrystalColoringICAction.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 
11 #include "Factory.h"
12 #include "FEProblem.h"
13 #include "Conversion.h"
14 #include "PolycrystalICTools.h"
15 
16 registerMooseAction("PhaseFieldApp", PolycrystalColoringICAction, "add_ic");
17 
18 template <>
19 InputParameters
21 {
22  InputParameters params = validParams<Action>();
23  params.addClassDescription("Random Voronoi tessellation polycrystal action");
24  params.addRequiredParam<unsigned int>("op_num", "number of order parameters to create");
25  params.addRequiredParam<std::string>("var_name_base", "specifies the base name of the variables");
26  params.addRequiredParam<UserObjectName>("polycrystal_ic_uo", "Optional: TODO");
27 
28  return params;
29 }
30 
32  : Action(params),
33  _op_num(getParam<unsigned int>("op_num")),
34  _var_name_base(getParam<std::string>("var_name_base"))
35 {
36 }
37 
38 void
40 {
41  // Loop through the number of order parameters
42  for (unsigned int op = 0; op < _op_num; op++)
43  {
44  // Set parameters for BoundingBoxIC
45  InputParameters poly_params = _factory.getValidParams("PolycrystalColoringIC");
46  poly_params.set<VariableName>("variable") = _var_name_base + Moose::stringify(op);
47  poly_params.set<unsigned int>("op_index") = op;
48  poly_params.set<UserObjectName>("polycrystal_ic_uo") =
49  getParam<UserObjectName>("polycrystal_ic_uo");
50 
51  // Add initial condition
52  _problem->addInitialCondition(
53  "PolycrystalColoringIC", "PolycrystalColoringIC_" + Moose::stringify(op), poly_params);
54  }
55 }
PolycrystalColoringICAction::_var_name_base
const std::string _var_name_base
Definition: PolycrystalColoringICAction.h:27
registerMooseAction
registerMooseAction("PhaseFieldApp", PolycrystalColoringICAction, "add_ic")
PolycrystalColoringICAction::PolycrystalColoringICAction
PolycrystalColoringICAction(const InputParameters &params)
Definition: PolycrystalColoringICAction.C:31
PolycrystalColoringICAction
Random Voronoi tesselation polycrystal action.
Definition: PolycrystalColoringICAction.h:18
PolycrystalColoringICAction::_op_num
const unsigned int _op_num
Definition: PolycrystalColoringICAction.h:26
validParams< PolycrystalColoringICAction >
InputParameters validParams< PolycrystalColoringICAction >()
Definition: PolycrystalColoringICAction.C:20
PolycrystalColoringICAction.h
PolycrystalColoringICAction::act
virtual void act() override
Definition: PolycrystalColoringICAction.C:39
PolycrystalICTools.h