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 "EKNone.hpp"
35
36#include "EKSpecies.hpp"
37#include "EKSpeciesNode.hpp"
38#include "EKSpeciesSlice.hpp"
39
40#include "EKReactant.hpp"
41#include "EKReaction.hpp"
42#include "EKReactions.hpp"
43
45
46#include <utils/Factory.hpp>
47
48#include <unordered_map>
49
50#ifdef ESPRESSO_WALBERLA_STATIC_ASSERT
51#error "waLBerla headers should not be visible to the ESPResSo script interface"
52#endif
53
55
57 om->register_new<LatticeWalberla>("walberla::Lattice");
58
59 om->register_new<LBFluid>("walberla::LBFluid");
60 om->register_new<LBFluidNode>("walberla::LBFluidNode");
61 om->register_new<LBFluidSlice>("walberla::LBFluidSlice");
62 om->register_new<LBVTKHandle>("walberla::LBVTKHandle");
63
64 om->register_new<EKContainer>("walberla::EKContainer");
65 om->register_new<EKSpecies>("walberla::EKSpecies");
66 om->register_new<EKSpeciesNode>("walberla::EKSpeciesNode");
67 om->register_new<EKSpeciesSlice>("walberla::EKSpeciesSlice");
68#ifdef ESPRESSO_WALBERLA_FFT
69 om->register_new<EKFFT>("walberla::EKFFT");
70#endif // WALBERLA_FFT
71 om->register_new<EKNone>("walberla::EKNone");
72 om->register_new<EKPoissonSolverNode>("walberla::EKPoissonSolverNode");
73 om->register_new<EKPoissonSolverSlice>("walberla::EKPoissonSolverSlice");
74 om->register_new<EKVTKHandle>("walberla::EKVTKHandle");
75 om->register_new<EKPoissonVTKHandle>("walberla::EKPoissonVTKHandle");
76
77 om->register_new<EKReactant>("walberla::EKReactant");
78 om->register_new<EKBulkReaction>("walberla::EKBulkReaction");
79 om->register_new<EKIndexedReaction>("walberla::EKIndexedReaction");
80 om->register_new<EKReactions>("walberla::EKReactions");
81}
82
83#ifdef ESPRESSO_WALBERLA_FFT
84std::unordered_map<std::string, int> const EKPoissonVTKHandle::obs_map = {
85 {"potential", static_cast<int>(EKPoissonOutputVTK::potential)},
86};
87#else
88std::unordered_map<std::string, int> const EKPoissonVTKHandle::obs_map = {};
89#endif
90
91} // namespace ScriptInterface::walberla
92
93#endif // ESPRESSO_WALBERLA
Factory template.
Definition Factory.hpp:78
void initialize(Utils::Factory< ObjectHandle > *om)
T get_value(Variant const &v)
Extract value of specific type T from a Variant.