DOLFINx
0.1.0
DOLFINx C++ interface
|
This class defines a basis for vector spaces, typically used for expressing nullspaces of singular operators and 'near nullspaces' used in smoothed aggregation algebraic multigrid. More...
#include <VectorSpaceBasis.h>
Public Member Functions | |
VectorSpaceBasis (const std::vector< std::shared_ptr< PETScVector >> &basis) | |
Constructor. | |
VectorSpaceBasis (const VectorSpaceBasis &basis)=delete | |
Delete copy constructor. | |
VectorSpaceBasis (VectorSpaceBasis &&basis)=default | |
Move constructor. | |
~VectorSpaceBasis ()=default | |
Destructor. | |
void | orthonormalize (double tol=1.0e-10) |
Apply the Gram-Schmidt process to orthonormalize the basis. Throws an error if a (near) linear dependency is detected. Error is thrown if <x_i, x_i> < tol. | |
bool | is_orthonormal (double tol=1.0e-10) const |
Test if basis is orthonormal. | |
bool | is_orthogonal (double tol=1.0e-10) const |
Test if basis is orthogonal. | |
bool | in_nullspace (const Mat A, double tol=1.0e-10) const |
Test if basis is in null space of A. | |
void | orthogonalize (PETScVector &x) const |
Orthogonalize x with respect to basis. | |
int | dim () const |
Number of vectors in the basis. | |
std::shared_ptr< const PETScVector > | operator[] (int i) const |
Get a particular basis vector. | |
This class defines a basis for vector spaces, typically used for expressing nullspaces of singular operators and 'near nullspaces' used in smoothed aggregation algebraic multigrid.