KASKADE 7 development version
Classes | Namespaces | Functions
prolongation.hh File Reference
#include <boost/fusion/include/vector.hpp>
#include <boost/timer/timer.hpp>
#include "fem/barycentric.hh"
#include "fem/spaces.hh"
#include "linalg/dynamicMatrix.hh"
#include "linalg/localMatrices.hh"
#include "linalg/threadedMatrix.hh"
#include "utilities/threading.hh"
#include "utilities/timing.hh"

Go to the source code of this file.

Classes

class  Kaskade::MGProlongation
 A prolongation operator for P1 finite elements from a coarser grid level to the next finer level. More...
 
class  Kaskade::MultiGridStack< Prolongation, Entry, Index >
 Class for multigrid stacks. More...
 

Namespaces

namespace  Kaskade
 
 

Functions

template<class SparseIndex = size_t, class CoarseSpace , class FineSpace >
NumaBCRSMatrix< Dune::FieldMatrix< typename FineSpace::Scalar, 1, 1 >, SparseIndex > Kaskade::prolongation (CoarseSpace const &coarseSpace, FineSpace const &fineSpace)
 Computes an interpolation-based prolongation matrix from a (supposedly) coarser space to a finer space. More...
 
template<class SparseIndex , class Mapper >
std::vector< NumaBCRSMatrix< Dune::FieldMatrix< typename Mapper::Scalar, 1, 1 >, SparseIndex > > Kaskade::prolongationStack (FEFunctionSpace< Mapper > const &space)
 Computes a stack of prolongation matrices for higher order finite element spaces. More...
 
std::ostream & Kaskade::operator<< (std::ostream &out, MGProlongation const &p)
 
template<class Entry , class Index >
auto Kaskade::conjugation (MGProlongation const &p, NumaBCRSMatrix< Entry, Index > const &a, bool onlyLowerTriangle=false)
 Creates a Galerkin projected Matrix \( P^T A P \) from a prolongation \( P \) and a symmetric matrix \( A \). More...
 
template<class GridMan >
std::vector< MGProlongation > Kaskade::prolongationStack (GridMan const &gridman, int coarseLevel=0, size_t minNodes=0)
 Computes a sequence of prolongation matrices for P1 finite elements in hierarchical grids. More...
 
template<class GridMan >
std::vector< NumaBCRSMatrix< Dune::FieldMatrix< double, 1, 1 > > > Kaskade::deformedProlongationStack (GridMan const &gridman, int coarseLevel=0, size_t minNodes=0, bool interpolateAtShiftedPosition=true)
 Computes a sequence of prolongation matrices for P1 finite elements in hierarchical grids. More...
 
template<typename Prolongations , typename Entry , typename Index >
std::ostream & Kaskade::operator<< (std::ostream &out, MultiGridStack< Prolongations, Entry, Index > const &mgStack)
 
template<class GridMan , class Entry , class Index >
MultiGridStack< MGProlongation, Entry, Index > Kaskade::makeGeometricMultiGridStack (GridMan const &gridManager, NumaBCRSMatrix< Entry, Index > &&A, size_t minNodes=10000, bool onlyLowerTriangle=false)
 convenience routine for creating multigrid stacks based on geometric coarsening for P1 elements More...
 
template<class Entry , class Index >
MultiGridStack< MGProlongation, Entry, Index > Kaskade::makeAlgebraicMultigridStack (NumaBCRSMatrix< Entry, Index > &&A, Index n=0, bool onlyLowerTriangle=false)
 Creates stack of prolongations and projected Galerkin matrices. More...
 
template<typename FineSpace >
auto Kaskade::makeDeepProlongationStack (FineSpace const &space, int coarseLevel=0, int minNodes=0)
 Convenience routine for creating a deep prolongation stack from coarse to fine grid and on from P1 to higher order. More...
 
template<typename FineSpace , typename Matrix >
auto Kaskade::makePMultiGridStack (FineSpace const &space, Matrix &&A, bool onlyLowerTriangle)
 convenience routine for creating multigrid stacks based on coarsening by reducing the ansatz order from P to P1 More...
 
template<typename FineSpace , typename CoarseSpace , typename Matrix >
auto Kaskade::makePMultiGridStack (FineSpace const &fineSpace, Matrix &&fA, CoarseSpace const &coarseSpace)
 convenience routine for creating multigrid stacks between two spaces. More...
 
template<typename FineSpace , typename CoarseSpace , typename Matrix >
auto Kaskade::makePMultiGridStack (FineSpace const &fineSpace, Matrix &&fA, CoarseSpace const &coarseSpace, Matrix &&cA)
 convenience routine for creating multigrid stacks between two spaces. More...