Point class final
#include <Rodin/Geometry/Point.h>
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
Constructors, destructors, conversion operators
-
Point(const Polytope& polytope,
const Math::
SpatialPoint& rc) explicit - Constructs a point with reference coordinates.
-
Point(const Polytope& polytope,
const Math::
SpatialPoint& rc, const Math:: SpatialPoint& pc) explicit - Constructs with both reference and physical coordinates.
-
Point(const Math::
SpatialMatrix<Real>& jacobian, const Polytope& polytope, const Math:: SpatialPoint& rc) - Constructs a reference point with a precomputed geometric Jacobian.
-
Point(const Math::
SpatialMatrix<Real>& jacobian, const Polytope& polytope, const QF:: QuadratureFormulaBase& qf, size_t qp) - Constructs an owned reference sample with lazy physical coordinates.
- 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,
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 Math:: SpatialMatrix<Real>& jacobian,
const Polytope& polytope,
const Math:: SpatialPoint& rc)
Constructs a reference point with a precomputed geometric Jacobian.
| Parameters | |
|---|---|
| jacobian in | Jacobian of the polytope transformation at rc. |
| polytope in | Polytope containing the point. |
| rc in | Reference coordinates at which the Jacobian was evaluated. |
No reference to a formula or reference tabulation is retained. Copies and moves preserve the owned geometric data independently of the quadrature object that constructed the point. The distinct Jacobian-first signature preserves existing construction from Eigen coordinate expressions without conversion ambiguity.
Rodin:: Geometry:: Point:: Point(const Math:: SpatialMatrix<Real>& jacobian,
const Polytope& polytope,
const QF:: QuadratureFormulaBase& qf,
size_t qp)
Constructs an owned reference sample with lazy physical coordinates.
| Parameters | |
|---|---|
| jacobian | Geometric Jacobian at sample qp. |
| polytope | Polytope containing the mapped sample. |
| qf | Formula supplying the reference coordinates. |
| qp | Sample index in the formula. |
Reference coordinates are copied from the formula, so their logical provenance is established by construction. A retained point remains valid after formula destruction or reference-table eviction.
const Math:: SpatialPoint& Rodin:: Geometry:: Point:: getReferenceCoordinates() const override
Gets the reference coordinates.
| Returns | Reference coordinate vector |
|---|