35namespace Integrators {
41 context()->parallel_try_catch([&]() {
43 throw std::domain_error(
"Parameter 'steps' must be positive");
66 context()->parallel_try_catch([&]() {
67 m_instance = std::make_shared<::SteepestDescent>(f_max, gamma,
max_d);
@ INTEG_METHOD_STEEPEST_DESCENT
Vector implementation and trait types for boost qvm interoperability.
void add_parameters(std::vector< AutoParameter > &¶ms)
Variant integrate(VariantMap const ¶ms) override
::SteepestDescent const & get_instance() const
void do_construct(VariantMap const ¶ms) override
int integrate_with_signal_handler(int n_steps, int reuse_forces, bool update_accumulators)
std::shared_ptr< Propagation > propagation
std::shared_ptr< SteepestDescent > steepest_descent
Molecular dynamics integrator.
#define INTEG_REUSE_FORCES_NEVER
recalculate forces unconditionally (mostly used for timing)
T get_value(Variant const &v)
Extract value of specific type T from a Variant.
std::unordered_map< std::string, Variant > VariantMap
static constexpr const ReadOnly read_only
Recursive variant implementation.