Reference documentation for deal.II version GIT relicensing-478-g3275795167 2024-04-24 07:10:02+00:00
\(\newcommand{\dealvcentcolon}{\mathrel{\mathop{:}}}\) \(\newcommand{\dealcoloneq}{\dealvcentcolon\mathrel{\mkern-1.2mu}=}\) \(\newcommand{\jump}[1]{\left[\!\left[ #1 \right]\!\right]}\) \(\newcommand{\average}[1]{\left\{\!\left\{ #1 \right\}\!\right\}}\)
Loading...
Searching...
No Matches
Namespaces | Classes | Enumerations | Functions
LinearAlgebra Namespace Reference

Namespaces

namespace  CUDAWrappers
 
namespace  distributed
 
namespace  EpetraWrappers
 
namespace  TpetraWrappers
 

Classes

class  BlockVector
 
class  ReadWriteVector
 
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 >)
 

Enumeration Type Documentation

◆ OrthogonalizationStrategy

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.

Function Documentation

◆ 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 >   
)