59 const std::span<const double> yNodes,
72 void Interpolate(
const int propertyId,
const std::span<const Point> iterpolationNodes, std::span<double> result)
const override;
84 static constexpr UInt MaximumNumberOfEdgesPerNode = 16;
87 static std::vector<Point> CombineCoordinates(
const std::span<const double> xNodes,
const std::span<const double> yNodes);
90 double InterpolateOnElement(
const UInt elementId,
const Point& interpolationPoint,
const std::vector<double>& sampleValues)
const;
93 double ComputeOnPolygon(
const int propertyId,
94 std::vector<Point>& polygon,
95 const Point& interpolationPoint,
97 std::vector<Sample>& sampleCache)
const;
100 double GetSearchRadiusSquared(
const std::vector<Point>& searchPolygon,
101 const Point& interpolationPoint,
105 void GenerateSearchPolygon(
const double relativeSearchRadius,
106 const Point& interpolationPoint,
107 std::vector<Point>& polygon,
111 double GetSampleValueFromRTree(
const int propertyId,
const UInt index)
const;
114 double ComputeInterpolationResultFromNeighbors(
const int propertyId,
115 const Point& interpolationPoint,
116 const std::vector<Point>& searchPolygon,
118 std::vector<Sample>& sampleCache)
const;
121 void InterpolateAtNodes(
const int propertyId,
const Mesh2D& mesh, std::span<double>& result)
const;
124 void InterpolateAtEdgeCentres(
const Mesh2D& mesh,
125 const std::span<double>& nodeResult,
126 std::span<double>& result)
const;
129 void InterpolateAtFaces(
const int propertyId,
const Mesh2D& mesh, std::span<double>& result)
const;
132 std::vector<Point> m_samplePoints;
137 Projection m_projection = Projection::cartesian;
143 std::unique_ptr<averaging::AveragingStrategy> m_strategy;
146 std::map<int, std::vector<double>> m_sampleData;
149 std::unique_ptr<RTreeBase> m_nodeRTree;
void Interpolate(const int propertyId, const Mesh2D &mesh, const Location location, std::span< double > result) const override
Interpolate the sample data set at the locationd defined.
void Interpolate(const int propertyId, const std::span< const Point > iterpolationNodes, std::span< double > result) const override
Interpolate the sample data set at the interpolation nodes.