Reference documentation for deal.II version 9.5.0
\(\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 | Typedefs | Enumerations | Functions
LinearAlgebra Namespace Reference

Namespaces

namespace  CUDAWrappers
 
namespace  distributed
 
namespace  EpetraWrappers
 
namespace  TpetraWrappers
 

Classes

class  BlockVector
 
class  ReadWriteVector
 
class  Vector
 
class  VectorSpaceVector
 

Typedefs

using CommunicationPatternBase = Utilities::MPI::CommunicationPatternBase
 

Enumerations

enum class  OrthogonalizationStrategy { modified_gram_schmidt , classical_gram_schmidt }
 

Functions

template<typename Number >
void set_zero_mean_value (VectorSpaceVector< Number > &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 >)
 

Detailed Description

A namespace for vector classes.

This namespace contains various classes that provide wrappers to vector classes from different external libraries like Trilinos (EPetra) or PETSc and native implementations like LinearAlgebra::distributed::Vector.

The different vector classes are derived from VectorSpaceVector to provide a joint interface for vector space operations, are derived from ReadWriteVector (or ReadWriteVector itself), or both. The separation of vector space operations (like norms or vector additions) through VectorSpaceVector and element access through ReadWriteVector are by design and improve performance.

Typedef Documentation

◆ CommunicationPatternBase

Alias for Utilities::MPI::CommunicationPatternBase. This class was originally defined in the LinearAlgebra namespace but is now used for more general purposes.

Definition at line 33 of file communication_pattern_base.h.

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.

Definition at line 30 of file orthogonalization.h.

Function Documentation

◆ set_zero_mean_value()

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

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

Definition at line 296 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 >   
)