Flow123d
DF_mechanic_bench-4968b1b
|
#include <mixed.hh>
Public Member Functions | |
template<template< IntDim... > class TT> | |
Mixed (const Mixed< TT > &other) | |
Mixed (const T< 0 > &p0, const T< 1 > &p1, const T< 2 > &p2, const T< 3 > &p3) | |
Mixed (T< 0 > &&p0, T< 1 > &&p1, T< 2 > &&p2, T< 3 > &&p3) | |
template<typename... Args> | |
Mixed (Args... args) | |
template<IntDim i_dim> | |
T< i_dim > & | operator[] (Dim< i_dim >) |
template<IntDim i_dim> | |
const T< i_dim > & | operator[] (Dim< i_dim >) const |
template<template< IntDim... > class TParent, typename std::enable_if< std::is_convertible< TParent< 0 >, T< 0 >>::value, T< 0 > >::type > | |
operator Mixed< TParent > () const | |
|
inline |
Template to simplify storing and passing tuples of instances of dimension parametrized templates. Currently instances for dim = 0,1,2,3 are created. We assume spacedim=3. Usage:
fe_order = 10; auto gauss = Mixed<QGauss>(q_order); // template <int dim> class QGauss; auto mapping = MixedSpaceDim<Mapping>(); // template <int dim, int spacedim> class Mapping; ... fe_values = FEValues<dim>(mapping[Dim<dim>{}], gauss[Dim<dim>{}], ...)
or
fe_values = FEValues<dim>(mapping[0_d], gauss[0_d], ...) fe_values = FEValues<dim>(mapping[1_d], gauss[1_d], ...) ...
All parameters of the Mixed<T>(...) constructor are forwarder (by value) to the T(...) constructor for every dimension. Only forwarding by value is supported due to problems with MixedPtr. Can not resolve copy constructor correctly.
|
inline |
Beautiful index/like access inspired by: https://arne-mertz.de/2017/03/tuple-compile-time-access/