Liebe Gitlab-Nutzer, lieber Gitlab-Nutzer, es ist nun möglich sich mittels des ZIH-Logins/LDAP an unserem Dienst anzumelden. Ein Anmelden über dieses erzeugt ein neues Konto. Das alte Konto ist über den Reiter "Standard" erreichbar. Die Administratoren

Dear Gitlab user, it is now possible to log in to our service using the ZIH login/LDAP. Logging in via this will create a new account. The old account can be accessed via the "Standard" tab. The administrators

Commit 71cbbe25 authored by Praetorius, Simon's avatar Praetorius, Simon
Browse files

range-type implementation updated

parent 429b8e53
Pipeline #1367 passed with stage
in 27 minutes and 28 seconds
...@@ -11,10 +11,12 @@ namespace AMDiS ...@@ -11,10 +11,12 @@ namespace AMDiS
{ {
namespace Impl namespace Impl
{ {
template <class Node, class R, bool isLeaf, bool isPower, bool isComposite> template <class> struct always_false : std::false_type {};
template <class Node, class R, class NodeTag>
struct RangeTypeImpl struct RangeTypeImpl
{ {
static_assert( isLeaf || isPower || isComposite, "Unknown node-type for range definition" ); static_assert( always_false<NodeTag>::value, "Unknown node-type for range definition" );
}; };
} }
...@@ -31,14 +33,14 @@ namespace AMDiS ...@@ -31,14 +33,14 @@ namespace AMDiS
**/ **/
template <class Node, class R = double> template <class Node, class R = double>
using RangeType_t = using RangeType_t =
typename Impl::RangeTypeImpl<Node, R, Node::isLeaf, Node::isPower, Node::isComposite>::type; typename Impl::RangeTypeImpl<Node, R, typename Node::NodeTag>::type;
namespace Impl namespace Impl
{ {
// Leaf node // Leaf node
template <class Node, class R> template <class Node, class R>
struct RangeTypeImpl<Node, R, true, false, false> struct RangeTypeImpl<Node, R, Dune::TypeTree::LeafNodeTag>
{ {
using LocalBasis = typename Node::FiniteElement::Traits::LocalBasisType; using LocalBasis = typename Node::FiniteElement::Traits::LocalBasisType;
using T = typename LocalBasis::Traits::RangeType; using T = typename LocalBasis::Traits::RangeType;
...@@ -47,7 +49,7 @@ namespace AMDiS ...@@ -47,7 +49,7 @@ namespace AMDiS
// Power node // Power node
template <class Node, class R> template <class Node, class R>
struct RangeTypeImpl<Node, R, false, true, false> struct RangeTypeImpl<Node, R, Dune::TypeTree::PowerNodeTag>
{ {
using ChildNode = typename Node::template Child<0>::type; using ChildNode = typename Node::template Child<0>::type;
...@@ -66,7 +68,7 @@ namespace AMDiS ...@@ -66,7 +68,7 @@ namespace AMDiS
// Composite node // Composite node
template <class Node, class R> template <class Node, class R>
struct RangeTypeImpl<Node, R, false, false, true> struct RangeTypeImpl<Node, R, Dune::TypeTree::CompositeNodeTag>
{ {
template <class Idx> struct RangeTypeGenerator; template <class Idx> struct RangeTypeGenerator;
template <std::size_t... I> template <std::size_t... I>
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment