10 #define SMART_UTILS_H_ 14 using NameMap = std::map<std::string, int>;
15 using PolicyVec = amrex::Gpu::DeviceVector<InitializationPolicy>;
23 int size () const noexcept {
return common_names.size(); }
39 template <
typename PTile>
44 #pragma omp critical (ionization_nextid) 47 pid = PTile::ParticleType::NextID();
48 PTile::ParticleType::NextID(pid + num_added);
51 const int cpuid = amrex::ParallelDescriptor::MyProc();
52 auto pp = ptile.GetArrayOfStructs()().
data() + old_size;
53 amrex::ParallelFor(num_added, [=] AMREX_GPU_DEVICE (
int ip) noexcept
61 #endif //SMART_UTILS_H_ data
Definition: run_alltests_1node.py:320
int size() const noexcept
Definition: SmartUtils.H:23
void setNewParticleIDs(PTile &ptile, int old_size, int num_added)
Sets the ids of newly created particles to the next values.
Definition: SmartUtils.H:40
amrex::Gpu::DeviceVector< InitializationPolicy > PolicyVec
Definition: SmartUtils.H:15
Definition: SmartUtils.H:17
PolicyVec getPolicies(const NameMap &names) noexcept
Definition: SmartUtils.cpp:10
names
Definition: plot_results.py:41
amrex::Gpu::DeviceVector< int > dst_comps
Definition: SmartUtils.H:21
std::vector< std::string > common_names
Definition: SmartUtils.H:19
SmartCopyTag getSmartCopyTag(const NameMap &src, const NameMap &dst) noexcept
Definition: SmartUtils.cpp:21
amrex::Gpu::DeviceVector< int > src_comps
Definition: SmartUtils.H:20
std::map< std::string, int > NameMap
Definition: SmartUtils.H:14