KASKADE 7 development version
Classes | Namespaces | Typedefs | Functions
multiGridSolver.hh File Reference
#include <memory>
#include <vector>
#include <cmath>
#include <fstream>
#include <iostream>
#include "dune/grid/common/grid.hh"
#include "dune/istl/bcrsmatrix.hh"
#include "dune/common/fmatrix.hh"
#include "dune/common/fvector.hh"
#include "fem/fixdune.hh"
#include "linalg/conjugation.hh"
#include "linalg/triplet.hh"
#include "linalg/jacobiSolver.hh"

Go to the source code of this file.

Classes

class  Kaskade::MultiGridSolver_Detail::ParentalNodes< Grid >
 Finds the parent nodes and their interpolation weight for each node in the grid. usage eg.: ParentalNodes<Grid> parentalNodes( gridManager.grid() );. More...
 
class  Kaskade::MultiGridSolver_Detail::MultiLevelStack< Grid, Scalar, nComponents, Matrix >
 
class  Kaskade::MultigridSolver< Grid, nComponents >
 
struct  Kaskade::MultigridSolver< Grid, nComponents >::Parameter
 
class  Kaskade::MultiGridPreconditioner< Grid, nComponents >
 

Namespaces

namespace  Kaskade
 
 
namespace  Kaskade::MultiGridSolver_Detail
 

Typedefs

template<class Scalar , int n, class Allocator >
using Kaskade::MultiGridSolver_Detail::BlockVector = Dune::BlockVector< Dune::FieldVector< Scalar, n >, Allocator >
 
template<class Grid , int nComponents = 1>
using Kaskade::MultiGridSolver = MultigridSolver< Grid, nComponents >
 

Functions

template<class Scalar , int n, bool resetSolution = false>
void Kaskade::MultiGridSolver_Detail::axpy (Dune::BCRSMatrix< Dune::FieldMatrix< Scalar, 1, 1 > > const &P, Dune::BlockVector< Dune::FieldVector< Scalar, n > > const &x, Dune::BlockVector< Dune::FieldVector< Scalar, n > > &y, Scalar alpha=1.0)
 Compute \( y = \alpha Px+y \). If resetSolution=true computes \( y = \alpha Px \). More...
 
template<class Scalar , int n, bool resetSolution = false>
void Kaskade::MultiGridSolver_Detail::atxpy (Dune::BCRSMatrix< Dune::FieldMatrix< Scalar, 1, 1 > > const &P, Dune::BlockVector< Dune::FieldVector< Scalar, n > > const &x, Dune::BlockVector< Dune::FieldVector< Scalar, n > > &y, Scalar alpha=1.0)
 Compute \( y = \alpha P^T x+y \). If resetSolution=true computes \( y = \alpha P^T x \). More...
 
template<class Scalar , int n>
void Kaskade::MultiGridSolver_Detail::applyProlongation (Dune::BCRSMatrix< Dune::FieldMatrix< Scalar, 1, 1 > > const &P, Dune::BlockVector< Dune::FieldVector< Scalar, n > > const &x, Dune::BlockVector< Dune::FieldVector< Scalar, n > > &y)
 
template<class Scalar , int n>
void Kaskade::MultiGridSolver_Detail::applyTransposedProlongation (Dune::BCRSMatrix< Dune::FieldMatrix< Scalar, 1, 1 > > const &P, Dune::BlockVector< Dune::FieldVector< Scalar, n > > const &x, Dune::BlockVector< Dune::FieldVector< Scalar, n > > &y)
 
template<class Grid , class Scalar = double>
std::vector< Dune::BCRSMatrix< Dune::FieldMatrix< Scalar, 1, 1 > > > Kaskade::MultiGridSolver_Detail::computeProlongations (const Grid &grd)
 Compute prolongation matrices between consecutive grid levels. More...