11 #include "MooseRandom.h"
12 #include "MooseMesh.h"
20 InputParameters params = validParams<InitialCondition>();
21 params.addClassDescription(
"Tricrystal with two circles/bubbles");
22 params.addRequiredParam<
unsigned int>(
"op_num",
"Number of grain order parameters");
23 params.addRequiredParam<
unsigned int>(
"op_index",
"Index for the current grain order parameter");
28 : InitialCondition(parameters),
29 _mesh(_fe_problem.mesh()),
30 _op_num(getParam<unsigned int>(
"op_num")),
31 _op_index(getParam<unsigned int>(
"op_index"))
34 paramError(
"op_num",
"Tricrystal ICs must have op_num = 3");
37 for (
unsigned int i = 0; i < LIBMESH_DIM; i++)
48 Point grain_center_left;
53 Point grain_center_right;
58 Real radius =
_range(0) / 5.0;
59 Real dist_left = (p - grain_center_left).norm();
60 Real dist_right = (p - grain_center_right).norm();
62 if ((dist_left <= radius &&
_op_index == 1) || (dist_right <= radius &&
_op_index == 2) ||
63 (dist_left > radius && dist_right > radius &&
_op_index == 0))