Vlasiator ebf0dd394 on dev (v5.4.0 + 1054 commits)
Loading...
Searching...
No Matches
gpu_trans_map_amr.hpp
Go to the documentation of this file.
1/*
2 * This file is part of Vlasiator.
3 * Copyright 2010-2024 Finnish Meteorological Institute and University of Helsinki
4 *
5 * For details of usage, see the COPYING file and read the "Rules of the Road"
6 * at http://www.physics.helsinki.fi/vlasiator/
7 *
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License as published by
10 * the Free Software Foundation; either version 2 of the License, or
11 * (at your option) any later version.
12 *
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public License along
19 * with this program; if not, write to the Free Software Foundation, Inc.,
20 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
21 */
22#ifndef GPU_TRANS_MAP_AMR_H
23#define GPU_TRANS_MAP_AMR_H
24
25#include <vector>
26#include "vec.h"
27#include "../common.h"
29
30// Buffers, vectors and set for use in translation. Cannot be declared in arch/gpu_base.hpp, because of
31// compilation errors.
32extern split::SplitVector<vmesh::GlobalID> *unionOfBlocks, *dev_unionOfBlocks;
33extern Hashinator::Hashmap<vmesh::GlobalID,vmesh::LocalID> *unionOfBlocksSet, *dev_unionOfBlocksSet;
34
35bool trans_map_1d_amr(const dccrg::Dccrg<spatial_cell::SpatialCell,dccrg::Cartesian_Geometry>& mpiGrid,
36 const std::vector<CellID>& localPropagatedCells,
37 const std::vector<CellID>& remoteTargetCells,
38 std::vector<uint>& nPencils,
39 const uint dimension,
40 const Realf dt,
41 const uint popID);
42
44 dccrg::Cartesian_Geometry>& mpiGrid,
45 const uint dimension,
46 int direction,
47 const uint popID);
48#endif
dt
Definition Dispersion.m:39
float Realf
Definition definitions.h:33
split::SplitVector< vmesh::GlobalID > * dev_unionOfBlocks
Definition gpu_base.cpp:60
Hashinator::Hashmap< vmesh::GlobalID, vmesh::LocalID > * dev_unionOfBlocksSet
Definition gpu_base.cpp:61
split::SplitVector< vmesh::GlobalID > * unionOfBlocks
Definition gpu_base.cpp:60
Hashinator::Hashmap< vmesh::GlobalID, vmesh::LocalID > * unionOfBlocksSet
Definition gpu_base.cpp:61
__global__ void const Realf const uint *__restrict__ const uint *__restrict__ const vmesh::GlobalID *__restrict__ const uint const uint nPencils
bool trans_map_1d_amr(const dccrg::Dccrg< spatial_cell::SpatialCell, dccrg::Cartesian_Geometry > &mpiGrid, const std::vector< CellID > &localPropagatedCells, const std::vector< CellID > &remoteTargetCells, std::vector< uint > &nPencils, const uint dimension, const Realf dt, const uint popID)
void update_remote_mapping_contribution_amr(dccrg::Dccrg< spatial_cell::SpatialCell, dccrg::Cartesian_Geometry > &mpiGrid, const uint dimension, int direction, const uint popID)
An interface to a type with floating point values.