chombo-discharge
Loading...
Searching...
No Matches
CD_ParticleMap.H
1/* chombo-discharge
2 * Copyright © 2021 SINTEF Energy Research.
3 * Please refer to Copyright.txt and LICENSE in the chombo-discharge root directory.
4 */
5
12#ifndef CD_ParticleMap_H
13#define CD_ParticleMap_H
14
15// Std includes
16#include <cstdint>
17#include <utility>
18#include <unordered_map>
19#include <map>
20
21// Our includes
22#include <CD_NamespaceHeader.H>
23
24// Compile-time sanity checks (optional but nice)
25static_assert(sizeof(uint32_t) == 4, "uint32_t must be 32 bits");
26static_assert(sizeof(uint64_t) == 8, "uint64_t must be 64 bits");
27static_assert(sizeof(size_t) == 8, "size_t must be 64 bits");
28
35static inline uint64_t
36encodePair(uint32_t a_level, uint32_t a_gridIndex) noexcept
37{
39}
40
47decodePair(uint64_t key) noexcept
48{
49 return {uint32_t(key >> 32), uint32_t(key)};
50}
51
56{
58 operator()(const std::pair<uint32_t, uint32_t>& p) const noexcept
59 {
60 return encodePair(p.first, p.second);
61 }
62};
63
68template <typename T>
70
71#include <CD_NamespaceFooter.H>
72
73#endif
Base class for a tracer particle solver. This solver can advance particles in a pre-defined velocity ...
Definition CD_TracerParticleSolver.H:37
TracerParticleSolver()
Default constructor.
Definition CD_TracerParticleSolverImplem.H:25
Simple pair-hashing struct for interfacing into unordered_map.
Definition CD_ParticleMap.H:56