Skip to content
Snippets Groups Projects
Commit e319d2ab authored by Dr. Felix Tobias Schindler's avatar Dr. Felix Tobias Schindler
Browse files

[functions] simplify make_grid_function

parent babaed45
No related branches found
No related tags found
1 merge request!42dailywork-ftschindler
Pipeline #65064 failed
...@@ -622,28 +622,27 @@ private: ...@@ -622,28 +622,27 @@ private:
}; // class GridFunction<..., 1, 1, ...> }; // class GridFunction<..., 1, 1, ...>
template <class Element, size_t d, size_t r, size_t rC, class R> template <class Element_or_GridView, size_t d, size_t r, size_t rC, class R>
std::enable_if_t<Grid::is_entity<Element>::value && Element::dimension == d, GridFunction<Element, r, rC, R>> auto make_grid_function(const FunctionInterface<d, r, rC, R>& func)
make_grid_function(const FunctionInterface<d, r, rC, R>& func)
{ {
return GridFunction<Element, r, rC, R>(func); if constexpr (Grid::is_entity<Element_or_GridView>::value) {
} using E = Element_or_GridView;
return GridFunction<E, r, rC, R>(func);
} else if constexpr (Grid::is_view<Element_or_GridView>::value) {
template <class GridView, size_t d, size_t r, size_t rC, class R> using GV = Element_or_GridView;
std::enable_if_t<Grid::is_view<GridView>::value && GridView::dimension == d, using E = Grid::extract_entity_t<GV>;
GridFunction<Grid::extract_entity_t<GridView>, r, rC, R>> return GridFunction<E, r, rC, R>(func);
make_grid_function(const FunctionInterface<d, r, rC, R>& func) } else
{ static_assert(AlwaysFalse<Element_or_GridView>::value, "Element_or_GridView has to be an Element or a GridView!");
return GridFunction<Grid::extract_entity_t<GridView>, r, rC, R>(func); } /// ... make_grid_function(...)
}
template <size_t d, size_t r, size_t rC, class R, class GridView> template <size_t d, size_t r, size_t rC, class R, class GridView>
std::enable_if_t<Grid::is_view<GridView>::value && GridView::dimension == d, GridFunction<Grid::extract_entity_t<GridView>, r, rC, R> make_grid_function(const FunctionInterface<d, r, rC, R>& func,
GridFunction<Grid::extract_entity_t<GridView>, r, rC, R>> const GridView& /*grid_view*/)
make_grid_function(const FunctionInterface<d, r, rC, R>& func, const GridView& /*grid_view*/)
{ {
static_assert(Grid::is_view<GridView>::value, "");
static_assert(GridView::dimension == d, "");
return GridFunction<Grid::extract_entity_t<GridView>, r, rC, R>(func); return GridFunction<Grid::extract_entity_t<GridView>, r, rC, R>(func);
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment