PUP namespace

Extensions to Charm++'s Pack/Unpack routines.

Functions

template<typename E, typename std::enable_if<std::is_enum<E>::value, int>::type = 0>
void pup(PUP::er& p, E& e)
Pack/Unpack enum class.
template<class Key, class T, class Hash = std::hash<Key>, class KeyEqual = std::equal_to<Key>>
void pup(PUP::er& p, std::unordered_map<Key, T, Hash, KeyEqual>& m)
template<class Key, class T, class Hash = std::hash<Key>, class KeyEqual = std::equal_to<Key>>
void operator|(PUP::er& p, std::unordered_map<Key, T, Hash, KeyEqual>& m)
template<class Key, class Hash = std::hash<Key>, class KeyEqual = std::equal_to<Key>>
void pup(PUP::er& p, std::unordered_set<Key, Hash, KeyEqual>& s)
template<class Key, class Hash = std::hash<Key>, class KeyEqual = std::equal_to<Key>>
void operator|(PUP::er& p, std::unordered_set<Key, Hash, KeyEqual>& s)
template<class T>
void pup(PUP::er& p, std::optional<T>& o)
template<class T>
void operator|(PUP::er& p, std::optional<T>& o)
template<class T, class... Ts>
auto pup_helper(std::size_t& index, const std::size_t send_index, PUP::er& p, std::variant<Ts...>& var) -> char
template<class... Ts>
void pup(PUP::er& p, std::variant<Ts...>& var)
template<typename... Ts>
void operator|(PUP::er& p, std::variant<Ts...>& d)

Charm++ pack/unpack serializer member functions for Refinement_State

void pup(PUP::er& p, AMR::Refinement_State& s)
void operator|(PUP::er& p, AMR::Refinement_State& s)

Charm++ pack/unpack serializer member functions for Edge_Refinement

void pup(PUP::er& p, AMR::Edge_Refinement& e)
void operator|(PUP::er& p, AMR::Edge_Refinement& e)

Charm++ pack/unpack serializer member functions for edge_store_t

void pup(PUP::er& p, AMR::edge_store_t& e)
void operator|(PUP::er& p, AMR::edge_store_t& e)

Charm++ pack/unpack serializer member functions for edge_t

void pup(PUP::er& p, AMR::edge_t& e)
void operator|(PUP::er& p, AMR::edge_t& e)

Charm++ pack/unpack serializer member functions for marked_refinements_store_t

template<class case_t>
void pup(PUP::er& p, AMR::marked_refinements_store_t<case_t>& m)
template<class case_t>
void operator|(PUP::er& p, AMR::marked_refinements_store_t<case_t>& m)

Charm++ pack/unpack serializer member functions for active_element_store_t

void pup(PUP::er& p, AMR::active_element_store_t& a)
void operator|(PUP::er& p, AMR::active_element_store_t& a)
void pup(PUP::er& p, AMR::id_generator_t& i)
void operator|(PUP::er& p, AMR::id_generator_t& i)

Charm++ pack/unpack serializer member functions for master_element_store_t

void pup(PUP::er& p, AMR::master_element_store_t& m)
void operator|(PUP::er& p, AMR::master_element_store_t& m)

Charm++ pack/unpack serializer member functions for tet_store_t

void pup(PUP::er& p, AMR::tet_store_t& t)
void operator|(PUP::er& p, AMR::tet_store_t& t)

Charm++ pack/unpack serializer member functions for mesh_adapter_t

void pup(PUP::er& p, AMR::mesh_adapter_t& m)
void operator|(PUP::er& p, AMR::mesh_adapter_t& m)

Charm++ pack/unpack serializer member functions for node_store_t

void pup(PUP::er& p, AMR::node_store_t& n)
void operator|(PUP::er& p, AMR::node_store_t& n)

Charm++ pack/unpack serializer member functions for node_connectivity_t

void pup(PUP::er& p, AMR::node_connectivity_t& n)
void operator|(PUP::er& p, AMR::node_connectivity_t& n)

Charm++ pack/unpack serializer member functions for refinement_t

void pup(PUP::er& p, AMR::refinement_t& r)
void operator|(PUP::er& p, AMR::refinement_t& r)

Function documentation

template<typename E, typename std::enable_if<std::is_enum<E>::value, int>::type = 0>
void PUP::pup(PUP::er& p, E& e)

Pack/Unpack enum class.

Parameters
in Charm++'s pack/unpack object
in Enum class to pack/unpack

In Charm++ usually both the pup() overload and an overload for operator| are defined for all serializable types. However, we cannot define operator| for enum class as it would conflict with Charm++'s catch-all, template< class T > inline void operator|(PUP::er &p,T &t) {...}.

template<class Key, class T, class Hash = std::hash<Key>, class KeyEqual = std::equal_to<Key>>
void PUP::pup(PUP::er& p, std::unordered_map<Key, T, Hash, KeyEqual>& m)

Parameters
in Charm++'s pack/unpack object
in std::unordered_map< Key, T, Hash, KeyEqual > to pack/unpack

Pack/Unpack std::unordered_map.

template<class Key, class T, class Hash = std::hash<Key>, class KeyEqual = std::equal_to<Key>>
void PUP::operator|(PUP::er& p, std::unordered_map<Key, T, Hash, KeyEqual>& m)

Parameters
in Charm++'s pack/unpack object
in std::unordered_map< Key, T, Hash, KeyEqual > to pack/unpack

Pack/Unpack std::unordered_map.

template<class Key, class Hash = std::hash<Key>, class KeyEqual = std::equal_to<Key>>
void PUP::pup(PUP::er& p, std::unordered_set<Key, Hash, KeyEqual>& s)

Parameters
in Charm++'s pack/unpack object
in std::unordered_set< Key, Hash, KeyEqual > to pack/unpack

Pack/Unpack std::unordered_set.

template<class Key, class Hash = std::hash<Key>, class KeyEqual = std::equal_to<Key>>
void PUP::operator|(PUP::er& p, std::unordered_set<Key, Hash, KeyEqual>& s)

Parameters
in Charm++'s pack/unpack object
in std::unordered_set< Key, Hash, KeyEqual > to pack/unpack

Pack/Unpack std::unordered_set.

template<class T>
void PUP::pup(PUP::er& p, std::optional<T>& o)

Parameters
in Charm++'s pack/unpack object
in std::optional< T > of arbitrary type T to pack/unpack

Pack/Unpack std::optional

template<class T>
void PUP::operator|(PUP::er& p, std::optional<T>& o)

Parameters
in Charm++'s pack/unpack object
in std::optional< T > of arbitrary type T to pack/unpack

Pack/Unpack std::optional

template<class T, class... Ts>
char PUP::pup_helper(std::size_t& index, const std::size_t send_index, PUP::er& p, std::variant<Ts...>& var)

Parameters
index in/out Counter (location) for type in variant
send_index in Target counter (location) for type in variant
in Charm++'s pack/unpack object
var in std::variant< Ts... > of arbitrary types to pack/unpack

Pack/Unpack helper for std::variant

template<class... Ts>
void PUP::pup(PUP::er& p, std::variant<Ts...>& var)

Parameters
in Charm++'s pack/unpack object
var in std::variant< Ts... > of arbitrary types to pack/unpack

Pack/Unpack std::variant

template<typename... Ts>
void PUP::operator|(PUP::er& p, std::variant<Ts...>& d)

Parameters
in Charm++'s pack/unpack object
in std::variant< Ts... > of arbitrary types to pack/unpack

Pack/Unpack std::variant

void PUP::pup(PUP::er& p, AMR::Refinement_State& s)

Parameters
in Charm++'s pack/unpack object
in/out Refinement_State object reference

Pack/Unpack Refinement_State

void PUP::operator|(PUP::er& p, AMR::Refinement_State& s)

Parameters
in/out Charm++'s PUP::er serializer object reference
in/out Refinement_State object reference

Pack/Unpack serialize operator|

void PUP::pup(PUP::er& p, AMR::Edge_Refinement& e)

Parameters
in Charm++'s pack/unpack object
in/out Edge_Refinement object reference

Pack/Unpack Edge_Refinement

void PUP::operator|(PUP::er& p, AMR::Edge_Refinement& e)

Parameters
in/out Charm++'s PUP::er serializer object reference
in/out Edge_Refinement object reference

Pack/Unpack serialize operator|

void PUP::pup(PUP::er& p, AMR::edge_store_t& e)

Parameters
in Charm++'s pack/unpack object
in/out edge_store_t object reference

Pack/Unpack edge_store_t

void PUP::operator|(PUP::er& p, AMR::edge_store_t& e)

Parameters
in/out Charm++'s PUP::er serializer object reference
in/out edge_store_t object reference

Pack/Unpack serialize operator|

void PUP::pup(PUP::er& p, AMR::edge_t& e)

Parameters
in Charm++'s pack/unpack object
in/out edge_t object reference

Pack/Unpack edge_t

void PUP::operator|(PUP::er& p, AMR::edge_t& e)

Parameters
in/out Charm++'s PUP::er serializer object reference
in/out edge_t object reference

Pack/Unpack serialize operator|

template<class case_t>
void PUP::pup(PUP::er& p, AMR::marked_refinements_store_t<case_t>& m)

Parameters
in Charm++'s pack/unpack object
in/out marked_refinements_store_t object reference

Pack/Unpack marked_refinements_store_t

template<class case_t>
void PUP::operator|(PUP::er& p, AMR::marked_refinements_store_t<case_t>& m)

Parameters
in/out Charm++'s PUP::er serializer object reference
in/out marked_refinements_store_t object reference

Pack/Unpack serialize operator|

void PUP::pup(PUP::er& p, AMR::active_element_store_t& a)

Parameters
in Charm++'s pack/unpack object
in/out active_element_store_t object reference

Pack/Unpack active_element_store_t

void PUP::operator|(PUP::er& p, AMR::active_element_store_t& a)

Parameters
in/out Charm++'s PUP::er serializer object reference
in/out active_element_store_t object reference

Pack/Unpack serialize operator|

void PUP::pup(PUP::er& p, AMR::id_generator_t& i)

Parameters
in Charm++'s pack/unpack object
in/out id_generator_t object reference

Pack/Unpack id_generator_t

void PUP::operator|(PUP::er& p, AMR::id_generator_t& i)

Parameters
in/out Charm++'s PUP::er serializer object reference
in/out id_generator_t object reference

Pack/Unpack serialize operator|

void PUP::pup(PUP::er& p, AMR::master_element_store_t& m)

Parameters
in Charm++'s pack/unpack object
in/out master_element_store_t object reference

Pack/Unpack master_element_store_t

void PUP::operator|(PUP::er& p, AMR::master_element_store_t& m)

Parameters
in/out Charm++'s PUP::er serializer object reference
in/out master_element_store_t object reference

Pack/Unpack serialize operator|

void PUP::pup(PUP::er& p, AMR::tet_store_t& t)

Parameters
in Charm++'s pack/unpack object
in/out tet_store_t object reference

Pack/Unpack tet_store_t

void PUP::operator|(PUP::er& p, AMR::tet_store_t& t)

Parameters
in/out Charm++'s PUP::er serializer object reference
in/out tet_store_t object reference

Pack/Unpack serialize operator|

void PUP::pup(PUP::er& p, AMR::mesh_adapter_t& m)

Parameters
in Charm++'s pack/unpack object
in/out mesh_adapter_t object reference

Pack/Unpack mesh_adapter_t

void PUP::operator|(PUP::er& p, AMR::mesh_adapter_t& m)

Parameters
in/out Charm++'s PUP::er serializer object reference
in/out mesh_adapter_t object reference

Pack/Unpack serialize operator|

void PUP::pup(PUP::er& p, AMR::node_store_t& n)

Pack/Unpack node_store_t

void PUP::operator|(PUP::er& p, AMR::node_store_t& n)

Parameters
in/out Charm++'s PUP::er serializer object reference
in/out node_store_t object reference

Pack/Unpack serialize operator|

void PUP::pup(PUP::er& p, AMR::node_connectivity_t& n)

Parameters
in Charm++'s pack/unpack object
in/out node_connectivity_t object reference

Pack/Unpack node_connectivity_t

void PUP::operator|(PUP::er& p, AMR::node_connectivity_t& n)

Parameters
in/out Charm++'s PUP::er serializer object reference
in/out node_connectivity_t object reference

Pack/Unpack serialize operator|

void PUP::pup(PUP::er& p, AMR::refinement_t& r)

Pack/Unpack refinement_t

void PUP::operator|(PUP::er& p, AMR::refinement_t& r)

Parameters
in/out Charm++'s PUP::er serializer object reference
in/out refinement_t object reference

Pack/Unpack serialize operator|