21 "Variation from central lattice position",
22 "use the new parameter name pos_variation");
23 params.
addParam<
Real>(
"pos_variation", 0.0,
"Variation from central lattice position");
25 "circles_per_side",
"Vector containing the number of bubbles along each side");
26 params.
addParam<
unsigned int>(
"rand_seed", 2000,
"random seed");
29 "radius_variation", 0.0,
"Plus or minus fraction of random variation in the bubble radius");
30 MooseEnum rand_options(
"uniform normal none",
"none");
33 "Type of distribution that random circle radii will follow");
35 "avoid_bounds",
true,
"Don't place any bubbles on the simulation cell boundaries");
41 _lattice_variation(isParamValid(
"Rnd_variation") ? getParam<
Real>(
"Rnd_variation")
42 : getParam<
Real>(
"pos_variation")),
43 _circles_per_side(getParam<
std::vector<unsigned
int>>(
"circles_per_side")),
44 _radius(getParam<
Real>(
"radius")),
45 _radius_variation(getParam<
Real>(
"radius_variation")),
46 _radius_variation_type(getParam<
MooseEnum>(
"radius_variation_type")),
47 _avoid_bounds(getParam<bool>(
"avoid_bounds"))
67 mooseError(
"If domain is > 1D, circles_per_side must have more than one value");
70 mooseError(
"If domain is 3D, circles_per_side must have three values");
91 mooseError(
"If radius_variation > 0.0, you must pass in a radius_variation_type in " 92 "LatticeSmoothCircleIC");
103 for (
unsigned int i = 0; i <
_numbub; i++)
132 unsigned int z_num = 1.0;
140 unsigned int cnt = 0;
143 for (
unsigned int k = 0;
k < z_num; ++
k)
145 Real xx = x_sep / 2.0 + i * x_sep;
146 Real yy = y_sep / 2.0 +
j * y_sep;
147 Real zz = z_sep / 2.0 +
k * z_sep;
static InputParameters validParams()
virtual Real getMaxInDimension(unsigned int component) const
virtual Real getMinInDimension(unsigned int component) const
std::vector< unsigned int > _circles_per_side
registerMooseObject("PhaseFieldApp", LatticeSmoothCircleIC)
std::vector< Real > _radii
std::vector< Point > _centers
virtual void computeCircleCenters()
virtual void initialSetup()
static constexpr std::size_t dim
Real randNormal(std::size_t i, Real mean, Real sigma)
SmoothcircleBaseIC is the base class for all initial conditions that create circles.
virtual void initialSetup()
MooseEnum _radius_variation_type
static InputParameters validParams()
LatticeSmoothcircleIC creates a lattice of smoothcircles as an initial condition. ...
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
virtual void computeCircleRadii()
IntRange< T > make_range(T beg, T end)
void mooseError(Args &&... args) const
static const std::complex< double > j(0, 1)
Complex number "j" (also known as "i")
LatticeSmoothCircleIC(const InputParameters ¶meters)
static const std::string k
void ErrorVector unsigned int