24 "Get the intersection points for all of the elements that are intersected by a line.");
32 _start(getParam<Point>(
"start")),
33 _end(getParam<Point>(
"end")),
34 _x_intersections(declareVector(
"x"))
37 _y_intersections(declareVector(
"y"))
40 _z_intersections(declareVector(
"z"))
65 std::vector<Elem *> intersected_elems;
66 std::vector<LineSegment> segments;
72 pl->enable_out_of_mesh_mode();
77 const unsigned int num_elems = intersected_elems.size();
91 for (
unsigned int i = 0; i < num_elems; i++)
95 const Point & end_point = segment.
end();
registerMooseObject("MooseApp", IntersectionPointsAlongLine)
if(!dmm->_nl) SETERRQ(PETSC_COMM_WORLD
virtual MooseMesh & mesh() override
This class is here to combine the VectorPostprocessor interface and the base class VectorPostprocesso...
static InputParameters validParams()
Get the intersection points for all of the elements that are intersected by a line.
virtual void initialize() override
Called before execute() is ever called so that data can be cleared.
Point _start
The beginning of the line.
VectorPostprocessorValue & _z_intersections
IntersectionPointsAlongLine(const InputParameters ¶meters)
static InputParameters validParams()
std::vector< VectorPostprocessorValue * > _intersections
Tie them together for convenience.
VectorPostprocessorValue & _x_intersections
The elements that intersect the line.
virtual void execute() override
Find the elements.
Point _end
The end of the line.
VectorPostprocessorValue & _y_intersections
The LineSegment class is used by the LineMaterialSamplerBase class and for some ray tracing stuff.
const Point & end() const
Ending of the line segment.
virtual std::unique_ptr< libMesh::PointLocatorBase > getPointLocator() const
Proxy function to get a (sub)PointLocator from either the underlying libMesh mesh (default),...
void errorIfDistributedMesh(std::string name) const
Generate a unified error message if the underlying libMesh mesh is a DistributedMesh.
FEProblemBase & _fe_problem
Reference to the FEProblemBase for this user object.
void elementsIntersectedByLine(const Point &p0, const Point &p1, const MeshBase &mesh, const libMesh::PointLocatorBase &point_locator, std::vector< Elem * > &intersected_elems, std::vector< LineSegment > &segments)
Find all of the elements intersected by a line.
static constexpr std::size_t dim
This is the dimension of all vector and tensor datastructures used in MOOSE.