18#include "magic_enum/magic_enum.hpp"
32std::string toLowerCase(std::string s) {
33 for (std::string::size_type i = 0; i < s.length(); ++i) {
48 magic_enum::enum_cast<JobType>(ini.Get(
"Main",
"job",
""),
49 magic_enum::case_insensitive)
69 unsigned i =
static_cast<unsigned>(std::time(
nullptr));
85 magic_enum::enum_cast<PotType>(ini.Get(
"Potential",
"potential",
""),
86 magic_enum::case_insensitive)
157 ini.GetReal(
"XTBPot",
"electronic_temperature",
173 throw std::runtime_error(
174 "Switching function must begin before the global cutoff!");
186 ini.Get(
"SocketNWChemPot",
"nwchem_settings",
189 ini.Get(
"SocketNWChemPot",
"unix_socket_path",
192 ini.GetBoolean(
"SocketNWChemPot",
"unix_socket_mode",
195 ini.GetBoolean(
"SocketNWChemPot",
"make_template_input",
201 const char *sec =
"RgpotPot";
209 ini.Get(sec,
"theory",
212 ini.Get(sec,
"scf_type",
224 ini.GetInteger(sec,
"multiplicity",
225 ini.GetInteger(sec,
"nwchem_multiplicity",
252 ini.GetReal(sec,
"uncertainty_threshold",
255 ini.GetBoolean(sec,
"torch_determinism_strict",
265 sec,
"electronic_temperature",
266 ini.GetReal(sec,
"xtb_electronic_temperature",
269 sec,
"max_iterations",
270 ini.GetInteger(sec,
"xtb_max_iterations",
278 if (be ==
"xtb" || be ==
"xtbpot" || be ==
"gfn" || be ==
"gfnxtb") {
284 ini.GetReal(
"XTBPot",
"electronic_temperature",
300 ini.GetInteger(
"Debug",
"write_movies_interval",
303 ini.GetBoolean(
"Debug",
"write_deprecated_outs",
306 ini.GetBoolean(
"Debug",
"estimate_neb_eigenvalues",
314 ini.GetReal(
"Structure Comparison",
"distance_difference",
317 ini.GetReal(
"Structure Comparison",
"neighbor_cutoff",
320 ini.GetBoolean(
"Structure Comparison",
"check_rotation",
323 ini.GetReal(
"Structure Comparison",
"energy_difference",
326 "Structure Comparison",
"indistinguishable_atoms",
329 ini.GetBoolean(
"Structure Comparison",
"remove_translation",
335 ini.GetBoolean(
"Process Search",
"minimize_first",
338 ini.GetReal(
"Process Search",
"minimization_offset",
343 magic_enum::enum_cast<OptType>(ini.Get(
"Optimizer",
"opt_method",
"none"),
344 magic_enum::case_insensitive)
351 toLowerCase(ini.Get(
"Optimizer",
"convergence_metric",
362 if (ini.HasSection(
"Refine")) {
364 magic_enum::enum_cast<OptType>(ini.Get(
"Refine",
"opt_method",
""),
365 magic_enum::case_insensitive)
378 if (ini.HasSection(
"QuickMin")) {
384 ini.GetBoolean(
"Optimizer",
"qm_steepest_descent",
387 if (ini.HasSection(
"FIRE")) {
399 if (ini.HasSection(
"LBFGS")) {
403 ini.GetReal(
"LBFGS",
"lbfgs_inverse_curvature",
406 ini.GetReal(
"LBFGS",
"lbfgs_max_inverse_curvature",
411 ini.GetBoolean(
"LBFGS",
"lbfgs_angle_reset",
414 ini.GetBoolean(
"LBFGS",
"lbfgs_distance_reset",
417 if (ini.HasSection(
"CG")) {
419 ini.GetBoolean(
"CG",
"cg_no_overshooting",
422 ini.GetBoolean(
"CG",
"cg_knock_out_max_move",
429 ini.GetInteger(
"CG",
"cg_max_iter_before_reset",
432 ini.GetInteger(
"CG",
"cg_max_iter_line_search",
435 if (ini.HasSection(
"SD")) {
468 toLowerCase(ini.Get(
"Dimer",
"rotation_backend",
"classical"));
470 magic_enum::enum_cast<DimerRotationBackend>(
471 rotTok, magic_enum::case_insensitive)
477 ini.GetBoolean(
"Surrogate",
"use_surrogate",
false);
484 if (ini.HasSection(
"Surrogate")) {
486 magic_enum::enum_cast<PotType>(ini.Get(
"Surrogate",
"potential",
""),
487 magic_enum::case_insensitive)
490 throw std::runtime_error(
"We only support catlearn for GP right now");
494 if (ini.HasSection(
"CatLearn")) {
499 ini.GetBoolean(
"CatLearn",
"use_derivatives",
"catl_deriv");
501 ini.GetBoolean(
"CatLearn",
"use_fingerprint",
"catl_fingerprint");
503 "CatLearn",
"parallel_hyperparameter_opt",
"catl_parallel");
506 if (ini.HasSection(
"ASE_ORCA")) {
510 ini.Get(
"ASE_ORCA",
"simpleinput",
"");
513 if (ini.HasSection(
"ASE_NWCHEM")) {
519 ini.Get(
"ASE_NWCHEM",
"multiplicity",
"");
521 ini.GetReal(
"ASE_NWCHEM",
"scf_thresh", 1e-5);
523 ini.GetInteger(
"ASE_NWCHEM",
"scf_maxiter", 200);
526 if (ini.HasSection(
"Metatomic")) {
528 ini.Get(
"Metatomic",
"model_path",
"");
531 ini.Get(
"Metatomic",
"length_unit",
"angstrom");
533 ini.Get(
"Metatomic",
"extensions_directory",
"");
535 ini.GetBoolean(
"Metatomic",
"check_consistency",
false);
537 ini.GetReal(
"Metatomic",
"uncertainty_threshold", -1.0);
541 ini.Get(
"Metatomic",
"energy_uncertainty_output",
546 ini.GetBoolean(
"Metatomic",
"non_conservative",
false);
548 ini.GetBoolean(
"Metatomic",
"random_rotation",
false);
550 ini.GetInteger(
"Metatomic",
"n_symmetry_rotations", 0));
552 ini.GetBoolean(
"Metatomic",
"deterministic",
true);
554 ini.GetBoolean(
"Metatomic",
"deterministic_strict",
false);
556 _variant.
base = ini.Get(
"Metatomic",
"variant_base",
"");
557 _variant.energy = ini.Get(
"Metatomic",
"variant_energy",
"");
558 _variant.energy_uncertainty =
559 ini.Get(
"Metatomic",
"variant_energy_uncertainty",
"");
560 _variant.force = ini.Get(
"Metatomic",
"variant_force",
"");
563 if (ini.HasSection(
"Serve")) {
578 ini.GetBoolean(
"Surrogate",
"gp_linear_path_always",
588 if (ini.HasValue(
"Lanczos",
"phva_atoms")) {
590 toLowerCase(ini.Get(
"Lanczos",
"phva_atoms",
"All"));
599 ini.GetBoolean(
"Davidson",
"diagonal_preconditioner",
601 if (ini.HasValue(
"Davidson",
"phva_atoms")) {
603 toLowerCase(ini.Get(
"Davidson",
"phva_atoms",
"All"));
638 ini.GetReal(
"GPR Dimer",
"relaxation_converged_angle",
641 ini.GetInteger(
"GPR Dimer",
"max_initial_rotation_iterations",
644 ini.GetInteger(
"GPR Dimer",
"max_relaxation_rotation_iterations",
647 ini.GetInteger(
"GPR Dimer",
"divisor_t_dimer",
650 ini.GetInteger(
"GPR Dimer",
"max_outer_iterations",
653 ini.GetInteger(
"GPR Dimer",
"max_inner_iterations",
656 ini.GetReal(
"GPR Dimer",
"max_midpoint_displacement",
659 ini.Get(
"GPR Dimer",
"rotation_opt_method",
662 ini.Get(
"GPR Dimer",
"translation_opt_method",
669 ini.GetReal(
"GPR Dimer",
"convex_region_step_size",
676 ini.GetBoolean(
"GPR Dimer",
"nogp_initial_rotations",
679 ini.GetBoolean(
"GPR Dimer",
"nogp_init_translations",
682 ini.GetBoolean(
"GPR Dimer",
"has_many_iterations",
686 ini.Get(
"GPR Dimer",
"hyperparameter_opt_method",
691 ini.GetReal(
"GPR Dimer",
"gpr_jitter_variance",
694 ini.GetReal(
"GPR Dimer",
"gpr_noise_variance",
699 ini.GetReal(
"GPR Dimer",
"prior_variance",
702 ini.GetReal(
"GPR Dimer",
"prior_degrees_of_freedom",
706 ini.GetBoolean(
"GPR Dimer",
"check_derivatives",
709 ini.GetInteger(
"GPR Dimer",
"opt_max_iterations",
712 ini.GetReal(
"GPR Dimer",
"opt_tol_func",
717 ini.GetReal(
"GPR Dimer",
"opt_lambda_limit",
720 ini.GetReal(
"GPR Dimer",
"opt_lambda_init",
724 ini.GetInteger(
"GPR Dimer",
"report_level",
727 ini.GetInteger(
"GPR Dimer",
"debug_level",
730 ini.Get(
"GPR Dimer",
"debug_output_directory",
733 ini.Get(
"GPR Dimer",
"debug_position_basename",
736 ini.Get(
"GPR Dimer",
"debug_energy_basename",
739 ini.Get(
"GPR Dimer",
"debug_gradient_basename",
742 ini.GetReal(
"GPR Dimer",
"debug_midpoint_offset",
750 ini.GetBoolean(
"GPR Dimer",
"use_prune",
753 ini.GetInteger(
"GPR Dimer",
"start_prune_at",
756 ini.GetInteger(
"GPR Dimer",
"nprune_vals",
759 ini.GetReal(
"GPR Dimer",
"prune_threshold",
773 ini.GetReal(
"Prefactor",
"min_displacement",
788 if (ini.HasValue(
"Hessian",
"phva_atoms")) {
790 toLowerCase(ini.Get(
"Hessian",
"phva_atoms",
"All"));
791 }
else if (ini.HasValue(
"Hessian",
"atom_list")) {
793 toLowerCase(ini.Get(
"Hessian",
"atom_list",
"All"));
805 const std::string neb_section =
"Nudged Elastic Band";
814 magic_enum::enum_cast<OptType>(ini.Get(neb_section,
"opt_method",
"none"),
815 magic_enum::case_insensitive)
823 ini.GetReal(neb_section,
"mmf_peak_tolerance",
833 ini.GetBoolean(neb_section,
"doubly_nudged_switching",
837 ini.GetBoolean(neb_section,
"energy_weighted",
858 ini.GetBoolean(neb_section,
"climbing_image_method",
861 ini.GetBoolean(neb_section,
"climbing_image_converged_only",
864 ini.GetBoolean(neb_section,
"old_tangent",
869 ini.GetReal(neb_section,
"ci_after_rel",
873 oci.
use_mmf = ini.GetBoolean(neb_section,
"ci_mmf", oci.use_mmf);
875 ini.GetReal(neb_section,
"ci_mmf_after", oci.trigger_force);
877 ini.GetReal(neb_section,
"ci_mmf_after_rel", oci.trigger_factor);
878 oci.max_steps = ini.GetInteger(neb_section,
"ci_mmf_nsteps", oci.max_steps);
879 oci.ci_stability_count = ini.GetInteger(
880 neb_section,
"ci_mmf_ci_stability_count", oci.ci_stability_count);
881 oci.angle_tol = ini.GetReal(neb_section,
"ci_mmf_angle", oci.angle_tol);
885 magic_enum::enum_cast<NEBInit>(ini.Get(neb_section,
"initializer",
""),
886 magic_enum::case_insensitive)
888 init.input_path = ini.Get(neb_section,
"initial_path_in", init.input_path);
889 init.max_iterations =
890 ini.GetInteger(neb_section,
"init_max_iterations", init.max_iterations);
891 init.nsteps = ini.GetInteger(neb_section,
"init_nsteps", init.nsteps);
892 init.max_move = ini.GetReal(neb_section,
"init_max_move", init.max_move);
893 init.force_tolerance =
894 ini.GetReal(neb_section,
"init_force_threshold", init.force_tolerance);
896 ini.GetReal(neb_section,
"sidpp_growth_alpha", init.sidpp_alpha);
897 init.sidpp_frontier_tol =
898 ini.GetReal(neb_section,
"sidpp_frontier_tol", init.sidpp_frontier_tol);
900 ini.GetBoolean(neb_section,
"sidpp_reparameterize", init.sidpp_reparam);
901 init.sidpp_ideal_ksp =
902 ini.GetBoolean(neb_section,
"sidpp_ideal_ksp", init.sidpp_ideal_ksp);
903 auto neb_ipath_optMethod =
904 magic_enum::enum_cast<OptType>(
905 ini.Get(neb_section,
"ipath_opt_method",
"none"),
906 magic_enum::case_insensitive)
912 ini.GetBoolean(neb_section,
"oversampling", init.oversampling);
913 init.oversampling_factor = ini.GetInteger(neb_section,
"oversampling_factor",
914 init.oversampling_factor);
919 ini.GetBoolean(neb_section,
"minimize_endpoints_for_ipath",
935 toLowerCase(ini.Get(
"Dynamics",
"thermostat",
"andersen"));
939 ini.GetReal(
"Dynamics",
"andersen_collision_period",
946 ini.GetReal(
"Dynamics",
"langevin_friction",
955 ini.GetBoolean(
"Parallel Replica",
"stop_after_transition",
958 ini.GetBoolean(
"Parallel Replica",
"refine_transition",
961 ini.GetBoolean(
"Parallel Replica",
"dephase_loop_stop",
964 ini.GetReal(
"Parallel Replica",
"dephase_time",
970 ini.GetInteger(
"Parallel Replica",
"dephase_loop_max",
973 ini.GetReal(
"Parallel Replica",
"state_check_interval",
979 "Parallel Replica",
"state_save_interval",
985 ini.GetReal(
"Parallel Replica",
"post_transition_time",
1003 ini.Get(
"Replica Exchange",
"temperature_distribution",
1008 ini.GetInteger(
"Replica Exchange",
"exchange_trials",
1011 ini.GetReal(
"Replica Exchange",
"sampling_time",
1019 ini.GetReal(
"Replica Exchange",
"temperature_high",
1022 ini.GetReal(
"Replica Exchange",
"exchange_period",
1031 ini.GetReal(
"Hyperdynamics",
"bb_rmd_time",
1036 toLowerCase(ini.Get(
"Hyperdynamics",
"bb_boost_atomlist",
1041 ini.GetReal(
"Hyperdynamics",
"bb_stretch_threshold",
1048 toLowerCase(ini.Get(
"Hyperdynamics",
"bias_potential",
1056 toLowerCase(ini.Get(
"Saddle Search",
"min_mode_method",
1059 ini.GetReal(
"Saddle Search",
"displace_magnitude",
1062 ini.GetReal(
"Saddle Search",
"displace_radius",
1067 ini.GetInteger(
"Saddle Search",
"max_iterations",
1070 "Saddle Search",
"nonnegative_displacement_abort",
1073 ini.GetReal(
"Saddle Search",
"max_single_displace",
1076 ini.GetReal(
"Saddle Search",
"converged_force",
1079 ini.GetReal(
"Saddle Search",
"perp_force_ratio",
1084 ini.GetInteger(
"Saddle Search",
"nonlocal_count_abort",
1087 ini.GetReal(
"Saddle Search",
"nonlocal_distance_abort",
1103 std::string atomListStr =
1104 ini.Get(
"Saddle Search",
"displace_atom_list",
"");
1105 if (!atomListStr.empty()) {
1106 std::stringstream ss(atomListStr);
1108 while (std::getline(ss, token,
',')) {
1109 size_t start = token.find_first_not_of(
" \t");
1110 size_t end = token.find_last_not_of(
" \t");
1111 if (start != std::string::npos) {
1113 std::stol(token.substr(start, end - start + 1)));
1119 ini.GetBoolean(
"Saddle Search",
"confine_positive",
1124 "Saddle Search",
"bowl_breakout",
1127 "Saddle Search",
"bowl_active_atoms",
1130 ini.GetReal(
"Saddle Search",
"confine_positive_min_move",
1133 ini.GetReal(
"Saddle Search",
"confine_positive_scale_ratio",
1136 ini.GetReal(
"Saddle Search",
"confine_positive_boost",
1139 "Saddle Search",
"confine_positive_min_active",
1145 ini.GetReal(
"Saddle Search",
"dynamics_temperature",
1149 "Saddle Search",
"dynamics_state_check_interval",
1155 ini.GetReal(
"Saddle Search",
"dynamics_record_interval",
1161 "Saddle Search",
"dynamics_linear_interpolation",
1164 ini.GetBoolean(
"Saddle Search",
"remove_rotation",
1167 ini.GetReal(
"Saddle Search",
"dynamics_max_init_curvature",
1170 ini.GetReal(
"Saddle Search",
"zero_mode_abort_curvature",
1176 ini.GetReal(
"Basin Hopping",
"displacement",
1179 ini.GetReal(
"Basin Hopping",
"push_apart_distance",
1183 "Basin Hopping",
"initial_random_structure_probability",
1188 ini.GetInteger(
"Basin Hopping",
"quenching_steps",
1191 ini.GetBoolean(
"Basin Hopping",
"single_atom_displace",
1194 ini.GetBoolean(
"Basin Hopping",
"significant_structure",
1197 toLowerCase(ini.Get(
"Basin Hopping",
"displacement_algorithm",
1207 ini.Get(
"Basin Hopping",
"displacement_distribution",
1216 ini.GetReal(
"Basin Hopping",
"swap_probability",
1223 ini.GetBoolean(
"Basin Hopping",
"adjust_displacement",
1226 ini.GetInteger(
"Basin Hopping",
"adjust_period",
1229 ini.GetReal(
"Basin Hopping",
"adjust_fraction",
1232 ini.GetReal(
"Basin Hopping",
"target_ratio",
1235 ini.GetBoolean(
"Basin Hopping",
"write_unique",
1243 toLowerCase(ini.Get(
"Global Optimization",
"move_method",
1246 toLowerCase(ini.Get(
"Global Optimization",
"decision_method",
1263 ini.GetReal(
"Global Optimization",
"target_energy",
1273 ini.GetReal(
"BGSD",
"gradientfinitedifference",
1276 ini.GetReal(
"BGSD",
"grad2energyconvergence",
1279 ini.GetReal(
"BGSD",
"grad2forceconvergence",
#define EONC_LOG_ERROR(...)
#define EONC_LOG_WARNING(...)
struct eonc::Parameters::basin_hopping_options_t basin_hopping_options
struct eonc::Parameters::socket_nwchem_options_t socket_nwchem_options
struct eonc::Parameters::monte_carlo_options_t monte_carlo_options
struct eonc::Parameters::catlearn_options_t catlearn_options
struct eonc::Parameters::optimizer_options_t optimizer_options
struct eonc::Parameters::constants_t constants
struct eonc::Parameters::gp_surrogate_options_t gp_surrogate_options
struct eonc::Parameters::global_optimization_options_t global_optimization_options
struct eonc::Parameters::neb_options_t neb_options
struct eonc::Parameters::hyperdynamics_options_t hyperdynamics_options
struct eonc::Parameters::ira_options_t ira_options
struct eonc::Parameters::gpr_dimer_options_t gpr_dimer_options
struct eonc::Parameters::tad_options_t tad_options
struct eonc::Parameters::ase_nwchem_options_t ase_nwchem_options
struct eonc::Parameters::thermostat_options_t thermostat_options
struct eonc::Parameters::structure_comparison_options_t structure_comparison_options
struct eonc::Parameters::dimer_options_t dimer_options
struct eonc::Parameters::ase_orca_options_t ase_orca_options
struct eonc::Parameters::potential_options_t potential_options
struct eonc::Parameters::replica_exchange_options_t replica_exchange_options
struct eonc::Parameters::debug_options_t debug_options
struct eonc::Parameters::oh_tst_options_t oh_tst_options
struct eonc::Parameters::xtb_options_t xtb_options
struct eonc::Parameters::artn_options_t artn_options
struct eonc::Parameters::ams_options_t ams_options
struct eonc::Parameters::rgpot_options_t rgpot_options
struct eonc::Parameters::zbl_options_t zbl_options
struct eonc::Parameters::saddle_search_options_t saddle_search_options
struct eonc::Parameters::davidson_options_t davidson_options
struct eonc::Parameters::metatomic_options_t metatomic_options
struct eonc::Parameters::prefactor_options_t prefactor_options
struct eonc::Parameters::hessian_options_t hessian_options
struct eonc::Parameters::process_search_options_t process_search_options
struct eonc::Parameters::dynamics_options_t dynamics_options
struct eonc::Parameters::lanczos_options_t lanczos_options
struct eonc::Parameters::bgsd_options_t bgsd_options
struct eonc::Parameters::main_options_t main_options
struct eonc::Parameters::parallel_replica_options_t parallel_replica_options
struct eonc::Parameters::serve_options_t serve_options
const char DISP_LISTED_ATOMS[]
const char DISP_NOT_FCC_OR_HCP[]
const char DISP_MIN_COORDINATED[]
const char DISP_LAST_ATOM[]
int load_ini(INIReader &ini, Parameters ¶ms)
Parse all INI sections into the Parameters struct.
void validate_and_link(Parameters ¶ms)
Resolve cross-group defaults and time unit conversions.
double random(long newSeed=0)
std::optional< std::string_view > convergenceMetricLabel(std::string_view metric)
Display label for a force-convergence metric, or nullopt when the name is none of the three the optim...
void set_write_con_forces(bool enabled) noexcept
Whether written .con frames carry "Forces of Component" sections.
std::string scm_pythondir
struct eonc::Parameters::ams_options_t::env_t env
std::string nperp_limitation
double push_apart_distance
bool single_atom_displace
std::string displacement_distribution
bool significant_structure
double initial_random_structure_probability
std::string displacement_algorithm
double grad2energy_convergence
double gradient_finite_difference
double grad2force_convergence
std::string phva_atoms
PHVA mobile/active set for the Ritz space; "All" = all free atoms.
bool diagonal_preconditioner
Heuristic | (H v)_i / v_i | preconditioner (not true diag(H); off by default).
bool write_deprecated_outs
long write_movies_interval
bool estimate_neb_eigenvalues
DimerRotationBackend rotation_backend
std::string decision_method
std::string hyper_opt_method
struct eonc::Parameters::gpr_dimer_options_t::gpr_params_t gpr_params
std::string trans_opt_method
struct eonc::Parameters::gpr_dimer_options_t::debug_params_t debug_params
long max_outer_iterations
std::string rot_opt_method
long max_inner_iterations
struct eonc::Parameters::gpr_dimer_options_t::prune_params_t prune_params
struct eonc::Parameters::gpr_dimer_options_t::opt_params_t opt_params
std::string checkpoint_path
std::string bias_potential
std::string boost_atom_list
double symmetry_threshold
double distance_threshold
bool writeConForces
Opt-in "Forces of Component" sections in written .con frames (enables force+energy co-load on restart...
struct eonc::Parameters::neb_options_t::climbing_image_options_t::hybrid_dimer_t ocineb
struct eonc::Parameters::neb_options_t::spring_options_t::onsager_machlup_t om
struct eonc::Parameters::neb_options_t::spring_options_t::energy_weighting_t weighting
struct eonc::Parameters::neb_options_t::endpoint_options_t endpoints
struct eonc::Parameters::neb_options_t::path_initialization_t initialization
struct eonc::Parameters::neb_options_t::climbing_image_options_t climbing_image
struct eonc::Parameters::neb_options_t::mmf_peak_options_t mmf_peaks
struct eonc::Parameters::neb_options_t::spring_options_t spring
std::string reactant_filename
std::string product_filename
std::string symmetry_products
long max_iter_before_reset
long line_search_max_iter
double max_inverse_curvature
std::string convergence_metric_label
struct eonc::Parameters::optimizer_options_t::quickmin_t quickmin
struct eonc::Parameters::optimizer_options_t::sd_t sd
std::string convergence_metric
struct eonc::Parameters::optimizer_options_t::refine_t refine
struct eonc::Parameters::optimizer_options_t::cg_t cg
double max_time_step_input
struct eonc::Parameters::optimizer_options_t::lbfgs_t lbfgs
double state_check_interval_input
double record_interval_input
double dephase_time_input
double state_check_interval
std::string potentialsPath
std::string configuration
std::string filter_scheme
double minimization_offset
double sampling_time_input
double exchange_period_input
std::string temperature_distribution
std::string backend
"nwchemc", "cpmdc", "metatomic", or "xtb"
double uncertainty_threshold
bool torch_determinism_strict
double xtb_electronic_temperature
std::string extensions_directory
std::string engine_library
double max_init_curvature
double record_interval_input
double state_check_interval
bool linear_interpolation
double state_check_interval_input
long nonlocal_count_abort
double displace_magnitude
std::string displace_type
double nonlocal_distance_abort
std::string minmode_method
struct eonc::Parameters::saddle_search_options_t::dynamics_t dynamics
bool nonnegative_displacement_abort
struct eonc::Parameters::saddle_search_options_t::confine_positive_t confine_positive
double zero_mode_abort_curvature
double max_single_displace
std::vector< long > displace_atom_list
std::string unix_socket_path
std::string nwchem_settings
bool indistinguishable_atoms
double distance_difference
double andersen_tcol_input
double langevin_friction_input