www.mooseframework.org
PolycrystalVoronoiVoidICAction.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 
12 #include "Factory.h"
13 #include "FEProblem.h"
14 #include "Conversion.h"
15 
16 registerMooseAction("PhaseFieldApp", PolycrystalVoronoiVoidICAction, "add_ic");
17 
18 template <>
19 InputParameters
21 {
22  InputParameters params = validParams<Action>();
24  params.addRequiredParam<std::string>("var_name_base", "specifies the base name of the variables");
25  params.suppressParameter<VariableName>("variable");
26  params.addRequiredParam<UserObjectName>(
27  "polycrystal_ic_uo", "UserObject for obtaining the polycrystal grain structure.");
28  params.addParam<FileName>(
29  "file_name",
30  "",
31  "File containing grain centroids, if file_name is provided, the centroids "
32  "from the file will be used.");
33  return params;
34 }
35 
37  : Action(params),
38  _op_num(getParam<unsigned int>("op_num")),
39  _var_name_base(getParam<std::string>("var_name_base")),
40  _file_name(getParam<FileName>("file_name"))
41 {
42 }
43 
44 void
46 {
47  // Loop through the number of order parameters
48  for (unsigned int op = 0; op < _op_num; op++)
49  {
50  // Set parameters for BoundingBoxIC
51  InputParameters poly_params = _factory.getValidParams("PolycrystalVoronoiVoidIC");
52  poly_params.applyParameters(parameters());
53  poly_params.set<unsigned int>("op_index") = op;
54  poly_params.set<VariableName>("variable") = _var_name_base + Moose::stringify(op);
55  poly_params.set<MooseEnum>("structure_type") = "grains";
56  poly_params.set<UserObjectName>("polycrystal_ic_uo") =
57  getParam<UserObjectName>("polycrystal_ic_uo");
58 
59  // Add initial condition
60  _problem->addInitialCondition(
61  "PolycrystalVoronoiVoidIC", name() + "_" + Moose::stringify(op), poly_params);
62  }
63 }
PolycrystalVoronoiVoidICAction::_var_name_base
const std::string _var_name_base
Definition: PolycrystalVoronoiVoidICAction.h:28
PolycrystalVoronoiVoidICAction::act
virtual void act()
Definition: PolycrystalVoronoiVoidICAction.C:45
PolycrystalVoronoiVoidIC::actionParameters
static InputParameters actionParameters()
Definition: PolycrystalVoronoiVoidIC.C:20
PolycrystalVoronoiVoidICAction
Sets up a polycrystal initial condition with voids on grain boundaries for all order parameters.
Definition: PolycrystalVoronoiVoidICAction.h:19
registerMooseAction
registerMooseAction("PhaseFieldApp", PolycrystalVoronoiVoidICAction, "add_ic")
PolycrystalVoronoiVoidICAction.h
PolycrystalVoronoiVoidICAction::PolycrystalVoronoiVoidICAction
PolycrystalVoronoiVoidICAction(const InputParameters &params)
Definition: PolycrystalVoronoiVoidICAction.C:36
PolycrystalVoronoiVoidIC.h
name
const std::string name
Definition: Setup.h:21
PolycrystalVoronoiVoidICAction::_op_num
const unsigned int _op_num
Definition: PolycrystalVoronoiVoidICAction.h:27
validParams< PolycrystalVoronoiVoidICAction >
InputParameters validParams< PolycrystalVoronoiVoidICAction >()
Definition: PolycrystalVoronoiVoidICAction.C:20