13 #include "MooseMesh.h"
14 #include "MooseVariable.h"
23 params.addClassDescription(
"Random distribution of smooth circles with given minimum spacing");
24 params.addRequiredParam<
unsigned int>(
"numbub",
"The number of bubbles to place");
25 params.addRequiredParam<Real>(
"bubspac",
26 "minimum spacing of bubbles, measured from center to center");
27 params.addParam<
unsigned int>(
"numtries", 1000,
"The number of tries");
28 params.addRequiredParam<Real>(
"radius",
"Mean radius value for the circles");
29 params.addParam<Real>(
"radius_variation",
31 "Plus or minus fraction of random variation in "
32 "the bubble radius for uniform, standard "
33 "deviation for normal");
34 MooseEnum rand_options(
"uniform normal none",
"none");
35 params.addParam<MooseEnum>(
"radius_variation_type",
37 "Type of distribution that random circle radii will follow");
43 _numbub(getParam<unsigned int>(
"numbub")),
44 _bubspac(getParam<Real>(
"bubspac")),
45 _max_num_tries(getParam<unsigned int>(
"numtries")),
46 _radius(getParam<Real>(
"radius")),
47 _radius_variation(getParam<Real>(
"radius_variation")),
48 _radius_variation_type(getParam<MooseEnum>(
"radius_variation_type"))
56 for (
unsigned int i = 0; i < LIBMESH_DIM; ++i)
65 mooseError(
"If radius_variation > 0.0, you must pass in a radius_variation_type in "
66 "MultiSmoothCircleIC");
76 for (
unsigned int i = 0; i <
_numbub; i++)
99 for (
unsigned int i = 0; i <
_numbub; ++i)
102 unsigned int num_tries = 0;
108 ran(0, 0) =
_random.rand(_tid);
109 ran(1, 1) =
_random.rand(_tid);
110 ran(2, 2) =
_random.rand(_tid);
114 for (
unsigned int j = 0; j < i; ++j)
127 mooseError(
"Too many tries in MultiSmoothCircleIC");