20 "Specify variable values inside and outside a list of isolated boxes shaped "
21 "axis-aligned regions defined by pairs of opposing corners");
22 params.
addParam<Real>(
"outside", 0.0,
"The value of the variable outside the boxes");
38 for (
unsigned int b = 0;
b <
_nbox; ++
b)
40 for (
unsigned int i = 0; i <
_dim; ++i)
47 for (
unsigned int n =
b + 1; n <
_nbox; ++n)
49 for (
unsigned int j = 0; j <
_dim; ++j)
52 mooseError(
"Partially overlapping boxes are not allowed. Note that this "
53 "includes the overlapping diffused interfaces. For nested boxes, "
54 "use NestedBoundingBoxIC.C.");
58 for (
unsigned int j = 0; j <
_dim; ++j)
64 mooseError(
"The coordinates of the smaller_coordinate_corners are equal to or larger "
66 "the larger_coordinate_corners.");
registerMooseObject("PhaseFieldApp", IsolatedBoundingBoxIC)
IsolatedBoundingBoxIC creates several isolated boxes defined by their coordinates in the domain.
Real value(const Point &p)
const Real _outside
values outside all the boxes
static InputParameters validParams()
IsolatedBoundingBoxIC(const InputParameters ¶meters)
void mooseError(Args &&... args) const
SmoothMultiBoundingBoxBaseIC is the base class for IsolatedBoundingBoxIC and NestedBoundingBoxIC.
const Real _int_width
value of interfacial width
const unsigned int _nbox
number of boxes
static InputParameters validParams()
const unsigned int _dim
dimensionality of the mesh
const std::vector< Point > _c2
std::vector< Real > _inside
values inside the boxes
const std::vector< Point > _c1
lists of opposite corners
Real value(const Point &p)