26#ifndef VLASIATOR_BLOCK_ADJUST_GPU_HPP
27#define VLASIATOR_BLOCK_ADJUST_GPU_HPP
33#include <dccrg_cartesian_geometry.hpp>
37 #ifndef DEBUG_SPATIAL_CELL
38 #define DEBUG_SPATIAL_CELL
46 dccrg::Dccrg<spatial_cell::SpatialCell,dccrg::Cartesian_Geometry>& mpiGrid,
47 const vector<CellID>& cells,
51 dccrg::Dccrg<spatial_cell::SpatialCell,dccrg::Cartesian_Geometry>& mpiGrid,
52 const vector<CellID>& cells,
57 const size_t largestSizePower,
59 const size_t offset=0);
62 dccrg::Dccrg<spatial_cell::SpatialCell,dccrg::Cartesian_Geometry>& mpiGrid,
63 const vector<CellID>& cellsToAdjust,
65 uint &largestBlocksToChange,
66 uint &largestBlocksBeforeOrAfter,
72 Hashinator::Hashmap<vmesh::GlobalID,vmesh::LocalID>** input_maps,
73 split::SplitVector<Hashinator::hash_pair<vmesh::GlobalID,vmesh::LocalID>> **output_vecs,
75 vmesh::VelocityMesh** rule_meshes,
76 Hashinator::Hashmap<vmesh::GlobalID,vmesh::LocalID>** rule_maps,
77 split::SplitVector<vmesh::GlobalID>** rule_vectors,
83 Hashinator::Hashmap<vmesh::GlobalID,vmesh::LocalID>** input_maps,
84 split::SplitVector<Hashinator::hash_pair<vmesh::GlobalID,vmesh::LocalID>> **output_vecs,
86 vmesh::VelocityMesh** rule_meshes,
87 Hashinator::Hashmap<vmesh::GlobalID,vmesh::LocalID>** rule_maps,
88 split::SplitVector<vmesh::GlobalID>** rule_vectors,
94 Hashinator::Hashmap<vmesh::GlobalID,vmesh::LocalID>** input_maps,
95 split::SplitVector<vmesh::GlobalID> **output_vecs,
97 vmesh::VelocityMesh** rule_meshes,
98 Hashinator::Hashmap<vmesh::GlobalID,vmesh::LocalID>** rule_maps,
99 split::SplitVector<vmesh::GlobalID>** rule_vectors,
void extract_to_delete_or_move_caller(Hashinator::Hashmap< vmesh::GlobalID, vmesh::LocalID > **input_maps, split::SplitVector< Hashinator::hash_pair< vmesh::GlobalID, vmesh::LocalID > > **output_vecs, vmesh::LocalID *output_sizes, vmesh::VelocityMesh **rule_meshes, Hashinator::Hashmap< vmesh::GlobalID, vmesh::LocalID > **rule_maps, split::SplitVector< vmesh::GlobalID > **rule_vectors, const uint nCells, gpuStream_t stream)
void adjust_velocity_blocks_in_cells(dccrg::Dccrg< spatial_cell::SpatialCell, dccrg::Cartesian_Geometry > &mpiGrid, const vector< CellID > &cellsToAdjust, const uint popID)
void update_velocity_block_content_lists(dccrg::Dccrg< SpatialCell, dccrg::Cartesian_Geometry > &mpiGrid, const vector< CellID > &cells, const uint popID)
void batch_adjust_blocks_caller(dccrg::Dccrg< spatial_cell::SpatialCell, dccrg::Cartesian_Geometry > &mpiGrid, const vector< CellID > &cellsToAdjust, const uint cellOffset, uint &out_largestBlocksToChange, uint &out_largestBlocksBeforeOrAfter, const uint popID)
void extract_to_add_caller(Hashinator::Hashmap< vmesh::GlobalID, vmesh::LocalID > **input_maps, split::SplitVector< vmesh::GlobalID > **output_vecs, vmesh::LocalID *output_sizes, vmesh::VelocityMesh **rule_meshes, Hashinator::Hashmap< vmesh::GlobalID, vmesh::LocalID > **rule_maps, split::SplitVector< vmesh::GlobalID > **rule_vectors, const uint nCells, gpuStream_t stream)
void clear_maps_caller(const uint nCells, const size_t largestSizePower, gpuStream_t stream, const size_t offset)
void extract_to_replace_caller(Hashinator::Hashmap< vmesh::GlobalID, vmesh::LocalID > **input_maps, split::SplitVector< Hashinator::hash_pair< vmesh::GlobalID, vmesh::LocalID > > **output_vecs, vmesh::LocalID *output_sizes, vmesh::VelocityMesh **rule_meshes, Hashinator::Hashmap< vmesh::GlobalID, vmesh::LocalID > **rule_maps, split::SplitVector< vmesh::GlobalID > **rule_vectors, const uint nCells, gpuStream_t stream)