DOLFINx
0.1.0
DOLFINx C++ interface
|
48 bool in_nullspace(
const Mat A,
double tol = 1.0e-10)
const;
57 std::shared_ptr<const PETScVector>
operator[](
int i)
const;
60 const std::vector<std::shared_ptr<PETScVector>> _basis;
int dim() const
Number of vectors in the basis.
Definition: VectorSpaceBasis.cpp:126
void orthogonalize(PETScVector &x) const
Orthogonalize x with respect to basis.
Definition: VectorSpaceBasis.cpp:115
Linear algebra interface.
Definition: sparsitybuild.h:14
std::shared_ptr< const PETScVector > operator[](int i) const
Get a particular basis vector.
Definition: VectorSpaceBasis.cpp:128
A simple wrapper for a PETSc vector pointer (Vec). Its main purpose is to assist with memory/lifetime...
Definition: PETScVector.h:95
bool is_orthonormal(double tol=1.0e-10) const
Test if basis is orthonormal.
Definition: VectorSpaceBasis.cpp:49
bool is_orthogonal(double tol=1.0e-10) const
Test if basis is orthogonal.
Definition: VectorSpaceBasis.cpp:69
This class defines a basis for vector spaces, typically used for expressing nullspaces of singular op...
Definition: VectorSpaceBasis.h:21
~VectorSpaceBasis()=default
Destructor.
VectorSpaceBasis(const std::vector< std::shared_ptr< PETScVector >> &basis)
Constructor.
Definition: VectorSpaceBasis.cpp:16
bool in_nullspace(const Mat A, double tol=1.0e-10) const
Test if basis is in null space of A.
Definition: VectorSpaceBasis.cpp:90
void orthonormalize(double tol=1.0e-10)
Apply the Gram-Schmidt process to orthonormalize the basis. Throws an error if a (near) linear depend...
Definition: VectorSpaceBasis.cpp:23