ZimmermanGroup / pyGSM

Thermal and photochemical reaction path optimization and discovery
MIT License
50 stars 26 forks source link

Constrained DFT #58

Open joshkamm opened 3 months ago

joshkamm commented 3 months ago

Currently, the MECP search in pyGSM uses spin multiplicity and adiabatic index to name the folders where it runs electronic structure calculations. When running constrained DFT (CDFT), this is a problem because both states can have the same spin multiplicity and adiabatic index but are still distinct because of the DFT constraints. It should work to add an optional label to the states such that they can still be differentiated.

4/19/24: I tried modifying PenaltyPES so that it allows the individual PESs to keep their original level of theory objects. This allows us to specify different IDs for the different states so that they each get their own scratch folder. I'm unsure however whether this will have unintended side effects.

When doing MECP search with CDFT, does it make sense to have one state constrained and the other unconstrained or do they both need to be constrained in order for the optimization to work / for the desired chemical meaning?

4/26/24: we merged the issue above which adds an automated test and then tried a smaller set system that should help to validate that the penalty PES is working. When we finished that slurm job was running.

5/3/24: we tried running an MECP optimization on two PES surfaces that are both CDFT states to avoid the potential problem that the "ground" state can become like the SET state when the geometry lowers the energy of the SET state to being close to the ground state energy. We also cleaned up the MECP_opt.py script removing variables and imports that weren't being used anymore.

5/10/24: we tried to change the parameters of the penalty PES to enforce tighter convergence to a state crossing. We also updated MECP_Opt.py in how it specifies frozen atoms to work with the current version of pyGSM.

5/22/24: we looked at new results with both states using constrained DFT. It seems like this gives better convergence to a crossing (closer difference energy).