ZimmermanGroup / pyGSM

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

Total dissociation problem when in optimizing iteration #10

Closed ms860309 closed 3 years ago

ms860309 commented 4 years ago

I am using ssm to test some Nickel-related catalysis reaction. However, in this system it always stuck in total dissociation state during optimizing node. Here is my ssm parameter, reactant and level of theory files. The opt_2.xyz is the node with total dissociation state I got. I try many ssm parameters but it doesn't seems to work. I wonder that if there is any coordinate converting problem on it?

ssm files: https://drive.google.com/drive/folders/192Co31lf1a4DdmAlFFhF6IWJ5mg1jwmy Thanks for helping Jianyi

craldaz commented 4 years ago

I don't have an answer yet, but I have looked at this. It seems like the initial structure is very strange. Is this a stable reactant?

craldaz commented 4 years ago
Screen Shot 2020-10-05 at 8 57 46 PM

This is what I see.

It likely breaks up because the system isn't stable. I'm not sure however.

Let me know what you've found and thank you for trying pyGSM.

Best, Cody

ms860309 commented 4 years ago

Thank you for your reply.

This reaction is Ni cluster with proton on it to hydrogenation furfuryl alcohol(FAL).

The Nickel bond type is from 4 to 6, so I use octahedron to represent the Ni unit though the big system with QM/MM is more reasonable. image

In pyGSM, I use Ni cluster with proton and FAL optimize with B3LYP/6-31G* level of theory as my reactant.

I had tried many parameters combination and finally I found that "DMAX" may help this problem.

Maybe the DMAX default value(1) is too large for my system.

After I now if my guess work, I will comment here again.

Best, Jianyi

ms860309 commented 4 years ago

After I try another parameters, I think the 'backtrack' is helpful but I have no idea about the reason.

I check the scratch and found some problem in growth_iters.

growth_iters_000_002.zip

The third xyz is just crash(total dissociation?).

To prevent stuck in pyGSM, if it is reasonable that check gradrms and energy, if energy doesn't change and gradrms doesn't converge then finish gsm with total dissociation.

What I see in growth iter with total dissociation is like this. image

Best, Jianyi

craldaz commented 4 years ago

The calculation is failing with total dissociation. However, it doesn't make sense why the energy isn't increasing.

I'd try to see if Q-Chem is failing and if pyGSM is somehow just picking up the old energies and gradients.

  1. You can also replace this in qchem.py: output = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr = subprocess.PIPE).communicate()[0] with:

     p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr = subprocess.PIPE).communicate()
     print(p[0])  # stdout
     print(p[1])   # stderr
  2. Because the Nickel cluster has very close atoms it makes more sense to treat them using Cartesian coordinates. Use the GSM command-hybrid_coord_idx_file cartesian_inds.txt where cartesian_inds.txt is a text file that looks like this:

1
2
3
4
5
6
20

But not 21 because you are adding that.

ms860309 commented 4 years ago

I would try these opinion, it is very helpful.

Before your comment TRIC(without hybrid) is work well and total dissociation problem seems like to be solved!? I am not sure.

And I try hybrid_coord_idx_file but I get error at start and the document says hybrid should be ''0-Based indexed'' ?

So, the index in my case should be 0 1 2 3 4 5 and 19?

ms860309 commented 3 years ago

The qchem may have gen scf error in gradient calculation at that node(totoal dissociation one).


b'This is a multi-thread run using 16 threads\n/opt/qchem-5.3.0-intel2020u1//exe/qcprog.exe .tempQCinp.24418.qcin.1 /tmp/39986.centos77-h1/string_000/4.1/\nError: in the serial run\n'
b''

I manually run the job and it have gen scf problem.

In DLC it usually have total dissociation in some node.

craldaz commented 3 years ago

If this is solved I will close the issue.