ESPResSo
Extensible Simulation Package for Research on Soft Matter Systems
Loading...
Searching...
No Matches
ScafacosContextBase.cpp
Go to the documentation of this file.
1/*
2 * Copyright (C) 2022 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#if defined(SCAFACOS) or defined(SCAFACOS_DIPOLAR)
23
25
26#include <boost/algorithm/string/join.hpp>
27
28#include <scafacos/Scafacos.hpp>
29
30#include <set>
31#include <stdexcept>
32#include <string>
33#include <vector>
34
35std::vector<std::string> ScafacosContextBase::available_methods() {
36 return ::Scafacos::Scafacos::available_methods();
37}
38
39void ScafacosContextBase::sanity_check_method(std::string const &method_name) {
41 auto const valid_methods = std::set<std::string>(all.begin(), all.end());
42 if (valid_methods.count(method_name) == 0) {
43 auto const method_names = "'" + boost::algorithm::join(all, "', '") + "'";
44 throw std::invalid_argument("Method '" + method_name +
45 "' is unknown or not compiled in ScaFaCoS; "
46 "currently available methods are " +
47 method_names);
48 }
49}
50
51#endif // SCAFACOS or SCAFACOS_DIPOLAR
ScafacosContextBase provides the public interface of the ScaFaCoS bridge.
This file contains the defaults for ESPResSo.
static std::vector< std::string > available_methods()
static void sanity_check_method(std::string const &method_name)