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

Namespaces

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

Typedefs

template<typename RangeT >
using Feel::range_container_t = std::tuple_element_t< 3, RangeT >
 
template<typename RangeT >
using Feel::range_elementtype_t = std::tuple_element_t< 0, RangeT >
 
template<typename RangeT >
using Feel::range_iterators_t = std::tuple_element_t< 1, RangeT >
 

Enumerations

enum class  Feel::select_elements_from_expression {
  with_positive_values = 1 , with_negative_values = 2 , with_changing_sign = 3 , with_value = 4 ,
  with_value_range = 5
}
 EXTRACT_ELEM.
 

Functions

template<typename MeshType , std::enable_if_t< std::is_base_of_v< MeshBase<>, unwrap_ptr_t< MeshType > >, int > = 0>
auto Feel::allelements (MeshType const &mesh)
 
template<typename MeshType >
auto Feel::allmarkededgesByType (MeshType const &mesh, uint16_type markerType, entity_process_t ept, typename std::enable_if< is_2d< MeshType >::value >::type *=nullptr)
 
template<typename MeshType , std::enable_if_t< std::is_base_of_v< MeshBase<>, unwrap_ptr_t< MeshType > >, int > = 0>
auto Feel::allmarkededgesByType (MeshType const &mesh, uint16_type markerType, entity_process_t ept, typename std::enable_if< is_3d< MeshType >::value >::type *=nullptr)
 
template<typename MeshType >
auto Feel::allmarkedfacesByType (MeshType const &mesh, uint16_type markerType, entity_process_t ept)
 
template<typename MeshType >
auto Feel::allmarkedpointsByType (MeshType const &mesh, uint16_type markerType, entity_process_t ept)
 
template<typename MeshType >
auto Feel::boundaryedges (MeshType const &mesh, entity_process_t ept=entity_process_t::LOCAL_ONLY)
 
template<typename MeshType >
auto Feel::boundaryelements (MeshType const &mesh, uint16_type entity_min_dim=0, uint16_type entity_max_dim=2, entity_process_t ept=entity_process_t::LOCAL_ONLY)
 
template<typename MeshType , std::enable_if_t< std::is_base_of_v< MeshBase<>, unwrap_ptr_t< MeshType > >, int > = 0>
auto Feel::boundaryfaces (MeshType const &mesh, entity_process_t ept=entity_process_t::LOCAL_ONLY)
 
template<typename MeshType , std::enable_if_t< std::is_base_of_v< MeshBase<>, unwrap_ptr_t< MeshType > >, int > = 0>
Range< MeshType, MESH_FACES > Feel::boundaryfaces (MeshType const &mesh, Range< MeshType, MESH_ELEMENTS > const &r)
 
template<typename MeshType , std::enable_if_t< std::is_base_of_v< MeshBase<>, unwrap_ptr_t< MeshType > >, int > = 0>
auto Feel::boundaryfaces (MeshType const &mesh, rank_type pid, entity_process_t ept=entity_process_t::LOCAL_ONLY)
 
template<typename MeshType >
auto Feel::boundarypoints (MeshType const &mesh, entity_process_t ept=entity_process_t::LOCAL_ONLY)
 
template<typename MeshType >
std::map< int, Range< MeshType, MESH_ELEMENTS > > Feel::collectionOfMarkedelements (MeshType const &mesh, std::any const &collectionOfMarkersFlag)
 
template<typename MeshType >
auto Feel::collectionOfMarkedelementsWithGhostsSplitted (MeshType const &mesh, std::any const &collectionOfMarkersFlag)
 
template<typename MeshType , std::enable_if_t< std::is_base_of_v< MeshBase<>, unwrap_ptr_t< MeshType > >, int > = 0>
auto Feel::edges (MeshType const &mesh, entity_process_t ept=entity_process_t::LOCAL_ONLY)
 
template<typename ElementType >
boost::tuple< mpl::size_t< MESH_ELEMENTS >, typename std::list< ElementType >::const_iterator, typename std::list< ElementType >::const_iterator > Feel::element (ElementType const &elt)
 
template<typename MeshType , std::enable_if_t< std::is_base_of_v< MeshBase<>, decay_type< std::remove_pointer_t< MeshType > > >, int > = 0>
auto Feel::elements (MeshType const &mesh, entity_process_t ept=entity_process_t::LOCAL_ONLY)
 
template<typename MeshType , typename EntityRangeType , std::enable_if_t< is_range_v< EntityRangeType >, int > = 0>
auto Feel::elements (MeshType const &mesh, EntityRangeType const &rangeEntity, ElementsType type=ElementsType::MESH_POINTS)
 
template<typename MeshType , typename RangeType , typename EntityRangeType >
Range< typename RangeType::mesh_t, MESH_ELEMENTS > Feel::elements (MeshType const &mesh, RangeType const &rangeElt, EntityRangeType const &rangeEntity, ElementsType type=ElementsType::MESH_POINTS)
 
template<typename MeshType , std::enable_if_t< std::is_base_of_v< MeshBase<>, decay_type< std::remove_pointer_t< MeshType > > >, int > = 0>
auto Feel::elements (MeshType const &mesh, rank_type pid, entity_process_t ept=entity_process_t::LOCAL_ONLY)
 
template<typename MeshType , typename ExprType , typename... Ts, std::enable_if_t< std::is_base_of_v< MeshBase<>, decay_type< std::remove_pointer_t< MeshType > > >, int > = 0>
Range< MeshType, MESH_ELEMENTS > Feel::elements (MeshType const &mesh, vf::Expr< ExprType > const &expr, Ts &&... v)
 
template<typename MeshType >
auto Feel::elementsWithMarkedFaces (MeshType const &imesh, boost::any const &flag, EntityProcessType entity=EntityProcessType::LOCAL_ONLY)
 
template<typename MeshType , std::enable_if_t< std::is_base_of_v< MeshBase<>, unwrap_ptr_t< MeshType > >, int > = 0>
auto Feel::faces (MeshType const &mesh, entity_process_t ept=entity_process_t::LOCAL_ONLY)
 
template<typename MeshType , std::enable_if_t< std::is_base_of_v< MeshBase<>, unwrap_ptr_t< MeshType > >, int > = 0>
auto Feel::faces (MeshType const &mesh, rank_type pid, entity_process_t ept=entity_process_t::LOCAL_ONLY)
 
template<typename MeshType , std::enable_if_t< std::is_base_of_v< MeshBase<>, unwrap_ptr_t< MeshType > >, int > = 0>
auto Feel::fragmentationMarkedElements (MeshType const &mesh, EntityProcessType entity=EntityProcessType::LOCAL_ONLY, bool includeNonMarkedElement=true)
 return mesh fragmentatin by marked elements : a mapping between fragment id to to the tuple (range, marker ids, fragment name)
 
template<typename MeshType >
auto Feel::idedelements (MeshType const &mesh, flag_type flag)
 
template<typename MeshType >
auto Feel::idedfaces (MeshType const &mesh, size_type id)
 
template<typename MeshType , typename IteratorType >
auto Feel::idelements (MeshType const &imesh, IteratorType begin, IteratorType end)
 
template<typename MeshType , typename T >
auto Feel::idelements (MeshType const &imesh, std::vector< T > const &l)
 build a list of elements based on a list of element ids l from a mesh imesh
 
template<typename MeshType >
auto Feel::internaledges (MeshType const &mesh, entity_process_t ept=entity_process_t::LOCAL_ONLY)
 
template<typename MeshType >
auto Feel::internalelements (MeshType const &mesh, entity_process_t ept=entity_process_t::LOCAL_ONLY)
 
template<typename MeshType , std::enable_if_t< std::is_base_of_v< MeshBase<>, unwrap_ptr_t< MeshType > >, int > = 0>
auto Feel::internalfaces (MeshType const &mesh, entity_process_t ept=entity_process_t::LOCAL_ONLY)
 
template<typename MeshType , std::enable_if_t< std::is_base_of_v< MeshBase<>, unwrap_ptr_t< MeshType > >, int > = 0>
Range< MeshType, MESH_FACES > Feel::internalfaces (MeshType const &mesh, Range< MeshType, MESH_ELEMENTS > const &r)
 
template<typename MeshType , std::enable_if_t< std::is_base_of_v< MeshBase<>, unwrap_ptr_t< MeshType > >, int > = 0>
auto Feel::internalfaces (MeshType const &mesh, rank_type pid, entity_process_t ept=entity_process_t::LOCAL_ONLY)
 
template<typename MeshType >
auto Feel::internalpoints (MeshType const &mesh, entity_process_t ept=entity_process_t::LOCAL_ONLY)
 
template<typename MeshType >
auto Feel::interprocessedges (MeshType const &imesh, rank_type neighbor_pid=invalid_rank_type_value, EntityProcessType entity=EntityProcessType::ALL)
 
template<typename MeshType , std::enable_if_t< std::is_base_of_v< MeshBase<>, unwrap_ptr_t< MeshType > >, int > = 0>
auto Feel::interprocessfaces (MeshType const &mesh)
 
template<typename MeshType , std::enable_if_t< std::is_base_of_v< MeshBase<>, unwrap_ptr_t< MeshType > >, int > = 0>
auto Feel::interprocessfaces (MeshType const &mesh, rank_type neighbor_pid)
 
template<typename MeshType >
decltype(auto) Feel::make_elements_wrapper ()
 
template<typename MeshType , std::enable_if_t< std::is_base_of_v< MeshBase<>, unwrap_ptr_t< MeshType > >, int > = 0>
auto Feel::marked2elements (MeshType const &mesh, boost::any const &markersFlag, entity_process_t ept=entity_process_t::LOCAL_ONLY)
 
template<typename MeshType , std::enable_if_t< std::is_base_of_v< MeshBase<>, unwrap_ptr_t< MeshType > >, int > = 0>
auto Feel::marked2elements (MeshType const &mesh, std::initializer_list< boost::any > const &markersFlag, entity_process_t ept=entity_process_t::LOCAL_ONLY)
 
template<typename MeshType , std::enable_if_t< std::is_base_of_v< MeshBase<>, unwrap_ptr_t< MeshType > >, int > = 0>
auto Feel::marked2faces (MeshType const &mesh, boost::any const &markersFlag, entity_process_t ept=entity_process_t::LOCAL_ONLY)
 
template<typename MeshType , std::enable_if_t< std::is_base_of_v< MeshBase<>, unwrap_ptr_t< MeshType > >, int > = 0>
auto Feel::marked2faces (MeshType const &mesh, std::initializer_list< boost::any > const &markersFlag, entity_process_t ept=entity_process_t::LOCAL_ONLY)
 
template<typename MeshType , std::enable_if_t< std::is_base_of_v< MeshBase<>, unwrap_ptr_t< MeshType > >, int > = 0>
auto Feel::marked3elements (MeshType const &mesh, boost::any const &markersFlag, entity_process_t ept=entity_process_t::LOCAL_ONLY)
 
template<typename MeshType , std::enable_if_t< std::is_base_of_v< MeshBase<>, unwrap_ptr_t< MeshType > >, int > = 0>
auto Feel::marked3elements (MeshType const &mesh, std::initializer_list< boost::any > const &markersFlag, entity_process_t ept=entity_process_t::LOCAL_ONLY)
 
template<typename MeshType , std::enable_if_t< std::is_base_of_v< MeshBase<>, unwrap_ptr_t< MeshType > >, int > = 0>
auto Feel::marked3faces (MeshType const &mesh, boost::any const &markersFlag, entity_process_t ept=entity_process_t::LOCAL_ONLY)
 
template<typename MeshType , std::enable_if_t< std::is_base_of_v< MeshBase<>, unwrap_ptr_t< MeshType > >, int > = 0>
auto Feel::marked3faces (MeshType const &mesh, std::initializer_list< boost::any > markersFlag, entity_process_t ept=entity_process_t::LOCAL_ONLY)
 
template<typename MeshType , std::enable_if_t< std::is_base_of_v< MeshBase<>, unwrap_ptr_t< MeshType > >, int > = 0>
auto Feel::markededges (MeshType const &mesh, boost::any const &markersFlag, entity_process_t ept=entity_process_t::LOCAL_ONLY)
 
template<typename MeshType , std::enable_if_t< std::is_base_of_v< MeshBase<>, unwrap_ptr_t< MeshType > >, int > = 0>
auto Feel::markededges (MeshType const &mesh, entity_process_t ept=entity_process_t::LOCAL_ONLY)
 
template<typename MeshType , std::enable_if_t< std::is_base_of_v< MeshBase<>, unwrap_ptr_t< MeshType > >, int > = 0>
auto Feel::markededges (MeshType const &mesh, std::initializer_list< boost::any > const &markersFlag, entity_process_t ept=entity_process_t::LOCAL_ONLY)
 
template<typename MeshType >
auto Feel::markededgesByType (MeshType const &mesh, uint16_type markerType, boost::any const &__marker, entity_process_t ept, typename std::enable_if< is_3d< MeshType >::value >::type *=nullptr)
 
template<typename MeshType >
auto Feel::markededgesByType (MeshType const &mesh, uint16_type markerType, boost::any const &markersFlag, entity_process_t ept, typename std::enable_if< is_2d< MeshType >::value >::type *=nullptr)
 
template<typename MeshType >
auto Feel::markededgesByType (MeshType const &mesh, uint16_type markerType, std::initializer_list< boost::any > const &markersFlag, entity_process_t ept, typename std::enable_if< is_2d< MeshType >::value >::type *=nullptr)
 
template<typename MeshType >
auto Feel::markededgesByType (MeshType const &mesh, uint16_type markerType, std::initializer_list< boost::any > const &markersFlag, entity_process_t ept, typename std::enable_if< is_3d< MeshType >::value >::type *=nullptr)
 
template<typename MeshType , std::enable_if_t< std::is_base_of_v< MeshBase<>, unwrap_ptr_t< MeshType > >, int > = 0>
auto Feel::markedelements (MeshType const &mesh)
 
template<typename MeshType , std::enable_if_t< std::is_base_of_v< MeshBase<>, unwrap_ptr_t< MeshType > >, int > = 0>
auto Feel::markedelements (MeshType const &mesh, boost::any const &markersFlag, entity_process_t ept=entity_process_t::LOCAL_ONLY)
 
template<typename MeshType , std::enable_if_t< std::is_base_of_v< MeshBase<>, unwrap_ptr_t< MeshType > >, int > = 0>
auto Feel::markedelements (MeshType const &mesh, std::initializer_list< boost::any > const &markersFlag, entity_process_t ept=entity_process_t::LOCAL_ONLY)
 
template<typename MeshType >
auto Feel::markedelementsByType (MeshType const &mesh, uint16_type markerType, boost::any const &markersFlag, entity_process_t ept)
 
template<typename MeshType >
auto Feel::markedelementsByType (MeshType const &mesh, uint16_type markerType, boost::any const &markersFlag, rank_type pid, entity_process_t ept)
 
template<typename MeshType >
auto Feel::markedelementsByType (MeshType const &mesh, uint16_type markerType, entity_process_t ept)
 
template<typename MeshType >
auto Feel::markedelementsByType (MeshType const &mesh, uint16_type markerType, std::initializer_list< boost::any > const &markersFlag, entity_process_t ept)
 
template<typename MeshType >
auto Feel::markedelementsByType (MeshType const &mesh, uint16_type markerType, std::initializer_list< boost::any > const &markersFlag, rank_type pid, entity_process_t ept)
 
template<typename MeshType , std::enable_if_t< std::is_base_of_v< MeshBase<>, unwrap_ptr_t< MeshType > >, int > = 0>
auto Feel::markedfaces (MeshType const &mesh)
 
template<typename MeshType , std::enable_if_t< std::is_base_of_v< MeshBase<>, unwrap_ptr_t< MeshType > >, int > = 0>
auto Feel::markedfaces (MeshType const &mesh, boost::any const &markersFlag, entity_process_t ept=entity_process_t::LOCAL_ONLY)
 
template<typename MeshType , std::enable_if_t< std::is_base_of_v< MeshBase<>, unwrap_ptr_t< MeshType > >, int > = 0>
auto Feel::markedfaces (MeshType const &mesh, std::initializer_list< boost::any > const &markersFlag, entity_process_t ept=entity_process_t::LOCAL_ONLY)
 
template<typename MeshType >
auto Feel::markedfacesByType (MeshType const &mesh, uint16_type markerType, boost::any const &markersFlag, entity_process_t ept)
 
template<typename MeshType >
auto Feel::markedfacesByType (MeshType const &mesh, uint16_type markerType, boost::any const &markersFlag, rank_type pid, entity_process_t ept)
 
template<typename MeshType >
auto Feel::markedfacesByType (MeshType const &mesh, uint16_type markerType, std::initializer_list< boost::any > const &markersFlag, entity_process_t ept)
 
template<typename MeshType >
auto Feel::markedfacesByType (MeshType const &mesh, uint16_type markerType, std::initializer_list< boost::any > const &markersFlag, rank_type pid, entity_process_t ept)
 
template<typename MeshType >
auto Feel::markedpoints (MeshType const &mesh, boost::any const &markersFlag, entity_process_t ept=entity_process_t::LOCAL_ONLY)
 
template<typename MeshType >
auto Feel::markedpoints (MeshType const &mesh, entity_process_t ept=entity_process_t::LOCAL_ONLY)
 
template<typename MeshType >
auto Feel::markedpoints (MeshType const &mesh, std::initializer_list< boost::any > const &markersFlag, entity_process_t ept=entity_process_t::LOCAL_ONLY)
 
template<typename MeshType >
auto Feel::markedpointsByType (MeshType const &mesh, uint16_type markerType, boost::any const &__marker, entity_process_t ept)
 
template<typename MeshType >
auto Feel::markedpointsByType (MeshType const &mesh, uint16_type markerType, std::initializer_list< boost::any > const &markersFlag, entity_process_t ept)
 
template<typename MeshType >
auto Feel::points (MeshType const &mesh, entity_process_t ept=entity_process_t::LOCAL_ONLY)
 
template<typename RangeT , std::enable_if_t< is_range_v< RangeT >, int > = 0>
rank_type Feel::rank (RangeT const &range)
 get the rank of a range of entities More...
 
template<typename RangeT , std::enable_if_t< is_range_v< RangeT >, int > = 0>
WorldComm const & Feel::worldComm (RangeT const &range)
 

Variables

template<typename RangeT >
constexpr size_type Feel::range_elementtype_v = range_elementtype_t<RangeT>::value
 

Detailed Description