version 3.11-dev
periodicgridtraits.hh
Go to the documentation of this file.
1// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
2// vi: set et ts=4 sw=4 sts=4:
3//
4// SPDX-FileCopyrightText: Copyright © DuMux Project contributors, see AUTHORS.md in root folder
5// SPDX-License-Identifier: GPL-3.0-or-later
6//
13#ifndef DUMUX_IO_GRID_PERIODIC_GRID_TRAITS_HH
14#define DUMUX_IO_GRID_PERIODIC_GRID_TRAITS_HH
15
16#include <type_traits>
17#include <dune/common/std/type_traits.hh>
18
19namespace Dumux {
20
21template<typename Grid>
23{
24 struct SupportsPeriodicity : public std::false_type {};
25
26 PeriodicGridTraits(const Grid& grid) {};
27
28 bool isPeriodic (const typename Grid::LeafIntersection& intersection) const
29 {
30 return false;
31 }
32};
33
34template<class T>
36{
37 template<class G>
38 using SP = typename G::SupportsPeriodicity;
39public:
40 using type = typename Dune::Std::detected_or<std::false_type, SP, T>::type;
41};
42
43template<class T>
44static constexpr bool supportsPeriodicity()
45{ return typename SupportsPeriodicity<T>::type(); }
46
47} // end namespace Dumux
48
49#endif
Definition: periodicgridtraits.hh:36
typename Dune::Std::detected_or< std::false_type, SP, T >::type type
Definition: periodicgridtraits.hh:40
Definition: adapt.hh:17
static constexpr bool supportsPeriodicity()
Definition: periodicgridtraits.hh:44
Definition: periodicgridtraits.hh:24
Definition: periodicgridtraits.hh:23
bool isPeriodic(const typename Grid::LeafIntersection &intersection) const
Definition: periodicgridtraits.hh:28
PeriodicGridTraits(const Grid &grid)
Definition: periodicgridtraits.hh:26