G+Smo
24.08.0
Geometry + Simulation Modules
|
This group collects geometry types deriving from gsGeometry.
The combination of a basis with a coefficient matrix of the proper size describes a function. Such objects are called geometries.
Note that geometries are, essentially, functions mapping from the parameter domain to the physical space,
\[ G \ :\ \mathbb R^d \to \mathbb R^n \]
so that
\[ G(\hat x) = x \qquad \hat x \in \mathbb R^d, \ x \in \mathbb R^n \]
and therefore they derive from gsFunction. A gsGeometry can thus be used wherever a gsFunction is expected.
All geometry classes derive from the abstract base class gsGeometry, see the Geometries hierarchy. In general, there is a statically known one-to-one mapping between basis types and their associated geometry types. For instance, when you ask a gsBSplineBasis to create a geometry using some given coefficient matrix, you will get back an instance of gsBSpline. In turn, the basis that the gsBSpline object stores internally is of type gsBSplineBasis.
The parameter domain of the basis is also the parameter domain of the geometry map, and has a certain source dimension d (see gsGeometry::parDim()). Depending on the parameter domain dimension, derived geometries inherit gsCurve, gsSurface, gsVolume or gsBulk, for dimension 1,2,3 or 4, respectively.
The dimension n of the resulting geometry, i.e., of the image of the geometry map, is defined by the size of the given coefficients, and may be larger than d (see gsGeometry::geoDim()).
For instance, for a B-spline basis (d = 1), we could have coefficients of dimension n = 1, which results in a parametrization of a 1-D interval, or we could have coefficients of size n = 3, which results in a B-spline curve in 3-D space.
The coefficients are stored as an s x n matrix, where s is the size of the basis, i.e., the number of its basis functions. Every row of the coefficient matrix is an n-dimensional control point, i.e., the vector-valued coefficient for the associated basis function.
Evaluation at parameter values is done with the Evaluation member functions derived from gsFunction.
T | coefficient type |
Classes | |
class | gsBSpline< T > |
A B-spline function of one argument, with arbitrary target dimension. More... | |
class | gsBulk< T > |
Abstract base class representing a 4D bulk. More... | |
class | gsCurve< T > |
Abstract base class representing a curve. More... | |
class | gsGeometry< T > |
Abstract base class representing a geometry map. More... | |
class | gsHBSpline< d, T > |
A hierarchical B-Spline function, in d dimensions. More... | |
class | gsLagrangePoly< T > |
The geometry class of a Lagrange Polyomial curve. More... | |
class | gsNurbs< T > |
A NURBS function of one argument, with arbitrary target dimension. More... | |
class | gsSurface< T > |
Abstract base class representing a surface. More... | |
class | gsTensorBSpline< d, T > |
A tensor product of d B-spline functions, with arbitrary target dimension. More... | |
class | gsTensorNurbs< d, T > |
A tensor product Non-Uniform Rational B-spline function (NURBS) of parametric dimension d, with arbitrary target dimension. More... | |
class | gsTHBSpline< d, T > |
A truncated hierarchical B-Spline function, in d dimensions. More... | |
class | gsVolume< T > |
Provides declaration of Volume abstract interface. More... | |
Functions | |
void | stringReplace (std::string &str, const std::string &oldStr, const std::string &newStr) |
An univariate polynomial in monomial basis. More... | |
|
inline |
An univariate polynomial in monomial basis.
This is the geometry type associated with gsMonomialBasis.
T | coefficient type |