Block-Structured AMR Software Framework
Loading...
Searching...
No Matches
AMReX_FabDataType.H
Go to the documentation of this file.
1#ifndef AMREX_FAB_DATA_TYPE_H_
2#define AMREX_FAB_DATA_TYPE_H_
3#include <AMReX_Config.H>
4
10#include <AMReX_Concepts.H>
11#include <AMReX_TypeTraits.H>
12
13namespace amrex {
14
16template <typename T> struct FabDataType {};
17//
19template <MultiFabLike T>
20struct FabDataType<T>
21{
23 using fab_type = typename T::fab_type;
25 using value_type = typename T::value_type;
26};
27
29template <typename T>
31struct FabDataType<T>
32{
34 using fab_type = typename T::value_type::fab_type;
36 using value_type = typename T::value_type::value_type;
37};
38
39}
40
41#endif
Checks if a type is amrex::MultiFab-like (i.e., FabArray<FAB>, where FAB is a BaseFabType).
Definition AMReX_Concepts.H:26
Definition AMReX_Amr.cpp:50
typename T::value_type value_type
Scalar value type held by the FAB.
Definition AMReX_FabDataType.H:25
typename T::fab_type fab_type
FAB type stored by the MultiFab-like type.
Definition AMReX_FabDataType.H:23
Type trait specialized for MultiFab-like types and their containers.
Definition AMReX_FabDataType.H:16