Note: this is documentation for an old release. View the latest documentation at docs.fenicsproject.org/dolfinx/v0.9.0/cpp/doxygen/d6/dfa/namespacedolfinx_1_1la.html
DOLFINx 0.8.0
DOLFINx C++ interface
Loading...
Searching...
No Matches
Namespaces | Classes | Concepts | Enumerations | Functions
dolfinx::la Namespace Reference

Linear algebra interface. More...

Namespaces

namespace  petsc
 PETSc linear algebra functions.
 

Classes

class  MatrixCSR
 
class  SLEPcEigenSolver
 This class provides an eigenvalue solver for PETSc matrices. It is a wrapper for the SLEPc eigenvalue solver. More...
 
class  SparsityPattern
 
class  Vector
 

Concepts

concept  MatSet
 Matrix accumulate/set concept for functions that can be used in assemblers to accumulate or set values in a matrix.
 

Enumerations

enum class  BlockMode : int { compact = 0 , expanded = 1 }
 Modes for representing block structured matrices. More...
 
enum class  Norm { l1 , l2 , linf , frobenius }
 Norm types.
 

Functions

template<class V >
auto inner_product (const V &a, const V &b)
 
template<class V >
auto squared_norm (const V &a)
 
template<class V >
auto norm (const V &x, Norm type=Norm::l2)
 
template<class V >
void orthonormalize (std::vector< std::reference_wrapper< V > > basis)
 
template<class V >
bool is_orthonormal (std::vector< std::reference_wrapper< const V > > basis)
 Test if basis is orthonormal.
 

Detailed Description

Linear algebra interface.

Interface to linear algebra data structures and solvers.

Enumeration Type Documentation

◆ BlockMode

enum class BlockMode : int
strong

Modes for representing block structured matrices.

Enumerator
expanded 

Each entry in the sparsity pattern of the matrix refers to a block of data of size (bs[0], bs[1]).

Function Documentation

◆ inner_product()

template<class V >
auto inner_product ( const V & a,
const V & b )

Compute the inner product of two vectors. The two vectors must have the same parallel layout

Note
Collective MPI operation
Parameters
aA vector
bA vector
Returns
Returns a^{H} b (a^{T} b if a and b are real)

◆ is_orthonormal()

template<class V >
bool is_orthonormal ( std::vector< std::reference_wrapper< const V > > basis)

Test if basis is orthonormal.

Parameters
[in]basisThe set of vectors to check.
Returns
True is basis is orthonormal, otherwise false.

◆ norm()

template<class V >
auto norm ( const V & x,
Norm type = Norm::l2 )

Compute the norm of the vector

Note
Collective MPI operation
Parameters
xA vector
typeNorm type

◆ orthonormalize()

template<class V >
void orthonormalize ( std::vector< std::reference_wrapper< V > > basis)

Orthonormalize a set of vectors

Parameters
[in,out]basisThe set of vectors to orthonormalise. The vectors must have identical parallel layouts. The vectors are modified in-place.
Template Parameters
Vdolfinx::la::Vector

◆ squared_norm()

template<class V >
auto squared_norm ( const V & a)

Compute the squared L2 norm of vector

Note
Collective MPI operation