Class xlifepp::Parametrization#
-
class Parametrization#
-
Inheritence 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
-
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
-
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 = "")#