Go to the documentation of this file.
11 #include "MooseMesh.h"
20 params.addClassDescription(
"Specify variable values inside a list of nested 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 largest boxes");
38 for (
unsigned int b = 0; b <
_nbox; ++b)
40 for (
unsigned int i = 0; i <
_dim; ++i)
48 for (
unsigned int j = 0; j <
_dim; ++j)
49 f_in *= 0.5 * (std::tanh(2.0 * libMesh::pi * (p(j) -
_c1[b](j)) /
_int_width) -
50 std::tanh(2.0 * libMesh::pi * (p(j) -
_c2[b](j)) /
_int_width));
57 else if (
_c1[b](i) >=
_c2[b](i))
58 mooseError(
"The coordinates of the smaller_coordinate_corners are equal to or larger "
60 "the larger_coordinate_corners.");
Real value(const Point &p)
Real value(const Point &p)
const std::vector< Point > _c1
lists of opposite corners
InputParameters validParams< SmoothMultiBoundingBoxBaseIC >()
const unsigned int _dim
dimensionality of the mesh
registerMooseObject("PhaseFieldApp", NestedBoundingBoxIC)
NestedBoundingBoxIC(const InputParameters ¶meters)
std::vector< Real > _inside
values inside the boxes
NestedBoundingBoxIC creates several nested boxes defined by their coordinates in the domain.
const Real _int_width
value of interfacial width
const unsigned int _nbox
number of boxes
InputParameters validParams< NestedBoundingBoxIC >()
SmoothMultiBoundingBoxBaseIC is the base class for IsolatedBoundingBoxIC and NestedBoundingBoxIC.
const Real _outside
values outside all the boxes
const std::vector< Point > _c2