G+Smo
24.08.0
Geometry + Simulation Modules
|
A tensor product Non-Uniform Rational B-spline (NURBS) basis.
This is the rational version of gsTensorBSplineBasis.
d | dimension of the parameter domain |
T | coefficient type |
KnotVectorType | the knot vector type the underlying NURBS bases use |
Public Types | |
typedef gsRationalBasis < typename gsBSplineTraits< d, T >::Basis > | Base |
Base type. | |
typedef Src_t::Basis_t | Basis_t |
Coordinate basis type. | |
typedef gsBSplineTraits < static_cast< short_t >d-1), T >::RatBasis | BoundaryBasisType |
Associated Boundary basis type. | |
typedef gsBSplineBasis< T > | Family_t |
Family type. | |
typedef gsBSplineTraits< d, T > ::RatGeometry | GeometryType |
Associated geometry type. | |
typedef memory::shared_ptr < gsTensorNurbsBasis > | Ptr |
Shared pointer for gsTensorNurbsBasis. | |
typedef T | Scalar_t |
Coefficient type. | |
typedef gsBSplineTraits< d, T > ::Basis | SourceBasis |
Associated source basis type. | |
typedef gsBSplineTraits< d, T > ::Basis | Src_t |
Source basis type. | |
typedef memory::unique_ptr < gsTensorNurbsBasis > | uPtr |
Unique pointer for gsTensorNurbsBasis. | |
Public Member Functions | |
gsMatrix< index_t > | active (const gsMatrix< T > &u) const |
Returns the indices of active (nonzero) functions at points u, as a list of indices. More... | |
virtual void | active_into (const gsMatrix< T > &u, gsMatrix< index_t > &result) const |
Indices of active (non-zero) function(s) for each point. More... | |
gsMatrix< index_t > | allBoundary () const |
Returns the indices of the basis functions that are nonzero at the domain boundary. | |
virtual void | anchor_into (index_t i, gsMatrix< gsBSplineTraits< d, T >::Basis::Scalar_t > &result) const |
Returns the anchor point for member i of the basis. | |
gsMatrix< gsBSplineTraits< d, T >::Basis::Scalar_t > | anchors () const |
Returns the anchor points that represent the members of the basis. There is exactly one anchor point per basis function. More... | |
virtual void | anchors_into (gsMatrix< gsBSplineTraits< d, T >::Basis::Scalar_t > &result) const |
Returns the anchor points that represent the members of the basis in result. There is exactly one anchor point per basis function. More... | |
const gsBasis< T > & | basis (const index_t k) const |
Helper which casts and returns the k-th piece of this function set as a gsBasis. | |
gsMatrix< index_t > | boundary (boxSide const &s) const |
Returns the indices of the basis functions that are nonzero at the domain boundary as single-column-matrix. | |
BoundaryBasisType::uPtr | boundaryBasis (boxSide const &s) |
Gives back the boundary basis at boxSide s. | |
gsMatrix< index_t > | boundaryOffset (boxSide const &s, index_t offset) const |
bool | check () const |
Check the rational basis for consistency. | |
uPtr | clone () |
Clone methode. Produceds a deep copy inside a uPtr. | |
gsSparseMatrix < gsBSplineTraits< d, T > ::Basis::Scalar_t > | collocationMatrix (gsMatrix< gsBSplineTraits< d, T >::Basis::Scalar_t > const &u) const |
Computes the collocation matrix w.r.t. points u. More... | |
virtual const gsBasis< T > & | component (short_t i) const |
For a tensor product basis, return the (const) 1-d basis for the i-th parameter component. | |
virtual gsBasis < gsBSplineTraits< d, T > ::Basis::Scalar_t > & | component (short_t i) |
For a tensor product basis, return the 1-d basis for the i-th parameter component. | |
virtual uPtr | componentBasis (boxComponent b) const |
Returns the basis that corresponds to the component. | |
virtual uPtr | componentBasis_withIndices (boxComponent b, gsMatrix< index_t > &indices, bool noBoundary=true) const |
Returns the basis that corresponds to the component. More... | |
virtual void | compute (const gsMatrix< T > &in, gsFuncData< T > &out) const |
Computes function data. More... | |
virtual void | connectivity (const gsMatrix< gsBSplineTraits< d, T >::Basis::Scalar_t > &nodes, gsMesh< gsBSplineTraits< d, T >::Basis::Scalar_t > &mesh) const |
virtual void | connectivityAtAnchors (gsMesh< gsBSplineTraits< d, T >::Basis::Scalar_t > &mesh) const |
virtual gsBasis::uPtr | create () const |
Create an empty basis of the derived type and return a pointer to it. | |
short_t | degree (short_t i=0) const |
Degree with respect to the i-th variable. If the basis is a tensor product of (piecewise) polynomial bases, then this function returns the polynomial degree of the i-th component. | |
void | degreeDecrease (short_t const &i=1, short_t const dir=-1) |
Lower the degree of the basis by the given amount, preserving knots multiplicity. | |
void | degreeElevate (short_t const &i=1, short_t const dir=-1) |
Elevate the degree of the basis by the given amount, preserve smoothness. | |
void | degreeIncrease (short_t const &i=1, short_t const dir=-1) |
Elevate the degree of the basis by the given amount, preserve knots multiplicity. | |
void | degreeReduce (short_t const &i=1, short_t const dir=-1) |
Reduce the degree of the basis by the given amount, preserve smoothness. | |
gsMatrix< T > | deriv (const gsMatrix< T > &u) const |
Evaluate the derivatives,. More... | |
gsMatrix< T > | deriv2 (const gsMatrix< T > &u) const |
Evaluates the second derivatives of active (i.e., non-zero) functions at points u. More... | |
virtual void | deriv2_into (const gsMatrix< T > &u, gsMatrix< T > &result) const |
Second derivatives. More... | |
virtual void | deriv_into (const gsMatrix< T > &u, gsMatrix< T > &result) const |
First derivatives. More... | |
virtual std::string | detail () const |
Prints the object as a string with extended details. | |
gsDomain< T > * | domain () const |
short_t | domainDim () const |
Dimension of the (source) domain. More... | |
size_t | elementIndex (const gsVector< T > &u) const |
See gsBasis for a description. | |
virtual size_t | elementIndex (const gsVector< gsBSplineTraits< d, T >::Basis::Scalar_t > &u) const |
Returns an index for the element which contains point u. | |
virtual gsMatrix < gsBSplineTraits< d, T > ::Basis::Scalar_t > | elementInSupportOf (index_t j) const |
Returns (the coordinates of) an element in the support of basis function j. | |
virtual void | elevateContinuity (int const &i=1) |
Elevates the continuity of the basis along element boundaries. | |
gsMatrix< T > | eval (const gsMatrix< T > &u) const |
Evaluate the function,. More... | |
virtual void | eval_into (const gsMatrix< T > &u, gsMatrix< T > &result) const |
Evaluates the function(s). More... | |
std::vector< gsMatrix< T > > | evalAllDers (const gsMatrix< T > &u, int n, bool sameElement=false) const |
Evaluate all derivatives upto order n,. More... | |
virtual void | evalAllDers_into (const gsMatrix< T > &u, int n, std::vector< gsMatrix< T > > &result, bool sameElement=false) const |
Evaluate the nonzero functions and their derivatives up to order n at points u into result. More... | |
gsBasisFun< gsBSplineTraits< d, T >::Basis::Scalar_t > | function (index_t i) const |
Returns the i-th basis function as a gsFunction. More... | |
virtual gsBSplineTraits< d, T > ::Basis::Scalar_t | getMaxCellLength () const |
Get the maximum mesh size, as expected for approximation error estimates. | |
virtual gsBSplineTraits< d, T > ::Basis::Scalar_t | getMinCellLength () const |
Get the minimum mesh size, as expected for inverse inequalities. | |
gsTensorNurbsBasis (const KnotVectorType &KV1, const KnotVectorType &KV2) | |
Constructors for gsTensorNurbsBasis. | |
virtual memory::unique_ptr < gsGeometry< gsBSplineTraits < d, T >::Basis::Scalar_t > > | interpolateAtAnchors (gsMatrix< gsBSplineTraits< d, T >::Basis::Scalar_t > const &vals) const |
Applies interpolation of values pts using the anchors as parameter points. May be reimplemented in derived classes with more efficient algorithms. (by default uses interpolateData(pts,vals) | |
memory::unique_ptr< gsGeometry < gsBSplineTraits< d, T > ::Basis::Scalar_t > > | interpolateData (gsMatrix< gsBSplineTraits< d, T >::Basis::Scalar_t > const &vals, gsMatrix< gsBSplineTraits< d, T >::Basis::Scalar_t > const &pts) const |
Applies interpolation given the parameter values pts and values vals. | |
virtual bool | isRational () const |
Returns true, since by definition a gsRationalBasis is rational. | |
gsBasis< T >::domainIter | makeDomainIterator () const |
Create a domain iterator for the computational mesh of this basis, that points to the first element of the domain. | |
gsBasis< T >::domainIter | makeDomainIterator (const boxSide &s) const |
Create a boundary domain iterator for the computational mesh this basis, that points to the first element on the boundary of the domain. | |
virtual memory::unique_ptr < gsGeometry< gsBSplineTraits < d, T >::Basis::Scalar_t > > | makeGeometry (gsMatrix< gsBSplineTraits< d, T >::Basis::Scalar_t > coefs) const =0 |
Create a gsGeometry of proper type for this basis with the given coefficient matrix. | |
memory::unique_ptr< gsBasis< T > > | makeNonRational () const |
virtual void | matchWith (const boundaryInterface &bi, const gsBasis< gsBSplineTraits< d, T >::Basis::Scalar_t > &other, gsMatrix< index_t > &bndThis, gsMatrix< index_t > &bndOther, index_t offset=0) const |
Computes the indices of DoFs that match on the interface bi. The interface is assumed to be a common face between this patch and other, with an offset offset. The output is two lists of indices bndThis and bndOther, with indices that match one-to-one on the boundary bi. More... | |
short_t | maxDegree () const |
If the basis is of polynomial or piecewise polynomial type, then this function returns the maximum polynomial degree. | |
short_t | minDegree () const |
If the basis is of polynomial or piecewise polynomial type, then this function returns the minimum polynomial degree. | |
virtual index_t | nPieces () const |
Number of pieces in the domain of definition. | |
size_t | numElements (boxSide const &s=0) const |
The number of elements on side s. | |
const gsBasis< gsBSplineTraits < d, T >::Basis::Scalar_t > & | piece (const index_t k) const |
Returns the piece(s) of the function(s) at subdomain k. | |
std::ostream & | print (std::ostream &os) const |
Prints the object as a string. | |
gsMatrix< T > | projectiveCoefs (const gsMatrix< T > &coefs) const |
virtual void | reduceContinuity (int const &i=1) |
Reduces the continuity of the basis along element boundaries. | |
virtual void | refine (gsMatrix< gsBSplineTraits< d, T >::Basis::Scalar_t > const &boxes, int refExt=0) |
Refine the basis on the area defined by the matrix boxes. More... | |
void | refineElements (std::vector< index_t > const &boxes) |
Refines specified areas or boxes, depending on underlying basis. More... | |
void | refineElements_withCoefs (gsMatrix< T > &coefs, std::vector< index_t > const &boxes) |
Refines specified areas or boxes, depending on underlying basis. More... | |
virtual void | refineElements_withCoefs (gsMatrix< gsBSplineTraits< d, T >::Basis::Scalar_t > &coefs, std::vector< index_t > const &boxes) |
Refine basis and geometry coefficients to levels. More... | |
virtual void | reverse () |
Reverse the basis. | |
void | setDegree (short_t const &i) |
Set the degree of the basis (either elevate or reduce) in order to have degree equal to i wrt to each variable. | |
void | setDegreePreservingMultiplicity (short_t const &i) |
Set the degree of the basis (either increase or decrecee) in order to have degree equal to i. | |
void | setWeights (gsMatrix< T > const &w) |
Set weights. | |
index_t | size () const |
size More... | |
void | size_cwise (gsVector< index_t, d > &result) const |
The number of basis functions in the direction of the k-th parameter component. | |
const gsBSplineTraits< d, T > ::Basis & | source () const |
Returns the source basis of the rational basis. | |
gsBSplineTraits< d, T >::Basis & | source () |
void | stride_cwise (gsVector< index_t, d > &result) const |
Returns the strides for all dimensions. | |
gsMatrix< T > | support () const |
Returns (a bounding box for) the domain of the whole basis. More... | |
gsMatrix< T > | support (const index_t &i) const |
Returns (a bounding box for) the support of the i-th basis function. More... | |
gsMatrix< gsBSplineTraits< d, T >::Basis::Scalar_t > | supportInterval (index_t dir) const |
Returns an interval that contains the parameter values in direction dir. More... | |
virtual short_t | targetDim () const |
Dimension of the target space. More... | |
virtual gsBasis::uPtr | tensorize (const gsBasis &other) const |
Return a tensor basis of this and other. | |
short_t | totalDegree () const |
If the basis is of polynomial or piecewise polynomial type, then this function returns the total polynomial degree. | |
virtual void | uniformCoarsen (int numKnots=1) |
Coarsen the basis uniformly by removing groups of numKnots consecutive knots, each knot removed mul times. More... | |
virtual void | uniformCoarsen_withCoefs (gsMatrix< gsBSplineTraits< d, T >::Basis::Scalar_t > &coefs, int numKnots=1) |
Coarsen the basis uniformly. More... | |
virtual void | uniformCoarsen_withTransfer (gsSparseMatrix< gsBSplineTraits< d, T >::Basis::Scalar_t, RowMajor > &transfer, int numKnots=1) |
Coarsen the basis uniformly and produce a sparse matrix which maps coarse coefficient vectors to refined ones. More... | |
void | uniformRefine (int numKnots=1, int mul=1, int dir=-1) |
Refine the basis uniformly by inserting numKnots new knots with multiplicity mul on each knot span. | |
virtual void | uniformRefine_withCoefs (gsMatrix< gsBSplineTraits< d, T >::Basis::Scalar_t > &coefs, int numKnots=1, int mul=1, int dir=-1) |
Refine the basis uniformly. More... | |
virtual void | uniformRefine_withTransfer (gsSparseMatrix< gsBSplineTraits< d, T >::Basis::Scalar_t, RowMajor > &transfer, int numKnots=1, int mul=1) |
Refine the basis uniformly. More... | |
T & | weight (int i) |
Access to i-th weight. | |
const T & | weight (int i) const |
Const access to i-th weight. | |
const gsMatrix< T > & | weights () const |
Returns the weights of the rational basis. | |
gsMatrix< T > & | weights () |
Returns the weights of the rational basis. | |
Evaluation functions | |
virtual void | active_into (const gsMatrix< gsBSplineTraits< d, T >::Basis::Scalar_t > &u, gsMatrix< index_t > &result) const |
Returns the indices of active basis functions at points u, as a list of indices, in result. A function is said to be active in a point if this point lies in the closure of the function's support. More... | |
virtual void | eval_into (const gsMatrix< gsBSplineTraits< d, T >::Basis::Scalar_t > &u, gsMatrix< gsBSplineTraits< d, T >::Basis::Scalar_t > &result) const |
Evaluates nonzero basis functions at point u into result. More... | |
virtual void | evalSingle_into (index_t i, const gsMatrix< gsBSplineTraits< d, T >::Basis::Scalar_t > &u, gsMatrix< gsBSplineTraits< d, T >::Basis::Scalar_t > &result) const |
Evaluate the i-th basis function at points u into result. | |
virtual void | deriv_into (const gsMatrix< gsBSplineTraits< d, T >::Basis::Scalar_t > &u, gsMatrix< gsBSplineTraits< d, T >::Basis::Scalar_t > &result) const |
Evaluates the first partial derivatives of the nonzero basis function. More... | |
virtual void | deriv2_into (const gsMatrix< gsBSplineTraits< d, T >::Basis::Scalar_t > &u, gsMatrix< gsBSplineTraits< d, T >::Basis::Scalar_t > &result) const |
Evaluate the second derivatives of all active basis function at points u. More... | |
gsMatrix< gsBSplineTraits< d, T >::Basis::Scalar_t > | evalSingle (index_t i, const gsMatrix< gsBSplineTraits< d, T >::Basis::Scalar_t > &u) const |
Evaluate a single basis function i at points u. | |
gsMatrix< gsBSplineTraits< d, T >::Basis::Scalar_t > | derivSingle (index_t i, const gsMatrix< gsBSplineTraits< d, T >::Basis::Scalar_t > &u) const |
Evaluate a single basis function i derivative at points u. | |
gsMatrix< gsBSplineTraits< d, T >::Basis::Scalar_t > | deriv2Single (index_t i, const gsMatrix< gsBSplineTraits< d, T >::Basis::Scalar_t > &u) const |
Evaluate the second derivative of a single basis function i at points u. | |
gsVector< index_t > | numActive (const gsMatrix< gsBSplineTraits< d, T >::Basis::Scalar_t > &u) const |
Number of active basis functions at an arbitrary parameter value. More... | |
virtual void | numActive_into (const gsMatrix< gsBSplineTraits< d, T >::Basis::Scalar_t > &u, gsVector< index_t > &result) const |
Returns the number of active (nonzero) basis functions at points u in result. | |
virtual bool | isActive (const index_t i, const gsVector< gsBSplineTraits< d, T >::Basis::Scalar_t > &u) const |
Returns true if there the point u with non-zero value or derivatives when evaluated at the basis function i. | |
virtual void | activeCoefs_into (const gsVector< gsBSplineTraits< d, T >::Basis::Scalar_t > &u, const gsMatrix< gsBSplineTraits< d, T >::Basis::Scalar_t > &coefs, gsMatrix< gsBSplineTraits< d, T >::Basis::Scalar_t > &result) const |
Returns the matrix result of active coefficients at points u, each row being one coefficient. The order of the rows is the same as active_into and eval_into functions. More... | |
virtual void | derivSingle_into (index_t i, const gsMatrix< gsBSplineTraits< d, T >::Basis::Scalar_t > &u, gsMatrix< gsBSplineTraits< d, T >::Basis::Scalar_t > &result) const |
Evaluates the (partial) derivatives of the i-th basis function at points u into result. More... | |
virtual void | deriv2Single_into (index_t i, const gsMatrix< gsBSplineTraits< d, T >::Basis::Scalar_t > &u, gsMatrix< gsBSplineTraits< d, T >::Basis::Scalar_t > &result) const |
Evaluate the (partial) derivatives of the i-th basis function at points u into result. | |
virtual void | evalAllDersSingle_into (index_t i, const gsMatrix< gsBSplineTraits< d, T >::Basis::Scalar_t > &u, int n, gsMatrix< gsBSplineTraits< d, T >::Basis::Scalar_t > &result) const |
Evaluate the basis function i and its derivatives up to order n at points u into result. | |
virtual void | evalDerSingle_into (index_t i, const gsMatrix< gsBSplineTraits< d, T >::Basis::Scalar_t > &u, int n, gsMatrix< gsBSplineTraits< d, T >::Basis::Scalar_t > &result) const |
Evaluate the (partial) derivative(s) of order n the i-th basis function at points u into result. | |
virtual gsMatrix < gsBSplineTraits< d, T > ::Basis::Scalar_t > | laplacian (const gsMatrix< gsBSplineTraits< d, T >::Basis::Scalar_t > &u) const |
Compute the Laplacian of all nonzero basis functions at points u. | |
Static Public Member Functions | |
static gsMatrix< T > | projectiveCoefs (const gsMatrix< T > &coefs, const gsMatrix< T > &weights) |
static void | setFromProjectiveCoefs (const gsMatrix< T > &pr_coefs, gsMatrix< T > &coefs, gsMatrix< T > &weights) |
Geometry evaluation functions | |
These functions evaluate not the individual basis functions of the basis, but a geometry object which is represented by a coefficient matrix w.r.t. this basis object. For the format of the coefficient matrix, see gsGeometry. These functions have default implementations which simply compute the basis function values and perform linear combination, but they may be overridden in derived classes if a higher-performance implementation is possible. | |
virtual void | evalFunc_into (const gsMatrix< gsBSplineTraits< d, T >::Basis::Scalar_t > &u, const gsMatrix< gsBSplineTraits< d, T >::Basis::Scalar_t > &coefs, gsMatrix< gsBSplineTraits< d, T >::Basis::Scalar_t > &result) const |
Evaluate the function described by coefs at points u, i.e., evaluates a linear combination of coefs x BasisFunctions, into result. More... | |
gsMatrix< gsBSplineTraits< d, T >::Basis::Scalar_t > | evalFunc (const gsMatrix< gsBSplineTraits< d, T >::Basis::Scalar_t > &u, const gsMatrix< gsBSplineTraits< d, T >::Basis::Scalar_t > &coefs) const |
Evaluate the function described by coefs at points u. More... | |
gsMatrix< gsBSplineTraits< d, T >::Basis::Scalar_t > | derivFunc (const gsMatrix< gsBSplineTraits< d, T >::Basis::Scalar_t > &u, const gsMatrix< gsBSplineTraits< d, T >::Basis::Scalar_t > &coefs) const |
Evaluate the derivatives of the function described by coefs at points u. More... | |
virtual void | derivFunc_into (const gsMatrix< gsBSplineTraits< d, T >::Basis::Scalar_t > &u, const gsMatrix< gsBSplineTraits< d, T >::Basis::Scalar_t > &coefs, gsMatrix< gsBSplineTraits< d, T >::Basis::Scalar_t > &result) const |
Evaluate the derivatives of the function described by coefs at points u. More... | |
virtual void | jacobianFunc_into (const gsMatrix< gsBSplineTraits< d, T >::Basis::Scalar_t > &u, const gsMatrix< gsBSplineTraits< d, T >::Basis::Scalar_t > &coefs, gsMatrix< gsBSplineTraits< d, T >::Basis::Scalar_t > &result) const |
Evaluate the Jacobian of the function described by coefs at points u. Jacobian matrices are stacked in blocks. | |
gsMatrix< gsBSplineTraits< d, T >::Basis::Scalar_t > | deriv2Func (const gsMatrix< gsBSplineTraits< d, T >::Basis::Scalar_t > &u, const gsMatrix< gsBSplineTraits< d, T >::Basis::Scalar_t > &coefs) const |
Evaluates the second derivatives of the function described by coefs at points u. More... | |
virtual void | deriv2Func_into (const gsMatrix< gsBSplineTraits< d, T >::Basis::Scalar_t > &u, const gsMatrix< gsBSplineTraits< d, T >::Basis::Scalar_t > &coefs, gsMatrix< gsBSplineTraits< d, T >::Basis::Scalar_t > &result) const |
Evaluates the second derivatives of the function described by coefs at points u. More... | |
virtual void | evalAllDersFunc_into (const gsMatrix< gsBSplineTraits< d, T >::Basis::Scalar_t > &u, const gsMatrix< gsBSplineTraits< d, T >::Basis::Scalar_t > &coefs, const unsigned n, std::vector< gsMatrix< gsBSplineTraits< d, T >::Basis::Scalar_t > > &result, bool sameElement=false) const |
Evaluates all derivatives up to order n of the function described by coefs at points u. More... | |
static void | linearCombination_into (const gsMatrix< gsBSplineTraits< d, T >::Basis::Scalar_t > &coefs, const gsMatrix< index_t > &actives, const gsMatrix< gsBSplineTraits< d, T >::Basis::Scalar_t > &values, gsMatrix< gsBSplineTraits< d, T >::Basis::Scalar_t > &result, bool sameElement=false) |
Computes the linear combination coefs * values( actives ) More... | |
Returns the indices of active (nonzero) functions at points u, as a list of indices.
Indices of active (non-zero) function(s) for each point.
The columns are sorted in increasing order, if on a point there are less active then the number of rows in the result matrix (some other point has more actives) then the rest of the column is filled with 0s.
u | |
result |
Reimplemented in gsHTensorBasis< d, T >, gsBasis< T >, gsBasis< Scalar >, gsBasis< real_t >, gsTensorBSplineBasis< 1, T >, gsTensorBSplineBasis< d, T >, gsTensorBSplineBasis< domainDim+1, T >, gsTensorBasis< d, T >, gsTensorBasis< 1, T >, gsTHBSplineBasis< d, T >, gsLagrangeBasis< T >, gsMappedSingleBasis< d, T >, gsFunction< T >, gsConstantBasis< T >, gsLegendreBasis< T >, gsMonomialBasis< T >, and gsMvLegendreBasis< T >.
|
virtualinherited |
Returns the indices of active basis functions at points u, as a list of indices, in result. A function is said to be active in a point if this point lies in the closure of the function's support.
[in] | u | gsMatrix containing evaluation points. Each column represents one evaluation point. |
[out] | result | For every column i of u, a column containing the indices of the active basis functions at evaluation point u.col(i). |
|
virtualinherited |
Returns the matrix result of active coefficients at points u, each row being one coefficient. The order of the rows is the same as active_into and eval_into functions.
[in] | u | gsVector containing an evaluation point. |
[in] | coefs | gsMatrix is a coefficient matrix with as many rows as the size of the basis |
[out] | result | For every column i of u, a column containing the indices of the active basis functions at evaluation point u.col(i). |
|
inlineinherited |
Returns the anchor points that represent the members of the basis. There is exactly one anchor point per basis function.
The exact definition of the anchor points depends on the particular basis. For instance, for a Bspline basis these are the Greville abscissae. In general, evaluating a function at the anchor points should provide enough information to interpolate that function using this basis.
|
virtualinherited |
Returns the anchor points that represent the members of the basis in result. There is exactly one anchor point per basis function.
The exact definition of the anchor points depends on the particular basis. For instance, for a Bspline basis these are the Greville abscissae. In general, evaluating a function at the anchor points should provide enough information to interpolate that function using this basis.
Returns the indices of the basis functions that are nonzero at the domain boundary. If an offset is provided (the default is zero), it will return the indizes of the basis functions having this offset to the provided boxSide. Note that the offset cannot be bigger than the size of the basis in the direction orthogonal to boxSide.
Reimplemented from gsBasis< gsBSplineTraits< d, T >::Basis::Scalar_t >.
|
inherited |
Computes the collocation matrix w.r.t. points u.
The collocation matrix is a sparse matrix with u.cols rows and size() columns. The entry (i,j) is the value of basis function j at evaluation point i.
|
virtualinherited |
Returns the basis that corresponds to the component.
b | The component |
indices | The row vector where the indices are stored to |
noBoundary | If true, the transfer matrix does not include parts belonging to lower-order components (i.e., edges without corners or faces without corners and edges) |
|
virtualinherited |
Computes function data.
This function evaluates the functions and their derivatives at the points in and writes them in the corresponding fields of out. Which field to write (and what to compute) is controlled by the out.flags (see also gsFuncData).
The input points in are expected to be compatible with the implementation/representation of the function, i.e. they should be points inside the domain of definitition of the function
[in] | in | |
[out] | out |
Reimplemented in gsGeometry< T >, and gsConstantFunction< T >.
|
virtualinherited |
Returns the connectivity structure of the basis The returned mesh has vertices the rows of matrix nodes
|
virtualinherited |
Returns the connectivity structure of the basis The returned mesh has the anchor points as vertices
Evaluate the derivatives,.
Evaluates the second derivatives of active (i.e., non-zero) functions at points u.
See documentation for deriv2_into() (the one without input parameter coefs) for details.
[in] | u | Evaluation points in columns. |
Second derivatives.
For scalar valued functions \(f_1, \ldots, f_S\) from \(\mathbb{R}^n\rightarrow\mathbb{R}\) format is:
\[ \left[ \begin{array}{ccccc} \partial_{1}\partial_{1}f_1(p_1) & \partial_{1}\partial_{1}f_1(p_2) & \ldots & \partial_{1}\partial_{1}f_1(p_N)\\ \partial_{2}\partial_{2}f_1(p_1) & \partial_{2}\partial_{2}f_1(p_2) & \ldots & \partial_{2}\partial_{2}f_1(p_N)\\ \vdots & \vdots & & \vdots\\ \partial_{k}\partial_{k}f_1(p_1) & \partial_{k}\partial_{k}f_1(p_2) & \ldots & \partial_{k}\partial_{k}f_1(p_N)\\ \partial_{1}\partial_{2}f_1(p_1) & \partial_{1}\partial_{2}f_1(p_2) & \ldots & \partial_{1}\partial_{2}f_1(p_N)\\ \partial_{1}\partial_{3}f_1(p_1) & \partial_{1}\partial_{3}f_1(p_2) & \ldots & \partial_{1}\partial_{3}f_1(p_N)\\ \vdots & \vdots & & \vdots\\ \partial_{1}\partial_{k}f_1(p_1) & \partial_{1}\partial_{k}f_1(p_2) & \ldots & \partial_{1}\partial_{k}f_1(p_N)\\ \partial_{2}\partial_{3}f_1(p_1) & \partial_{2}\partial_{3}f_1(p_2) & \ldots & \partial_{2}\partial_{3}f_1(p_N)\\ \vdots & \vdots & & \vdots\\ \partial_{2}\partial_{k}f_1(p_1) & \partial_{2}\partial_{k}f_1(p_2) & \ldots & \partial_{2}\partial_{k}f_1(p_N)\\ \partial_{3}\partial_{4}f_1(p_1) & \partial_{3}\partial_{4}f_1(p_2) & \ldots & \partial_{3}\partial_{4}f_1(p_N)\\ \vdots & \vdots & & \vdots\\ \partial_{k-1}\partial_{k}f_1(p_1) & \partial_{k-1}\partial_{k}f_1(p_2) & \ldots & \partial_{k-1}\partial_{k}f_1(p_N)\\ \partial_{1}\partial_{1}f_2(p_1) & \partial_{1}\partial_{1}f_2(p_2) & \ldots & \partial_{1}\partial_{1}f_2(p_N)\\ \vdots & \vdots & & \vdots\\ \partial_{k-1}\partial_{k}f_S(p_1) & \partial_{k-1}\partial_{k}f_S(p_2) & \ldots & \partial_{k-1}\partial_{k}f_S(p_N)\\ \end{array} \right] \]
For vector valued functions function \(f_1, \ldots, f_S\) from \(\mathbb{R}^n\rightarrow\mathbb{R}^{m}\) the format is:
\[ \left[ \begin{array}{ccccc} \partial_{1}\partial_{1}f_1^{(1)}(p_1) & \partial_{1}\partial_{1}f_1^{(1)}(p_2) & \ldots & \partial_{1}\partial_{1}f_1^{(1)}(p_N)\\ \partial_{2}\partial_{2}f_1^{(1)}(p_1) & \partial_{2}\partial_{2}f_1^{(1)}(p_2) & \ldots & \partial_{2}\partial_{2}f_1^{(1)}(p_N)\\ \vdots & \vdots & & \vdots\\ \partial_{k}\partial_{k}f_1^{(1)}(p_1) & \partial_{k}\partial_{k}f_1^{(1)}(p_2) & \ldots & \partial_{k}\partial_{k}f_1^{(1)}(p_N)\\ \partial_{1}\partial_{2}f_1^{(1)}(p_1) & \partial_{1}\partial_{2}f_1^{(1)}(p_2) & \ldots & \partial_{1}\partial_{2}f_1^{(1)}(p_N)\\ \partial_{1}\partial_{3}f_1^{(1)}(p_1) & \partial_{1}\partial_{3}f_1^{(1)}(p_2) & \ldots & \partial_{1}\partial_{3}f_1^{(1)}(p_N)\\ \vdots & \vdots & & \vdots\\ \partial_{k-1}\partial_{k}f_1{(1)}(p_1) & \partial_{k-1}\partial_{k}f_1^{(1)}(p_2) & \ldots & \partial_{k-1}\partial_{k}f_1^{(1)}(p_N)\\ \partial_{1}\partial_{1}f_1^{(2)}(p_1) & \partial_{1}\partial_{1}f_1^{(2)}(p_2) & \ldots & \partial_{1}\partial_{1}f_1^{(2)}(p_N)\\ \vdots & \vdots & & \vdots\\ \partial_{k-1}\partial_{k}f_1^{(m)}(p_1) & \partial_{k-1}\partial_{k}f_1^{(m)}(p_2) & \ldots & \partial_{k-1}\partial_{k}f_1^{(m)}(p_N)\\ \vdots & \vdots & & \vdots\\ \partial_{k-1}\partial_{k}f_S^{(m)}(p_1) & \partial_{k-1}\partial_{k}f_S^{(m)}(p_2) & \ldots & \partial_{k-1}\partial_{k}f_S^{(m)}(p_N)\\ \end{array} \right] \]
where \( f^{(i)}_j\) is the \(i\)-th component of function \( f_j\) of the set.
u | |
result |
Reimplemented in gsBasis< T >, gsBasis< Scalar >, gsBasis< real_t >, gsTensorBSplineBasis< 1, T >, gsTensorBasis< d, T >, gsTensorBasis< 1, T >, gsGeometry< T >, gsFunctionExpr< T >, gsFunction< T >, gsLagrangeBasis< T >, gsMappedSingleBasis< d, T >, gsConstantFunction< T >, gsTHBSplineBasis< d, T >, gsPreCICEFunction< T >, gsLegendreBasis< T >, gsAffineFunction< T >, gsHBSplineBasis< d, T >, gsMappedSingleSpline< d, T >, gsMonomialBasis< T >, gsMvLegendreBasis< T >, gsGeometryTransform< T >, and gsFuncCoordinate< T >.
|
virtualinherited |
Evaluate the second derivatives of all active basis function at points u.
Input parameter u is a gsMatrix of size d x N, where
d is the dimension of the parameter domain and
N is the number of evaluation points.
Each column of u corresponds to the coordinates of one evaluation point.
result is a gsMatrix of size (K * d) x N, where
K is the number of active basis functions at the evaluation point.
Each column of result corresponds to a column of u. It contains the "pure" and the mixed derivatives for each active basis function, "above" each other.
Example (bivariate): Let \(B_i(x,y)\), d = 2 be bivariate basis functions, and let the functions with indices 3,4,7, and 8 (K = 4) be active at an evaluation point u. Then, the corresponding column of result represents:
\( ( \partial_{xx}\, B_3(u), \partial_{yy}\, B_3(u), \partial_{xy}\, B_3(u), \partial_{xx}\, B_4(u), \partial_{yy}\, B_4(u), \partial_{xy}\, B_4(u), \partial_{xx}\, B_7(u), ... , \partial_{xy}\, B_8(u) )^T \)
Example (trivariate): Let \(B_i(x,y,z)\), d = 3 be trivariate basis functions, and let the functions with indices 3,4,7, and 8 be active at an evaluation point u. Then, the corresponding column of result represents:
\(( \partial_{xx}\, B_3(u), \partial_{yy}\, B_3(u), \partial_{zz}\, B_3(u), \partial_{xy}\, B_3(u), \partial_{xz}\, B_3(u), \partial_{yz}\, B_3(u), \partial_{xx}\, B_4(u), ... , \partial_{yz}\, B_8(u) )^T \)
[in] | u | Evaluation points in columns (see above for format). |
[in,out] | result | For every column of u, a column containing the second derivatives as described above. |
See also deriv2() (the one without input parameter coefs).
|
inlineinherited |
Evaluates the second derivatives of the function described by coefs at points u.
See documentation for deriv2_into() (the one with input parameter coefs) for details.
[in] | u | Evaluation points in columns. |
[in] | coefs | Coefficient matrix describing the geometry in this basis. |
|
virtualinherited |
Evaluates the second derivatives of the function described by coefs at points u.
...i.e., evaluates a linear combination of coefs * (2nd derivatives of basis functions), into result.
Evaluation points u are given as gsMatrix of size d x N, where
d is the dimension of the parameter domain and
N is the number of evaluation points.
Each column of u corresponds to the coordinates of one evaluation point.
The coefficients coefs are given as gsMatrix of size N x n, where
N is the number of points = number of basis functions and
n is the dimension of the physical domain.
Each row of coefs corresponds to the coordinates of one control point.
Let the function \( f: \mathbb R^3 \to \mathbb R^3\) be given by
\[ f = ( f_1, f_2, f_3)^T = \sum_{i=1}^N c_i B_i(x,y,z), \]
where \( B_i(x,y,z)\) are scalar basis functions and \(c_i\) are the corresponding (m-dimensional) control points. Then, for each column in u, the corresponding column in result represents
\[ ( \partial_{xx}\ f_1, \partial_{yy}\ f_1, \partial_{zz}\ f_1, \partial_{xy}\ f_1, \partial_{xz}\ f_1, \partial_{yz}\ f_1, \partial_{xx}\ f_2, \partial_{yy}\ f_2, \ldots , \partial_{xz}\ f_3, \partial_{yz}\ f_3)^T. \]
at the respective evaluation point.
[in] | u | Evaluation points in columns (see above for format). |
[in] | coefs | Coefficient matrix describing the geometry in this basis. |
[out] | result | For every column of u, a column containing the second derivatives at the respective point in the format described above. |
This function has a default implementation that may be overridden in derived classes for higher performance.
See also deriv2() (the one with input parameter coefs).
First derivatives.
For scalar valued functions \(f_1, \ldots, f_S\) from \(\mathbb{R}^n\rightarrow\mathbb{R}\) format is:
\[ \left[ \begin{array}{ccccc} \partial_{1}f_1(p_1) & \partial_{1}f_1(p_2) & \ldots & \partial_{1}f_1(p_N)\\ \partial_{2}f_1(p_1) & \partial_{2}f_1(p_2) & \ldots & \partial_{2}f_1(p_N)\\ \vdots & \vdots & & \vdots\\ \partial_{k}f_1(p_1) & \partial_{k}f_1(p_2) & \ldots & \partial_{k}f_1(p_N)\\ \partial_{1}f_2(p_1) & \partial_{1}f_2(p_2) & \ldots & \partial_{1}f_2(p_N)\\ \vdots & \vdots & & \vdots\\ \partial_{k}f_S(p_1) & \partial_{k}f_S(p_2) & \ldots & \partial_{k}f_S(p_N)\\ \end{array} \right] \]
For vector valued functions function \(f_1, \ldots, f_S\) from \(\mathbb{R}^n\rightarrow\mathbb{R}^{m}\) the format is:
\[ \left[ \begin{array}{ccccc} \partial_{1}f_1^1(p_1) & \partial_{1}f_1^1(p_2) & \ldots & \partial_{1}f_1^1(p_N)\\ \partial_{2}f_1^1(p_1) & \partial_{1}f_2^1(p_2) & \ldots & \partial_{1}f_2^1(p_N)\\ \vdots & \vdots & & \vdots\\ \partial_{k}f_1^1(p_1) & \partial_{k}f_1^1(p_2) & \ldots & \partial_{k}f_1^1(p_N)\\ \partial_{1}f_1^2(p_1) & \partial_{1}f_1^2(p_2) & \ldots & \partial_{1}f_1^2(p_N)\\ \vdots & \vdots & & \vdots\\ \partial_{k}f_1^2(p_1) & \partial_{k}f_1^2(p_2) & \ldots & \partial_{k}f_1^2(p_N)\\ \partial_{1}f_2^1(p_1) & \partial_{1}f_2^1(p_2) & \ldots & \partial_{1}f_2^1(p_N)\\ \vdots & \vdots & & \vdots\\ \partial_{k}f_S^{(m)}(p_1) & \partial_{k}f_S^{(m)}(p_2) & \ldots & \partial_{k}f_S^{(m)}(p_N) \end{array} \right] \]
where \(f^{(i)}_j\) is the \(i\)-th component of function \(f_j\) of the set.
u | |
result |
Reimplemented in gsBasis< T >, gsBasis< Scalar >, gsBasis< real_t >, gsTensorBasis< d, T >, gsTensorBasis< 1, T >, gsTensorBSplineBasis< 1, T >, gsGeometry< T >, gsFunctionExpr< T >, gsLagrangeBasis< T >, gsMappedSingleBasis< d, T >, gsFunction< T >, gsConstantFunction< T >, gsTHBSplineBasis< d, T >, gsPreCICEFunction< T >, gsAffineFunction< T >, gsHBSplineBasis< d, T >, gsLegendreBasis< T >, gsMappedSingleSpline< d, T >, gsMvLegendreBasis< T >, gsMonomialBasis< T >, gsConstantBasis< T >, gsGeometrySlice< T >, gsSquaredDistance< T >, gsBasisFun< T >, gsGeometryTransform< T >, and gsFuncCoordinate< T >.
|
virtualinherited |
Evaluates the first partial derivatives of the nonzero basis function.
Let
d denote the dimension of the parameter domain.
K denote the number of active (i.e., non-zero) basis functions (see active_into()).
N denote the number of evaluation points.
The N evaluation points u are given in a gsMatrix of size d x N. Each column of u represents one evaluation point.
The gsMatrix result contains the computed derivatives in the following form:
Column j of result corresponds to one evaluation point (specified by the j-th column of u). The column contains the gradients of all active functions "above" each other.
For example, for scalar basis functions \(B_i : (x,y,z)-> R\), a column represents
\((dx B_1, dy B_1, dz B_1, dx B_2, dy B_2, dz B_2, ... , dx B_n, dy B_N, dz B_N)^T\),
where the order the basis functions \(B_i\) is as returned by active() and active_into().
[in] | u | Evaluation points given as gsMatrix of size d x N. See above for details. |
[in,out] | result | gsMatrix of size (K*d) x N. See above for details. |
|
inlineinherited |
Evaluate the derivatives of the function described by coefs at points u.
u | evaluation points as N column vectors |
coefs | coefficient matrix describing the geometry in this basis, n columns |
|
virtualinherited |
Evaluate the derivatives of the function described by coefs at points u.
Evaluates a linear combination of coefs*BasisFunctionDerivatives, into result.
This function has a default implementation that may be overridden in derived classes for higher performance.
Let the function \(f: \mathbb R^d \to \mathbb R^m \) be described by the coefficients coefs, i.e.,
each evaluation point is in \(\mathbb R^d\), and
each coefficient is a point in \(\mathbb R^m\).
The N evaluation points u are given in a gsMatrix of size d x N. Each column of u represents one evaluation point.
The K coefficients coefs are given as a gsMatrix of size K x m. Each row of coefs represents one coefficient in \(\mathbb R^m\).
The gsMatrix result contains the following data:
For every column of u, the corresponding column in the matrix result contains the gradients of the m components of the function above each other. Hence, the size of result is (d*m) x N.
Example 1:
Let \(f(s,t)\) be a bivariate scalar function, \(f:\mathbb R^2 \to \mathbb R\) (i.e., d=2, m=1), and let the evaluation point \( u_i\) be represented by the i-th column of u.
Then, result has the form
\[ \left( \begin{array}{cccc} \partial_s f(u_1) & \partial_s f(u_2) & \ldots & \partial_t f(u_{N}) \\ \partial_t f(u_1) & \partial_t f(u_2) & \ldots & \partial_t f(u_{N}) \end{array} \right) \]
Example 2:
Let \(f(s,t) = ( f_1(s,t), f_2(s,t), f_3(s,t) )\) represent a surface in space, \(f:\mathbb R^2 \to \mathbb R^3\) (i.e., d=2, m=3), and let the evaluation point \( u_i\) be represented by the i-th column of u.
Then, result has the form
\[ \left( \begin{array}{ccccccc} \partial_s f_1(u_1) & \partial_s f_1(u_2) & \ldots & \partial_s f_1(u_N) \\ \partial_t f_1(u_1) & \partial_t f_1(u_2) & \ldots & \partial_t f_1(u_N) \\ \partial_s f_2(u_1) & \partial_s f_2(u_2) & \ldots & \partial_s f_2(u_N) \\ \partial_t f_2(u_1) & \partial_t f_2(u_2) & \ldots & \partial_t f_2(u_N) \\ \partial_s f_3(u_1) & \partial_s f_3(u_2) & \ldots & \partial_s f_3(u_N) \\ \partial_t f_3(u_1) & \partial_t f_3(u_2) & \ldots & \partial_t f_3(u_N) \\ \end{array} \right) \]
[in] | u | Evaluation points as d x N-matrix. |
[in] | coefs | Coefficient matrix describing the geometry in this basis as K x m-matrix. K should equal the size() of the basis, i.e., the number basis functions. |
[in,out] | result | gsMatrix of size d*m x N, see above for format. |
where
d is the dimension of the parameter domain
m is the dimension of the physical domain
N is the number of evaluation points
K is the number of coefficients
|
virtualinherited |
Evaluates the (partial) derivatives of the i-th basis function at points u into result.
See deriv_into() for detailed documentation.
|
inlinevirtualinherited |
Return the gsDomain which represents the parameter domain of this basis. Currently unused.
Reimplemented from gsBasis< gsBSplineTraits< d, T >::Basis::Scalar_t >.
|
inlinevirtualinherited |
Dimension of the (source) domain.
Implements gsFunctionSet< T >.
Evaluate the function,.
Evaluates the function(s).
For scalar valued functions \(f_1, \ldots, f_S\) from \(\mathbb{R}^n\rightarrow\mathbb{R}\) format is:
\[ \left[ \begin{array}{ccccc} f_1(p_1) & f_1(p_2) & \ldots & f_1(p_N)\\ f_2(p_1) & f_2(p_2) & \ldots & f_2(p_N)\\ \vdots & \vdots & & \vdots\\ f_S(p_1) & f_S(p_2) & \ldots & f_S(p_N) \end{array} \right] \]
For vector valued functions function \(f_1, \ldots, f_S\) from \(\mathbb{R}^n\rightarrow\mathbb{R}^m\) the format is:
\[ \left[ \begin{array}{ccccc} f_1^1(p_1) & f_1^{(1)}(p_2) & \ldots & f_1^{(1)}(p_N)\\ f_1^2(p_1) & f_1^{(2)}(p_2) & \ldots & f_1^{(2)}(p_N)\\ \vdots & \vdots & & \vdots\\ f_1^{(m)}(p_1) & f_1^{(m)}(p_2) & \ldots & f_1^{(m)}(p_N)\\ f_2^{(1)}(p_1) & f_2^{(1)}(p_2) & \ldots & f_2^{(1)}(p_N)\\ \vdots & \vdots & & \vdots\\ f_S^{(m)}(p_1) & f_S^{(m)}(p_2) & \ldots & f_S^{(m)}(p_N) \end{array} \right] \]
where \(f^{(i)}_j\) is the \(i\)-th component of function \(f_j\) of the set.
u | |
result |
Reimplemented in gsBasis< T >, gsBasis< Scalar >, gsBasis< real_t >, gsTHBSplineBasis< d, T >, gsPatchIdField< T >, gsMaterialMatrixEvalSingle< T, out >, gsParamField< T >, gsTensorBSplineBasis< 1, T >, gsTensorBasis< d, T >, gsTensorBasis< 1, T >, gsShellStressFunction< T >, gsMaterialMatrixIntegrateSingle< T, out >, gsNormalField< T >, gsFsiLoad< T >, gsFunctionExpr< T >, gsGeometry< T >, gsLagrangeBasis< T >, gsMappedSingleBasis< d, T >, gsPiecewiseFunction< T >, gsConstantFunction< T >, gsJacDetField< T >, gsDetFunction< T >, gsRemapInterface< T >, gsFunction< T >, gsGradientField< T >, gsCPPInterface< T >, gsHBSplineBasis< d, T >, gsAffineFunction< T >, gsPreCICEFunction< T >, gsLegendreBasis< T >, gsMvLegendreBasis< T >, gsMappedSingleSpline< d, T >, gsConstantBasis< T >, gsMonomialBasis< T >, gsCauchyStressFunction< T >, gsBasisFun< T >, gsGeometrySlice< T >, gsGeometryTransform< T >, gsFuncCoordinate< T >, gsAbsError< T >, gsElementErrorPlotter< T >, and gsSquaredDistance< T >.
|
virtualinherited |
Evaluates nonzero basis functions at point u into result.
Let...
d denote the dimension of the parameter domain.
K denote the number of active (i.e., non-zero) basis functions (see active_into()). N denote the number of evaluation points.
The n evaluation points u are given in a gsMatrix of size d x N. Each column of u represents one evaluation point.
The gsMatrix result contains the computed function values in the following form:
Column j of result corresponds to one evaluation point (specified by the j-th column of u). The column contains the values of all active functions "above" each other.
For example, for scalar basis functions Bi : (x,y,z)-> R, a column represents
(B1, B2, ... , BN)^T,
where the order the basis functions Bi is as returned by active() and active_into().
[in] | u | Evaluation points given as gsMatrix of size d x N. See above for details. |
[in,out] | result | gsMatrix of size K x N. See above for details. |
|
inherited |
Evaluate all derivatives upto order n,.
|
virtualinherited |
Evaluate the nonzero functions and their derivatives up to order n at points u into result.
The derivatives (the 0-th derivative is the function value) are stored in a result. result is a std::vector, where result[i] is a gsMatrix which contains the i-th derivatives.
The entries in result[0], result[1], and result[2] are ordered as in eval_into(), deriv_into(), and deriv2_into(), respectively. For i > 2, the derivatives are stored in lexicographical order, e.g. for order i = 3 and dimension 2 the derivatives are stored as follows: \( \partial_{xxx}, \, \partial_{xxy}, \, \partial_{xyy}, \, \partial_{yyy}.\, \)
[in] | u | Evaluation points, each column corresponds to one evaluation point. |
[in] | n | All derivatives up to order n are computed and stored in result. |
[in,out] | result | See above for format. |
Reimplemented in gsTensorBSplineBasis< 1, T >, gsTensorBasis< d, T >, gsTensorBasis< 1, T >, gsGeometry< T >, gsMappedSingleBasis< d, T >, gsConstantFunction< T >, gsTHBSplineBasis< d, T >, gsMappedSingleSpline< d, T >, and gsSquaredDistance< T >.
|
virtualinherited |
Evaluates all derivatives up to order n of the function described by coefs at points u.
Evaluation points u are given as gsMatrix of size d x N, where
d is the dimension of the parameter domain and
N is the number of evaluation points.
Each column of u corresponds to the coordinates of one evaluation point.
The coefficients coefs are given as gsMatrix of size K x n, where
K is the number of (active) basis functions (=size()) and
n is the dimension of the physical domain.
Each row of coefs corresponds to the coordinates of one control point.
result is a std::vector, where the entry result[i] contains the gsMatrix corresponding to the i-th derivatives. The format of the respective entry is as in
evalFunc_into()
derivFunc_into()
deriv2Func_into()
[in] | u | |
[in] | coefs | |
[in] | n | |
[out] | result |
|
inlineinherited |
Evaluate the function described by coefs at points u.
This function has a default implementation that may be overridden in derived classes for higher performance.
u | evaluation points as m column vectors |
coefs | coefficient matrix describing the geometry in this basis, n columns |
|
virtualinherited |
Evaluate the function described by coefs at points u, i.e., evaluates a linear combination of coefs x BasisFunctions, into result.
This function has a default implementation that may be overridden in derived classes for higher performance.
u | evaluation points as N column vectors | |
coefs | coefficient matrix describing the geometry in this basis, n columns | |
[out] | result | a matrix of size n x N with one function value as a column vector per evaluation point |
|
inherited |
Returns the i-th basis function as a gsFunction.
Note that the gsBasisFun object only holds a reference to the current basis, so it is invalidated when the basis is destroyed.
|
staticinherited |
Computes the linear combination coefs * values( actives )
[in] | coefs | gsMatrix of size K x m, where K should equal size() of the basis (i.e., the number of basis functions). |
[in] | actives | gsMatrix of size numAct x numPts |
[in] | values | gsMatrix of size stride*numAct x numPts |
[out] | result | gsMatrix of size stride x numPts |
|
inlinevirtualinherited |
Clone the source of this basis in case of rational basis, same as clone() otherwise
Reimplemented from gsBasis< gsBSplineTraits< d, T >::Basis::Scalar_t >.
|
virtualinherited |
Computes the indices of DoFs that match on the interface bi. The interface is assumed to be a common face between this patch and other, with an offset offset. The output is two lists of indices bndThis and bndOther, with indices that match one-to-one on the boundary bi.
NOTE: bndThis will have offset but bndOther will NOT have an offset (hence offset 0)
|
inlineinherited |
Number of active basis functions at an arbitrary parameter value.
Usually, this is used for getting the active functions on one element, assuming that this number doesn't change for different parameters inside the element.
Returns a matrix of projective coefficients. The input coefs are affine coefficients for this basis
|
inlinestaticinherited |
Returns a matrix of projective coefficients. The input coefs are affine coefficients and weights
|
virtualinherited |
Refine the basis on the area defined by the matrix boxes.
boxes is a d x n-matrix (n even), where d is the dimension of the parameter domain.
n must be even, and every 2 successive columns in the matrix define a box in the parameter domain (the first column represents the coordinates of the lower corner, the second column the coordinates of the upper corner).
Example: The input of the matrix
\[ \left[\begin{array}{cccc} 0 & 0.2 & 0.8 & 1 \\ 0.4 & 0.6 & 0.2 & 0.4 \end{array} \right] \]
results in refinement of the two boxes \([0,0.2]\times[0.4,0.6]\) and \([0.8,1]\times[0.2,0.4]\).
[in] | boxes | gsMatrix of size d x n, see above for description of size and meaning. |
[in] | refExt | Extension to be applied to the refinement boxes |
|
inlinevirtualinherited |
Refines specified areas or boxes, depending on underlying basis.
boxes | See the function gsBasis::refineElements() of the underlying basis for syntax. |
Reimplemented from gsBasis< gsBSplineTraits< d, T >::Basis::Scalar_t >.
|
inherited |
Refines specified areas or boxes, depending on underlying basis.
coefs | Coefficients, given as gsMatrix of size \( n \times d\), where \(n\) is the number of basis functions and \(d\) is the target dimension. |
boxes | See the function gsBasis::refineElements() of the underlying basis for syntax. |
|
virtualinherited |
Refine basis and geometry coefficients to levels.
Refines the basis as well as the coefficients. The refinement and the format of the input depend on the implementation of refineElements().
|
inlinestaticinherited |
Sets the weights and the coefs to be the affine coefficients corresponding to the projective coefficients pr_coefs
|
inlinevirtualinherited |
size
Reimplemented from gsFunctionSet< T >.
|
inlinevirtualinherited |
Applicable for rational bases: returns the underlying "source" (non-rational) basis
Reimplemented from gsBasis< gsBSplineTraits< d, T >::Basis::Scalar_t >.
|
inlinevirtualinherited |
Returns (a bounding box for) the domain of the whole basis.
Returns a dx2 matrix, containing the two diagonally extreme corners of a hypercube.
Reimplemented from gsBasis< gsBSplineTraits< d, T >::Basis::Scalar_t >.
Returns (a bounding box for) the support of the i-th basis function.
Returns a dx2 matrix, containing the two diagonally extreme corners of a hypercube.
Reimplemented from gsBasis< gsBSplineTraits< d, T >::Basis::Scalar_t >.
|
inherited |
Returns an interval that contains the parameter values in direction dir.
Returns a 1x2 matrix, containing the two endpoints of the interval.
|
inlinevirtualinherited |
Dimension of the target space.
Reimplemented in gsPatchIdField< T >, gsGeometry< T >, gsParamField< T >, gsNormalField< T >, gsMultiBasis< T >, gsMultiBasis< real_t >, gsMultiPatch< T >, gsMultiPatch< real_t >, gsFsiLoad< T >, gsMaterialMatrixEvalSingle< T, out >, gsMaterialMatrixIntegrateSingle< T, out >, gsFunctionExpr< T >, gsJacDetField< T >, gsDetFunction< T >, gsConstantFunction< T >, gsShellStressFunction< T >, gsGradientField< T >, gsPiecewiseFunction< T >, gsSquaredDistance< T >, gsAffineFunction< T >, gsPreCICEFunction< T >, gsMappedSingleSpline< d, T >, gsBasisFun< T >, gsAbsError< T >, gsGeometrySlice< T >, gsGeometryTransform< T >, gsFuncCoordinate< T >, and gsCauchyStressFunction< T >.
|
virtualinherited |
Coarsen the basis uniformly by removing groups of numKnots consecutive knots, each knot removed mul times.
This function is the oposite of gsBasis::uniformRefine
The execution of
results in no overall change in "basis". However,
is not guaranteed to keep "basis" unchanged.
|
virtualinherited |
Coarsen the basis uniformly.
The function simultainously updates the vector coefs, representing a function in the bases, such that its new version represents the same function.
This function is equivalent to
|
virtualinherited |
Coarsen the basis uniformly and produce a sparse matrix which maps coarse coefficient vectors to refined ones.
The function writes a sparse matrix into the variable transfer that indicates how the functions on the coarse grid are represented as linear combinations as fine grid functions
|
virtualinherited |
Refine the basis uniformly.
The function simultainously updates the vector coefs, representing a function in the bases, such that its new version represents the same function.
This function is equivalent to
|
virtualinherited |
Refine the basis uniformly.
The function writes a sparse matrix into the variable transfer that indicates how the functions on the coarse grid are represented as linear combinations as fine grid functions