blackoilconvectivemixingmoduleparam.hpp
Go to the documentation of this file.
1// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
2// vi: set et ts=4 sw=4 sts=4:
3/*
4 This file is part of the Open Porous Media project (OPM).
5
6 OPM is free software: you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation, either version 2 of the License, or
9 (at your option) any later version.
10
11 OPM is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with OPM. If not, see <http://www.gnu.org/licenses/>.
18
19 Consult the COPYING file in the top-level source directory of this
20 module for the precise wording of the license and the list of
21 copyright holders.
22*/
28#ifndef OPM_CONVECTIVEMIXING_MODULE_PARAM_HPP
29#define OPM_CONVECTIVEMIXING_MODULE_PARAM_HPP
30
31#include <opm/common/utility/VectorWithDefaultAllocator.hpp>
32
33#if HAVE_CUDA
34#if USE_HIP
35#include <opm/simulators/linalg/gpuistl_hip/GpuBuffer.hpp>
36#include <opm/simulators/linalg/gpuistl_hip/GpuView.hpp>
37#else // !USE_HIP
40#endif // USE_HIP
41#endif // HAVE_CUDA
42
43namespace Opm {
44
45template<class Scalar, template<class> class Storage = VectorWithDefaultAllocator>
47{
48 Storage<bool> active_;
49 Storage<Scalar> Xhi_;
50 Storage<Scalar> Psi_;
51};
52
53#ifdef HAVE_CUDA
54namespace gpuistl
55{
56
57template <class Scalar>
60{
62 view.active_ = gpuistl::make_view(params.active_);
63 view.Xhi_ = gpuistl::make_view(params.Xhi_);
64 view.Psi_ = gpuistl::make_view(params.Psi_);
65 return view;
66}
67
68template <class Scalar>
69ConvectiveMixingModuleParam<Scalar, GpuBuffer>
70copy_to_gpu(const ConvectiveMixingModuleParam<Scalar, VectorWithDefaultAllocator>& params)
71{
72 return ConvectiveMixingModuleParam<Scalar, GpuBuffer>{
73 gpuistl::GpuBuffer(params.active_),
74 gpuistl::GpuBuffer(params.Xhi_),
75 gpuistl::GpuBuffer(params.Psi_)
76 };
77}
78
79}
80#endif
81
82}
83
84#endif
PointerView< T > make_view(const std::shared_ptr< T > &ptr)
Definition: gpu_smart_pointer.hpp:408
Definition: blackoilbioeffectsmodules.hh:45
Definition: blackoilconvectivemixingmoduleparam.hpp:47
Storage< Scalar > Xhi_
Definition: blackoilconvectivemixingmoduleparam.hpp:49
Storage< bool > active_
Definition: blackoilconvectivemixingmoduleparam.hpp:48
Storage< Scalar > Psi_
Definition: blackoilconvectivemixingmoduleparam.hpp:50