Rodin::Geometry::Point class final

Concrete implementation of a spatial point on a mesh.

This class provides a complete implementation of PointBase with storage for reference coordinates. Points can be constructed with various combinations of reference and physical coordinates.

Usage Examples

// Create a point at the centroid of a cell in reference coordinates
Math::SpatialPoint rc(3);
rc << 0.25, 0.25, 0.25;  // Barycentric coords for tetrahedron
Point p(cell, rc);

// Access physical coordinates
std::cout << "x = " << p.x() << ", y = " << p.y() << ", z = " << p.z() << std::endl;

// Compute Jacobian information
const auto& J = p.getJacobian();
Real detJ = p.getJacobianDeterminant();

Thread Safety

Not thread-safe. Each thread should use separate Point instances.

Base classes

class PointBase
Base class for spatial points on a discrete mesh.

Public types

using Parent = PointBase
Parent class type.

Constructors, destructors, conversion operators

Point(const Polytope& polytope, const Math::SpatialPoint& rc) explicit
Constructs a point with reference coordinates.
Point(const Polytope& polytope, Math::SpatialPoint&& rc) explicit
Constructs a point with reference coordinates (move).
Point(const Polytope& polytope, const Math::SpatialPoint& rc, const Math::SpatialPoint& pc) explicit
Constructs with both reference and physical coordinates.
Point(const Polytope& polytope, const Math::SpatialPoint& rc, Math::SpatialPoint&& pc) explicit
Constructs with reference and physical coordinates (mixed).
Point(const Polytope& polytope, Math::SpatialPoint&& rc, const Math::SpatialPoint& pc) explicit
Constructs with reference and physical coordinates (mixed).
Point(const Polytope& polytope, Math::SpatialPoint&& rc, Math::SpatialPoint&& pc) explicit
Constructs with reference and physical coordinates (move both).
Point(const Point& other)
Copy constructor.
Point(Point&& other)
Move constructor.

Public functions

auto getReferenceCoordinates() const -> const Math::SpatialPoint& override
Gets the reference coordinates.

Function documentation

Rodin::Geometry::Point::Point(const Polytope& polytope, const Math::SpatialPoint& rc) explicit

Constructs a point with reference coordinates.

Parameters
polytope in Polytope containing the point
rc in Reference coordinates

Rodin::Geometry::Point::Point(const Polytope& polytope, Math::SpatialPoint&& rc) explicit

Constructs a point with reference coordinates (move).

Parameters
polytope in Polytope containing the point
rc in Reference coordinates

Rodin::Geometry::Point::Point(const Polytope& polytope, const Math::SpatialPoint& rc, const Math::SpatialPoint& pc) explicit

Constructs with both reference and physical coordinates.

Parameters
polytope in Polytope containing the point
rc in Reference coordinates
pc in Physical coordinates

Rodin::Geometry::Point::Point(const Polytope& polytope, const Math::SpatialPoint& rc, Math::SpatialPoint&& pc) explicit

Constructs with reference and physical coordinates (mixed).

Parameters
polytope in Polytope containing the point
rc in Reference coordinates
pc in Physical coordinates (move)

Rodin::Geometry::Point::Point(const Polytope& polytope, Math::SpatialPoint&& rc, const Math::SpatialPoint& pc) explicit

Constructs with reference and physical coordinates (mixed).

Parameters
polytope in Polytope containing the point
rc in Reference coordinates (move)
pc in Physical coordinates

Rodin::Geometry::Point::Point(const Polytope& polytope, Math::SpatialPoint&& rc, Math::SpatialPoint&& pc) explicit

Constructs with reference and physical coordinates (move both).

Parameters
polytope in Polytope containing the point
rc in Reference coordinates (move)
pc in Physical coordinates (move)

const Math::SpatialPoint& Rodin::Geometry::Point::getReferenceCoordinates() const override

Gets the reference coordinates.

Returns Reference coordinate vector