15 #include "libmesh/utility.h" 24 "int_width", 0.0,
"The interfacial width of the void surface. Defaults to sharp interface");
25 params.
addParam<
bool>(
"3D_spheres",
true,
"in 3D, whether the objects are spheres or columns");
26 params.
addParam<
bool>(
"zero_gradient",
28 "Set the gradient DOFs to zero. This can avoid " 29 "numerical problems with higher order shape " 30 "functions and overlapping circles.");
31 params.
addParam<
unsigned int>(
"rand_seed", 12345,
"Seed value for the random number generator");
34 "profile", profileType,
"Functional dependence for the interface profile");
40 _mesh(_fe_problem.
mesh()),
41 _invalue(parameters.
get<
Real>(
"invalue")),
42 _outvalue(parameters.
get<
Real>(
"outvalue")),
43 _int_width(parameters.
get<
Real>(
"int_width")),
44 _3D_spheres(parameters.
get<bool>(
"3D_spheres")),
45 _zero_gradient(parameters.
get<bool>(
"zero_gradient")),
46 _num_dim(_3D_spheres ? 3 : 2),
53 "Interface width has to be strictly positive for the hyperbolic tangent profile");
64 mooseError(
"_center and _radii vectors are not the same size in the Circle IC");
67 mooseError(
"_center and _radii were not initialized in the Circle IC");
96 for (
unsigned int circ = 0; circ <
_centers.size(); ++circ)
static InputParameters validParams()
virtual Real computeCircleValue(const Point &p, const Point ¢er, const Real &radius)
unsigned int number() const
std::vector< Real > _radii
std::vector< Point > _centers
RealVectorValue minPeriodicVector(unsigned int nonlinear_var_num, Point p, Point q) const
void seed(std::size_t i, unsigned int seed)
virtual Real value(const Point &p)
enum SmoothCircleBaseIC::ProfileType _profile
virtual RealGradient computeCircleGradient(const Point &p, const Point ¢er, const Real &radius)
static InputParameters validParams()
SmoothCircleBaseIC(const InputParameters ¶meters)
MooseVariableField< T > & _var
virtual void initialSetup()
void paramError(const std::string ¶m, Args... args) const
Real minPeriodicDistance(unsigned int nonlinear_var_num, Point p, Point q) const
virtual RealGradient gradient(const Point &p)
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
void mooseError(Args &&... args) const
virtual void computeCircleRadii()=0
virtual void computeCircleCenters()=0
const Elem & get(const ElemType type_in)
static const std::string center