35namespace Integrators {
41 context()->parallel_try_catch([&]() {
43 throw std::domain_error(
"Parameter 'steps' must be positive");
66 context()->parallel_try_catch([&]() {
68 std::make_shared<::SteepestDescentParameters>(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)
void do_construct(VariantMap const ¶ms) override
::SteepestDescentParameters const & get_instance() const
Variant integrate(VariantMap const ¶ms) override
int integrate_with_signal_handler(int n_steps, int reuse_forces, bool update_accumulators)
std::shared_ptr< Propagation > propagation
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
void register_integrator(SteepestDescentParameters const &obj)
static SteepestDescentParameters params
Currently active steepest descent instance.
static constexpr const ReadOnly read_only
Recursive variant implementation.
double gamma
Dampening constant.
double max_displacement
Maximal particle displacement.
double f_max
Maximal particle force.