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.
- {multioptpy-1.21.0 → multioptpy-1.21.2/MultiOptPy.egg-info}/PKG-INFO +24 -9
- {multioptpy-1.21.0 → multioptpy-1.21.2}/MultiOptPy.egg-info/SOURCES.txt +8 -18
- multioptpy-1.21.2/MultiOptPy.egg-info/entry_points.txt +11 -0
- {multioptpy-1.21.0/MultiOptPy.egg-info → multioptpy-1.21.2}/PKG-INFO +24 -9
- {multioptpy-1.21.0 → multioptpy-1.21.2}/README.md +23 -8
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Calculator/ase_calculation_tools.py +1 -1
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Calculator/pyscf_calculation_tools.py +1 -1
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Calculator/tblite_calculation_tools.py +40 -59
- multioptpy-1.21.2/multioptpy/Entrypoints/__init__.py +25 -0
- multioptpy-1.21.2/multioptpy/Entrypoints/autots.py +218 -0
- multioptpy-1.21.2/multioptpy/Entrypoints/conformation_search.py +783 -0
- multioptpy-1.21.2/multioptpy/Entrypoints/core.py +43 -0
- multioptpy-1.21.2/multioptpy/Entrypoints/mapper.py +543 -0
- multioptpy-1.21.2/multioptpy/Entrypoints/orientation_search.py +155 -0
- multioptpy-1.21.2/multioptpy/Entrypoints/relaxed_scan.py +128 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/IRC/lqa.py +5 -7
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/rsirfo.py +21 -12
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Potential/keep_angle_potential.py +0 -79
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Thermo/normal_mode_analyzer.py +156 -23
- multioptpy-1.21.2/multioptpy/Utils/rcmc.py +941 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Wrapper/autots.py +204 -54
- multioptpy-1.21.2/multioptpy/Wrapper/mapper.py +3713 -0
- multioptpy-1.21.2/multioptpy/__init__.py +13 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/fileio.py +16 -7
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/interface.py +3 -2
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/optimization.py +75 -6
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/optimizer.py +0 -18
- {multioptpy-1.21.0 → multioptpy-1.21.2}/pyproject.toml +13 -10
- multioptpy-1.21.0/MultiOptPy.egg-info/entry_points.txt +0 -10
- multioptpy-1.21.0/multioptpy/Optimizer/QHAdam.py +0 -61
- multioptpy-1.21.0/multioptpy/Optimizer/adabound.py +0 -68
- multioptpy-1.21.0/multioptpy/Optimizer/adadelta.py +0 -65
- multioptpy-1.21.0/multioptpy/Optimizer/adaderivative.py +0 -56
- multioptpy-1.21.0/multioptpy/Optimizer/adadiff.py +0 -68
- multioptpy-1.21.0/multioptpy/Optimizer/adafactor.py +0 -70
- multioptpy-1.21.0/multioptpy/Optimizer/adamax.py +0 -62
- multioptpy-1.21.0/multioptpy/Optimizer/adamod.py +0 -83
- multioptpy-1.21.0/multioptpy/Optimizer/adamw.py +0 -65
- multioptpy-1.21.0/multioptpy/Optimizer/fastadabelief.py +0 -61
- multioptpy-1.21.0/multioptpy/Optimizer/hybrid_rfo.py +0 -998
- multioptpy-1.21.0/multioptpy/Optimizer/nadam.py +0 -64
- multioptpy-1.21.0/multioptpy/Optimizer/ric_rfo.py +0 -842
- multioptpy-1.21.0/multioptpy/Optimizer/rmspropgrave.py +0 -65
- multioptpy-1.21.0/multioptpy/Optimizer/sadam.py +0 -60
- multioptpy-1.21.0/multioptpy/Optimizer/samsgrad.py +0 -63
- multioptpy-1.21.0/multioptpy/Optimizer/yogi.py +0 -60
- multioptpy-1.21.0/multioptpy/Wrapper/mapper.py +0 -1731
- multioptpy-1.21.0/multioptpy/__init__.py +0 -5
- multioptpy-1.21.0/multioptpy/entrypoints.py +0 -1692
- {multioptpy-1.21.0 → multioptpy-1.21.2}/LICENSE +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/MultiOptPy.egg-info/dependency_links.txt +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/MultiOptPy.egg-info/requires.txt +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/MultiOptPy.egg-info/top_level.txt +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Calculator/__init__.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Calculator/ase_tools/__init__.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Calculator/ase_tools/fairchem.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Calculator/ase_tools/gamess.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Calculator/ase_tools/gaussian.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Calculator/ase_tools/gxtb_dev.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Calculator/ase_tools/mace.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Calculator/ase_tools/mopac.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Calculator/ase_tools/nwchem.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Calculator/ase_tools/orca.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Calculator/ase_tools/pygfn0.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Calculator/ase_tools/pygfnff.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Calculator/dxtb_calculation_tools.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Calculator/emt_calculation_tools.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Calculator/gpaw_calculation_tools.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Calculator/lj_calculation_tools.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Calculator/psi4_calculation_tools.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Calculator/pwscf_calculation_tools.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Calculator/sqm1_calculation_tools.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Calculator/sqm2_calculation_tools.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Calculator/tersoff_calculation_tools.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Constraint/__init__.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Constraint/constraint_condition.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Coordinate/__init__.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Coordinate/polar_coordinate.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Coordinate/redundant_coordinate.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/IRC/__init__.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/IRC/converge_criteria.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/IRC/dvv.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/IRC/euler.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/IRC/hpc.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/IRC/modekill.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/IRC/rk4.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Interpolation/__init__.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Interpolation/adaptive_interpolation.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Interpolation/binomial_interpolation.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Interpolation/geodesic_interpolation.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Interpolation/interpolation.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Interpolation/linear_interpolation.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Interpolation/ritz_interpolation.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Interpolation/savitzky_golay_interpolation.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Interpolation/spline_interpolation.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/MD/__init__.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/MD/thermostat.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/MEP/__init__.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/MEP/pathopt_bneb_force.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/MEP/pathopt_dmf_force.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/MEP/pathopt_dneb_force.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/MEP/pathopt_ewbneb_force.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/MEP/pathopt_gpneb_force.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/MEP/pathopt_lup_force.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/MEP/pathopt_neb_force.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/MEP/pathopt_nesb_force.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/MEP/pathopt_om_force.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/MEP/pathopt_qsm_force.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/MEP/pathopt_qsmv2_force.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/ModelFunction/__init__.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/ModelFunction/avoiding_model_function.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/ModelFunction/binary_image_ts_search_model_function.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/ModelFunction/conical_model_function.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/ModelFunction/opt_meci.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/ModelFunction/opt_mesx.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/ModelFunction/opt_mesx_2.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/ModelFunction/seam_model_function.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/ModelHessian/__init__.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/ModelHessian/approx_hessian.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/ModelHessian/calc_params.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/ModelHessian/fischer.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/ModelHessian/fischerd3.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/ModelHessian/fischerd3old.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/ModelHessian/fischerd4.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/ModelHessian/gfn0xtb.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/ModelHessian/gfnff.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/ModelHessian/lindh.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/ModelHessian/lindh2007d2.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/ModelHessian/lindh2007d3.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/ModelHessian/lindh2007d4.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/ModelHessian/morse.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/ModelHessian/o1numhess.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/ModelHessian/schlegel.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/ModelHessian/schlegeld3.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/ModelHessian/schlegeld4.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/ModelHessian/shortrange.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/ModelHessian/swart.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/ModelHessian/swartd2.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/ModelHessian/swartd3.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/ModelHessian/swartd4.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/ModelHessian/tshess.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/__init__.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/abc_fire.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/adabelief.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/adam.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/adiis.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/afire_neb.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/block_hessian_update.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/c2diis.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/component_wise_scaling.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/conjugate_gradient.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/conjugate_gradient_neb.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/coordinate_locking.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/crsirfo.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/dic_rsirfo.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/ediis.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/eve.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/fire.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/fire2.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/fire_neb.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/gan_step.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/gdiis.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/gediis.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/geodesic_step.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/gpmin.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/gpr_step.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/gradientdescent.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/gradientdescent_neb.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/hessian_update.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/kdiis.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/lars.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/lbfgs.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/lbfgs_neb.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/linesearch.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/lookahead.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/mf_rsirfo.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/mode_following.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/newton.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/prodigy.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/purtubation.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/quickmin_neb.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/radam.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/rfo_neb.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/rl_step.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/rsprfo.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/tr_lbfgs.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/trim.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/trust_radius.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Optimizer/trust_radius_neb.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/OtherMethod/__init__.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/OtherMethod/addf.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/OtherMethod/dimer.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/OtherMethod/elastic_image_pair.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/OtherMethod/modelfunction.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/OtherMethod/newton_traj.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/OtherMethod/spring_pair_method.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/OtherMethod/twopshs.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/PESAnalyzer/__init__.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/PESAnalyzer/calc_irc_curvature.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/PESAnalyzer/cmds_analysis.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/PESAnalyzer/koopman_analysis.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/PESAnalyzer/pca_analysis.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Parameters/__init__.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Parameters/atomic_mass.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Parameters/atomic_number.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Parameters/covalent_radii.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Parameters/d2.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Parameters/d3.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Parameters/d4.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Parameters/dreiding.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Parameters/gfn0xtb_param.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Parameters/gfnff_param.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Parameters/gnb.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Parameters/parameter.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Parameters/uff.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Parameters/unit_values.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Potential/AFIR_potential.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Potential/LJ_repulsive_potential.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Potential/__init__.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Potential/anharmonic_keep_potential.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Potential/asym_elllipsoidal_potential.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Potential/electrostatic_potential.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Potential/flux_potential.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Potential/gaussian_potential.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Potential/idpp.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Potential/keep_dihedral_angle_potential.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Potential/keep_outofplain_angle_potential.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Potential/keep_potential.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Potential/mechano_force_potential.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Potential/nanoreactor_potential.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Potential/potential.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Potential/spacer_model_potential.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Potential/switching_potential.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Potential/universal_potential.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Potential/value_range_potential.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Potential/void_point_potential.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/SQM/__init__.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/SQM/sqm1/__init__.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/SQM/sqm1/sqm1_core.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/SQM/sqm2/__init__.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/SQM/sqm2/calc_tools.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/SQM/sqm2/sqm2_basis.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/SQM/sqm2/sqm2_bond.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/SQM/sqm2/sqm2_core.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/SQM/sqm2/sqm2_data.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/SQM/sqm2/sqm2_disp.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/SQM/sqm2/sqm2_eeq.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/SQM/sqm2/sqm2_overlapint.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/SQM/sqm2/sqm2_qm.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/SQM/sqm2/sqm2_rep.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/SQM/sqm2/sqm2_srb.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Thermo/__init__.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Utils/__init__.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Utils/bond_connectivity.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Utils/calc_tools.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Utils/oniom.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Utils/pbc.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Utils/riemann_curvature.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Utils/symmetry_analyzer.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Visualization/__init__.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Visualization/visualization.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/WFAnalyzer/MO_analysis.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/WFAnalyzer/__init__.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Wrapper/__init__.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Wrapper/ieip_wrapper.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Wrapper/md_wrapper.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Wrapper/neb_wrapper.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/Wrapper/optimize_wrapper.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/ieip.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/irc.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/moleculardynamics.py +0 -0
- {multioptpy-1.21.0 → multioptpy-1.21.2}/multioptpy/neb.py +0 -0
- {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.
|
|
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
|
[](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
|
[](https://buymeacoffee.com/ss0832)
|
|
30
34
|
|
|
31
35
|
[](https://pepy.tech/projects/multioptpy)
|
|
32
|
-
[](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
|
-
|
|
160
|
-
|
|
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 =
|
|
429
|
+
year = 2026,
|
|
416
430
|
publisher = {Zenodo},
|
|
417
|
-
version = {v1.
|
|
418
|
-
doi = {10.5281/zenodo.
|
|
419
|
-
url = {https://doi.org/10.5281/zenodo.
|
|
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. (
|
|
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.
|
|
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
|
[](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
|
[](https://buymeacoffee.com/ss0832)
|
|
30
34
|
|
|
31
35
|
[](https://pepy.tech/projects/multioptpy)
|
|
32
|
-
[](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
|
-
|
|
160
|
-
|
|
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 =
|
|
429
|
+
year = 2026,
|
|
416
430
|
publisher = {Zenodo},
|
|
417
|
-
version = {v1.
|
|
418
|
-
doi = {10.5281/zenodo.
|
|
419
|
-
url = {https://doi.org/10.5281/zenodo.
|
|
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. (
|
|
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
|
[](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
|
[](https://buymeacoffee.com/ss0832)
|
|
10
14
|
|
|
11
15
|
[](https://pepy.tech/projects/multioptpy)
|
|
12
|
-
[](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
|
-
|
|
140
|
-
|
|
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 =
|
|
409
|
+
year = 2026,
|
|
396
410
|
publisher = {Zenodo},
|
|
397
|
-
version = {v1.
|
|
398
|
-
doi = {10.5281/zenodo.
|
|
399
|
-
url = {https://doi.org/10.5281/zenodo.
|
|
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. (
|
|
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",
|
|
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",
|
|
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)
|
|
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")
|
|
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)
|
|
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
|
|
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
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
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
|
|
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
|
+
]
|