22 params.
addClassDescription(
"Random distribution of smooth circles with given minimum spacing");
23 params.
addRequiredParam<
unsigned int>(
"numbub",
"The number of bubbles to place");
25 "minimum spacing of bubbles, measured from center to center");
26 params.
addParam<
unsigned int>(
"numtries", 1000,
"The number of tries");
27 params.
addRequiredParam<Real>(
"radius",
"Mean radius value for the circles");
28 params.
addParam<Real>(
"radius_variation",
30 "Plus or minus fraction of random variation in "
31 "the bubble radius for uniform, standard "
32 "deviation for normal");
33 MooseEnum rand_options(
"uniform normal none",
"none");
36 "Type of distribution that random circle radii will follow");
42 _numbub(getParam<unsigned
int>(
"numbub")),
43 _bubspac(getParam<Real>(
"bubspac")),
44 _max_num_tries(getParam<unsigned
int>(
"numtries")),
45 _radius(getParam<Real>(
"radius")),
46 _radius_variation(getParam<Real>(
"radius_variation")),
47 _radius_variation_type(getParam<
MooseEnum>(
"radius_variation_type"))
64 mooseError(
"If radius_variation > 0.0, you must pass in a radius_variation_type in "
65 "MultiSmoothCircleIC");
75 for (
unsigned int i = 0; i <
_numbub; i++)
98 for (
unsigned int i = 0; i <
_numbub; ++i)
101 unsigned int num_tries = 0;
113 for (
unsigned int j = 0; j < i; ++j)
126 mooseError(
"Too many tries in MultiSmoothCircleIC");
registerMooseObject("PhaseFieldApp", MultiSmoothCircleIC)
void ErrorVector unsigned int
MooseVariableField< T > & _var
void mooseError(Args &&... args) const
Real minPeriodicDistance(const unsigned int sys_num, const unsigned int var_num, const Point &p, const Point &q) const
virtual Real getMaxInDimension(unsigned int component) const
virtual Real getMinInDimension(unsigned int component) const
Real randNormal(std::size_t i, Real mean, Real sigma)
MultismoothCircleIC creates multiple SmoothCircles (number = numbub) that are randomly positioned aro...
const unsigned int _numbub
virtual void initialSetup() override
const unsigned int _max_num_tries
const Real _radius_variation
virtual void computeCircleCenters() override
MultiSmoothCircleIC(const InputParameters ¶meters)
static InputParameters validParams()
virtual void computeCircleRadii() override
const MooseEnum _radius_variation_type
SmoothcircleBaseIC is the base class for all initial conditions that create circles.
static InputParameters validParams()
std::vector< Real > _radii
std::vector< Point > _centers
virtual void initialSetup()
static constexpr std::size_t dim