version 3.8
projector.hh File Reference

Contains functionality for L2-projections from one function space into another, which can live both on the same or different grids of potentially different dimensionality. More...

#include <algorithm>
#include <string>
#include <utility>
#include <type_traits>
#include <dune/common/timer.hh>
#include <dune/common/fmatrix.hh>
#include <dune/common/exceptions.hh>
#include <dune/common/promotiontraits.hh>
#include <dune/common/parametertree.hh>
#include <dune/geometry/quadraturerules.hh>
#include <dune/istl/matrixindexset.hh>
#include <dune/istl/bcrsmatrix.hh>
#include <dune/istl/bvector.hh>
#include <dumux/common/parameters.hh>
#include <dumux/linear/linearsolvertraits.hh>
#include <dumux/linear/linearalgebratraits.hh>
#include <dumux/linear/istlsolvers.hh>
#include <dumux/assembly/jacobianpattern.hh>
#include <dumux/discretization/functionspacebasis.hh>

Go to the source code of this file.

Description

Note
In the case of the function space bases living on the same grid an optimized implementation could be implemented. Currently, we require a glue object containing the intersections between two grids to be provided to the free factory functions.

Classes

class  Dumux::Projector< ScalarType >
 Does an L2-projection from one discrete function space into another. The convenience functions makeProjectorPair or makeProjector can be used to create such a projection. More...
 
struct  Dumux::Projector< ScalarType >::Params
 Parameters that can be passed to project() More...
 
class  Dumux::ProjectorTraits< FEBasisDomain, FEBasisTarget >
 Traits class stating the type of projector between to bases. More...
 

Namespaces

namespace  Dumux
 
namespace  Dumux::Detail
 Distance implementation details.
 

Functions

template<class Matrix >
void Dumux::Detail::setupReducedMatrices (const Matrix &massMatrix, const Matrix &projMatrix, const std::vector< bool > &dofIsVoid, Matrix &reducedM, Matrix &reducedP, std::vector< std::size_t > &expansionMap)
 Reduces a mass matrix and projection matrix such that they are composed of only those dofs that actually take part in the projection. Simultaneously, a container with the index map into the complete target space is filled so that the entries after projection can be assigned to the corresponding dof in the overall target space. More...
 
template<bool doBidirectional, class FEBasisDomain , class FEBasisTarget , class GlueType >
auto Dumux::Detail::createProjectionMatrices (const FEBasisDomain &feBasisDomain, const FEBasisTarget &feBasisTarget, const GlueType &glue, bool treatDiagonalZeroes=true)
 Creates the matrices underlying l2-projections. More...
 
template<bool doBidirectional, class FEBasisDomain , class FEBasisTarget , class GlueType >
auto Dumux::Detail::makeProjectorPair (const FEBasisDomain &feBasisDomain, const FEBasisTarget &feBasisTarget, const GlueType &glue)
 Creates a projector class between two function space bases. More...
 
template<class FEBasisDomain , class FEBasisTarget , class GlueType >
auto Dumux::makeProjectorPair (const FEBasisDomain &feBasisDomain, const FEBasisTarget &feBasisTarget, GlueType glue)
 Creates a pair of projectors between the space with basis feBasisDomain to the space with basis feBasisTarget. More...
 
template<class FEBasisDomain , class FEBasisTarget , class GlueType >
auto Dumux::makeProjector (const FEBasisDomain &feBasisDomain, const FEBasisTarget &feBasisTarget, GlueType glue)
 Creates a forward projector from the space feBasisDomain to the space with basis feBasisTarget. More...
 
template<class FEBasisDomain , class FEBasisTarget , class GlueType >
auto Dumux::makeProjectionMatricesPair (const FEBasisDomain &feBasisDomain, const FEBasisTarget &feBasisTarget, GlueType glue)
 Creates the matrices underlying l2-projections. More...
 
template<class FEBasisDomain , class FEBasisTarget , class GlueType >
auto Dumux::makeProjectionMatrices (const FEBasisDomain &feBasisDomain, const FEBasisTarget &feBasisTarget, GlueType glue)
 Creates the matrices underlying l2-projections. More...
 
Include dependency graph for projector.hh: