DOLFINx 0.10.0.0
DOLFINx C++ interface
Loading...
Searching...
No Matches
dolfinx::la Namespace Reference

Linear algebra interface. More...

Classes

class  MatrixCSR
 Distributed sparse matrix. 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, dolfinx::scalar_value_type_t< typename V::value_type > eps=std::numeric_limits< dolfinx::scalar_value_type_t< typename V::value_type > >::epsilon())
 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,
dolfinx::scalar_value_type_t< typename V::value_type > eps = std::numeric_limits< dolfinx::scalar_value_type_t<typename V::value_type>>::epsilon() )

Test if basis is orthonormal.

Returns true if ||x_i - x_j|| - delta_{ij} < eps fro all i, j, and otherwise false.

Parameters
[in]basisSet of vectors to check.
[in]epsTolerance.
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