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");
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");
static InputParameters validParams()
virtual Real getMaxInDimension(unsigned int component) const
virtual Real getMinInDimension(unsigned int component) const
unsigned int number() const
std::vector< Real > _radii
const MooseEnum _radius_variation_type
std::vector< Point > _centers
const unsigned int _max_num_tries
registerMooseObject("PhaseFieldApp", MultiSmoothCircleIC)
static constexpr std::size_t dim
MooseVariableField< T > & _var
Real randNormal(std::size_t i, Real mean, Real sigma)
virtual void computeCircleCenters() override
SmoothcircleBaseIC is the base class for all initial conditions that create circles.
TensorValue< Real > RealTensorValue
virtual void initialSetup()
const unsigned int _numbub
MultiSmoothCircleIC(const InputParameters ¶meters)
Real minPeriodicDistance(unsigned int nonlinear_var_num, Point p, Point q) const
static InputParameters validParams()
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
virtual void computeCircleRadii() override
IntRange< T > make_range(T beg, T end)
void mooseError(Args &&... args) const
virtual void initialSetup() override
static const std::complex< double > j(0, 1)
Complex number "j" (also known as "i")
const Real _radius_variation
void ErrorVector unsigned int
MultismoothCircleIC creates multiple SmoothCircles (number = numbub) that are randomly positioned aro...