MultiOptPy 1.21.0__tar.gz → 1.21.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (273) hide show
  1. {multioptpy-1.21.0 → multioptpy-1.21.2/MultiOptPy.egg-info}/PKG-INFO +24 -9
  2. {multioptpy-1.21.0 → multioptpy-1.21.2}/MultiOptPy.egg-info/SOURCES.txt +8 -18
  3. multioptpy-1.21.2/MultiOptPy.egg-info/entry_points.txt +11 -0
  4. {multioptpy-1.21.0/MultiOptPy.egg-info → multioptpy-1.21.2}/PKG-INFO +24 -9
  5. {multioptpy-1.21.0 → multioptpy-1.21.2}/README.md +23 -8
  6. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Calculator/ase_calculation_tools.py +1 -1
  7. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Calculator/pyscf_calculation_tools.py +1 -1
  8. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Calculator/tblite_calculation_tools.py +40 -59
  9. multioptpy-1.21.2/multioptpy/Entrypoints/__init__.py +25 -0
  10. multioptpy-1.21.2/multioptpy/Entrypoints/autots.py +218 -0
  11. multioptpy-1.21.2/multioptpy/Entrypoints/conformation_search.py +783 -0
  12. multioptpy-1.21.2/multioptpy/Entrypoints/core.py +43 -0
  13. multioptpy-1.21.2/multioptpy/Entrypoints/mapper.py +543 -0
  14. multioptpy-1.21.2/multioptpy/Entrypoints/orientation_search.py +155 -0
  15. multioptpy-1.21.2/multioptpy/Entrypoints/relaxed_scan.py +128 -0
  16. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/IRC/lqa.py +5 -7
  17. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/rsirfo.py +21 -12
  18. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Potential/keep_angle_potential.py +0 -79
  19. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Thermo/normal_mode_analyzer.py +156 -23
  20. multioptpy-1.21.2/multioptpy/Utils/rcmc.py +941 -0
  21. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Wrapper/autots.py +204 -54
  22. multioptpy-1.21.2/multioptpy/Wrapper/mapper.py +3713 -0
  23. multioptpy-1.21.2/multioptpy/__init__.py +13 -0
  24. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/fileio.py +16 -7
  25. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/interface.py +3 -2
  26. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/optimization.py +75 -6
  27. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/optimizer.py +0 -18
  28. {multioptpy-1.21.0 → multioptpy-1.21.2}/pyproject.toml +13 -10
  29. multioptpy-1.21.0/MultiOptPy.egg-info/entry_points.txt +0 -10
  30. multioptpy-1.21.0/multioptpy/Optimizer/QHAdam.py +0 -61
  31. multioptpy-1.21.0/multioptpy/Optimizer/adabound.py +0 -68
  32. multioptpy-1.21.0/multioptpy/Optimizer/adadelta.py +0 -65
  33. multioptpy-1.21.0/multioptpy/Optimizer/adaderivative.py +0 -56
  34. multioptpy-1.21.0/multioptpy/Optimizer/adadiff.py +0 -68
  35. multioptpy-1.21.0/multioptpy/Optimizer/adafactor.py +0 -70
  36. multioptpy-1.21.0/multioptpy/Optimizer/adamax.py +0 -62
  37. multioptpy-1.21.0/multioptpy/Optimizer/adamod.py +0 -83
  38. multioptpy-1.21.0/multioptpy/Optimizer/adamw.py +0 -65
  39. multioptpy-1.21.0/multioptpy/Optimizer/fastadabelief.py +0 -61
  40. multioptpy-1.21.0/multioptpy/Optimizer/hybrid_rfo.py +0 -998
  41. multioptpy-1.21.0/multioptpy/Optimizer/nadam.py +0 -64
  42. multioptpy-1.21.0/multioptpy/Optimizer/ric_rfo.py +0 -842
  43. multioptpy-1.21.0/multioptpy/Optimizer/rmspropgrave.py +0 -65
  44. multioptpy-1.21.0/multioptpy/Optimizer/sadam.py +0 -60
  45. multioptpy-1.21.0/multioptpy/Optimizer/samsgrad.py +0 -63
  46. multioptpy-1.21.0/multioptpy/Optimizer/yogi.py +0 -60
  47. multioptpy-1.21.0/multioptpy/Wrapper/mapper.py +0 -1731
  48. multioptpy-1.21.0/multioptpy/__init__.py +0 -5
  49. multioptpy-1.21.0/multioptpy/entrypoints.py +0 -1692
  50. {multioptpy-1.21.0 → multioptpy-1.21.2}/LICENSE +0 -0
  51. {multioptpy-1.21.0 → multioptpy-1.21.2}/MultiOptPy.egg-info/dependency_links.txt +0 -0
  52. {multioptpy-1.21.0 → multioptpy-1.21.2}/MultiOptPy.egg-info/requires.txt +0 -0
  53. {multioptpy-1.21.0 → multioptpy-1.21.2}/MultiOptPy.egg-info/top_level.txt +0 -0
  54. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Calculator/__init__.py +0 -0
  55. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Calculator/ase_tools/__init__.py +0 -0
  56. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Calculator/ase_tools/fairchem.py +0 -0
  57. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Calculator/ase_tools/gamess.py +0 -0
  58. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Calculator/ase_tools/gaussian.py +0 -0
  59. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Calculator/ase_tools/gxtb_dev.py +0 -0
  60. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Calculator/ase_tools/mace.py +0 -0
  61. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Calculator/ase_tools/mopac.py +0 -0
  62. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Calculator/ase_tools/nwchem.py +0 -0
  63. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Calculator/ase_tools/orca.py +0 -0
  64. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Calculator/ase_tools/pygfn0.py +0 -0
  65. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Calculator/ase_tools/pygfnff.py +0 -0
  66. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Calculator/dxtb_calculation_tools.py +0 -0
  67. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Calculator/emt_calculation_tools.py +0 -0
  68. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Calculator/gpaw_calculation_tools.py +0 -0
  69. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Calculator/lj_calculation_tools.py +0 -0
  70. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Calculator/psi4_calculation_tools.py +0 -0
  71. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Calculator/pwscf_calculation_tools.py +0 -0
  72. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Calculator/sqm1_calculation_tools.py +0 -0
  73. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Calculator/sqm2_calculation_tools.py +0 -0
  74. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Calculator/tersoff_calculation_tools.py +0 -0
  75. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Constraint/__init__.py +0 -0
  76. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Constraint/constraint_condition.py +0 -0
  77. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Coordinate/__init__.py +0 -0
  78. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Coordinate/polar_coordinate.py +0 -0
  79. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Coordinate/redundant_coordinate.py +0 -0
  80. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/IRC/__init__.py +0 -0
  81. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/IRC/converge_criteria.py +0 -0
  82. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/IRC/dvv.py +0 -0
  83. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/IRC/euler.py +0 -0
  84. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/IRC/hpc.py +0 -0
  85. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/IRC/modekill.py +0 -0
  86. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/IRC/rk4.py +0 -0
  87. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Interpolation/__init__.py +0 -0
  88. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Interpolation/adaptive_interpolation.py +0 -0
  89. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Interpolation/binomial_interpolation.py +0 -0
  90. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Interpolation/geodesic_interpolation.py +0 -0
  91. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Interpolation/interpolation.py +0 -0
  92. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Interpolation/linear_interpolation.py +0 -0
  93. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Interpolation/ritz_interpolation.py +0 -0
  94. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Interpolation/savitzky_golay_interpolation.py +0 -0
  95. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Interpolation/spline_interpolation.py +0 -0
  96. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/MD/__init__.py +0 -0
  97. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/MD/thermostat.py +0 -0
  98. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/MEP/__init__.py +0 -0
  99. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/MEP/pathopt_bneb_force.py +0 -0
  100. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/MEP/pathopt_dmf_force.py +0 -0
  101. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/MEP/pathopt_dneb_force.py +0 -0
  102. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/MEP/pathopt_ewbneb_force.py +0 -0
  103. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/MEP/pathopt_gpneb_force.py +0 -0
  104. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/MEP/pathopt_lup_force.py +0 -0
  105. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/MEP/pathopt_neb_force.py +0 -0
  106. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/MEP/pathopt_nesb_force.py +0 -0
  107. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/MEP/pathopt_om_force.py +0 -0
  108. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/MEP/pathopt_qsm_force.py +0 -0
  109. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/MEP/pathopt_qsmv2_force.py +0 -0
  110. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/ModelFunction/__init__.py +0 -0
  111. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/ModelFunction/avoiding_model_function.py +0 -0
  112. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/ModelFunction/binary_image_ts_search_model_function.py +0 -0
  113. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/ModelFunction/conical_model_function.py +0 -0
  114. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/ModelFunction/opt_meci.py +0 -0
  115. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/ModelFunction/opt_mesx.py +0 -0
  116. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/ModelFunction/opt_mesx_2.py +0 -0
  117. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/ModelFunction/seam_model_function.py +0 -0
  118. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/ModelHessian/__init__.py +0 -0
  119. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/ModelHessian/approx_hessian.py +0 -0
  120. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/ModelHessian/calc_params.py +0 -0
  121. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/ModelHessian/fischer.py +0 -0
  122. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/ModelHessian/fischerd3.py +0 -0
  123. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/ModelHessian/fischerd3old.py +0 -0
  124. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/ModelHessian/fischerd4.py +0 -0
  125. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/ModelHessian/gfn0xtb.py +0 -0
  126. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/ModelHessian/gfnff.py +0 -0
  127. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/ModelHessian/lindh.py +0 -0
  128. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/ModelHessian/lindh2007d2.py +0 -0
  129. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/ModelHessian/lindh2007d3.py +0 -0
  130. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/ModelHessian/lindh2007d4.py +0 -0
  131. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/ModelHessian/morse.py +0 -0
  132. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/ModelHessian/o1numhess.py +0 -0
  133. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/ModelHessian/schlegel.py +0 -0
  134. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/ModelHessian/schlegeld3.py +0 -0
  135. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/ModelHessian/schlegeld4.py +0 -0
  136. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/ModelHessian/shortrange.py +0 -0
  137. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/ModelHessian/swart.py +0 -0
  138. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/ModelHessian/swartd2.py +0 -0
  139. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/ModelHessian/swartd3.py +0 -0
  140. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/ModelHessian/swartd4.py +0 -0
  141. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/ModelHessian/tshess.py +0 -0
  142. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/__init__.py +0 -0
  143. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/abc_fire.py +0 -0
  144. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/adabelief.py +0 -0
  145. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/adam.py +0 -0
  146. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/adiis.py +0 -0
  147. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/afire_neb.py +0 -0
  148. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/block_hessian_update.py +0 -0
  149. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/c2diis.py +0 -0
  150. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/component_wise_scaling.py +0 -0
  151. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/conjugate_gradient.py +0 -0
  152. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/conjugate_gradient_neb.py +0 -0
  153. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/coordinate_locking.py +0 -0
  154. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/crsirfo.py +0 -0
  155. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/dic_rsirfo.py +0 -0
  156. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/ediis.py +0 -0
  157. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/eve.py +0 -0
  158. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/fire.py +0 -0
  159. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/fire2.py +0 -0
  160. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/fire_neb.py +0 -0
  161. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/gan_step.py +0 -0
  162. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/gdiis.py +0 -0
  163. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/gediis.py +0 -0
  164. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/geodesic_step.py +0 -0
  165. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/gpmin.py +0 -0
  166. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/gpr_step.py +0 -0
  167. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/gradientdescent.py +0 -0
  168. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/gradientdescent_neb.py +0 -0
  169. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/hessian_update.py +0 -0
  170. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/kdiis.py +0 -0
  171. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/lars.py +0 -0
  172. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/lbfgs.py +0 -0
  173. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/lbfgs_neb.py +0 -0
  174. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/linesearch.py +0 -0
  175. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/lookahead.py +0 -0
  176. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/mf_rsirfo.py +0 -0
  177. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/mode_following.py +0 -0
  178. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/newton.py +0 -0
  179. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/prodigy.py +0 -0
  180. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/purtubation.py +0 -0
  181. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/quickmin_neb.py +0 -0
  182. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/radam.py +0 -0
  183. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/rfo_neb.py +0 -0
  184. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/rl_step.py +0 -0
  185. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/rsprfo.py +0 -0
  186. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/tr_lbfgs.py +0 -0
  187. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/trim.py +0 -0
  188. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/trust_radius.py +0 -0
  189. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/trust_radius_neb.py +0 -0
  190. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/OtherMethod/__init__.py +0 -0
  191. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/OtherMethod/addf.py +0 -0
  192. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/OtherMethod/dimer.py +0 -0
  193. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/OtherMethod/elastic_image_pair.py +0 -0
  194. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/OtherMethod/modelfunction.py +0 -0
  195. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/OtherMethod/newton_traj.py +0 -0
  196. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/OtherMethod/spring_pair_method.py +0 -0
  197. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/OtherMethod/twopshs.py +0 -0
  198. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/PESAnalyzer/__init__.py +0 -0
  199. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/PESAnalyzer/calc_irc_curvature.py +0 -0
  200. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/PESAnalyzer/cmds_analysis.py +0 -0
  201. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/PESAnalyzer/koopman_analysis.py +0 -0
  202. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/PESAnalyzer/pca_analysis.py +0 -0
  203. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Parameters/__init__.py +0 -0
  204. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Parameters/atomic_mass.py +0 -0
  205. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Parameters/atomic_number.py +0 -0
  206. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Parameters/covalent_radii.py +0 -0
  207. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Parameters/d2.py +0 -0
  208. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Parameters/d3.py +0 -0
  209. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Parameters/d4.py +0 -0
  210. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Parameters/dreiding.py +0 -0
  211. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Parameters/gfn0xtb_param.py +0 -0
  212. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Parameters/gfnff_param.py +0 -0
  213. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Parameters/gnb.py +0 -0
  214. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Parameters/parameter.py +0 -0
  215. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Parameters/uff.py +0 -0
  216. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Parameters/unit_values.py +0 -0
  217. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Potential/AFIR_potential.py +0 -0
  218. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Potential/LJ_repulsive_potential.py +0 -0
  219. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Potential/__init__.py +0 -0
  220. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Potential/anharmonic_keep_potential.py +0 -0
  221. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Potential/asym_elllipsoidal_potential.py +0 -0
  222. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Potential/electrostatic_potential.py +0 -0
  223. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Potential/flux_potential.py +0 -0
  224. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Potential/gaussian_potential.py +0 -0
  225. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Potential/idpp.py +0 -0
  226. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Potential/keep_dihedral_angle_potential.py +0 -0
  227. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Potential/keep_outofplain_angle_potential.py +0 -0
  228. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Potential/keep_potential.py +0 -0
  229. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Potential/mechano_force_potential.py +0 -0
  230. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Potential/nanoreactor_potential.py +0 -0
  231. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Potential/potential.py +0 -0
  232. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Potential/spacer_model_potential.py +0 -0
  233. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Potential/switching_potential.py +0 -0
  234. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Potential/universal_potential.py +0 -0
  235. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Potential/value_range_potential.py +0 -0
  236. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Potential/void_point_potential.py +0 -0
  237. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/SQM/__init__.py +0 -0
  238. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/SQM/sqm1/__init__.py +0 -0
  239. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/SQM/sqm1/sqm1_core.py +0 -0
  240. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/SQM/sqm2/__init__.py +0 -0
  241. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/SQM/sqm2/calc_tools.py +0 -0
  242. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/SQM/sqm2/sqm2_basis.py +0 -0
  243. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/SQM/sqm2/sqm2_bond.py +0 -0
  244. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/SQM/sqm2/sqm2_core.py +0 -0
  245. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/SQM/sqm2/sqm2_data.py +0 -0
  246. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/SQM/sqm2/sqm2_disp.py +0 -0
  247. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/SQM/sqm2/sqm2_eeq.py +0 -0
  248. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/SQM/sqm2/sqm2_overlapint.py +0 -0
  249. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/SQM/sqm2/sqm2_qm.py +0 -0
  250. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/SQM/sqm2/sqm2_rep.py +0 -0
  251. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/SQM/sqm2/sqm2_srb.py +0 -0
  252. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Thermo/__init__.py +0 -0
  253. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Utils/__init__.py +0 -0
  254. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Utils/bond_connectivity.py +0 -0
  255. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Utils/calc_tools.py +0 -0
  256. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Utils/oniom.py +0 -0
  257. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Utils/pbc.py +0 -0
  258. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Utils/riemann_curvature.py +0 -0
  259. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Utils/symmetry_analyzer.py +0 -0
  260. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Visualization/__init__.py +0 -0
  261. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Visualization/visualization.py +0 -0
  262. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/WFAnalyzer/MO_analysis.py +0 -0
  263. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/WFAnalyzer/__init__.py +0 -0
  264. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Wrapper/__init__.py +0 -0
  265. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Wrapper/ieip_wrapper.py +0 -0
  266. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Wrapper/md_wrapper.py +0 -0
  267. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Wrapper/neb_wrapper.py +0 -0
  268. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Wrapper/optimize_wrapper.py +0 -0
  269. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/ieip.py +0 -0
  270. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/irc.py +0 -0
  271. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/moleculardynamics.py +0 -0
  272. {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/neb.py +0 -0
  273. {multioptpy-1.21.0 → multioptpy-1.21.2}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: MultiOptPy
3
- Version: 1.21.0
3
+ Version: 1.21.2
4
4
  Summary: Multifunctional geometry optimization tools for quantum chemical calculations.
5
5
  Author-email: ss0832 <highlighty876@gmail.com>
6
6
  License-Expression: GPL-3.0-or-later
@@ -20,6 +20,10 @@ Dynamic: license-file
20
20
 
21
21
  # MultiOptPy
22
22
 
23
+ **Status: Maintenance Mode**
24
+ This project is currently in maintenance mode following the release of version 1.21.0. Version 1.21.0 represents the most recent stable release, incorporating the latest structural optimization algorithms and interface modifications developed within this framework. Active development of new functionalities is suspended. Future updates may be limited to specific bug fixes or dependency adjustments, and the frequency of these updates is undetermined. The repository remains accessible under the GNU Affero General Public License v3.0. Users seeking to implement new features or modify existing algorithms are advised to fork the codebase for independent development.
25
+
26
+
23
27
  [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/drive/1wpW8YO8r9gq20GACyzdaEsFK4Va1JQs4?usp=sharing) (Test 1, only use GFN2-xTB)
24
28
 
25
29
 
@@ -29,7 +33,7 @@ Dynamic: license-file
29
33
  [![Buy Me A Coffee](https://img.shields.io/badge/Buy%20Me%20a%20Coffee-ffdd00?style=for-the-badge&logo=buy-me-a-coffee&logoColor=black)](https://buymeacoffee.com/ss0832)
30
34
 
31
35
  [![PyPI Downloads](https://static.pepy.tech/personalized-badge/multioptpy?period=total&units=INTERNATIONAL_SYSTEM&left_color=BLACK&right_color=GREEN&left_text=downloads)](https://pepy.tech/projects/multioptpy)
32
- [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.18529521.svg)](https://doi.org/10.5281/zenodo.18529521)
36
+ [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.18811289.svg)](https://doi.org/10.5281/zenodo.18811289)
33
37
 
34
38
 
35
39
 
@@ -156,8 +160,12 @@ References are given in the source code.
156
160
 
157
161
  ## Usage
158
162
 
159
- After downloading the repository using git clone or similar commands, move to the generated directory and run the following:
160
- python command
163
+ 1. Download the repository using git clone or similar commands, and navigate to the generated directory.
164
+
165
+ 2. Copy the corresponding .xyz file from the test directory and the .py file from the scripts directory.
166
+
167
+ 3. Run the following Python command:
168
+
161
169
  ```
162
170
  python optmain.py SN2.xyz -ma 150 1 6 -pyscf -elec 0 -spin 0 -opt rsirfo_block_fsb -modelhess
163
171
  ```
@@ -226,6 +234,12 @@ For relaxed scan (Similar to functions implemented in Gaussian)
226
234
  ```
227
235
  python relaxed_scan.py SN2.xyz -nsample 8 -scan bond 1,2 1.3,2.6 -elec -1 -spin 0 -xtb GFN2-xTB -opt crsirfo_block_fsb -modelhess
228
236
  ```
237
+ For reaction network exploration
238
+ ```
239
+ python run_mapper.py mapper_test.xyz -cfg config_mapper_test.json
240
+ ```
241
+ Test of run_mapping.py (https://github.com/ss0832/mop_mapper_test/).
242
+
229
243
  ## Options
230
244
  (optmain.py)
231
245
 
@@ -412,15 +426,15 @@ If you use MultiOptPy in your research, please cite it as follows:
412
426
  author = {ss0832},
413
427
  title = {MultiOptPy: Multifunctional geometry optimization tools for quantum chemical calculations},
414
428
  month = dec,
415
- year = 2025,
429
+ year = 2026,
416
430
  publisher = {Zenodo},
417
- version = {v1.20.8},
418
- doi = {10.5281/zenodo.18529521},
419
- url = {https://doi.org/10.5281/zenodo.18529521}
431
+ version = {v1.21.1},
432
+ doi = {10.5281/zenodo.18811289},
433
+ url = {https://doi.org/10.5281/zenodo.18811289}
420
434
  }
421
435
  ```
422
436
  ```
423
- ss0832. (2025). MultiOptPy: Multifunctional geometry optimization tools for quantum chemical calculations (v1.20.8). Zenodo. https://doi.org/10.5281/zenodo.18529521
437
+ ss0832. (2026). MultiOptPy: Multifunctional geometry optimization tools for quantum chemical calculations (v1.21.1). Zenodo. https://doi.org/10.5281/zenodo.18811289
424
438
  ```
425
439
 
426
440
  ## Setting Up an Environment for Using NNP(UMA) on Windows 11
@@ -491,3 +505,4 @@ This enables **MultiOptPy** to use the **uma-s-1p1 NNP model**.
491
505
  conda env create -f environment_win11uma.yml
492
506
  conda activate test_mop_win11_uma
493
507
  ```
508
+
@@ -8,7 +8,6 @@ MultiOptPy.egg-info/entry_points.txt
8
8
  MultiOptPy.egg-info/requires.txt
9
9
  MultiOptPy.egg-info/top_level.txt
10
10
  multioptpy/__init__.py
11
- multioptpy/entrypoints.py
12
11
  multioptpy/fileio.py
13
12
  multioptpy/ieip.py
14
13
  multioptpy/interface.py
@@ -46,6 +45,13 @@ multioptpy/Constraint/constraint_condition.py
46
45
  multioptpy/Coordinate/__init__.py
47
46
  multioptpy/Coordinate/polar_coordinate.py
48
47
  multioptpy/Coordinate/redundant_coordinate.py
48
+ multioptpy/Entrypoints/__init__.py
49
+ multioptpy/Entrypoints/autots.py
50
+ multioptpy/Entrypoints/conformation_search.py
51
+ multioptpy/Entrypoints/core.py
52
+ multioptpy/Entrypoints/mapper.py
53
+ multioptpy/Entrypoints/orientation_search.py
54
+ multioptpy/Entrypoints/relaxed_scan.py
49
55
  multioptpy/IRC/__init__.py
50
56
  multioptpy/IRC/converge_criteria.py
51
57
  multioptpy/IRC/dvv.py
@@ -109,19 +115,10 @@ multioptpy/ModelHessian/swartd2.py
109
115
  multioptpy/ModelHessian/swartd3.py
110
116
  multioptpy/ModelHessian/swartd4.py
111
117
  multioptpy/ModelHessian/tshess.py
112
- multioptpy/Optimizer/QHAdam.py
113
118
  multioptpy/Optimizer/__init__.py
114
119
  multioptpy/Optimizer/abc_fire.py
115
120
  multioptpy/Optimizer/adabelief.py
116
- multioptpy/Optimizer/adabound.py
117
- multioptpy/Optimizer/adadelta.py
118
- multioptpy/Optimizer/adaderivative.py
119
- multioptpy/Optimizer/adadiff.py
120
- multioptpy/Optimizer/adafactor.py
121
121
  multioptpy/Optimizer/adam.py
122
- multioptpy/Optimizer/adamax.py
123
- multioptpy/Optimizer/adamod.py
124
- multioptpy/Optimizer/adamw.py
125
122
  multioptpy/Optimizer/adiis.py
126
123
  multioptpy/Optimizer/afire_neb.py
127
124
  multioptpy/Optimizer/block_hessian_update.py
@@ -134,7 +131,6 @@ multioptpy/Optimizer/crsirfo.py
134
131
  multioptpy/Optimizer/dic_rsirfo.py
135
132
  multioptpy/Optimizer/ediis.py
136
133
  multioptpy/Optimizer/eve.py
137
- multioptpy/Optimizer/fastadabelief.py
138
134
  multioptpy/Optimizer/fire.py
139
135
  multioptpy/Optimizer/fire2.py
140
136
  multioptpy/Optimizer/fire_neb.py
@@ -147,7 +143,6 @@ multioptpy/Optimizer/gpr_step.py
147
143
  multioptpy/Optimizer/gradientdescent.py
148
144
  multioptpy/Optimizer/gradientdescent_neb.py
149
145
  multioptpy/Optimizer/hessian_update.py
150
- multioptpy/Optimizer/hybrid_rfo.py
151
146
  multioptpy/Optimizer/kdiis.py
152
147
  multioptpy/Optimizer/lars.py
153
148
  multioptpy/Optimizer/lbfgs.py
@@ -156,25 +151,19 @@ multioptpy/Optimizer/linesearch.py
156
151
  multioptpy/Optimizer/lookahead.py
157
152
  multioptpy/Optimizer/mf_rsirfo.py
158
153
  multioptpy/Optimizer/mode_following.py
159
- multioptpy/Optimizer/nadam.py
160
154
  multioptpy/Optimizer/newton.py
161
155
  multioptpy/Optimizer/prodigy.py
162
156
  multioptpy/Optimizer/purtubation.py
163
157
  multioptpy/Optimizer/quickmin_neb.py
164
158
  multioptpy/Optimizer/radam.py
165
159
  multioptpy/Optimizer/rfo_neb.py
166
- multioptpy/Optimizer/ric_rfo.py
167
160
  multioptpy/Optimizer/rl_step.py
168
- multioptpy/Optimizer/rmspropgrave.py
169
161
  multioptpy/Optimizer/rsirfo.py
170
162
  multioptpy/Optimizer/rsprfo.py
171
- multioptpy/Optimizer/sadam.py
172
- multioptpy/Optimizer/samsgrad.py
173
163
  multioptpy/Optimizer/tr_lbfgs.py
174
164
  multioptpy/Optimizer/trim.py
175
165
  multioptpy/Optimizer/trust_radius.py
176
166
  multioptpy/Optimizer/trust_radius_neb.py
177
- multioptpy/Optimizer/yogi.py
178
167
  multioptpy/OtherMethod/__init__.py
179
168
  multioptpy/OtherMethod/addf.py
180
169
  multioptpy/OtherMethod/dimer.py
@@ -245,6 +234,7 @@ multioptpy/Utils/bond_connectivity.py
245
234
  multioptpy/Utils/calc_tools.py
246
235
  multioptpy/Utils/oniom.py
247
236
  multioptpy/Utils/pbc.py
237
+ multioptpy/Utils/rcmc.py
248
238
  multioptpy/Utils/riemann_curvature.py
249
239
  multioptpy/Utils/symmetry_analyzer.py
250
240
  multioptpy/Visualization/__init__.py
@@ -0,0 +1,11 @@
1
+ [console_scripts]
2
+ confsearch = multioptpy.Entrypoints:run_confsearch
3
+ ieipmain = multioptpy.Entrypoints:run_ieipmain
4
+ mdmain = multioptpy.Entrypoints:run_mdmain
5
+ nebmain = multioptpy.Entrypoints:run_nebmain
6
+ optmain = multioptpy.Entrypoints:run_optmain
7
+ orientsearch = multioptpy.Entrypoints:run_orientsearch
8
+ relaxedscan = multioptpy.Entrypoints:run_relaxedscan
9
+ run_autots = multioptpy.Entrypoints:run_autots
10
+ run_mapper = multioptpy.Entrypoints:run_mapper
11
+ run_rcmc = multioptpy.Entrypoints:run_rcmc
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: MultiOptPy
3
- Version: 1.21.0
3
+ Version: 1.21.2
4
4
  Summary: Multifunctional geometry optimization tools for quantum chemical calculations.
5
5
  Author-email: ss0832 <highlighty876@gmail.com>
6
6
  License-Expression: GPL-3.0-or-later
@@ -20,6 +20,10 @@ Dynamic: license-file
20
20
 
21
21
  # MultiOptPy
22
22
 
23
+ **Status: Maintenance Mode**
24
+ This project is currently in maintenance mode following the release of version 1.21.0. Version 1.21.0 represents the most recent stable release, incorporating the latest structural optimization algorithms and interface modifications developed within this framework. Active development of new functionalities is suspended. Future updates may be limited to specific bug fixes or dependency adjustments, and the frequency of these updates is undetermined. The repository remains accessible under the GNU Affero General Public License v3.0. Users seeking to implement new features or modify existing algorithms are advised to fork the codebase for independent development.
25
+
26
+
23
27
  [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/drive/1wpW8YO8r9gq20GACyzdaEsFK4Va1JQs4?usp=sharing) (Test 1, only use GFN2-xTB)
24
28
 
25
29
 
@@ -29,7 +33,7 @@ Dynamic: license-file
29
33
  [![Buy Me A Coffee](https://img.shields.io/badge/Buy%20Me%20a%20Coffee-ffdd00?style=for-the-badge&logo=buy-me-a-coffee&logoColor=black)](https://buymeacoffee.com/ss0832)
30
34
 
31
35
  [![PyPI Downloads](https://static.pepy.tech/personalized-badge/multioptpy?period=total&units=INTERNATIONAL_SYSTEM&left_color=BLACK&right_color=GREEN&left_text=downloads)](https://pepy.tech/projects/multioptpy)
32
- [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.18529521.svg)](https://doi.org/10.5281/zenodo.18529521)
36
+ [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.18811289.svg)](https://doi.org/10.5281/zenodo.18811289)
33
37
 
34
38
 
35
39
 
@@ -156,8 +160,12 @@ References are given in the source code.
156
160
 
157
161
  ## Usage
158
162
 
159
- After downloading the repository using git clone or similar commands, move to the generated directory and run the following:
160
- python command
163
+ 1. Download the repository using git clone or similar commands, and navigate to the generated directory.
164
+
165
+ 2. Copy the corresponding .xyz file from the test directory and the .py file from the scripts directory.
166
+
167
+ 3. Run the following Python command:
168
+
161
169
  ```
162
170
  python optmain.py SN2.xyz -ma 150 1 6 -pyscf -elec 0 -spin 0 -opt rsirfo_block_fsb -modelhess
163
171
  ```
@@ -226,6 +234,12 @@ For relaxed scan (Similar to functions implemented in Gaussian)
226
234
  ```
227
235
  python relaxed_scan.py SN2.xyz -nsample 8 -scan bond 1,2 1.3,2.6 -elec -1 -spin 0 -xtb GFN2-xTB -opt crsirfo_block_fsb -modelhess
228
236
  ```
237
+ For reaction network exploration
238
+ ```
239
+ python run_mapper.py mapper_test.xyz -cfg config_mapper_test.json
240
+ ```
241
+ Test of run_mapping.py (https://github.com/ss0832/mop_mapper_test/).
242
+
229
243
  ## Options
230
244
  (optmain.py)
231
245
 
@@ -412,15 +426,15 @@ If you use MultiOptPy in your research, please cite it as follows:
412
426
  author = {ss0832},
413
427
  title = {MultiOptPy: Multifunctional geometry optimization tools for quantum chemical calculations},
414
428
  month = dec,
415
- year = 2025,
429
+ year = 2026,
416
430
  publisher = {Zenodo},
417
- version = {v1.20.8},
418
- doi = {10.5281/zenodo.18529521},
419
- url = {https://doi.org/10.5281/zenodo.18529521}
431
+ version = {v1.21.1},
432
+ doi = {10.5281/zenodo.18811289},
433
+ url = {https://doi.org/10.5281/zenodo.18811289}
420
434
  }
421
435
  ```
422
436
  ```
423
- ss0832. (2025). MultiOptPy: Multifunctional geometry optimization tools for quantum chemical calculations (v1.20.8). Zenodo. https://doi.org/10.5281/zenodo.18529521
437
+ ss0832. (2026). MultiOptPy: Multifunctional geometry optimization tools for quantum chemical calculations (v1.21.1). Zenodo. https://doi.org/10.5281/zenodo.18811289
424
438
  ```
425
439
 
426
440
  ## Setting Up an Environment for Using NNP(UMA) on Windows 11
@@ -491,3 +505,4 @@ This enables **MultiOptPy** to use the **uma-s-1p1 NNP model**.
491
505
  conda env create -f environment_win11uma.yml
492
506
  conda activate test_mop_win11_uma
493
507
  ```
508
+
@@ -1,5 +1,9 @@
1
1
  # MultiOptPy
2
2
 
3
+ **Status: Maintenance Mode**
4
+ This project is currently in maintenance mode following the release of version 1.21.0. Version 1.21.0 represents the most recent stable release, incorporating the latest structural optimization algorithms and interface modifications developed within this framework. Active development of new functionalities is suspended. Future updates may be limited to specific bug fixes or dependency adjustments, and the frequency of these updates is undetermined. The repository remains accessible under the GNU Affero General Public License v3.0. Users seeking to implement new features or modify existing algorithms are advised to fork the codebase for independent development.
5
+
6
+
3
7
  [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/drive/1wpW8YO8r9gq20GACyzdaEsFK4Va1JQs4?usp=sharing) (Test 1, only use GFN2-xTB)
4
8
 
5
9
 
@@ -9,7 +13,7 @@
9
13
  [![Buy Me A Coffee](https://img.shields.io/badge/Buy%20Me%20a%20Coffee-ffdd00?style=for-the-badge&logo=buy-me-a-coffee&logoColor=black)](https://buymeacoffee.com/ss0832)
10
14
 
11
15
  [![PyPI Downloads](https://static.pepy.tech/personalized-badge/multioptpy?period=total&units=INTERNATIONAL_SYSTEM&left_color=BLACK&right_color=GREEN&left_text=downloads)](https://pepy.tech/projects/multioptpy)
12
- [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.18529521.svg)](https://doi.org/10.5281/zenodo.18529521)
16
+ [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.18811289.svg)](https://doi.org/10.5281/zenodo.18811289)
13
17
 
14
18
 
15
19
 
@@ -136,8 +140,12 @@ References are given in the source code.
136
140
 
137
141
  ## Usage
138
142
 
139
- After downloading the repository using git clone or similar commands, move to the generated directory and run the following:
140
- python command
143
+ 1. Download the repository using git clone or similar commands, and navigate to the generated directory.
144
+
145
+ 2. Copy the corresponding .xyz file from the test directory and the .py file from the scripts directory.
146
+
147
+ 3. Run the following Python command:
148
+
141
149
  ```
142
150
  python optmain.py SN2.xyz -ma 150 1 6 -pyscf -elec 0 -spin 0 -opt rsirfo_block_fsb -modelhess
143
151
  ```
@@ -206,6 +214,12 @@ For relaxed scan (Similar to functions implemented in Gaussian)
206
214
  ```
207
215
  python relaxed_scan.py SN2.xyz -nsample 8 -scan bond 1,2 1.3,2.6 -elec -1 -spin 0 -xtb GFN2-xTB -opt crsirfo_block_fsb -modelhess
208
216
  ```
217
+ For reaction network exploration
218
+ ```
219
+ python run_mapper.py mapper_test.xyz -cfg config_mapper_test.json
220
+ ```
221
+ Test of run_mapping.py (https://github.com/ss0832/mop_mapper_test/).
222
+
209
223
  ## Options
210
224
  (optmain.py)
211
225
 
@@ -392,15 +406,15 @@ If you use MultiOptPy in your research, please cite it as follows:
392
406
  author = {ss0832},
393
407
  title = {MultiOptPy: Multifunctional geometry optimization tools for quantum chemical calculations},
394
408
  month = dec,
395
- year = 2025,
409
+ year = 2026,
396
410
  publisher = {Zenodo},
397
- version = {v1.20.8},
398
- doi = {10.5281/zenodo.18529521},
399
- url = {https://doi.org/10.5281/zenodo.18529521}
411
+ version = {v1.21.1},
412
+ doi = {10.5281/zenodo.18811289},
413
+ url = {https://doi.org/10.5281/zenodo.18811289}
400
414
  }
401
415
  ```
402
416
  ```
403
- ss0832. (2025). MultiOptPy: Multifunctional geometry optimization tools for quantum chemical calculations (v1.20.8). Zenodo. https://doi.org/10.5281/zenodo.18529521
417
+ ss0832. (2026). MultiOptPy: Multifunctional geometry optimization tools for quantum chemical calculations (v1.21.1). Zenodo. https://doi.org/10.5281/zenodo.18811289
404
418
  ```
405
419
 
406
420
  ## Setting Up an Environment for Using NNP(UMA) on Windows 11
@@ -471,3 +485,4 @@ This enables **MultiOptPy** to use the **uma-s-1p1 NNP model**.
471
485
  conda env create -f environment_win11uma.yml
472
486
  conda activate test_mop_win11_uma
473
487
  ```
488
+
@@ -80,7 +80,7 @@ class Calculation:
80
80
  self.FUNCTIONAL = kwarg.get("FUNCTIONAL", "PBE")
81
81
  self.BASIS_SET = kwarg.get("BASIS_SET", "6-31G(d)")
82
82
  self.FC_COUNT = kwarg.get("FC_COUNT", 1)
83
- self.BPA_FOLDER_DIRECTORY = kwarg.get("BPA_FOLDER_DIRECTORY", None)
83
+ self.BPA_FOLDER_DIRECTORY = kwarg.get("BPA_FOLDER_DIRECTORY", "./")
84
84
  self.Model_hess = kwarg.get("Model_hess", None)
85
85
  self.unrestrict = kwarg.get("unrestrict", None)
86
86
  self.software_type = kwarg.get("software_type", None)
@@ -42,7 +42,7 @@ class Calculation:
42
42
  self.SET_MEMORY = kwarg.get("SET_MEMORY", "4GB")
43
43
  self.FUNCTIONAL = kwarg.get("FUNCTIONAL", "b3lyp")
44
44
  self.FC_COUNT = kwarg.get("FC_COUNT", 1)
45
- self.BPA_FOLDER_DIRECTORY = kwarg.get("BPA_FOLDER_DIRECTORY", None)
45
+ self.BPA_FOLDER_DIRECTORY = kwarg.get("BPA_FOLDER_DIRECTORY", "./")
46
46
  self.Model_hess = kwarg.get("Model_hess", None)
47
47
  self.electronic_charge = kwarg.get("electronic_charge", 0)
48
48
  self.spin_multiplicity = kwarg.get("spin_multiplicity", 1)
@@ -36,7 +36,7 @@ class Calculation:
36
36
  self.START_FILE = kwarg.get("START_FILE", None)
37
37
  self.N_THREAD = kwarg.get("N_THREAD", 1)
38
38
  self.SET_MEMORY = kwarg.get("SET_MEMORY", "2GB")
39
- self.FUNCTIONAL = kwarg.get("FUNCTIONAL", None) # Used for method selection if needed
39
+ self.FUNCTIONAL = kwarg.get("FUNCTIONAL", None)
40
40
  self.FC_COUNT = kwarg.get("FC_COUNT", 1)
41
41
  self.BPA_FOLDER_DIRECTORY = kwarg.get("BPA_FOLDER_DIRECTORY", "./")
42
42
  self.Model_hess = kwarg.get("Model_hess", None)
@@ -45,14 +45,19 @@ class Calculation:
45
45
  self.hessian_flag = False
46
46
  self.cpcm_solv_model = kwarg.get("cpcm_solv_model", None)
47
47
  self.alpb_solv_model = kwarg.get("alpb_solv_model", None)
48
- self.method = kwarg.get("method", "GFN2-xTB") # Default method
48
+ self.method = kwarg.get("method", "GFN2-xTB")
49
49
  self.verbosity = 0
50
50
  self.numerical_delivative_delta = 0.0001
51
51
 
52
+ # --- OPTIMIZATION: Enforce Thread Count for tblite/OpenMP ---
53
+ os.environ["OMP_NUM_THREADS"] = str(self.N_THREAD)
54
+ os.environ["MKL_NUM_THREADS"] = str(self.N_THREAD)
55
+ os.environ["OPENBLAS_NUM_THREADS"] = str(self.N_THREAD)
56
+
52
57
  def _get_calculator(self, positions_bohr, element_numbers, charge, uhf):
53
58
  """Internal helper to create Calculator instance"""
54
59
  calc = Calculator(self.method, element_numbers, positions_bohr, charge=charge, uhf=uhf)
55
- calc.set("max-iter", 500) # Or dynamic based on atoms
60
+ calc.set("max-iter", 500)
56
61
  calc.set("verbosity", self.verbosity)
57
62
 
58
63
  if self.cpcm_solv_model is not None:
@@ -65,92 +70,68 @@ class Calculation:
65
70
  def run_calculation(self, positions_bohr, element_number_list, charge_mult):
66
71
  """
67
72
  Execute TBLite calculation for a single geometry.
68
-
69
- Args:
70
- positions_bohr (np.ndarray): Coordinates in Bohr.
71
- element_number_list (np.ndarray): Array of atomic numbers.
72
- charge_mult (list): [charge, multiplicity].
73
-
74
- Returns:
75
- tuple: (energy, gradient)
76
73
  """
77
74
  charge = int(charge_mult[0])
78
75
  mult = int(charge_mult[1])
79
- # xTB logic: uhf is number of unpaired electrons (mult - 1)
80
76
  uhf = max(mult - 1, 0)
81
77
 
82
- # Override uhf if unrestrict flag is set but mult is 1 (though usually 0 for singlet)
83
78
  if self.unrestrict and uhf == 0:
84
- # Logic depends on specific needs, usually 0 is fine for RHF/RKS equivalent
85
79
  pass
86
80
 
87
81
  calc = self._get_calculator(positions_bohr, element_number_list, charge, uhf)
88
82
 
89
- # Execute
90
83
  res = calc.singlepoint()
91
84
  e = float(res.get("energy"))
92
85
  g = res.get("gradient") # Hartree/Bohr
93
86
 
94
- np.save(self.BPA_FOLDER_DIRECTORY+"raw_grad.npy", g)
95
-
96
- self.res = res # Store full result for later access to orbitals, etc.
87
+ np.save(os.path.join(self.BPA_FOLDER_DIRECTORY, "raw_grad.npy"), g)
88
+ self.res = res
97
89
 
98
90
  return e, g
99
91
 
100
92
  def numerical_hessian(self, geom_num_list, element_number_list, electric_charge_and_multiplicity):
101
93
  """
102
94
  Compute numerical Hessian using finite difference of gradients.
95
+ (Highly optimized O(N) evaluation with 1D loop and in-place modification)
103
96
  """
104
97
  n_atoms = len(geom_num_list)
105
98
  hessian = np.zeros((3 * n_atoms, 3 * n_atoms))
106
99
 
107
100
  charge = int(electric_charge_and_multiplicity[0])
108
- uhf = int(electric_charge_and_multiplicity[1]) - 1
109
-
110
- # Pre-calculation setup
111
- # Note: Optimization opportunity - parallelize this loop if possible in future
112
- count = 0
113
- for atom_num in range(n_atoms):
114
- for i in range(3): # x, y, z
115
- for atom_num_2 in range(n_atoms):
116
- for j in range(3):
117
- # Symmetric check to avoid double calculation
118
- if count > 3 * atom_num_2 + j:
119
- continue
120
-
121
- tmp_grad = []
122
- for direction in [1, -1]:
123
- # Perturb geometry
124
- perturbed_geom = copy.copy(geom_num_list)
125
- perturbed_geom[atom_num][i] += direction * self.numerical_delivative_delta
126
-
127
- calc = self._get_calculator(perturbed_geom, element_number_list, charge, uhf)
128
- res = calc.singlepoint()
129
- g = res.get("gradient")
130
- tmp_grad.append(g[atom_num_2][j])
131
-
132
- # Central difference
133
- val = (tmp_grad[0] - tmp_grad[1]) / (2 * self.numerical_delivative_delta)
134
- hessian[3*atom_num+i][3*atom_num_2+j] = val
135
- hessian[3*atom_num_2+j][3*atom_num+i] = val
136
-
137
- count += 1
101
+ uhf = max(int(electric_charge_and_multiplicity[1]) - 1, 0)
102
+ delta = self.numerical_delivative_delta
103
+
104
+
105
+ geom = np.array(geom_num_list, dtype=float)
106
+
107
+ for j in range(3 * n_atoms):
108
+ atom = j // 3
109
+ coord = j % 3
110
+
111
+
112
+ geom[atom, coord] += delta
113
+ calc_plus = self._get_calculator(geom, element_number_list, charge, uhf)
114
+ grad_plus = calc_plus.singlepoint().get("gradient").flatten()
115
+
116
+
117
+ geom[atom, coord] -= 2 * delta
118
+ calc_minus = self._get_calculator(geom, element_number_list, charge, uhf)
119
+ grad_minus = calc_minus.singlepoint().get("gradient").flatten()
120
+
121
+
122
+ geom[atom, coord] += delta
123
+
124
+
125
+ hessian[:, j] = (grad_plus - grad_minus) / (2 * delta)
126
+
127
+
128
+ hessian = (hessian + hessian.T) / 2.0
138
129
  return hessian
139
130
 
140
131
  def calc_exact_hess(self, positions_bohr, element_number_list, charge_mult):
141
- """
142
- Calculate Exact Hessian (Numerical) and project out TR modes.
143
- """
144
- # Compute raw numerical Hessian
145
132
  exact_hess = self.numerical_hessian(positions_bohr, element_number_list, charge_mult)
146
- np.save(self.BPA_FOLDER_DIRECTORY+"raw_hessian.npy", exact_hess)
147
- # Project out Translation/Rotation
148
- # Note: Calculationtools usually expects Bohr for projection if hessian is in au?
149
- # Re-checking previous context: `project_out_hess_tr_and_rot_for_coord` seems to handle it.
150
- # It takes `positions` which here are in Bohr.
133
+ np.save(os.path.join(self.BPA_FOLDER_DIRECTORY, "raw_hessian.npy"), exact_hess)
151
134
 
152
- # Ensure element_number_list is a list for the tool if needed, or array
153
- # The original code passed `element_number_list.tolist()`
154
135
  elem_list_arg = element_number_list.tolist() if isinstance(element_number_list, np.ndarray) else element_number_list
155
136
 
156
137
  exact_hess = Calculationtools().project_out_hess_tr_and_rot_for_coord(
@@ -0,0 +1,25 @@
1
+ from multioptpy.Entrypoints.core import (
2
+ run_optmain,
3
+ run_ieipmain,
4
+ run_mdmain,
5
+ run_nebmain,
6
+ run_rcmc,
7
+ )
8
+ from multioptpy.Entrypoints.relaxed_scan import run_relaxedscan
9
+ from multioptpy.Entrypoints.orientation_search import run_orientsearch
10
+ from multioptpy.Entrypoints.autots import run_autots
11
+ from multioptpy.Entrypoints.conformation_search import run_confsearch
12
+ from multioptpy.Entrypoints.mapper import run_mapper
13
+
14
+ __all__ = [
15
+ "run_optmain",
16
+ "run_ieipmain",
17
+ "run_mdmain",
18
+ "run_nebmain",
19
+ "run_relaxedscan",
20
+ "run_orientsearch",
21
+ "run_autots",
22
+ "run_confsearch",
23
+ "run_mapper",
24
+ "run_rcmc",
25
+ ]