35 Mesh* grid_points,
Mesh* validity_region,
36 std::vector<SquarePolynomialVector*> polynomials) {
43 "PolynomialPatch::PolynomialPatch",
"PolynomialPatch grid_points_ was nullptr");
46 "PolynomialPatch::PolynomialPatch",
47 "PolynomialPatch validity_region_ was nullptr");
50 "PolynomialPatch::PolynomialPatch",
51 "Could not make PolynomialPatch with 0 length polynomials vector");
56 "PolynomialPatch::PolynomialPatch",
57 "Could not make PolynomialPatch with bad length polynomials vector");
62 "PolynomialPatch::PolynomialPatch",
63 "PolynomialPatch validity_region_ has bad dimension");
66 for (
size_t i = 0; i <
points_.size(); ++i) {
69 "PolynomialPatch::PolynomialPatch",
70 "PolynomialPatch points_ element was nullptr");
73 "PolynomialPatch::PolynomialPatch",
74 "Polynomial with mismatched PointDimension in PolynomialPatch");
78 "PolynomialPatch::PolynomialPatch",
79 "Polynomial with mismatched ValueDimension in PolynomialPatch");
84 Mesh* new_mesh =
nullptr;
88 Mesh* new_validity =
nullptr;
92 std::vector<SquarePolynomialVector*> new_points(
points_.size());
93 for (
size_t i = 0; i <
points_.size(); ++i) {
95 new_points[i] =
nullptr;
104 : validity_region_(nullptr),
105 grid_points_(nullptr),
108 value_dimension_(0) {}
113 for (
size_t i = 0; i <
points_.size(); ++i)
120 std::vector<double> nearest_pos = nearest.
getPosition();
122 point_temp[i] = point[i] - nearest_pos[i];
124 points_[points_index]->F(&point_temp[0], value);
virtual void getPosition(double *point) const
Base class for meshing routines.
virtual int getPositionDimension() const =0
virtual Mesh::Iterator getNearest(const double *position) const =0
virtual Mesh::Iterator end() const =0
std::vector< SquarePolynomialVector * > points_
unsigned int point_dimension_
virtual void function(const double *point, double *value) const
SquarePolynomialVector * getPolynomialVector(const double *point) const
VectorMap * clone() const
unsigned int value_dimension_
SquarePolynomialVector describes a vector of multivariate polynomials.