45 std::shared_ptr<CoreActorClass> m_actor;
51 [
this]() {
return actor()->icc_cfg.n_icc; }},
53 [
this]() {
return actor()->icc_cfg.max_iterations; }},
55 [
this]() {
return actor()->icc_cfg.eps_out; }},
57 [
this]() {
return actor()->icc_cfg.areas; }},
59 [
this]() {
return actor()->icc_cfg.epsilons; }},
61 [
this]() {
return actor()->icc_cfg.sigmas; }},
63 [
this]() {
return actor()->icc_cfg.convergence; }},
69 [
this]() {
return actor()->icc_cfg.ext_field; }},
71 [
this]() {
return actor()->icc_cfg.relaxation; }},
73 [
this]() {
return actor()->icc_cfg.citeration; }},
75 [
this]() {
return actor()->icc_cfg.first_id; }},
80 auto const n_icc = get_value<int>(
params,
"n_icc");
82 std::vector<double> sigmas{};
83 if (
params.count(
"sigmas")) {
84 sigmas = get_value<std::vector<double>>(
params,
"sigmas");
85 }
else if (n_icc >= 1) {
90 get_value<int>(
params,
"max_iterations"),
91 get_value<double>(
params,
"eps_out"),
92 get_value<std::vector<double>>(
params,
"areas"),
95 get_value<double>(
params,
"convergence"),
96 get_value<std::vector<Utils::Vector3d>>(
params,
"normals"),
97 get_value<Utils::Vector3d>(
params,
"ext_field"),
98 get_value<double>(
params,
"relaxation"),
100 get_value<int>(
params,
"first_id"),
103 m_actor = std::make_shared<CoreActorClass>(std::move(icc_parameters));
109 if (
name ==
"activate") {
113 system.coulomb.impl->extension, m_actor,
114 [&system]() { system.on_coulomb_change(); });
121 std::shared_ptr<CoreActorClass>
actor() {
return m_actor; }
122 std::shared_ptr<CoreActorClass const>
actor()
const {
return m_actor; }
ScriptInterface::Context decorates ScriptInterface::ObjectHandle objects with a context: a creation p...
Vector implementation and trait types for boost qvm interoperability.
Bind parameters in the script interface.
void add_parameters(std::vector< AutoParameter > &¶ms)
virtual void parallel_try_catch(std::function< void()> const &cb) const =0
std::shared_ptr< CoreActorClass > actor()
void do_construct(VariantMap const ¶ms) override
Variant do_call_method(std::string const &name, VariantMap const ¶ms) override
std::shared_ptr< CoreActorClass const > actor() const
boost::string_ref name() const
Context * context() const
Responsible context.
auto const & get_system() const
std::weak_ptr<::System::System > m_system
This file contains the defaults for ESPResSo.
ICC is a method that allows to take into account the influence of arbitrarily shaped dielectric inter...
T get_value(Variant const &v)
Extract value of specific type T from a Variant.
std::unordered_map< std::string, Variant > VariantMap
auto make_vector_of_variants(std::vector< T > const &v)
boost::make_recursive_variant< None, bool, int, std::size_t, double, std::string, ObjectRef, Utils::Vector3b, Utils::Vector3i, Utils::Vector2d, Utils::Vector3d, Utils::Vector4d, std::vector< int >, std::vector< double >, std::vector< boost::recursive_variant_ >, std::unordered_map< int, boost::recursive_variant_ >, std::unordered_map< std::string, boost::recursive_variant_ > >::type Variant
Possible types for parameters.
void add_actor(boost::mpi::communicator const &comm, std::shared_ptr< System::System > const &system, std::optional< Variant > &active_actor, std::shared_ptr< T > const &actor, F &&on_actor_change)
static SteepestDescentParameters params
Currently active steepest descent instance.
static constexpr const ReadOnly read_only