DUNE ISTL (2.9)

Define base class for scalar product and norm. More...

#include <cmath>
#include <complex>
#include <iostream>
#include <iomanip>
#include <string>
#include <memory>
#include <dune/common/exceptions.hh>
#include <dune/common/shared_ptr.hh>
#include "bvector.hh"
#include "solvercategory.hh"

Go to the source code of this file.

Classes

class  Dune::ScalarProduct< X >
 Base class for scalar product and norm computation. More...
 
class  Dune::ParallelScalarProduct< X, C >
 Scalar product for overlapping Schwarz methods. More...
 
class  Dune::SeqScalarProduct< X >
 Default implementation for the scalar case. More...
 
class  Dune::NonoverlappingSchwarzScalarProduct< X, C >
 Nonoverlapping Scalar Product with communication object. More...
 
class  Dune::OverlappingSchwarzScalarProduct< X, C >
 Scalar product for overlapping Schwarz methods. More...
 

Functions

template<class X , class Comm >
std::shared_ptr< ScalarProduct< X > > Dune::makeScalarProduct (std::shared_ptr< const Comm > comm, SolverCategory::Category category)
 Choose the approriate scalar product for a solver category. More...
 
template<class X , class Comm >
std::shared_ptr< ScalarProduct< X > > Dune::createScalarProduct (const Comm &comm, SolverCategory::Category category)
 

Detailed Description

Define base class for scalar product and norm.

These classes have to be implemented differently for different data partitioning strategies. Default implementations for the sequential case are provided.

Function Documentation

◆ createScalarProduct()

template<class X , class Comm >
std::shared_ptr< ScalarProduct< X > > Dune::createScalarProduct ( const Comm &  comm,
SolverCategory::Category  category 
)

Note
Using this helper, you are responsible for the life-time management of comm

References Dune::createScalarProduct().

Referenced by Dune::createScalarProduct().

◆ makeScalarProduct()

template<class X , class Comm >
std::shared_ptr< ScalarProduct< X > > Dune::makeScalarProduct ( std::shared_ptr< const Comm >  comm,
SolverCategory::Category  category 
)

Choose the approriate scalar product for a solver category.

Todo:
this helper function should be replaced by a proper factory

As there is only one scalar product for each solver category it is possible to choose the appropriate product at compile time.

In each specialization of the this struct there will be a typedef ScalarProduct available the defines the type of the scalar product.

References Dune::makeScalarProduct(), and Dune::SolverCategory::sequential.

Referenced by Dune::makeScalarProduct().

Creative Commons License   |  Legal Statements / Impressum  |  Hosted by TU Dresden & Uni Heidelberg  |  generated with Hugo v0.111.3 (May 27, 22:36, 2026)