This class takes care of identifying DOFs on different edges, which must be identified with one another. More...
#include <Glue.hpp>
This class takes care of identifying DOFs on different edges, which must be identified with one another.
The Glue class has routines to assemble continuous B-splines across patch boundaries depending on the template parameter LinearOperatorTraits<Derived>::Form. If this template parameter is equal to DifferentialForm::Continuous, the B-splines are globally glued continuously. Otherwise, it can also be DifferentialForm::DivConforming, in which case the normal component is glued continuously. Finally, there is the option of not gluing the B-splines at all if the parameter is DifferentialForm::Discontinuous.
Public Member Functions | |
Glue (const SuperSpace< Derived > &superspace, const Projector< Derived > &proj) | |
Constructor for the Glue class. More... | |
void | init_Glue (const SuperSpace< Derived > &superspace, const Projector< Derived > &proj) |
Initializes the AnsatzSpace object. More... | |
Eigen::SparseMatrix< double > | get_glue_matrix () const |
Returns Glue matrix to assemble continuous B-splines. More... | |
std::vector< GlueRoutines::dofIdentification > | makeDofIdentificationList (const SuperSpace< Derived > &superspace, const Projector< Derived > &proj) |
Generates a list of degrees of freedom (DOFs) identifications. More... | |
Eigen::SparseMatrix< double > | assembleGlueMatrix (const SuperSpace< Derived > &superspace, const Projector< Derived > &proj) |
Assembles the Glue matrix according to the DOF identification list. More... | |
|
inline |
Constructor for the Glue class.
This constructor initializes a Glue object with the provided SuperSpace and Projector objects.
superspace | The SuperSpace to handle the basis functions. |
proj | The Projector which provides information on the dofs before gluing. |
|
inline |
Assembles the Glue matrix according to the DOF identification list.
This function first sorts the DOFs in each identification list. Than the identification lists get sorted according to the first entries. After that the DOFs get stored in the Glue matrix.
superspace | The SuperSpace reference to handle basis functions. |
proj | The Projector contains the number of DOFs. |
|
inline |
Returns Glue matrix to assemble continuous B-splines.
This function returns the Glue matrix which transforms smooth B-splines to continuous shape functions across patch boundaries. If continuity is not needed this matrix is the identity. Other wise this matrix is a tall thin matrix combining degrees of freedom.
|
inline |
Initializes the AnsatzSpace object.
This function initializes the member variables of the Glue object.
superspace | The SuperSpace to handle the basis functions. |
proj | The Projector which provides information on the dofs before gluing. |
|
inline |
Generates a list of degrees of freedom (DOFs) identifications.
This function creates a list of degrees of freedom (DOFs) identifications which need to be glued together. The return type is a std::vector of GlueRoutines::dofIdentification which collects the DOFs to be glued. Furthermore, the coef in this struct denotes the orientation.
superspace | The SuperSpace reference to handle basis functions. |
proj | The Projector contains the number of DOFs. |