Reference documentation for deal.II version GIT relicensing-660-g9ae06c0eb4 2024-05-17 13:10:02+00:00
Searching...
No Matches
LinearAlgebra Namespace Reference

## Namespaces

namespace  CUDAWrappers

namespace  distributed

namespace  EpetraWrappers

namespace  TpetraWrappers

## Classes

class  BlockVector

class  Vector

## Enumerations

enum class  OrthogonalizationStrategy { modified_gram_schmidt , classical_gram_schmidt , delayed_classical_gram_schmidt }

## Functions

template<typename VectorType >
void set_zero_mean_value (VectorType &vector)

TEMPL_COPY_CONSTRUCTOR (double, float)

TEMPL_COPY_CONSTRUCTOR (float, double)

TEMPL_COPY_CONSTRUCTOR (std::complex< double >, std::complex< float >)

TEMPL_COPY_CONSTRUCTOR (std::complex< float >, std::complex< double >)

## ◆ OrthogonalizationStrategy

 strong

Supported orthogonalization strategies within SolverGMRES and SolverFGMRES.

Enumerator
modified_gram_schmidt

Use modified Gram-Schmidt algorithm.

classical_gram_schmidt

Use classical Gram-Schmidt algorithm. Since this approach works on multi-vectors with a single global reduction (of multiple elements), it is more efficient than the modified Gram-Schmidt algorithm. However, it is less stable in terms of roundoff error propagation, requiring additional re-orthogonalization steps more frequently.

delayed_classical_gram_schmidt

Use classical Gram-Schmidt algorithm with two orthogonalization iterations and delayed orthogonalization using the algorithm described in [29]. This approach works on multi-vectors with a single global reduction (of multiple elements) and is more efficient than the modified Gram-Schmidt algorithm. At the same time, it unconditionally performs the second orthogonalization step, making it more stable than the classical Gram-Schmidt variant. For deal.II's own vectors, there is no additional cost compared to the classical Gram-Schmidt algorithm, because the second orthogonalization step is done on cached data. For these beneficial reasons, this is the default algorithm in the SolverGMRES class.

Definition at line 29 of file orthogonalization.h.

## ◆ set_zero_mean_value()

template<typename VectorType >
 void LinearAlgebra::set_zero_mean_value ( VectorType & vector )

Shift all entries of the vector by a constant factor so that the mean value of the vector becomes zero.

Definition at line 35 of file vector_space_vector.h.

## ◆ TEMPL_COPY_CONSTRUCTOR() [1/4]

 LinearAlgebra::TEMPL_COPY_CONSTRUCTOR ( double , float )

## ◆ TEMPL_COPY_CONSTRUCTOR() [2/4]

 LinearAlgebra::TEMPL_COPY_CONSTRUCTOR ( float , double )

## ◆ TEMPL_COPY_CONSTRUCTOR() [3/4]

 LinearAlgebra::TEMPL_COPY_CONSTRUCTOR ( std::complex< double > , std::complex< float > )

## ◆ TEMPL_COPY_CONSTRUCTOR() [4/4]

 LinearAlgebra::TEMPL_COPY_CONSTRUCTOR ( std::complex< float > , std::complex< double > )