MGIS
Loading...
Searching...
No Matches
Function.hxx File Reference
#include <span>
#include <limits>
#include <vector>
#include "MGIS/Config.hxx"
#include "MGIS/Contract.hxx"
#include "MGIS/Function/SpaceConcept.hxx"
#include "MGIS/Function/FunctionConcept.hxx"
#include "MGIS/Function/Evaluator.hxx"
#include "MGIS/Function/Function.ixx"

Classes

struct  mgis::function::FunctionDataSize< data_size >
 class describing the size (number of components) of the data manipulated by a quadrature function. More...
 
struct  mgis::function::FunctionDataSize< dynamic_extent >
 partial specialisation in the dynamic_extent case More...
 
struct  mgis::function::FunctionDataStride< data_stride >
 class describing the stride (number of components) of the data manipulated by a quadrature function. More...
 
struct  mgis::function::FunctionDataStride< dynamic_extent >
 partial specialisation in the dynamic_extent case More...
 
struct  mgis::function::FunctionDataLayoutDescription
 
struct  mgis::function::FunctionDataLayout< layout >
 a simple data structure describing how the data of a function is mapped in memory More...
 
struct  mgis::function::FunctionView< Space, layout, is_mutable >
 function defined on a space. More...
 
struct  mgis::function::LightweightViewTraits< FunctionView< Space, layout, is_mutable > >
 partial specialisation More...
 
struct  mgis::function::FunctionStorage< Space, N >
 an helper class storing the values of a function More...
 
struct  mgis::function::Function< Space, N >
 default implementation of a function More...
 

Namespaces

namespace  mgis
 the namespace mgis encloses all the MGIS project.
 

Typedefs

template<LinearFunctionalSpaceConcept Space, FunctionDataLayoutDescription layout = FunctionDataLayoutDescription{}>
using mgis::function::FunctionEvaluator = FunctionView< Space, layout, false >
 a simple alias
 
template<LinearFunctionalSpaceConcept Space, size_type N>
using mgis::function::FunctionViewAlias = FunctionView< Space, simple_data_layout_description< N >, true >
 a simple alias to simplify the implementation of the Function class
 

Functions

constexpr bool mgis::function::has_dynamic_properties (const FunctionDataLayoutDescription &)
 a simple helper function
 
template<LinearFunctionalSpaceConcept Space, FunctionDataLayoutDescription layout, bool is_mutable>
constexpr bool mgis::function::check (AbstractErrorHandler &, const FunctionView< Space, layout, is_mutable > &) noexcept
 a noop function to match the EvaluatorConcept concept
 
template<LinearFunctionalSpaceConcept Space, FunctionDataLayoutDescription layout, bool is_mutable>
constexpr mgis::size_type mgis::function::getNumberOfComponents (const FunctionView< Space, layout, is_mutable > &) noexcept
 
template<LinearFunctionalSpaceConcept SpaceType>
 mgis::function::Function (const SpaceType &, const size_type) -> Function< SpaceType, dynamic_extent >
 
template<LinearFunctionalSpaceConcept Space, size_type N>
constexpr auto mgis::function::view (Function< Space, N > &)
 convert a function to a mutable view
 
template<size_type N, LinearFunctionalSpaceConcept Space, size_type N2>
requires ((N > 0) && (N != dynamic_extent) && (N == N2))
constexpr auto mgis::function::view (Function< Space, N2 > &)
 convert a function to a mutable view
 
template<LinearFunctionalSpaceConcept Space, size_type N>
constexpr auto mgis::function::view (const Function< Space, N > &)
 convert a function to a immutable view
 
template<size_type N, LinearFunctionalSpaceConcept Space, size_type N2>
requires ((N > 0) && (N != dynamic_extent) && (N == N2))
constexpr auto mgis::function::view (const Function< Space, N2 > &)
 convert a function to a immutable view
 
template<LinearFunctionalSpaceConcept Space, FunctionDataLayoutDescription layout, bool is_mutable>
constexpr const automgis::function::getSpace (const FunctionView< Space, layout, is_mutable > &)
 
template<LinearFunctionalSpaceConcept Space, size_type N>
bool mgis::function::check (AbstractErrorHandler &, const Function< Space, N > &)=delete
 deleted function so that Function does not match the EvaluatorConcept
 

Variables

template<size_type N>
constexpr auto mgis::function::simple_data_layout_description
 

Detailed Description

Author
Thomas Helfer
Date
11/06/2020

Function Documentation

◆ getNumberOfComponents()

template<LinearFunctionalSpaceConcept Space, FunctionDataLayoutDescription layout, bool is_mutable>
constexpr mgis::size_type mgis::function::getNumberOfComponents ( const FunctionView< Space, layout, is_mutable > &  e)
constexprnoexcept
Returns
the number of components of a view
Parameters
[in]vview

◆ view() [1/4]

template<LinearFunctionalSpaceConcept Space, size_type N>
constexpr auto mgis::function::view ( const Function< Space, N > &  f)
constexpr

convert a function to a immutable view

Parameters
[in]ffunction

◆ view() [2/4]

template<size_type N, LinearFunctionalSpaceConcept Space, size_type N2>
requires ((N > 0) && (N != dynamic_extent) && (N == N2))
constexpr auto mgis::function::view ( const Function< Space, N2 > &  f)
constexpr

convert a function to a immutable view

Parameters
[in]ffunction

◆ view() [3/4]

template<LinearFunctionalSpaceConcept Space, size_type N>
constexpr auto mgis::function::view ( Function< Space, N > &  f)
constexpr

convert a function to a mutable view

Parameters
[in]ffunction

◆ view() [4/4]

template<size_type N, LinearFunctionalSpaceConcept Space, size_type N2>
requires ((N > 0) && (N != dynamic_extent) && (N == N2))
constexpr auto mgis::function::view ( Function< Space, N2 > &  f)
constexpr

convert a function to a mutable view

Parameters
[in]ffunction

Variable Documentation

◆ simple_data_layout_description

template<size_type N>
constexpr auto mgis::function::simple_data_layout_description
inlineconstexpr
Initial value:
=
FunctionDataLayoutDescription{.data_size = N, .data_stride = N}