11 #include "MooseMesh.h"
20 params.addClassDescription(
"Perturbed square lattice of smooth circles");
21 params.addDeprecatedParam<Real>(
"Rnd_variation",
22 "Variation from central lattice position",
23 "use the new parameter name pos_variation");
24 params.addParam<Real>(
"pos_variation", 0.0,
"Variation from central lattice position");
25 params.addRequiredParam<std::vector<unsigned int>>(
26 "circles_per_side",
"Vector containing the number of bubbles along each side");
27 params.addParam<
unsigned int>(
"rand_seed", 2000,
"random seed");
28 params.addRequiredParam<Real>(
"radius",
"Mean radius value for the circles");
29 params.addParam<Real>(
30 "radius_variation", 0.0,
"Plus or minus fraction of random variation in the bubble radius");
31 MooseEnum rand_options(
"uniform normal none",
"none");
32 params.addParam<MooseEnum>(
"radius_variation_type",
34 "Type of distribution that random circle radii will follow");
35 params.addParam<
bool>(
36 "avoid_bounds",
true,
"Don't place any bubbles on the simulation cell boundaries");
42 _lattice_variation(isParamValid(
"Rnd_variation") ? getParam<Real>(
"Rnd_variation")
43 : getParam<Real>(
"pos_variation")),
44 _circles_per_side(getParam<std::vector<unsigned int>>(
"circles_per_side")),
45 _radius(getParam<Real>(
"radius")),
46 _radius_variation(getParam<Real>(
"radius_variation")),
47 _radius_variation_type(getParam<MooseEnum>(
"radius_variation_type")),
48 _avoid_bounds(getParam<bool>(
"avoid_bounds"))
59 for (
unsigned int i = 0; i < LIBMESH_DIM; ++i)
68 mooseError(
"If domain is > 1D, circles_per_side must have more than one value");
71 mooseError(
"If domain is 3D, circles_per_side must have three values");
92 mooseError(
"If radius_variation > 0.0, you must pass in a radius_variation_type in "
93 "LatticeSmoothCircleIC");
104 for (
unsigned int i = 0; i <
_numbub; i++)
133 unsigned int z_num = 1.0;
141 unsigned int cnt = 0;
144 for (
unsigned int k = 0; k < z_num; ++k)
146 Real xx = x_sep / 2.0 + i * x_sep;
147 Real yy = y_sep / 2.0 + j * y_sep;
148 Real zz = z_sep / 2.0 + k * z_sep;