Loading [MathJax]/jax/output/HTML-CSS/config.js
ESPResSo
Extensible Simulation Package for Research on Soft Matter Systems
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages Concepts
PackInfoPdfDoublePrecisionCUDA.h
Go to the documentation of this file.
1//======================================================================================================================
2//
3// This file is part of waLBerla. waLBerla is free software: you can
4// redistribute it and/or modify it under the terms of the GNU General Public
5// License as published by the Free Software Foundation, either version 3 of
6// the License, or (at your option) any later version.
7//
8// waLBerla is distributed in the hope that it will be useful, but WITHOUT
9// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
10// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
11// for more details.
12//
13// You should have received a copy of the GNU General Public License along
14// with waLBerla (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>.
15//
16//! \\file PackInfoPdfDoublePrecisionCUDA.h
17//! \\author pystencils
18//======================================================================================================================
19
20// kernel generated with pystencils v1.3.7, lbmpy v1.3.7, sympy v1.12.1,
21// lbmpy_walberla/pystencils_walberla from waLBerla commit
22// f36fa0a68bae59f0b516f6587ea8fa7c24a41141
23
24#pragma once
25
26#include "core/DataTypes.h"
27
28#include "domain_decomposition/IBlock.h"
29
30#include "stencil/Directions.h"
31
32#include "gpu/GPUField.h"
33#include "gpu/GPUWrapper.h"
34#include "gpu/communication/GeneratedGPUPackInfo.h"
35
36namespace walberla {
37namespace pystencils {
38
40 : public ::walberla::gpu::GeneratedGPUPackInfo {
41public:
42 PackInfoPdfDoublePrecisionCUDA(BlockDataID pdfsID_) : pdfsID(pdfsID_) {}
43 ~PackInfoPdfDoublePrecisionCUDA() override = default;
44
45 void pack(stencil::Direction dir, unsigned char *buffer, IBlock *block,
46 gpuStream_t stream) override;
47 void communicateLocal(stencil::Direction /*dir*/, const IBlock * /* sender */,
48 IBlock * /* receiver */,
49 gpuStream_t /* stream */) override {
50 WALBERLA_ABORT(
51 "Local Communication not implemented yet for standard PackInfos. To "
52 "run your application, turn off local communication in the "
53 "communication class, e.g. with useLocalCommunication=false")
54 }
55 void unpack(stencil::Direction dir, unsigned char *buffer, IBlock *block,
56 gpuStream_t stream) override;
57 uint_t size(stencil::Direction dir, IBlock *block) override;
58
59private:
60 BlockDataID pdfsID;
61};
62
63} // namespace pystencils
64} // namespace walberla
uint_t size(stencil::Direction dir, IBlock *block) override
void communicateLocal(stencil::Direction, const IBlock *, IBlock *, gpuStream_t) override
void unpack(stencil::Direction dir, unsigned char *buffer, IBlock *block, gpuStream_t stream) override
void pack(stencil::Direction dir, unsigned char *buffer, IBlock *block, gpuStream_t stream) override
cudaStream_t stream[1]
CUDA streams for parallel computing on CPU and GPU.
static double * block(double *p, std::size_t index, std::size_t size)
Definition elc.cpp:172
\file PackInfoPdfDoublePrecision.cpp \author pystencils