ESPResSo
Extensible Simulation Package for Research on Soft Matter Systems
Loading...
Searching...
No Matches
BreakageSpec.hpp
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
#pragma once
21
22
#include "
core/bond_breakage/bond_breakage.hpp
"
23
24
#include "
script_interface/ScriptInterface.hpp
"
25
26
#include <memory>
27
#include <variant>
28
29
namespace
ScriptInterface
{
30
namespace
BondBreakage
{
31
32
class
BreakageSpec
:
public
AutoParameters
<BreakageSpec> {
33
public
:
34
BreakageSpec
()
35
: m_breakage_spec(
std
::make_shared<::
BondBreakage
::
BreakageSpec
>()) {
36
add_parameters
({
37
{
"breakage_length"
, m_breakage_spec->breakage_length},
38
{
"action_type"
,
39
[
this
](
const
Variant
&v) {
40
m_breakage_spec->action_type =
::BondBreakage::ActionType
{
41
m_breakage_str_to_enum.at(std::get<std::string>(v))};
42
},
43
[
this
]() {
44
return
Variant
(
45
m_breakage_enum_to_str.at(m_breakage_spec->action_type));
46
}},
47
});
48
}
49
50
std::shared_ptr<::BondBreakage::BreakageSpec>
breakage_spec
()
const
{
51
return
m_breakage_spec;
52
}
53
54
private
:
55
std::shared_ptr<::BondBreakage::BreakageSpec> m_breakage_spec;
56
std::unordered_map<::BondBreakage::ActionType, std::string>
57
m_breakage_enum_to_str = {
58
{
::BondBreakage::ActionType::NONE
,
"none"
},
59
{
::BondBreakage::ActionType::DELETE_BOND
,
"delete_bond"
},
60
{
::BondBreakage::ActionType::REVERT_BIND_AT_POINT_OF_COLLISION
,
61
"revert_bind_at_point_of_collision"
}};
62
std::unordered_map<std::string, ::BondBreakage::ActionType>
63
m_breakage_str_to_enum = {
64
{
"none"
,
::BondBreakage::ActionType::NONE
},
65
{
"delete_bond"
,
::BondBreakage::ActionType::DELETE_BOND
},
66
{
"revert_bind_at_point_of_collision"
,
67
::BondBreakage::ActionType::REVERT_BIND_AT_POINT_OF_COLLISION
}};
68
};
69
70
}
// namespace BondBreakage
71
}
// namespace ScriptInterface
ScriptInterface.hpp
bond_breakage.hpp
ScriptInterface::AutoParameters
Bind parameters in the script interface.
Definition
AutoParameters.hpp:94
ScriptInterface::AutoParameters< BreakageSpec >::add_parameters
void add_parameters(std::vector< AutoParameter > &¶ms)
Definition
AutoParameters.hpp:123
ScriptInterface::BondBreakage::BreakageSpec
Definition
BreakageSpec.hpp:32
ScriptInterface::BondBreakage::BreakageSpec::BreakageSpec
BreakageSpec()
Definition
BreakageSpec.hpp:34
ScriptInterface::BondBreakage::BreakageSpec::breakage_spec
std::shared_ptr<::BondBreakage::BreakageSpec > breakage_spec() const
Definition
BreakageSpec.hpp:50
BondBreakage
Definition
actions.hpp:27
BondBreakage::ActionType
ActionType
Definition
bond_breakage.hpp:37
BondBreakage::ActionType::REVERT_BIND_AT_POINT_OF_COLLISION
@ REVERT_BIND_AT_POINT_OF_COLLISION
BondBreakage::ActionType::NONE
@ NONE
BondBreakage::ActionType::DELETE_BOND
@ DELETE_BOND
ScriptInterface
Definition
script_interface/accumulators/AccumulatorBase.hpp:33
ScriptInterface::Variant
make_recursive_variant< ObjectRef > Variant
Possible types for parameters.
Definition
Variant.hpp:131
std
STL namespace.
ScriptInterface::impl::recursive_variant
Recursive variant implementation.
Definition
Variant.hpp:84
src
script_interface
bond_breakage
BreakageSpec.hpp
Generated on Wed Dec 10 2025 02:30:32 for ESPResSo by
1.9.8