2 #ifndef _PROTO_MB_LEVEL_ARGS_ 3 #define _PROTO_MB_LEVEL_ARGS_ 7 #include <unordered_map> 17 template <
typename T,
unsigned int C, MemType MEM, Centering CTR=PR_CELL>
20 std::shared_ptr<MBLevelBoxData<T,C,MEM,CTR>>
data;
23 : data(
std::move(d)) {}
26 template<
typename MAP, MemType MEM>
30 std::shared_ptr<MBLevelMap<MAP,MEM>>
_map;
31 std::unordered_map<std::string, std::shared_ptr<DataWrapper>>
_data;
32 std::unordered_map<std::string, std::any>
constants;
41 template <
typename T,
unsigned int C, MemType DATAMEM, Centering CTR=PR_CELL>
44 template<
typename T,
unsigned int C, MemType DATAMEM, Centering CTR=PR_CELL>
48 inline void Set(
const std::string& label,
const T& value);
51 inline T Get(
const std::string& label)
const;
54 #include "implem/Proto_MBLevelArgsImplem.H" Definition: Proto_MBLevelArgs.H:18
const MBLevelMap< MAP, MEM > & map()
Definition: Proto_MBLevelArgs.H:40
Definition: Proto_MBLevelArgs.H:13
std::unordered_map< std::string, std::any > constants
Definition: Proto_MBLevelArgs.H:32
const MBDisjointBoxLayout & layout()
Definition: Proto_MBLevelArgs.H:39
Single Level Mapped Multiblock Map.
Definition: Proto_MBLevelBoxData.H:19
Multiblock Level Box Data.
Definition: Proto_MBLevelBoxData.H:17
MBLevelArgs(std::shared_ptr< MBLevelMap< MAP, MEM >> &map)
Definition: Proto_MBLevelArgs.H:35
virtual ~DataWrapper()=default
std::unordered_map< std::string, std::shared_ptr< DataWrapper > > _data
Definition: Proto_MBLevelArgs.H:31
Definition: Proto_Array.H:17
MBLevelBoxDataWrapper(std::shared_ptr< MBLevelBoxData< T, C, MEM, CTR >> d)
Definition: Proto_MBLevelArgs.H:22
Definition: Proto_MBDisjointBoxLayout.H:14
std::shared_ptr< MBLevelMap< MAP, MEM > > _map
Definition: Proto_MBLevelArgs.H:30
std::shared_ptr< MBLevelBoxData< T, C, MEM, CTR > > data
Definition: Proto_MBLevelArgs.H:20
Definition: Proto_MBLevelArgs.H:27