version 3.11-dev
Loading...
Searching...
No Matches
Dumux::MultiDomainTraits< SubDomainTypeTags > Struct Template Reference

#include <dumux/multidomain/traits.hh>

Inheritance diagram for Dumux::MultiDomainTraits< SubDomainTypeTags >:

Classes

struct  SubDomain

Public Types

template<std::size_t id>
using SubDomainTypeTag = typename std::tuple_element_t<id, std::tuple<SubDomainTypeTags...>>
 The type tag of the sub domain with the given index.
using Scalar = typename makeFromIndexedType<std::common_type_t, SubDomainScalar, Indices>::type
 the scalar type
using SolutionVector = typename makeFromIndexedType<Dune::MultiTypeBlockVector, SubDomainSolutionVector, Indices>::type
 the solution vector type
using ResidualVector = typename makeFromIndexedType<Dune::MultiTypeBlockVector, SubDomainResidualVector, Indices>::type
 the residual vector type
using JacobianMatrix = typename Detail::MultiDomainMatrixType<SubDomainJacobianMatrix, Indices, Scalar>::type
 the jacobian type
template<template< std::size_t > class T>
using Tuple = typename makeFromIndexedType<std::tuple, T, Indices>::type
 helper alias to create tuple<...> from indexed type
template<template< std::size_t > class T>
using TupleOfSharedPtr = typename Detail::MultiDomainTupleSharedPtr<T, Indices>::type
 helper alias to create tuple<std::shared_ptr<...>> from indexed type
template<template< std::size_t > class T>
using TupleOfSharedPtrConst = typename Detail::MultiDomainTupleSharedPtrConst<T, Indices>::type
 helper alias to create tuple<std::shared_ptr<const ...>> from indexed type

Static Public Attributes

static constexpr std::size_t numSubDomains = sizeof...(SubDomainTypeTags)
 the number of subdomains

Member Typedef Documentation

◆ JacobianMatrix

template<typename... SubDomainTypeTags>
using Dumux::MultiDomainTraits< SubDomainTypeTags >::JacobianMatrix = typename Detail::MultiDomainMatrixType<SubDomainJacobianMatrix, Indices, Scalar>::type

◆ ResidualVector

template<typename... SubDomainTypeTags>
using Dumux::MultiDomainTraits< SubDomainTypeTags >::ResidualVector = typename makeFromIndexedType<Dune::MultiTypeBlockVector, SubDomainResidualVector, Indices>::type

◆ Scalar

template<typename... SubDomainTypeTags>
using Dumux::MultiDomainTraits< SubDomainTypeTags >::Scalar = typename makeFromIndexedType<std::common_type_t, SubDomainScalar, Indices>::type

◆ SolutionVector

template<typename... SubDomainTypeTags>
using Dumux::MultiDomainTraits< SubDomainTypeTags >::SolutionVector = typename makeFromIndexedType<Dune::MultiTypeBlockVector, SubDomainSolutionVector, Indices>::type

◆ SubDomainTypeTag

template<typename... SubDomainTypeTags>
template<std::size_t id>
using Dumux::MultiDomainTraits< SubDomainTypeTags >::SubDomainTypeTag = typename std::tuple_element_t<id, std::tuple<SubDomainTypeTags...>>

Prefer this over SubDomain<id>::TypeTag wherever the tag alone suffices, in particular in default template arguments and other contexts evaluated at definition time: naming SubDomain<id> instantiates that struct and with it every property query of the sub domain's tag, which pins those properties at the point of first use and silently bypasses any property specialization declared later in the same translation unit. This alias is plain tuple access and triggers no property resolution.

◆ Tuple

template<typename... SubDomainTypeTags>
template<template< std::size_t > class T>
using Dumux::MultiDomainTraits< SubDomainTypeTags >::Tuple = typename makeFromIndexedType<std::tuple, T, Indices>::type

◆ TupleOfSharedPtr

template<typename... SubDomainTypeTags>
template<template< std::size_t > class T>
using Dumux::MultiDomainTraits< SubDomainTypeTags >::TupleOfSharedPtr = typename Detail::MultiDomainTupleSharedPtr<T, Indices>::type

◆ TupleOfSharedPtrConst

template<typename... SubDomainTypeTags>
template<template< std::size_t > class T>
using Dumux::MultiDomainTraits< SubDomainTypeTags >::TupleOfSharedPtrConst = typename Detail::MultiDomainTupleSharedPtrConst<T, Indices>::type

Member Data Documentation

◆ numSubDomains

template<typename... SubDomainTypeTags>
std::size_t Dumux::MultiDomainTraits< SubDomainTypeTags >::numSubDomains = sizeof...(SubDomainTypeTags)
staticconstexpr

The documentation for this struct was generated from the following file: