Releases: ss0832/MultiOptPy
v1.20.5
Full Changelog: v1.20.4...v1.20.5
v1.20.5 Update: ORCA 6.1.0 Interface Implementation
New Features:
- ORCA 6.1.0 Support: Implemented a new interface for ORCA 6.1.0 using ASE (Atomic Simulation Environment).
- Usage: To use this interface, run the script with the option
-os orca.
Configuration Instructions:
To enable ORCA support, you must update your configuration file.
Please specify the absolute path to the ORCA executable in
software_path.confusing the formatorca::<path>. For Linux, provide the path to the binary (e.g.,/absolute/path/to/orca), and for Windows, provide the path to the executable file (e.g.,C:\absolute\path\to\orca.exe).
Configuration Example (software_path.conf):
# Linux example
orca::/home/user/orca_6_1_0/orca
# Windows example
orca::C:\Orca\orca.exe
Command Example:
python optmain.py aldol_rxn_PT.xyz -os orca -opt rsirfo_block_bofill -order 1 -tcc -freq -bs sto-3g -func hf -fc 5v1.20.4
Full Changelog: v1.20.3...v1.20.4
- fix a critical bug (optimization.py)
v1.20.3
Full Changelog: v1.20.2...v1.20.3
v1.20.3 Release Note
1. Mode-Following RS-I-RFO (MF-RS-I-RFO)
Overview
This is an algorithm for Saddle Point Optimization that proceeds by tracking a specific Hessian mode. Based on the conventional RS-I-RFO method, it incorporates tracking logic to prevent mode swapping between steps.
Implementation Details
- Mode Tracking Strategy: Uses the
ModeFollowingclass to calculate the overlap with the Hessian eigenvectors of the previous step. - Mass-Weighted Overlap (MWO): If an atom list is provided, the projection is performed in the mass-weighted coordinate system rather than Cartesian coordinates, achieving physically valid tracking.
- Adaptive Update (EMA): Uses Exponential Moving Average (EMA) to dynamically update the reference vector, allowing the method to follow mode rotation.
- Gradient Bias: Adds the overlap in the direction of the current force (gradient) to the score, prioritizing the selection of energetically significant modes.
Command Line Arguments (-opt)
Detailed parameters are specified using colons : within the -opt argument string.
- Basic Format:
-opt mf_rsirfo:<target_index>:<ema_val>:<grad_val> - Parameters:
target_index: The index of the eigenvalue to track (starting from 0).ema<val>: Update rate (0.0 to 1.0). 1.0 for full replacement (adaptive), 0.0 for fixed.grad<val>: Weighting for the gradient direction.
Usage Example:
# Execute transition state geometry optimization tracking mass-weighted mode 1,
# with an adaptive update rate of 0.5 and a gradient bias of 0.3.
python optmain.py input.xyz -opt mwmf_rsirfo_fsb:1:ema0.5:grad0.3 -fc 5 -order 1 -freq -tcc2. Constrained RS-I-RFO (C-RS-I-RFO)
Overview
A method for performing saddle point searches using RS-I-RFO while imposing geometric constraints (bond distances, angles, etc.).
Implementation Details
- Subspace Projection: Uses Singular Value Decomposition (SVD) to construct a "null space basis" orthogonal to the imposed constraints.
- Constrained Optimization: Projects the full-space gradient and Hessian onto this subspace and calculates the RFO step within it. This calculates the movement vector to the saddle point while maintaining the constraints.
- SHAKE-like Correction: Includes geometric adjustment logic to correct deviations in constraints due to numerical errors.
Command Line Arguments (-opt, -pc)
Specify crsirfo family methods with -opt and define constraints with -pc.
Usage Example:
# Geometry optimization while fixing the distance between atoms 1 and 2, and the angle of atoms 2-3-4.
python optmain.py input.xyz -opt crsirfo_block_fsb -pc bond 1,2 bend 2,3,43. Integration of Multiple PES Information and Model Function Optimization (BITSS, etc.)
Overview
A feature to perform geometry optimization on an "effective potential" constructed by combining energies or gradients from multiple electronic states (PES).
Specifically, version 1.20.3 implements the Binary-Image Transition State Search (BITSS) method.
Implementation Details
-
Independent Calculator Instances:
ModelFunctionHandlercreates independent directories and calculators for State1 and State2 to prevent interference between states. -
BITSS Implementation:
-
6N-Dimensional Expansion: Concatenates two structures (Image 1 & 2) and treats them as a
$6N \times 6N$ Hessian and a$2N$ atom system. -
Second Derivative (Hessian): Mathematically derives the second derivatives for distance and energy equality constraint terms and implements them as the
calc_hessmethod.
-
6N-Dimensional Expansion: Concatenates two structures (Image 1 & 2) and treats them as a
Command Line Arguments (-mf)
Use the -mf argument to specify the type of model function and accompanying parameters (the file path of the reference structure in the case of BITSS).
Usage Example:
# Search for a pathway connecting two points using the BITSS method, with target.xyz as the target structure.
python optmain.py start.xyz -mf bitss target.xyz# Minimum energy seam of crossing (MESX) using Seam Model Function (between charge 0, multiplicity 1 and 3 states)
python optmain.py input.xyz -mf opt_meci 0 3 -elec 0 -spin 3Note: Internal Data Structure Changes
- OptimizationState: In BITSS mode,
element_listandgeometryare automatically expanded to double size (2N). - Hessian Integration:
Model_hess(derived from PES) andbias_hessian(derived from constraint/penalty terms) are managed separately and summed just before being passed to the optimizer.
References
- J. Chem. Phys. 157, 124107 (2022)
- J. Am. Chem. Soc. 2015, 137, 10, 3433–3445
v1.20.2
Full Changelog: v1.20.1...v1.20.2
- Add Command Line Interface (CLI) Functionality (only Linux, pip install)
conda create -n <env-name> python=3.12 pip
conda activate <env-name>
pip install git+https://github.com/ss0832/MultiOptPy.git@v1.20.2
# or pip install MultiOptPy
v1.20.1
Full Changelog: v1.20.0...v1.20.1
- Fixed an issue in Fischer's model Hessian generation where numerical instability occurred when four atoms were aligned linearly.
With this update, I am stepping away from this project for the time being.
v1.20.0-pre-release-6
Full Changelog: v1.20.0-rc.5...v1.20.0-rc.6
- Fix a bug
v1.20.0
v1.20.0-pre-release-5
Full Changelog: v1.20.0-rc.4...v1.20.0-rc.5
- Fix bugs
v1.20.0-pre-release-4
Full Changelog: v1.20.0-rc.3...v1.20.0-rc.4
- Refactor
- Small Changes
v1.20.0-pre-release-3
Full Changelog: v1.20.0-rc.1...v1.20.0-rc.3
- refactor