22 params.
addClassDescription(
"Bimodal size distribution of large particles (specified in input "
23 "file, value invalue) and small particles (placed randomly inside the "
24 "larger particles, value outvalue)");
38 "If size_variation > 0.0, you must pass in a size_variation_type in "
39 "BimodalInverseSuperellipsoidsIC");
87 unsigned int num_tries = 0;
101 for (
unsigned int j = 0; j < i; ++j)
109 const Real dist = dist_vec.norm();
112 Real rmn1 = (std::pow(std::abs(dist_vec(0) / dist /
_as[j]),
_ns[j]) +
113 std::pow(std::abs(dist_vec(1) / dist /
_bs[j]),
_ns[j]) +
114 std::pow(std::abs(dist_vec(2) / dist /
_cs[j]),
_ns[j]));
116 const Real r1 = std::pow(rmn1, (-1.0 /
_ns[j]));
120 Real rmn2 = (std::pow(std::abs(dist_vec(0) / dist /
_as[i]),
_ns[i]) +
121 std::pow(std::abs(dist_vec(1) / dist /
_bs[i]),
_ns[i]) +
122 std::pow(std::abs(dist_vec(2) / dist /
_cs[i]),
_ns[i]));
123 const Real r2 = std::pow(rmn2, (-1.0 /
_ns[i]));
146 mooseError(
"Too many tries in MultiSmoothCircleIC");
registerMooseObject("PhaseFieldApp", BimodalInverseSuperellipsoidsIC)
BimodalInverseSuperellipsoidsIC takes a specified number of superellipsoids, each with given paramete...
static InputParameters validParams()
virtual void computeSuperellipsoidCenters()
virtual void initialSetup()
BimodalInverseSuperellipsoidsIC(const InputParameters ¶meters)
virtual Real value(const Point &p)
Have to do things slightly different from SmoothSuperellipsoidBaseIC because of the inverse structure...
BimodalSuperellipsoidsIC takes a specified number of superellipsoids, each with given parameters Thes...
virtual void initialSetup()
unsigned int _npart
Variables to describe the randomly placed (smaller) superellipsoids.
static InputParameters validParams()
const unsigned int _max_num_tries
const Real _size_variation
const MooseEnum _size_variation_type
MooseVariableField< T > & _var
void paramError(const std::string ¶m, Args... args) const
void mooseError(Args &&... args) const
RealVectorValue minPeriodicVector(const unsigned int sys_num, const unsigned int var_num, Point p, Point q) const
std::vector< Point > _centers
virtual Real computeSuperellipsoidInverseValue(const Point &p, const Point ¢er, Real a, Real b, Real c, Real n)
virtual Real computeSuperellipsoidValue(const Point &p, const Point ¢er, Real a, Real b, Real c, Real n)
std::vector< Real > _y_positions
std::vector< Real > _x_positions
std::vector< Real > _z_positions