Feel++ 0.111.0-preview.14
Finite Element Embedded Library in C++
operatorinterpolation.hpp File Reference

Classes

struct  Feel::detail::DomainEltIdFromImageEltId< DomainSpaceType, ImageSpaceType >
 
struct  Feel::detail::DomainEltIdFromImageEltId< DomainSpaceType, ImageSpaceType >::ReturnDomainEntities< TheCoDim >
 
struct  Feel::detail::DomainEltIdFromImageEltId< DomainSpaceType, ImageSpaceType >::ReturnType< TheCoDim >
 
struct  Feel::detail::opinterprangetype< RangeType >
 
struct  Feel::detail::PrecomputeDomainBasisFunction< DomainSpaceType, ImageSpaceType, ExprType, DomainEvalOnSubEntityCoDim >
 
struct  Feel::InterpolationConforming
 
struct  Feel::InterpolationCurl< C >
 
struct  Feel::InterpolationDiv< C >
 
struct  Feel::InterpolationExpr< ExprType, C >
 
struct  Feel::InterpolationGradient< C >
 
struct  Feel::InterpolationNonConforming
 
class  Feel::InterpolationTypeBase< C, O >
 
class  Feel::InterpolationTypeBaseBase< C, O >
 
class  Feel::OperatorInterpolation< DomainSpaceType, ImageSpaceType, IteratorRange, InterpType >
 Global interpolation operator. More...
 
struct  Feel::OperatorInterpolationMatrixSetup< T >
 

Namespaces

namespace  Feel
 -*- mode: c++; coding: utf-8; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; show-trailing-whitespace: t -*-
 

Typedefs

using Feel::conforming_t = mpl::bool_< true >
 
template<typename DomainSpaceType , typename ImageSpaceType , typename IteratorRange = Range<typename ImageSpaceType::mesh_type,MESH_ELEMENTS>, typename InterpType = InterpolationCurl<nonconforming_t>>
using Feel::Curl_ptr_t = std::shared_ptr< Curl_t< DomainSpaceType, ImageSpaceType, IteratorRange, InterpType > >
 
template<typename DomainSpaceType , typename ImageSpaceType , typename IteratorRange = Range<typename ImageSpaceType::mesh_type,MESH_ELEMENTS>, typename InterpType = InterpolationCurl<nonconforming_t>>
using Feel::Curl_t = OperatorInterpolation< DomainSpaceType, ImageSpaceType, range_t< IteratorRange >, InterpType >
 
template<typename DomainSpaceType , typename ImageSpaceType , typename IteratorRange = Range<typename ImageSpaceType::mesh_type,MESH_ELEMENTS>, typename InterpType = InterpolationDiv<nonconforming_t>>
using Feel::Div_ptr_t = std::shared_ptr< Div_t< DomainSpaceType, ImageSpaceType, IteratorRange, InterpType > >
 
template<typename DomainSpaceType , typename ImageSpaceType , typename IteratorRange = Range<typename ImageSpaceType::mesh_type,MESH_ELEMENTS>, typename InterpType = InterpolationDiv<nonconforming_t>>
using Feel::Div_t = OperatorInterpolation< DomainSpaceType, ImageSpaceType, range_t< IteratorRange >, InterpType >
 
template<typename DomainSpaceType , typename ImageSpaceType , typename IteratorRange = Range<typename ImageSpaceType::mesh_type,MESH_ELEMENTS>, typename InterpType = InterpolationGradient<nonconforming_t>>
using Feel::Grad_ptr_t = std::shared_ptr< Grad_t< DomainSpaceType, ImageSpaceType, IteratorRange, InterpType > >
 
template<typename DomainSpaceType , typename ImageSpaceType , typename IteratorRange = Range<typename ImageSpaceType::mesh_type,MESH_ELEMENTS>, typename InterpType = InterpolationGradient<nonconforming_t>>
using Feel::Grad_t = OperatorInterpolation< DomainSpaceType, ImageSpaceType, range_t< IteratorRange >, InterpType >
 
template<typename DomainSpaceType , typename ImageSpaceType , typename IteratorRange = Range<typename ImageSpaceType::mesh_type,MESH_ELEMENTS>, typename InterpType = InterpolationNonConforming>
using Feel::I_ptr_t = std::shared_ptr< I_t< DomainSpaceType, ImageSpaceType, IteratorRange, InterpType > >
 
template<typename DomainSpaceType , typename ImageSpaceType , typename IteratorRange = Range<typename ImageSpaceType::mesh_type,MESH_ELEMENTS>, typename InterpType = InterpolationNonConforming>
using Feel::I_t = operator_interpolation_t< DomainSpaceType, ImageSpaceType, IteratorRange, InterpType >
 
using Feel::InterpolationConforme = InterpolationConforming
 
template<typename C >
using Feel::InterpolationID = typename mpl::if_< C, mpl::identity< InterpolationConforming >, mpl::identity< InterpolationNonConforming > >::type::type
 
using Feel::InterpolationNonConforme = InterpolationNonConforming
 
using Feel::nonconforming_t = mpl::bool_< false >
 
template<typename DomainSpaceType , typename ImageSpaceType , typename IteratorRange = Range<typename ImageSpaceType::mesh_type,MESH_ELEMENTS>, typename InterpType = InterpolationNonConforming>
using Feel::operator_interpolation_t = OperatorInterpolation< DomainSpaceType, ImageSpaceType, range_t< IteratorRange >, InterpType >
 get the type of an OperatorInterpolation More...
 

Enumerations

enum class  interpolation_operand_type {
  ID = 0 , GRADIENT , CURL , DIV ,
  EXPR
}
 

Functions

template<typename ... Ts>
auto Feel::Curl (Ts &&... v)
 
template<typename ... Ts>
auto Feel::Div (Ts &&... v)
 
template<typename ... Ts>
auto Feel::Grad (Ts &&... v)
 
template<typename ... Ts>
auto Feel::I (Ts &&... v)
 
template<typename ... Ts>
auto Feel::IPtr (Ts &&... v)
 
template<typename C , typename ... Args>
InterpolationCurl< C > Feel::makeCurlInterpolation (C &&c, Args &&... args)
 
template<typename C , typename ... Args>
InterpolationDiv< C > Feel::makeDivInterpolation (C &&c, Args &&... args)
 
template<typename ExprType , typename C , typename ... Args>
InterpolationExpr< ExprType, C > Feel::makeExprInterpolation (ExprType const &expr, C &&c, Args &&... args)
 
template<typename C , typename ... Args>
InterpolationGradient< C > Feel::makeGradientInterpolation (C &&c, Args &&... args)
 
template<typename C , typename ... Args>
InterpolationID< C > Feel::makeInterpolation (C &&c, Args &&... args)
 
std::ostream & Feel::operator<< (std::ostream &os, interpolation_operand_type const &o)
 
template<typename ... Ts>
auto Feel::opInterpolation (Ts &&... v)
 
template<typename DomainSpaceType , typename ImageSpaceType , typename IteratorRange , typename InterpType >
decltype(auto) Feel::opInterpPtr (std::shared_ptr< DomainSpaceType > const &domainspace, std::shared_ptr< ImageSpaceType > const &imagespace, IteratorRange const &r, typename OperatorInterpolation< DomainSpaceType, ImageSpaceType, typename Feel::detail::opinterprangetype< IteratorRange >::type, InterpType >::backend_ptrtype const &backend, InterpType const &interptype, bool ddmethod, OperatorInterpolationMatrixSetup< typename DomainSpaceType::value_type > const &matSetup=OperatorInterpolationMatrixSetup< typename DomainSpaceType::value_type >{})
 
template<int DomainEvalOnSubEntityCoDim, typename DomainSpaceType , typename ImageSpaceType , typename ExprType >
std::shared_ptr< PrecomputeDomainBasisFunction< DomainSpaceType, ImageSpaceType, ExprType, DomainEvalOnSubEntityCoDim > > Feel::detail::precomputeDomainBasisFunction (std::shared_ptr< DomainSpaceType > const &domainSpace, std::shared_ptr< ImageSpaceType > const &imageSpace, ExprType const &expr)
 

Variables

template<typename C >
constexpr bool Feel::is_conforming = C::value
 

Detailed Description