G+Smo  23.12.0
Geometry + Simulation Modules
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Geometries hierarchy

Detailed Description

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.

Template Parameters
Tcoefficient 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...
 

Function Documentation

void gismo::stringReplace ( std::string &  str,
const std::string &  oldStr,
const std::string &  newStr 
)
inline

An univariate polynomial in monomial basis.

This is the geometry type associated with gsMonomialBasis.

Template Parameters
Tcoefficient type