www.mooseframework.org
PolycrystalColoringIC.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 "PolycrystalColoringIC.h"
11 #include "IndirectSort.h"
12 #include "MooseMesh.h"
13 #include "MooseRandom.h"
14 #include "NonlinearSystemBase.h"
15 #include "GrainTrackerInterface.h"
17 
19 
20 template <>
21 InputParameters
23 {
24  InputParameters params = validParams<InitialCondition>();
25  params.addClassDescription(
26  "Random Voronoi tesselation polycrystal (used by PolycrystalVoronoiICAction)");
27  params.addRequiredParam<UserObjectName>("polycrystal_ic_uo",
28  "User object generating a point to grain number mapping");
29  params.addRequiredParam<unsigned int>("op_index", "The index for the current order parameter");
30 
31  return params;
32 }
33 
34 PolycrystalColoringIC::PolycrystalColoringIC(const InputParameters & parameters)
35  : InitialCondition(parameters),
36  _op_index(getParam<unsigned int>("op_index")),
37  _poly_ic_uo(getUserObject<PolycrystalUserObjectBase>("polycrystal_ic_uo"))
38 {
39 }
40 
41 Real
43 {
44  if (_current_node)
45  return _poly_ic_uo.getNodalVariableValue(_op_index, *_current_node);
46  else
48 }
validParams< PolycrystalColoringIC >
InputParameters validParams< PolycrystalColoringIC >()
Definition: PolycrystalColoringIC.C:22
PolycrystalColoringIC::value
virtual Real value(const Point &p) override
Definition: PolycrystalColoringIC.C:42
PolycrystalUserObjectBase
This object provides the base capability for creating proper polycrystal ICs.
Definition: PolycrystalUserObjectBase.h:27
PolycrystalColoringIC::_poly_ic_uo
const PolycrystalUserObjectBase & _poly_ic_uo
Definition: PolycrystalColoringIC.h:40
PolycrystalUserObjectBase.h
registerMooseObject
registerMooseObject("PhaseFieldApp", PolycrystalColoringIC)
PolycrystalColoringIC::PolycrystalColoringIC
PolycrystalColoringIC(const InputParameters &parameters)
Definition: PolycrystalColoringIC.C:34
PolycrystalColoringIC
PolycrystalColoringIC creates a polycrystal initial condition.
Definition: PolycrystalColoringIC.h:30
GrainTrackerInterface.h
PolycrystalUserObjectBase::getVariableValue
virtual Real getVariableValue(unsigned int op_index, const Point &p) const =0
Returns the variable value for a given op_index and mesh point.
PolycrystalColoringIC.h
PolycrystalUserObjectBase::getNodalVariableValue
virtual Real getNodalVariableValue(unsigned int op_index, const Node &n) const
Similarly to the getVariableValue method, this method also returns values but may be optimized for re...
Definition: PolycrystalUserObjectBase.h:75
PolycrystalColoringIC::_op_index
unsigned int _op_index
Definition: PolycrystalColoringIC.h:38