Feel++ 0.111.0-preview.14
Finite Element Embedded Library in C++
Discretization

Discretization classes and algorithms provided by the library. More...

+ Collaboration diagram for Discretization:

Functions

template<typename FacetType >
auto Feel::facetGlobalToLocal (FacetType &&f)
 get the local indexing of a facet from the global id More...
 
template<typename FacetType , typename DofTableType >
auto Feel::facetGlobalToLocal (FacetType &&f, DofTableType &&dof)
 get the local indexing of a facet from the global id and a doftable More...
 
template<typename... Ts>
auto Feel::maxelt (Ts &&... v)
 compute the max of the element of a function space at DOF points over the range r More...
 
template<typename... Ts>
auto Feel::minelt (Ts &&... v)
 compute the min of the element of a function space at DOF points over the range r More...
 
template<typename... Ts>
auto Feel::minmaxelt (Ts &&... v)
 compute the min of the element of a function space at DOF points over the range r More...
 
template<typename... Ts>
auto Feel::opelt (Ts &&... v)
 compute the min of the element of a function space at DOF points over the range r More...
 
template<typename... Ts>
auto Feel::opselt (Ts &&... v)
 compute the set of operations ops of the element of a function space at DOF points over the range r More...
 

Detailed Description

Discretization classes and algorithms provided by the library.

Function Documentation

◆ facetGlobalToLocal() [1/2]

template<typename FacetType >
auto Feel::facetGlobalToLocal ( FacetType &&  f)

#include </data/cemosis/github-actions-runner/actions-runner-feelpp-1/_work/feelpp/feelpp/feelpp/feel/feeldiscr/facet.hpp>

get the local indexing of a facet from the global id

Template Parameters
FacetTypetype of face
Parameters
ffacet
Returns
a tuple containing the element 0 or 1 to which the facet belongs and the local index of the facet in this element

◆ facetGlobalToLocal() [2/2]

template<typename FacetType , typename DofTableType >
auto Feel::facetGlobalToLocal ( FacetType &&  f,
DofTableType &&  dof 
)

#include </data/cemosis/github-actions-runner/actions-runner-feelpp-1/_work/feelpp/feelpp/feelpp/feel/feeldiscr/facet.hpp>

get the local indexing of a facet from the global id and a doftable

Warning
if the tuple {-1,-1} is returned it means with are on a partial mesh and the facet is in it
Template Parameters
FacetTypetype of facet
DofTableTypetype of doftable
Parameters
ffacet
dofdoftable
Returns
a tuple containing the element 0 or 1 to which the facet belongs and the local index of the facet in this element

◆ maxelt()

template<typename... Ts>
auto Feel::maxelt ( Ts &&...  v)

#include </data/cemosis/github-actions-runner/actions-runner-feelpp-1/_work/feelpp/feelpp/feelpp/feel/feeldiscr/minmax.hpp>

compute the max of the element of a function space at DOF points over the range r

Template Parameters
RangeTrange type to iterate on
ElementTtype of finite element function
Parameters
rrange of element
eelement of a function space
auto v = Xh->element();
auto [max_v,arg_max_v] = maxelt(_range=elements(mesh),_element=v);
auto maxelt(Ts &&... v)
compute the max of the element of a function space at DOF points over the range r
Definition: minmax.hpp:200
auto elements(MeshType const &mesh, entity_process_t ept=entity_process_t::LOCAL_ONLY)
Definition: filters.hpp:92
Returns
the max value and the dof point coordinates

◆ minelt()

template<typename... Ts>
auto Feel::minelt ( Ts &&...  v)

#include </data/cemosis/github-actions-runner/actions-runner-feelpp-1/_work/feelpp/feelpp/feelpp/feel/feeldiscr/minmax.hpp>

compute the min of the element of a function space at DOF points over the range r

Template Parameters
RangeTrange type to iterate on
ElementTtype of finite element function
Parameters
rrange of element
eelement of a function space
auto v = Xh->element();
auto [min_v,arg_min_v] = minelt(_range=elements(mesh),_element=v);
auto minelt(Ts &&... v)
compute the min of the element of a function space at DOF points over the range r
Definition: minmax.hpp:175
Returns
the min value and the dof point coordinates

◆ minmaxelt()

template<typename... Ts>
auto Feel::minmaxelt ( Ts &&...  v)

#include </data/cemosis/github-actions-runner/actions-runner-feelpp-1/_work/feelpp/feelpp/feelpp/feel/feeldiscr/minmax.hpp>

compute the min of the element of a function space at DOF points over the range r

Template Parameters
RangeTrange type to iterate on
ElementTtype of finite element function
Parameters
rrange of element
eelement of a function space
auto v = Xh->element();
auto r = minmaxelt(_range=elements(mesh),_element=v);
for( auto const& [o_v,arg_o_v] : enumerate(r) )
{
std::cout << "i: " << o_v << ", " << arg_o_v << std::endl;
}
r[0]; // min
r[1]; // max
auto minmaxelt(Ts &&... v)
compute the min of the element of a function space at DOF points over the range r
Definition: minmax.hpp:233
constexpr auto enumerate(T &&iterable, size_t start=0)
create an index associated to a iterable object
Definition: enumerate.hpp:29
Returns
the min value and the dof point coordinates

◆ opelt()

template<typename... Ts>
auto Feel::opelt ( Ts &&...  v)

#include </data/cemosis/github-actions-runner/actions-runner-feelpp-1/_work/feelpp/feelpp/feelpp/feel/feeldiscr/minmax.hpp>

compute the min of the element of a function space at DOF points over the range r

Template Parameters
Tsvariadic template holding the type list of arguments
Parameters
_rangerange of element
_elementelement of a function space
_opoperation to apply to the element
auto v = Xh->element();
auto [op_v,arg_op_v] = minelt(_range=elements(mesh),_element=v,_op=[](auto const& a, auto const& b){ return a < b; });
Returns
the value and the dof point coordinates

◆ opselt()

template<typename... Ts>
auto Feel::opselt ( Ts &&...  v)

#include </data/cemosis/github-actions-runner/actions-runner-feelpp-1/_work/feelpp/feelpp/feelpp/feel/feeldiscr/minmax.hpp>

compute the set of operations ops of the element of a function space at DOF points over the range r

Template Parameters
Tsvariadic template holding the type list of arguments
Parameters
_rangerange of element
_elementelement of a function space
_opstd::vector of operations(lambda functions) to apply to the element
auto v = Xh->element();
auto res = minelt(_range=elements(mesh),_element=v,_op=[](auto const& a, auto const& b){ return a < b; });
// loop on results
for( auto item: res )
{
auto [op_v, arg_op_v] = item;
// do something
}
Returns
the vector of results and associated dof point coordinates