Class xlifepp::Parametrization#
-
class Parametrization#
-
Inheritance diagram for xlifepp::Parametrization:
Collaboration diagram for xlifepp::Parametrization:
Subclassed by xlifepp::PiecewiseParametrization
Public Functions
-
Parametrization(const Geometry &g, const SymbolicFunction &f, const Parameters&, const string_t &na = "")#
-
1d parametrization from geometry (1D mapping)
parametrization from geometry and one symbolic function (1D -> 1D, only segment mapping)
-
Parametrization(const Geometry &g, const SymbolicFunction &f1, const SymbolicFunction &f2, const Parameters&, const string_t &na = "")#
-
parametrization from geometry to 2D space (2D curve or 2D mapping)
parametrization from Geometry and two symbolic functions (1D/2D -> 2D, 2D curve or 2D mapping)
-
Parametrization(const Geometry &g, const SymbolicFunction &f1, const SymbolicFunction &f2, const SymbolicFunction &f3, const Parameters&, const string_t &na = "")#
-
parametrization from geometry to 3D space (3D curve, 3D surface or 3D mapping)
parametrization from Geometry to 3D (3D curve, 3D surface or 3D mapping)
-
Parametrization(const Geometry &geo, par_fun, const Parameters&, const string_t &na = "", dimen_t dimp = 0)#
-
parametrization from a geometry and a function
-
Parametrization(const Parametrization&)#
-
copy constructor
-
Parametrization(Geometry *g = nullptr)#
-
parametrization from a geometry (composite) and default constructor
-
Parametrization(real_t a, real_t b, const SymbolicFunction &f, const Parameters&, const string_t &na = "")#
-
1d parametrization from segment [a,b] (1D mapping)
1d parametrization from segment [a,b] and one symbolic function (1D -> 1D, only segment mapping)
-
Parametrization(real_t a, real_t b, const SymbolicFunction &f1, const SymbolicFunction &f2, const Parameters&, const string_t &na = "")#
-
1d parametrization from segment [a,b] (2D curve)
1d parametrization from segment [a,b] and two symbolic functions (1D -> 2D, 2D curve)
-
Parametrization(real_t a, real_t b, const SymbolicFunction &f1, const SymbolicFunction &f2, const SymbolicFunction &f3, const Parameters&, const string_t &na = "")#
-
1d parametrization from segment [a,b] (3D curve)
-
Parametrization(real_t a, real_t b, par_fun, const Parameters&, const string_t &na = "", dimen_t dimp = 0)#
-
1d parametrization from segment [a,b] (1D mapping or 2D/3D curve)
-
Parametrization(real_t a, real_t b, par_fun, par_fun, const Parameters&, const string_t &na = "", dimen_t dimp = 0)#
-
1d parametrization from segment [a,b] (1D mapping or 2D/3D curve)
-
Parametrization(real_t a, real_t b, real_t c, real_t d, const SymbolicFunction &f1, const SymbolicFunction &f2, const Parameters&, const string_t &na = "")#
-
2d parametrization from rectangle [a,b]x[c,d] (2D mapping)
-
Parametrization(real_t a, real_t b, real_t c, real_t d, const SymbolicFunction &f1, const SymbolicFunction &f2, const SymbolicFunction &f3, const Parameters&, const string_t &na = "")#
-
2d parametrization from rectangle [a,b]x[c,d] (2D surface)
surface parametrization from rectangle [a,b]x[c,d] (3D surface)
-
Parametrization(real_t a, real_t b, real_t c, real_t d, par_fun, const Parameters&, const string_t &na = "", dimen_t dimp = 0)#
-
2d parametrization from rectangle [a,b]x[c,d] (2D mapping or 3D surface)
-
Parametrization(real_t a, real_t b, real_t c, real_t d, par_fun, par_fun, const Parameters&, const string_t &na = "", dimen_t dimp = 0)#
-
2d parametrization from rectangle [a,b]x[c,d] (2D mapping or 3D surface)
-
~Parametrization()#
-
destructor (clear pointers)
-
inline real_t bicurabc(const Point &P, DiffOpType d = _id) const#
-
< shortcut to the second curabc if few
-
inline real_t bicurabc(real_t t, DiffOpType d = _id) const#
-
< shortcut for 1D parametrization
-
inline real_t bicurabc(real_t u, real_t v, DiffOpType d = _id) const#
-
< shortcut for 2D parametrization
-
inline real_t bicurvature(const Point &P, DiffOpType d = _id) const#
-
< shortcut to the first curvature if few
-
inline real_t bicurvature(real_t t, DiffOpType d = _id) const#
-
< shortcut for 1D parametrization
-
inline real_t bicurvature(real_t u, real_t v, DiffOpType d = _id) const#
-
< shortcut for 2D parametrization
-
inline real_t bilength(const Point &P, DiffOpType d = _id) const#
-
< shortcut to the first length if few
-
inline real_t bilength(real_t t, DiffOpType d = _id) const#
-
< shortcut for 1D parametrization
-
inline real_t bilength(real_t u, real_t v, DiffOpType d = _id) const#
-
< shortcut for 2D parametrization
-
virtual Vector<real_t> binormal(const Point &P, DiffOpType d = _id) const#
-
shortcut to the second normal vector (if exists)
binormal vector (only for 3D curve)
tangent vectors
-
inline Vector<real_t> binormal(real_t t, DiffOpType d = _id) const#
-
< shortcut for 1D parametrization
-
inline Vector<real_t> binormal(real_t u, real_t v, DiffOpType d = _id) const#
-
< shortcut for 2D parametrization
-
virtual Vector<real_t> bitangent(const Point &P, DiffOpType d = _id) const#
-
shortcut to the second tangent vector
-
inline Vector<real_t> bitangent(real_t t, DiffOpType d = _id) const#
-
< shortcut for 1D parametrization
-
inline Vector<real_t> bitangent(real_t u, real_t v, DiffOpType d = _id) const#
-
< shortcut for 1D parametrization
-
RealPair bounds(VariableName v = _x1) const#
-
return bounds of geometry in v direction (_x1,_x2,_x3)
-
Vector<real_t> christoffel(const Point &t, DiffOpType d = _id) const#
-
the Christoffel symbols
the Christophel symbols are given by Cijk = 1/2*inv(g)ku*(giu_j + gju_i - gij_u) + 1/2*inv(g)kv*(giv_j + gjv_i - gij_v) where g = |guu, gvu| is the metric tensor (guv=gvu) |guv, gvv| C is the vector:[Guuu Guvu Gvuu Gvvu Guuv Guvv Gvuv Gvvv]
-
inline Vector<real_t> christoffel(real_t u, DiffOpType d = _id) const#
-
< shortcut for 1D parametrization
-
inline Vector<real_t> christoffel(real_t u, real_t v, DiffOpType d = _id) const#
-
< shortcut for 2D parametrization
-
inline real_t curabc(const Point &P, DiffOpType d = _id) const#
-
< shortcut to the first curabc if few
-
inline real_t curabc(real_t t, DiffOpType d = _id) const#
-
< shortcut for 1D parametrization
-
inline real_t curabc(real_t u, real_t v, DiffOpType d = _id) const#
-
< shortcut for 2D parametrization
-
Vector<real_t> curabcs(const Point&, DiffOpType = _id) const#
-
curvilinear abcissa (1 or 2)
curvilinear abcissa curve: s(t)=int_0^t length(r)dr surface: s1(t)=int_0^t length1(r)dr, s2(t)=int_0^t length2(r)dr
-
inline Vector<real_t> curabcs(real_t t, DiffOpType d = _id) const#
-
< shortcut for 1D parametrization
-
inline Vector<real_t> curabcs(real_t u, real_t v, DiffOpType d = _id) const#
-
< shortcut for 2D parametrization
-
inline real_t curvature(const Point &P, DiffOpType d = _id) const#
-
< shortcut to the first curvature if few
-
inline real_t curvature(real_t t, DiffOpType d = _id) const#
-
< shortcut for 1D parametrization
-
inline real_t curvature(real_t u, real_t v, DiffOpType d = _id) const#
-
< shortcut for 2D parametrization
-
virtual Vector<real_t> curvatures(const Point&, DiffOpType = _id) const#
-
curvatures (1 or 2)
curvature 2D/3D curve: ||x”(t) ^ x’(t)||/||x’(t)||^3 3D surface: eigen values of the weingarten map (principal curvatures)
-
Vector<real_t> curvatures(const Point &uv, const Vector<real_t> &d) const#
-
Gauss curvature, mean curvature, normal curvature related to a given tangent direction (3D surface)
-
inline Vector<real_t> curvatures(real_t t, DiffOpType d = _id) const#
-
< shortcut for 1D parametrization
-
inline Vector<real_t> curvatures(real_t u, real_t v, DiffOpType d = _id) const#
-
< shortcut for 1D parametrization
-
inline real_t gaussCurvature(real_t u, real_t v, DiffOpType d = _id) const#
-
Gauss curvature (3D surface)
-
bool isPeriodic() const#
-
true if there exists at least one periodic direction
-
Matrix<real_t> jacobian(const Point &t, DiffOpType d = _id) const#
-
jacobian matrix
Jacobian matrix n x m: Jij = djP_i, i=1,n; j=1,m.
-
inline Matrix<real_t> jacobian(real_t u, DiffOpType d = _id) const#
-
< shortcut for 1D parametrization
-
inline Matrix<real_t> jacobian(real_t u, real_t v, DiffOpType d = _id) const#
-
< shortcut for 2D parametrization
-
inline real_t length(const Point &P, DiffOpType d = _id) const#
-
< shortcut to the first length if few
-
inline real_t length(real_t t, DiffOpType d = _id) const#
-
< shortcut for 1D parametrization
-
inline real_t length(real_t u, real_t v, DiffOpType d = _id) const#
-
< shortcut for 2D parametrization
-
virtual Vector<real_t> lengths(const Point&, DiffOpType = _id) const#
-
local lengths of a curve: sqrt(x1’(t)^2+x2’(t)^2+…)
-
inline Vector<real_t> lengths(real_t t, DiffOpType d = _id) const#
-
< shortcut for 1D parametrization
-
inline Vector<real_t> lengths(real_t u, real_t v, DiffOpType d = _id) const#
-
< shortcut for 2D parametrization
-
Geometry *locateGeometry(Point &t) const#
-
locate canonical geometry when parametrization of a piecewise geometry
locate canonical geometry when parametrization of a piecewise geometry 1D: assuming global parametrization t from 0 to 1 (n=nbParts number of canonical geometries) use the connectedParts_ structure (vector<vector<number_t>>) that provides a collection of connected parts each parts being a sorted collection of canonical geometries connectedParts_[0] : geom01 geom02 … n0 canonical geometries parametrized from 0 to n0/n connectedParts_[1] : geom11 geom12 … n1 canonical geometries parametrized from n0 to (n0+n1)/n connectedParts_[m] : geom11 geom12 … nm canonical geometries parametrized from (n0+n1..+nm-1)/n to 1
-
inline real_t meanCurvature(real_t u, real_t v, DiffOpType d = _id) const#
-
mean curvature (3D surface)
-
Vector<real_t> metricTensor(const Point &t, DiffOpType d = _id) const#
-
metric tensor
metric tensor given by G=Jt*J stored as a vector (G11,G21,G22,[G31,G32,G33]), size = dimg*(dimg+1)/2
-
inline Vector<real_t> metricTensor(real_t u, DiffOpType d = _id) const#
-
< shortcut for 1D parametrization
-
inline Vector<real_t> metricTensor(real_t u, real_t v, DiffOpType d = _id) const#
-
< shortcut for 2D parametrization
-
virtual Vector<real_t> normal(const Point &P, DiffOpType d = _id) const#
-
shortcut to the first normal vector
< shortcut to the first normal vector
-
inline Vector<real_t> normal(real_t t, DiffOpType d = _id) const#
-
< shortcut for 1D parametrization
-
inline Vector<real_t> normal(real_t u, real_t v, DiffOpType d = _id) const#
-
< shortcut for 1D parametrization
-
real_t normalCurvature(const Point &uv, const Vector<real_t> &d) const#
-
normal curvature related to a given tangent direction (3D surface)
-
Vector<real_t> normals(const Point&, DiffOpType = _id) const#
-
normal vectors (1 or 2)
-
inline Vector<real_t> normals(real_t t, DiffOpType d = _id) const#
-
< shortcut for 1D parametrization
-
inline Vector<real_t> normals(real_t u, real_t v, DiffOpType d = _id) const#
-
< shortcut for 2D parametrization
-
bool onSingularSide(const Point &p) const#
-
true if p is located on singular side
true if there exists at least one periodic direction
-
Point operator()(const Point &t, DiffOpType d = _id) const#
-
compute parametrization
inverse function of the parametrization
-
Parametrization &operator=(const Parametrization&)#
-
assign operator
-
virtual void print(std::ostream&) const#
-
print utility
-
void setCurabc(const SymbolicFunction&)#
-
associate symbolic function to curvilinear abcissa (2D curve)
-
void setCurabcs(const SymbolicFunction&, const SymbolicFunction&)#
-
associate symbolic function to curvilinear abcissa (3D surface)
-
void setCurvature(const SymbolicFunction&)#
-
associate symbolic function to curvature (2D curve)
-
void setCurvatures(const SymbolicFunction&, const SymbolicFunction&)#
-
associate symbolic function to curvatures (3D curve/surface)
-
void setinvParametrization(const SymbolicFunction&)#
-
associate symbolic function to invParametrization (1D parametrization)
-
void setinvParametrization(const SymbolicFunction&, const SymbolicFunction&)#
-
associate symbolic function to invParametrization (2D parametrization)
-
void setLength(const SymbolicFunction&)#
-
associate symbolic function to length/surface element
-
void setNormal(const SymbolicFunction&, const SymbolicFunction&)#
-
associate symbolic function to normal (2D curve)
-
void setNormal(const SymbolicFunction&, const SymbolicFunction&, const SymbolicFunction&)#
-
associate symbolic function to normal (3D surface)
-
void setNormals(const SymbolicFunction&, const SymbolicFunction&, const SymbolicFunction&, const SymbolicFunction&, const SymbolicFunction&, const SymbolicFunction&)#
-
associate symbolic function to normal (3D curve/surface)
-
void setTangent(const SymbolicFunction&, const SymbolicFunction&)#
-
associate symbolic function to tangent (2D curve)
-
void setTangent(const SymbolicFunction&, const SymbolicFunction&, const SymbolicFunction&)#
-
associate symbolic function to tangent (3D curve)
-
void setTangents(const SymbolicFunction&, const SymbolicFunction&, const SymbolicFunction&, const SymbolicFunction&, const SymbolicFunction&, const SymbolicFunction&)#
-
associate symbolic function to tangent (3D surface)
-
virtual Vector<real_t> tangent(const Point &P, DiffOpType d = _id) const#
-
shortcut to the first tangent vector
< shortcut to the first tangent vector
second tangent vector (only for 3D surface )
-
inline Vector<real_t> tangent(real_t t, DiffOpType d = _id) const#
-
< shortcut for 1D parametrization
-
inline Vector<real_t> tangent(real_t u, real_t v, DiffOpType d = _id) const#
-
< shortcut for 2D parametrization
-
Vector<real_t> tangents(const Point&, DiffOpType = _id) const#
-
tangent vectors (1 or 2)
-
inline Vector<real_t> tangents(real_t t, DiffOpType d = _id) const#
-
< shortcut for 1D parametrization
-
inline Vector<real_t> tangents(real_t u, real_t v, DiffOpType d = _id) const#
-
< shortcut for 2D parametrization
-
Point toDerParameter(const Point &t, const Point &dp) const#
-
compute parameter derivatives dt related to dp
local length of a curve: sqrt(d1f1^2+d1f2^2+[d1f3^2]) and sqrt(d2f1^2+d2f2^2+[d2f3^2]) if 2D parametrization
-
void toParameters(const std::vector<Point*> &nodes, number_t &mapIndex, std::vector<Point*> &parnodes) const#
-
parameters associated to a set of points
extended inversion of parametrization constructs parameters Pi associated to nodes Mi, i.e G(Pi) = Mi when parametrization is a multi-map parametrization : all Pi must be associated to the same map and the map index is returned if (Pi) may be associated to several maps, the best one is selected according to criteria handled by the parametrization dmin = min(dist(Pi,parametrization ‘singular’ points)) choose parametrization such that dmin is maximum
-
inline real_t toRealParameter(const Point &p) const#
-
< inverse function of the parametrization (restricted to curve)
-
real_t torsion(const Point &t, DiffOpType d) const#
-
torsion (only for 3D curve, requires third derivatives)
torsion only for 3D curve: det(d1f, d11f, d111f)/|d1f x d11f|
normal vector
-
Matrix<real_t> weingarten(const Point &t) const#
-
Weingarten matrix (only for 3D surface)
first fundamental form |E F| E = d1f.d1f G=d2f.d2f second fundamental form |L M| L = -d1f.d1n = d11f.n N = -d2f.d2n = d22f.n |F G| F = d1f.d2f |M N| M = -(d1f.d2n+d2f.d1n) = d12f.n 1 |LG-MF MG-NF| k1,k2 eigenvalues of W -> main curvatures Weingarten matrix W = –— | | Gauss curvature K = k1*k2 = (LN-MM)/((EG-FF) EG-FF |ME-LF NE-MF| mean curvature H =(k1+k2)/2 = (LG+EN-2MF)/2(EG-FF)
< Weingarten matrix (only for 3D surface)
Public Members
-
ContinuityOrder contOrder#
-
continuity order (by default _Cinf), to be set by user if not _Cinf
-
string_t name#
-
a parametrization name useful for printing
-
mutable Parameters params#
-
optional parameter list
-
real_t s1#
-
starting curvilinear abcissas (default 0)
-
Parametrization(const Geometry &g, const SymbolicFunction &f, const Parameters&, const string_t &na = "")#