Loading...
Searching...
No Matches
Dune::ParallelScalarProduct< X, C > Class Template Reference
Iterative Solvers Template Library (ISTL) » Iterative Solvers » Scalar products

Scalar product for overlapping Schwarz methods. More...

`#include <dune/istl/scalarproducts.hh>`

Inheritance diagram for Dune::ParallelScalarProduct< X, C >:

## Public Types

typedef X | domain_type
| The type of the vector to compute the scalar product on.
typedef X::field_type | field_type
| The field type used by the vector type domain_type.
typedef FieldTraits< field_type >::real_type | real_type
typedef C | communication_type
| The type of the communication object.

## Public Member Functions

| ParallelScalarProduct (std::shared_ptr< const communication_type > com, SolverCategory::Category cat)
| ParallelScalarProduct (const communication_type &com, SolverCategory::Category cat)
field_type | dot (const X &x, const X &y) const override
| Dot product of two vectors. It is assumed that the vectors are consistent on the interior+border partition.
real_type | norm (const X &x) const override
| Norm of a right-hand side vector. The vector must be consistent on the interior+border partition.
SolverCategory::Category | category () const override
| Category of the scalar product (see SolverCategory::Category).

## Detailed Description

template<class X, class C>
class Dune::ParallelScalarProduct< X, C >

Scalar product for overlapping Schwarz methods.

Consistent vectors in interior and border are assumed.

Template Parameters

  X | The type of the sequential vector to use for the left hand side, e.g. BlockVector or another type fulfilling the ISTL vector interface.
  C | The type of the communication object. This must either be OwnerOverlapCopyCommunication or a type implementing the same interface.

## Member Typedef Documentation

## communication_type

template<class X, class C>

typedef C Dune::ParallelScalarProduct< X, C >::communication_type

The type of the communication object.

This must either be OwnerOverlapCopyCommunication or a type implementing the same interface.

## domain_type

template<class X, class C>

typedef X Dune::ParallelScalarProduct< X, C >::domain_type

The type of the vector to compute the scalar product on.

E.g. BlockVector or another type fulfilling the ISTL vector interface.

## field_type

template<class X, class C>

typedef X::field_type Dune::ParallelScalarProduct< X, C >::field_type

The field type used by the vector type domain_type.

## real_type

template<class X, class C>

typedef FieldTraits<field_type>::real_type Dune::ParallelScalarProduct< X, C >::real_type

## Constructor & Destructor Documentation

## ParallelScalarProduct() [1/2]

template<class X, class C>

Dune::ParallelScalarProduct< X, C >::ParallelScalarProduct | ( | std::shared_ptr< const communication_type > | com,
|  | SolverCategory::Category | cat )

inline

Parameters

  com | The communication object for syncing overlap and copy data points.
  cat | parallel solver category (nonoverlapping or overlapping)

## ParallelScalarProduct() [2/2]

template<class X, class C>

Dune::ParallelScalarProduct< X, C >::ParallelScalarProduct | ( | const communication_type & | com,
|  | SolverCategory::Category | cat )

inline

Parameters

  com | The communication object for syncing overlap and copy data points.
  cat | parallel solver category (nonoverlapping or overlapping)

Note
  if you use this constructor you have to make sure com stays alive

## Member Function Documentation

## category()

template<class X, class C>

SolverCategory::Category Dune::ParallelScalarProduct< X, C >::category | ( |  | ) | const

inline override virtual

Category of the scalar product (see SolverCategory::Category).

Reimplemented from Dune::ScalarProduct< X >.

## dot()

template<class X, class C>

field_type Dune::ParallelScalarProduct< X, C >::dot | ( | const X & | x,
|  | const X & | y ) const

inline override virtual

Dot product of two vectors. It is assumed that the vectors are consistent on the interior+border partition.

Reimplemented from Dune::ScalarProduct< X >.

## norm()

template<class X, class C>

real_type Dune::ParallelScalarProduct< X, C >::norm | ( | const X & | x | ) | const

inline override virtual

Norm of a right-hand side vector. The vector must be consistent on the interior+border partition.

Reimplemented from Dune::ScalarProduct< X >.

The documentation for this class was generated from the following file:

- scalarproducts.hh