3.1-git
DUNE for Multi-{Phase, Component, Scale, Physics, ...} flow and transport in porous media
Public Types | Static Public Member Functions | List of all members
Dumux::LinearAlgebraPreparator< GridView, AmgTraits, isParallel > Struct Template Reference

Prepare the linear algebra member variables. More...

#include <dumux/linear/amgparallelhelpers.hh>

Description

template<class GridView, class AmgTraits, bool isParallel>
struct Dumux::LinearAlgebraPreparator< GridView, AmgTraits, isParallel >

Prepare the linear algebra member variables.

At compile time, correct constructor calls have to be chosen, depending on whether the setting is parallel or sequential. Since several template parameters are present, this cannot be solved by a full function template specialization. Instead, class template specialization has to be used. This adapts example 4 from http://www.gotw.ca/publications/mill17.htm.

This class template implements the function for the sequential case.

Template Parameters
isParalleldecides if the setting is parallel or sequential

Public Types

using DofMapper = typename AmgTraits::DofMapper
 
using ParallelHelper = ParallelISTLHelper< GridView, AmgTraits >
 
using Comm = typename AmgTraits::Comm
 
using LinearOperator = typename AmgTraits::LinearOperator
 
using ScalarProduct = typename AmgTraits::ScalarProduct
 

Static Public Member Functions

template<class Matrix , class Vector >
static void prepareLinearAlgebra (Matrix &A, Vector &b, int &rank, std::shared_ptr< Comm > &comm, std::shared_ptr< LinearOperator > &fop, std::shared_ptr< ScalarProduct > &sp, ParallelHelper &pHelper, const bool firstCall)
 

Member Typedef Documentation

◆ Comm

template<class GridView , class AmgTraits , bool isParallel>
using Dumux::LinearAlgebraPreparator< GridView, AmgTraits, isParallel >::Comm = typename AmgTraits::Comm

◆ DofMapper

template<class GridView , class AmgTraits , bool isParallel>
using Dumux::LinearAlgebraPreparator< GridView, AmgTraits, isParallel >::DofMapper = typename AmgTraits::DofMapper

◆ LinearOperator

template<class GridView , class AmgTraits , bool isParallel>
using Dumux::LinearAlgebraPreparator< GridView, AmgTraits, isParallel >::LinearOperator = typename AmgTraits::LinearOperator

◆ ParallelHelper

template<class GridView , class AmgTraits , bool isParallel>
using Dumux::LinearAlgebraPreparator< GridView, AmgTraits, isParallel >::ParallelHelper = ParallelISTLHelper<GridView, AmgTraits>

◆ ScalarProduct

template<class GridView , class AmgTraits , bool isParallel>
using Dumux::LinearAlgebraPreparator< GridView, AmgTraits, isParallel >::ScalarProduct = typename AmgTraits::ScalarProduct

Member Function Documentation

◆ prepareLinearAlgebra()

template<class GridView , class AmgTraits , bool isParallel>
template<class Matrix , class Vector >
static void Dumux::LinearAlgebraPreparator< GridView, AmgTraits, isParallel >::prepareLinearAlgebra ( Matrix &  A,
Vector &  b,
int &  rank,
std::shared_ptr< Comm > &  comm,
std::shared_ptr< LinearOperator > &  fop,
std::shared_ptr< ScalarProduct > &  sp,
ParallelHelper pHelper,
const bool  firstCall 
)
inlinestatic

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