G+Smo
24.08.0
Geometry + Simulation Modules
|
This module is responsible for dimension-independent operations on tensor structures and tensor-product bases.
Classes | |
class | gsGenericTensorBasis< d, T > |
Class for a quasi-tensor B-spline basis. More... | |
class | gsGridIterator< T, CWISE, d, false > |
Iterator over a Cartesian product of points, which is given by coordinate-wise point sets. More... | |
class | gsGridIterator< T, mode, d, false > |
Iterator over a Cartesian product of uniformly distributed numeric points inside a (hyper-)cube. More... | |
class | gsGridIterator< Z, mode, d, true > |
Iterator over the Cartesian product of integer points in a tensor-product grid. More... | |
class | gsTensorBasis< d, T > |
Abstract base class for tensor product bases. More... | |
class | gsTensorDomainBoundaryIterator< T, D, uiter > |
Re-implements gsDomainIterator for iteration over all elements of the boundary of a tensor product parameter domain. See gsDomainIterator for more detailed documentation and an example of the typical use!!! More... | |
class | gsTensorDomainIterator< T, D > |
Re-implements gsDomainIterator for iteration over all elements of a tensor product parameter domain. See gsDomainIterator for more detailed documentation and an example of the typical use!!! More... | |
Functions | |
template<typename T , int d> | |
void | flipTensorVector (const int dir, const gsVector< index_t, d > &sz, gsMatrix< T > &coefs) |
Flips tensor directions in place. | |
template<typename T , int d> | |
void | permuteTensorVector (const gsVector< index_t, d > &perm, gsVector< index_t, d > &sz, gsMatrix< T > &coefs) |
template<typename T , int d> | |
void | swapTensorDirection (int k1, int k2, gsVector< index_t, d > &sz, gsMatrix< T > &coefs) |
template<short_t d, typename T > | |
void | tensorCombineTransferMatrices (gsSparseMatrix< T, RowMajor > B[d], gsSparseMatrix< T, RowMajor > &transfer) |
Combine component-wise transfer matrices into a transfer matrix for the tensor product basis. More... | |
void gismo::permuteTensorVector | ( | const gsVector< index_t, d > & | perm, |
gsVector< index_t, d > & | sz, | ||
gsMatrix< T > & | coefs | ||
) |
Reorders (inplace) the given tensor coefs vector (regarded as a sz.prod() x d matrix arranged as a flattened sz tensor, so that the rows are re-arranged according to the input permutation perm. The sz is updated to the new ordering.
void gismo::swapTensorDirection | ( | int | k1, |
int | k2, | ||
gsVector< index_t, d > & | sz, | ||
gsMatrix< T > & | coefs | ||
) |
Reorders (inplace) the given tensor coefs vector (regarded as a sz.prod() x d matrix arranged as a flattened sz tensor, so that the rows are re-arranged so that k1 and k2 are swapped permutation perm. The sz is updated to the new ordering.
void gismo::tensorCombineTransferMatrices | ( | gsSparseMatrix< T, RowMajor > | B[d], |
gsSparseMatrix< T, RowMajor > & | transfer | ||
) |
Combine component-wise transfer matrices into a transfer matrix for the tensor product basis.
Given some kind of transformation (e.g., knot insertion/refinement) which transforms each component basis separately, this function computes a joint transfer matrix transfer which describes the transfer on the whole tensor product basis.
The component transformations are allowed to change the size of the basis.