ESPResSo
Extensible Simulation Package for Research on Soft Matter Systems
Loading...
Searching...
No Matches
walberla/initialize.cpp
Go to the documentation of this file.
1
/*
2
* Copyright (C) 2021-2023 The ESPResSo project
3
*
4
* This file is part of ESPResSo.
5
*
6
* ESPResSo 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 3 of the License, or
9
* (at your option) any later version.
10
*
11
* ESPResSo 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 this program. If not, see <http://www.gnu.org/licenses/>.
18
*/
19
20
#include <
config/config.hpp
>
21
22
#ifdef ESPRESSO_WALBERLA
23
24
#include "
LatticeWalberla.hpp
"
25
26
#include "
LBFluid.hpp
"
27
#include "
LBFluidNode.hpp
"
28
#include "
LBFluidSlice.hpp
"
29
30
#include "
EKContainer.hpp
"
31
#include "
EKFFT.hpp
"
32
#include "
EKFFT_GPU.hpp
"
33
#include "
EKNone.hpp
"
34
#include "
EKPoissonSolverNode.hpp
"
35
#include "
EKPoissonSolverSlice.hpp
"
36
37
#include "
EKSpecies.hpp
"
38
#include "
EKSpeciesNode.hpp
"
39
#include "
EKSpeciesSlice.hpp
"
40
41
#include "
EKReactant.hpp
"
42
#include "
EKReaction.hpp
"
43
#include "
EKReactions.hpp
"
44
45
#include <
script_interface/ObjectHandle.hpp
>
46
47
#include <
utils/Factory.hpp
>
48
49
#include <unordered_map>
50
51
#ifdef ESPRESSO_WALBERLA_STATIC_ASSERT
52
#error "waLBerla headers should not be visible to the ESPResSo script interface"
53
#endif
54
55
namespace
ScriptInterface::walberla
{
56
57
void
initialize
(
Utils::Factory<ObjectHandle>
*
om
) {
58
om
->register_new<
LatticeWalberla
>(
"walberla::LatticeWalberla"
);
59
60
om
->register_new<
LBFluidCPU
>(
"walberla::LBFluidCPU"
);
61
#ifdef ESPRESSO_CUDA
62
om
->register_new<
LBFluidGPU
>(
"walberla::LBFluidGPU"
);
63
#endif
// ESPRESSO_CUDA
64
om
->register_new<
LBFluidNode
>(
"walberla::LBFluidNode"
);
65
om
->register_new<
LBFluidSlice
>(
"walberla::LBFluidSlice"
);
66
om
->register_new<
LBVTKHandle
>(
"walberla::LBVTKHandle"
);
67
68
om
->register_new<
EKContainer
>(
"walberla::EKContainer"
);
69
om
->register_new<
EKSpeciesCPU
>(
"walberla::EKSpeciesCPU"
);
70
#ifdef ESPRESSO_CUDA
71
om
->register_new<
EKSpeciesGPU
>(
"walberla::EKSpeciesGPU"
);
72
#endif
// ESPRESSO_CUDA
73
om
->register_new<
EKSpeciesNode
>(
"walberla::EKSpeciesNode"
);
74
om
->register_new<
EKSpeciesSlice
>(
"walberla::EKSpeciesSlice"
);
75
#ifdef ESPRESSO_WALBERLA_FFT
76
om
->register_new<
EKFFT
>(
"walberla::EKFFT"
);
77
#ifdef ESPRESSO_CUDA
78
om
->register_new<
EKFFTGPU
>(
"walberla::EKFFTGPU"
);
79
#endif
// ESPRESSO_CUDA
80
#endif
// WALBERLA_FFT
81
om
->register_new<
EKNone
>(
"walberla::EKNone"
);
82
om
->register_new<
EKPoissonSolverNode
>(
"walberla::EKPoissonSolverNode"
);
83
om
->register_new<
EKPoissonSolverSlice
>(
"walberla::EKPoissonSolverSlice"
);
84
om
->register_new<
EKVTKHandle
>(
"walberla::EKVTKHandle"
);
85
om
->register_new<
EKPoissonVTKHandle
>(
"walberla::EKPoissonVTKHandle"
);
86
87
om
->register_new<
EKReactant
>(
"walberla::EKReactant"
);
88
om
->register_new<
EKBulkReaction
>(
"walberla::EKBulkReaction"
);
89
om
->register_new<
EKIndexedReaction
>(
"walberla::EKIndexedReaction"
);
90
om
->register_new<
EKReactions
>(
"walberla::EKReactions"
);
91
}
92
93
#ifdef ESPRESSO_WALBERLA_FFT
94
std::unordered_map<std::string, int>
const
EKPoissonVTKHandle::obs_map = {
95
{
"potential"
,
static_cast<
int
>
(
EKPoissonOutputVTK::potential
)},
96
};
97
#else
98
std::unordered_map<std::string, int>
const
EKPoissonVTKHandle::obs_map = {};
99
#endif
100
101
}
// namespace ScriptInterface::walberla
102
103
#endif
// ESPRESSO_WALBERLA
EKFFT.hpp
EKFFT_GPU.hpp
EKPoissonSolverNode.hpp
EKPoissonSolverSlice.hpp
EKReaction.hpp
EKSpeciesNode.hpp
EKSpeciesSlice.hpp
EKSpecies.hpp
Factory.hpp
LBFluidNode.hpp
LBFluidSlice.hpp
LBFluid.hpp
ObjectHandle.hpp
ScriptInterface::walberla::EKBulkReaction
Definition
EKReaction.hpp:110
ScriptInterface::walberla::EKContainer
Definition
script_interface/walberla/EKContainer.hpp:51
ScriptInterface::walberla::EKFFTGPU
Definition
EKFFT_GPU.hpp:43
ScriptInterface::walberla::EKFFT
Definition
EKFFT.hpp:45
ScriptInterface::walberla::EKIndexedReaction
Definition
EKReaction.hpp:136
ScriptInterface::walberla::EKNone
Definition
script_interface/walberla/EKNone.hpp:38
ScriptInterface::walberla::EKPoissonSolverNode
Definition
EKPoissonSolverNode.hpp:43
ScriptInterface::walberla::EKPoissonSolverSlice
Definition
EKPoissonSolverSlice.hpp:46
ScriptInterface::walberla::EKPoissonVTKHandle
Definition
EKPoissonSolver.hpp:39
ScriptInterface::walberla::EKReactant
Definition
script_interface/walberla/EKReactant.hpp:36
ScriptInterface::walberla::EKReactions
Definition
script_interface/walberla/EKReactions.hpp:40
ScriptInterface::walberla::EKSpeciesCPU
Definition
EKSpecies.hpp:165
ScriptInterface::walberla::EKSpeciesGPU
Definition
EKSpecies.hpp:171
ScriptInterface::walberla::EKSpeciesNode
Definition
EKSpeciesNode.hpp:43
ScriptInterface::walberla::EKSpeciesSlice
Definition
EKSpeciesSlice.hpp:112
ScriptInterface::walberla::EKVTKHandle
Definition
EKSpecies.hpp:46
ScriptInterface::walberla::LBFluidCPU
Definition
LBFluid.hpp:150
ScriptInterface::walberla::LBFluidGPU
Definition
LBFluid.hpp:156
ScriptInterface::walberla::LBFluidNode
Definition
LBFluidNode.hpp:45
ScriptInterface::walberla::LBFluidSlice
Definition
LBFluidSlice.hpp:100
ScriptInterface::walberla::LBVTKHandle
Definition
LBFluid.hpp:49
ScriptInterface::walberla::LatticeWalberla
Definition
script_interface/walberla/LatticeWalberla.hpp:42
Utils::Factory
Factory template.
Definition
Factory.hpp:78
stream
cudaStream_t stream[1]
CUDA streams for parallel computing on CPU and GPU.
Definition
common_cuda.cu:34
config.hpp
ScriptInterface::walberla
Definition
script_interface/walberla/EKContainer.hpp:49
ScriptInterface::walberla::initialize
void initialize(Utils::Factory< ObjectHandle > *om)
Definition
walberla/initialize.cpp:57
EKNone.hpp
EKReactions.hpp
LatticeWalberla.hpp
EKPoissonOutputVTK::potential
@ potential
EKContainer.hpp
EKReactant.hpp
src
script_interface
walberla
initialize.cpp
Generated on Mon Dec 8 2025 02:32:30 for ESPResSo by
1.9.8