Closed mquevill closed 4 years ago
This is one of the special cases that we have to use charge only, due to lack of multipole frame definition. Poltype will be modified to handle these cases.
N in NO3- can only have charge (no frames) due to symmetry. It should be like a single ion /or nobel gas atom. In tinker you can do N 0 0 charge 0 0 0 … or just N charge 0 0 0 … So the output format below is actually OK. We can add “0 )” to make it more clear. The tiny dipole_z should be set to 0 (I am not sure Tinker ignores it internally and Z axis is arbitrary now)
Pengyu
From: Michael Quevillon notifications@github.com Sent: Tuesday, July 21, 2020 11:50 AM To: pren/poltype poltype@noreply.github.com Cc: Subscribed subscribed@noreply.github.com Subject: [pren/poltype] Case with 3 elements in multipole from .keyb (#30)
In multipole.py (lines of interest shown below), when reading from the .keyb file, I ran into a case where tmplst only had 3 elements, so the variable atmidx was not set properly. This caused an error: UnboundLocalError: local variable 'atmidx' referenced before assignment
I have attached the no3.sdf and poltype.ini I used to run, also the no3.keyb file that was generated are here: no3.ziphttps://github.com/pren/poltype/files/4954948/no3.zip
Snippet from the no3.keyb file that threw the error:
multipole 1 1.09799
0.00000 0.00000 -0.00165
0.00000
0.00000 0.00000
0.00000 0.00000 0.00000
— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHubhttps://github.com/pren/poltype/issues/30, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ABNC6XVXPFRGIK6MSKE2UBLR4XBKHANCNFSM4PDZJT3A.
This message is from an external sender. Learn more about why this matters.https://ut.service-now.com/sp?id=kb_article&number=KB0011401
Another (better) option for N is to use trisector as Z frame given the 3 O atoms are treated the same.
https://github.com/pren/poltype/blob/gh-pages/README_MULTIPOLE.MD (bottom right)
From: Pengyu Ren notifications@github.com Sent: Tuesday, July 21, 2020 12:21 PM To: pren/poltype poltype@noreply.github.com Cc: Ren, Pengyu pren@utexas.edu; Your activity your_activity@noreply.github.com Subject: Re: [pren/poltype] Case with 3 elements in multipole from .keyb (#30)
N in NO3- can only have charge (no frames) due to symmetry. It should be like a single ion /or nobel gas atom. In tinker you can do N 0 0 charge 0 0 0 … or just N charge 0 0 0 … So the output format below is actually OK. We can add “0 )” to make it more clear. The tiny dipole_z should be set to 0 (I am not sure Tinker ignores it internally and Z axis is arbitrary now)
Pengyu
From: Michael Quevillon notifications@github.com<mailto:notifications@github.com> Sent: Tuesday, July 21, 2020 11:50 AM To: pren/poltype poltype@noreply.github.com<mailto:poltype@noreply.github.com> Cc: Subscribed subscribed@noreply.github.com<mailto:subscribed@noreply.github.com> Subject: [pren/poltype] Case with 3 elements in multipole from .keyb (#30)
In multipole.py (lines of interest shown below), when reading from the .keyb file, I ran into a case where tmplst only had 3 elements, so the variable atmidx was not set properly. This caused an error: UnboundLocalError: local variable 'atmidx' referenced before assignment
I have attached the no3.sdf and poltype.ini I used to run, also the no3.keyb file that was generated are here: no3.ziphttps://github.com/pren/poltype/files/4954948/no3.zip
Snippet from the no3.keyb file that threw the error:
multipole 1 1.09799
0.00000 0.00000 -0.00165
0.00000
0.00000 0.00000
0.00000 0.00000 0.00000
— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHubhttps://github.com/pren/poltype/issues/30, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ABNC6XVXPFRGIK6MSKE2UBLR4XBKHANCNFSM4PDZJT3A.
This message is from an external sender. Learn more about why this matters.https://ut.service-now.com/sp?id=kb_article&number=KB0011401
— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHubhttps://github.com/pren/poltype/issues/30#issuecomment-661994616, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ABNC6XRJPUBT5C3MLFBJWNDR4XE57ANCNFSM4PDZJT3A.
This message is from an external sender. Learn more about why this matters.https://ut.service-now.com/sp?id=kb_article&number=KB0011401
We have to use charge only (0 0 frame) for now because during molecular dynamics, when the NO3 plane goes perfect flat, the trisector can experience singularity.
From: Pengyu Ren notifications@github.com Sent: Tuesday, July 21, 2020 12:25 PM To: pren/poltype poltype@noreply.github.com Cc: Ren, Pengyu pren@utexas.edu; Your activity your_activity@noreply.github.com Subject: Re: [pren/poltype] Case with 3 elements in multipole from .keyb (#30)
Another (better) option for N is to use trisector as Z frame given the 3 O atoms are treated the same.
https://github.com/pren/poltype/blob/gh-pages/README_MULTIPOLE.MD (bottom right)
From: Pengyu Ren notifications@github.com<mailto:notifications@github.com> Sent: Tuesday, July 21, 2020 12:21 PM To: pren/poltype poltype@noreply.github.com<mailto:poltype@noreply.github.com> Cc: Ren, Pengyu pren@utexas.edu<mailto:pren@utexas.edu>; Your activity your_activity@noreply.github.com<mailto:your_activity@noreply.github.com> Subject: Re: [pren/poltype] Case with 3 elements in multipole from .keyb (#30)
N in NO3- can only have charge (no frames) due to symmetry. It should be like a single ion /or nobel gas atom. In tinker you can do N 0 0 charge 0 0 0 … or just N charge 0 0 0 … So the output format below is actually OK. We can add “0 )” to make it more clear. The tiny dipole_z should be set to 0 (I am not sure Tinker ignores it internally and Z axis is arbitrary now)
Pengyu
From: Michael Quevillon notifications@github.com<mailto:notifications@github.com<mailto:notifications@github.com%3cmailto:notifications@github.com>> Sent: Tuesday, July 21, 2020 11:50 AM To: pren/poltype poltype@noreply.github.com<mailto:poltype@noreply.github.com<mailto:poltype@noreply.github.com%3cmailto:poltype@noreply.github.com>> Cc: Subscribed subscribed@noreply.github.com<mailto:subscribed@noreply.github.com<mailto:subscribed@noreply.github.com%3cmailto:subscribed@noreply.github.com>> Subject: [pren/poltype] Case with 3 elements in multipole from .keyb (#30)
In multipole.py (lines of interest shown below), when reading from the .keyb file, I ran into a case where tmplst only had 3 elements, so the variable atmidx was not set properly. This caused an error: UnboundLocalError: local variable 'atmidx' referenced before assignment
I have attached the no3.sdf and poltype.ini I used to run, also the no3.keyb file that was generated are here: no3.ziphttps://github.com/pren/poltype/files/4954948/no3.zip
Snippet from the no3.keyb file that threw the error:
multipole 1 1.09799
0.00000 0.00000 -0.00165
0.00000
0.00000 0.00000
0.00000 0.00000 0.00000
— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHubhttps://github.com/pren/poltype/issues/30, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ABNC6XVXPFRGIK6MSKE2UBLR4XBKHANCNFSM4PDZJT3A.
This message is from an external sender. Learn more about why this matters.https://ut.service-now.com/sp?id=kb_article&number=KB0011401
— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHubhttps://github.com/pren/poltype/issues/30#issuecomment-661994616, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ABNC6XRJPUBT5C3MLFBJWNDR4XE57ANCNFSM4PDZJT3A.
This message is from an external sender. Learn more about why this matters.https://ut.service-now.com/sp?id=kb_article&number=KB0011401
— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHubhttps://github.com/pren/poltype/issues/30#issuecomment-661997081, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ABNC6XWO3PUVBEO5PABRAC3R4XFORANCNFSM4PDZJT3A.
This message is from an external sender. Learn more about why this matters.https://ut.service-now.com/sp?id=kb_article&number=KB0011401
Hi,
Yes, the “trisector” frame, which is called 3-Fold internally in the Tinker code, is better for the nitrate ion nitrogen. It would allow you to have a nonzero zz-quadrupole, which I might guess could be significant in nitrate (?).
The 3-Fold local frame certainly should be stable to all atoms being exactly in the same plane, but this should be checked. The only drawback to 3-Fold is that the torque calculation is significantly more complex than for the other local frames. But that really shouldn’t affect overall performance.
As Pengyu notes, if you do use a “None” frame as in the parameters listed below, then the small z-dipole value should be set to zero. Tinker will not do this automatically. Tinker could easily enforce such zeroing in those kinds of cases, but I’ve always preferred to not force that in the code as there are (rare) cases where you might want to break “symmetry”.
Best, Jay
On Jul 21, 2020, at 12:24 PM, Pengyu Ren notifications@github.com wrote:
Another (better) option for N is to use trisector as Z frame given the 3 O atoms are treated the same.
https://github.com/pren/poltype/blob/gh-pages/README_MULTIPOLE.MD (bottom right)
From: Pengyu Ren notifications@github.com Sent: Tuesday, July 21, 2020 12:21 PM To: pren/poltype poltype@noreply.github.com Cc: Ren, Pengyu pren@utexas.edu; Your activity your_activity@noreply.github.com Subject: Re: [pren/poltype] Case with 3 elements in multipole from .keyb (#30)
N in NO3- can only have charge (no frames) due to symmetry. It should be like a single ion /or nobel gas atom. In tinker you can do N 0 0 charge 0 0 0 … or just N charge 0 0 0 … So the output format below is actually OK. We can add “0 )” to make it more clear. The tiny dipole_z should be set to 0 (I am not sure Tinker ignores it internally and Z axis is arbitrary now)
Pengyu
From: Michael Quevillon notifications@github.com<mailto:notifications@github.com> Sent: Tuesday, July 21, 2020 11:50 AM To: pren/poltype poltype@noreply.github.com<mailto:poltype@noreply.github.com> Cc: Subscribed subscribed@noreply.github.com<mailto:subscribed@noreply.github.com> Subject: [pren/poltype] Case with 3 elements in multipole from .keyb (#30)
In multipole.py (lines of interest shown below), when reading from the .keyb file, I ran into a case where tmplst only had 3 elements, so the variable atmidx was not set properly. This caused an error: UnboundLocalError: local variable 'atmidx' referenced before assignment
I have attached the no3.sdf and poltype.ini I used to run, also the no3.keyb file that was generated are here: no3.ziphttps://github.com/pren/poltype/files/4954948/no3.zip
Snippet from the no3.keyb file that threw the error:
multipole 1 1.09799
0.00000 0.00000 -0.00165
0.00000
0.00000 0.00000
0.00000 0.00000 0.00000
-- Jay W. Ponder Phone: 1-314-935 4275 Chemistry, Campus Box 1134 Fax: 1-314-935 4481 Washington University in St. Louis One Brookings Drive Email: ponder@dasher.wustl.edu St. Louis, Missouri 63130 USA WWW: http://dasher.wustl.edu/
Jay The trisector calculation has to be “smooth” between flat and non-flat structures in MD. The trisector is the average of 3 N-O vectors when 3 vectors are not in the same plane. But it would be “0” is the 3 N-O is symmetric and flat. When its flat but the 3 O-N-O angles are all different, the trisector(average of 3) would be a vector in the same plane, instead of norm to the plane. So I don’t think we can use trisector for something goes from non-flat to flat (inverting) just like no Z-bisector frame for amine.
Pengyu
From: Jay Ponder notifications@github.com Sent: Tuesday, July 21, 2020 12:41 PM To: pren/poltype poltype@noreply.github.com Cc: Ren, Pengyu pren@utexas.edu; Comment comment@noreply.github.com Subject: Re: [pren/poltype] Case with 3 elements in multipole from .keyb (#30)
Hi,
Yes, the “trisector” frame, which is called 3-Fold internally in the Tinker code, is better for the nitrate ion nitrogen. It would allow you to have a nonzero zz-quadrupole, which I might guess could be significant in nitrate (?).
The 3-Fold local frame certainly should be stable to all atoms being exactly in the same plane, but this should be checked. The only drawback to 3-Fold is that the torque calculation is significantly more complex than for the other local frames. But that really shouldn’t affect overall performance.
As Pengyu notes, if you do use a “None” frame as in the parameters listed below, then the small z-dipole value should be set to zero. Tinker will not do this automatically. Tinker could easily enforce such zeroing in those kinds of cases, but I’ve always preferred to not force that in the code as there are (rare) cases where you might want to break “symmetry”.
Best, Jay
On Jul 21, 2020, at 12:24 PM, Pengyu Ren notifications@github.com<mailto:notifications@github.com> wrote:
Another (better) option for N is to use trisector as Z frame given the 3 O atoms are treated the same.
https://github.com/pren/poltype/blob/gh-pages/README_MULTIPOLE.MD (bottom right)
From: Pengyu Ren notifications@github.com<mailto:notifications@github.com> Sent: Tuesday, July 21, 2020 12:21 PM To: pren/poltype poltype@noreply.github.com<mailto:poltype@noreply.github.com> Cc: Ren, Pengyu pren@utexas.edu<mailto:pren@utexas.edu>; Your activity your_activity@noreply.github.com<mailto:your_activity@noreply.github.com> Subject: Re: [pren/poltype] Case with 3 elements in multipole from .keyb (#30)
N in NO3- can only have charge (no frames) due to symmetry. It should be like a single ion /or nobel gas atom. In tinker you can do N 0 0 charge 0 0 0 … or just N charge 0 0 0 … So the output format below is actually OK. We can add “0 )” to make it more clear. The tiny dipole_z should be set to 0 (I am not sure Tinker ignores it internally and Z axis is arbitrary now)
Pengyu
From: Michael Quevillon notifications@github.com<mailto:notifications@github.com<mailto:notifications@github.com%3cmailto:notifications@github.com>> Sent: Tuesday, July 21, 2020 11:50 AM To: pren/poltype poltype@noreply.github.com<mailto:poltype@noreply.github.com<mailto:poltype@noreply.github.com%3cmailto:poltype@noreply.github.com>> Cc: Subscribed subscribed@noreply.github.com<mailto:subscribed@noreply.github.com<mailto:subscribed@noreply.github.com%3cmailto:subscribed@noreply.github.com>> Subject: [pren/poltype] Case with 3 elements in multipole from .keyb (#30)
In multipole.py (lines of interest shown below), when reading from the .keyb file, I ran into a case where tmplst only had 3 elements, so the variable atmidx was not set properly. This caused an error: UnboundLocalError: local variable 'atmidx' referenced before assignment
I have attached the no3.sdf and poltype.ini I used to run, also the no3.keyb file that was generated are here: no3.ziphttps://github.com/pren/poltype/files/4954948/no3.zip
Snippet from the no3.keyb file that threw the error:
multipole 1 1.09799
0.00000 0.00000 -0.00165
0.00000
0.00000 0.00000
0.00000 0.00000 0.00000
-- Jay W. Ponder Phone: 1-314-935 4275 Chemistry, Campus Box 1134 Fax: 1-314-935 4481 Washington University in St. Louis One Brookings Drive Email: ponder@dasher.wustl.edumailto:ponder@dasher.wustl.edu St. Louis, Missouri 63130 USA WWW: http://dasher.wustl.edu/
— You are receiving this because you commented. Reply to this email directly, view it on GitHubhttps://github.com/pren/poltype/issues/30#issuecomment-662006362, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ABNC6XVSXJL7T7IZKZN5IADR4XHLLANCNFSM4PDZJT3A.
This message is from an external sender. Learn more about why this matters.https://ut.service-now.com/sp?id=kb_article&number=KB0011401
Pengyu, I think you are right about the method in the current code. Though in this case the “problem” is only when the molecule is exactly flat. An “inversion" at the nitrogen is OK, since you should never have a nonzero z-dipole for nitrate anyway.
An alternative (better?) way to do trisector would be to set the z-axis as perpendicular to the plane defined by the three nitrate oxygen atoms. You could do this after first normalizing the N-O distance to all be one, which the current trisector code already does. Then choose the “sign” of the z-axis based on whether the nitrogen atom lies above or below the plane of the oxygens. (When all atoms are in a plane, then the sign of the z-axis is undefined, but that’s OK as long as you don’t have a z-dipole, which you should not be using in that case.) This method of using the plane of the oxygens to set the z-axis is otherwise stable to the situation you describe (I think..). It would work for ammonia too, although it does not solve the discontinuity with the dipoles flipping sign when the ammonia inverts that was discussed yesterday, so again the z-dipole would need to be zero.
We have previously done nitrate ion, and have used the parameters below. This is based on a simple Z-then-X frame at both N and O. And, yes, this is “unsymmetrical” but as long as the ion is pretty rigid and flat (and indeed the angle and out-of-plane parameters are very large when fit to QM..) I think it’s OK. My feeling is that the minor violation of symmetry is a reasonable price to pay for getting the better electrostatics on nitrogen.
#########################################
#########################################
atom 1 1 N "Nitrate N" 7 14.007 3 atom 2 2 O "Nitrate O" 8 15.999 1
vdw 1 3.7100 0.1100 vdw 2 3.5100 0.1120
bond 1 2 390.0 1.2606 angle 2 1 2 155.00 120.00 strbnd 2 1 2 18.70 18.70 opbend 2 1 2 2 172.00
multipole 1 2 2 1.07363 0.00000 0.00000 0.00000 0.14407 0.00000 -0.28814 0.00000 0.00000 0.14407
multipole 2 1 2 -0.69121 0.00000 0.00000 0.04941 -0.50067 0.00000 -0.08271 0.00000 0.00000 0.58338
polarize 1 1.0730 0.3900 2 polarize 2 0.8370 0.3900 1
On Jul 21, 2020, at 12:51 PM, Pengyu Ren notifications@github.com wrote:
Jay The trisector calculation has to be “smooth” between flat and non-flat structures in MD. The trisector is the average of 3 N-O vectors when 3 vectors are not in the same plane. But it would be “0” is the 3 N-O is symmetric and flat. When its flat but the 3 O-N-O angles are all different, the trisector(average of 3) would be a vector in the same plane, instead of norm to the plane. So I don’t think we can use trisector for something goes from non-flat to flat (inverting) just like no Z-bisector frame for amine.
Pengyu
From: Jay Ponder notifications@github.com Sent: Tuesday, July 21, 2020 12:41 PM To: pren/poltype poltype@noreply.github.com Cc: Ren, Pengyu pren@utexas.edu; Comment comment@noreply.github.com Subject: Re: [pren/poltype] Case with 3 elements in multipole from .keyb (#30)
Hi,
Yes, the “trisector” frame, which is called 3-Fold internally in the Tinker code, is better for the nitrate ion nitrogen. It would allow you to have a nonzero zz-quadrupole, which I might guess could be significant in nitrate (?).
The 3-Fold local frame certainly should be stable to all atoms being exactly in the same plane, but this should be checked. The only drawback to 3-Fold is that the torque calculation is significantly more complex than for the other local frames. But that really shouldn’t affect overall performance.
As Pengyu notes, if you do use a “None” frame as in the parameters listed below, then the small z-dipole value should be set to zero. Tinker will not do this automatically. Tinker could easily enforce such zeroing in those kinds of cases, but I’ve always preferred to not force that in the code as there are (rare) cases where you might want to break “symmetry”.
Best, Jay
On Jul 21, 2020, at 12:24 PM, Pengyu Ren notifications@github.com<mailto:notifications@github.com> wrote:
Another (better) option for N is to use trisector as Z frame given the 3 O atoms are treated the same.
https://github.com/pren/poltype/blob/gh-pages/README_MULTIPOLE.MD (bottom right)
From: Pengyu Ren notifications@github.com<mailto:notifications@github.com> Sent: Tuesday, July 21, 2020 12:21 PM To: pren/poltype poltype@noreply.github.com<mailto:poltype@noreply.github.com> Cc: Ren, Pengyu pren@utexas.edu<mailto:pren@utexas.edu>; Your activity your_activity@noreply.github.com<mailto:your_activity@noreply.github.com> Subject: Re: [pren/poltype] Case with 3 elements in multipole from .keyb (#30)
N in NO3- can only have charge (no frames) due to symmetry. It should be like a single ion /or nobel gas atom. In tinker you can do N 0 0 charge 0 0 0 … or just N charge 0 0 0 … So the output format below is actually OK. We can add “0 )” to make it more clear. The tiny dipole_z should be set to 0 (I am not sure Tinker ignores it internally and Z axis is arbitrary now)
Pengyu
From: Michael Quevillon notifications@github.com<mailto:notifications@github.com<mailto:notifications@github.com%3cmailto:notifications@github.com>> Sent: Tuesday, July 21, 2020 11:50 AM To: pren/poltype poltype@noreply.github.com<mailto:poltype@noreply.github.com<mailto:poltype@noreply.github.com%3cmailto:poltype@noreply.github.com>> Cc: Subscribed subscribed@noreply.github.com<mailto:subscribed@noreply.github.com<mailto:subscribed@noreply.github.com%3cmailto:subscribed@noreply.github.com>> Subject: [pren/poltype] Case with 3 elements in multipole from .keyb (#30)
In multipole.py (lines of interest shown below), when reading from the .keyb file, I ran into a case where tmplst only had 3 elements, so the variable atmidx was not set properly. This caused an error: UnboundLocalError: local variable 'atmidx' referenced before assignment
I have attached the no3.sdf and poltype.ini I used to run, also the no3.keyb file that was generated are here: no3.ziphttps://github.com/pren/poltype/files/4954948/no3.zip
Snippet from the no3.keyb file that threw the error:
multipole 1 1.09799
0.00000 0.00000 -0.00165
0.00000
0.00000 0.00000
0.00000 0.00000 0.00000
-- Jay W. Ponder Phone: 1-314-935 4275 Chemistry, Campus Box 1134 Fax: 1-314-935 4481 Washington University in St. Louis One Brookings Drive Email: ponder@dasher.wustl.edumailto:ponder@dasher.wustl.edu St. Louis, Missouri 63130 USA WWW: http://dasher.wustl.edu/
— You are receiving this because you commented. Reply to this email directly, view it on GitHubhttps://github.com/pren/poltype/issues/30#issuecomment-662006362, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ABNC6XVSXJL7T7IZKZN5IADR4XHLLANCNFSM4PDZJT3A.
This message is from an external sender. Learn more about why this matters.https://ut.service-now.com/sp?id=kb_article&number=KB0011401
— You are receiving this because you commented. Reply to this email directly, view it on GitHub, or unsubscribe.
-- Jay W. Ponder Phone: 1-314-935 4275 Chemistry, Campus Box 1134 Fax: 1-314-935 4481 Washington University in St. Louis One Brookings Drive Email: ponder@dasher.wustl.edu St. Louis, Missouri 63130 USA WWW: http://dasher.wustl.edu/
I think the “norm of 3 atoms” for Z is OK. Probably need to re-derive torque to force conversion…
From: Jay Ponder notifications@github.com Sent: Tuesday, July 21, 2020 1:17 PM To: pren/poltype poltype@noreply.github.com Cc: Ren, Pengyu pren@utexas.edu; Comment comment@noreply.github.com Subject: Re: [pren/poltype] Case with 3 elements in multipole from .keyb (#30)
Pengyu, I think you are right about the method in the current code. Though in this case the “problem” is only when the molecule is exactly flat. An “inversion" at the nitrogen is OK, since you should never have a nonzero z-dipole for nitrate anyway.
An alternative (better?) way to do trisector would be to set the z-axis as perpendicular to the plane defined by the three nitrate oxygen atoms. You could do this after first normalizing the N-O distance to all be one, which the current trisector code already does. Then choose the “sign” of the z-axis based on whether the nitrogen atom lies above or below the plane of the oxygens. (When all atoms are in a plane, then the sign of the z-axis is undefined, but that’s OK as long as you don’t have a z-dipole, which you should not be using in that case.) This method of using the plane of the oxygens to set the z-axis is otherwise stable to the situation you describe (I think..). It would work for ammonia too, although it does not solve the discontinuity with the dipoles flipping sign when the ammonia inverts that was discussed yesterday, so again the z-dipole would need to be zero.
We have previously done nitrate ion, and have used the parameters below. This is based on a simple Z-then-X frame at both N and O. And, yes, this is “unsymmetrical” but as long as the ion is pretty flat (and indeed the out-of-plane is very large when fit to QM..) I think it’s OK. My feeling is that the minor violation of symmetry is a reasonable price to pay for getting the better electrostatics on nitrogen.
#########################################
#########################################
atom 1 1 N "Nitrate N" 7 14.007 3 atom 2 2 O "Nitrate O" 8 15.999 1
vdw 1 3.7100 0.1100 vdw 2 3.5100 0.1120
bond 1 2 390.0 1.2606 angle 2 1 2 155.00 120.00 strbnd 2 1 2 18.70 18.70 opbend 2 1 2 2 172.00
multipole 1 2 2 1.07363 0.00000 0.00000 0.00000 0.14407 0.00000 -0.28814 0.00000 0.00000 0.14407
multipole 2 1 2 -0.69121 0.00000 0.00000 0.04941 -0.50067 0.00000 -0.08271 0.00000 0.00000 0.58338
polarize 1 1.0730 0.3900 2 polarize 2 0.8370 0.3900 1
On Jul 21, 2020, at 12:51 PM, Pengyu Ren notifications@github.com<mailto:notifications@github.com> wrote:
Jay The trisector calculation has to be “smooth” between flat and non-flat structures in MD. The trisector is the average of 3 N-O vectors when 3 vectors are not in the same plane. But it would be “0” is the 3 N-O is symmetric and flat. When its flat but the 3 O-N-O angles are all different, the trisector(average of 3) would be a vector in the same plane, instead of norm to the plane. So I don’t think we can use trisector for something goes from non-flat to flat (inverting) just like no Z-bisector frame for amine.
Pengyu
From: Jay Ponder notifications@github.com<mailto:notifications@github.com> Sent: Tuesday, July 21, 2020 12:41 PM To: pren/poltype poltype@noreply.github.com<mailto:poltype@noreply.github.com> Cc: Ren, Pengyu pren@utexas.edu<mailto:pren@utexas.edu>; Comment comment@noreply.github.com<mailto:comment@noreply.github.com> Subject: Re: [pren/poltype] Case with 3 elements in multipole from .keyb (#30)
Hi,
Yes, the “trisector” frame, which is called 3-Fold internally in the Tinker code, is better for the nitrate ion nitrogen. It would allow you to have a nonzero zz-quadrupole, which I might guess could be significant in nitrate (?).
The 3-Fold local frame certainly should be stable to all atoms being exactly in the same plane, but this should be checked. The only drawback to 3-Fold is that the torque calculation is significantly more complex than for the other local frames. But that really shouldn’t affect overall performance.
As Pengyu notes, if you do use a “None” frame as in the parameters listed below, then the small z-dipole value should be set to zero. Tinker will not do this automatically. Tinker could easily enforce such zeroing in those kinds of cases, but I’ve always preferred to not force that in the code as there are (rare) cases where you might want to break “symmetry”.
Best, Jay
On Jul 21, 2020, at 12:24 PM, Pengyu Ren notifications@github.com<mailto:notifications@github.com<mailto:notifications@github.com%3cmailto:notifications@github.com>> wrote:
Another (better) option for N is to use trisector as Z frame given the 3 O atoms are treated the same.
https://github.com/pren/poltype/blob/gh-pages/README_MULTIPOLE.MD (bottom right)
From: Pengyu Ren notifications@github.com<mailto:notifications@github.com<mailto:notifications@github.com%3cmailto:notifications@github.com>> Sent: Tuesday, July 21, 2020 12:21 PM To: pren/poltype poltype@noreply.github.com<mailto:poltype@noreply.github.com<mailto:poltype@noreply.github.com%3cmailto:poltype@noreply.github.com>> Cc: Ren, Pengyu pren@utexas.edu<mailto:pren@utexas.edu<mailto:pren@utexas.edu%3cmailto:pren@utexas.edu>>; Your activity your_activity@noreply.github.com<mailto:your_activity@noreply.github.com<mailto:your_activity@noreply.github.com%3cmailto:your_activity@noreply.github.com>> Subject: Re: [pren/poltype] Case with 3 elements in multipole from .keyb (#30)
N in NO3- can only have charge (no frames) due to symmetry. It should be like a single ion /or nobel gas atom. In tinker you can do N 0 0 charge 0 0 0 … or just N charge 0 0 0 … So the output format below is actually OK. We can add “0 )” to make it more clear. The tiny dipole_z should be set to 0 (I am not sure Tinker ignores it internally and Z axis is arbitrary now)
Pengyu
From: Michael Quevillon notifications@github.com<mailto:notifications@github.com<mailto:notifications@github.com%3cmailto:notifications@github.com<mailto:notifications@github.com%3cmailto:notifications@github.com%3cmailto:notifications@github.com%3cmailto:notifications@github.com>>> Sent: Tuesday, July 21, 2020 11:50 AM To: pren/poltype poltype@noreply.github.com<mailto:poltype@noreply.github.com<mailto:poltype@noreply.github.com%3cmailto:poltype@noreply.github.com<mailto:poltype@noreply.github.com%3cmailto:poltype@noreply.github.com%3cmailto:poltype@noreply.github.com%3cmailto:poltype@noreply.github.com>>> Cc: Subscribed subscribed@noreply.github.com<mailto:subscribed@noreply.github.com<mailto:subscribed@noreply.github.com%3cmailto:subscribed@noreply.github.com<mailto:subscribed@noreply.github.com%3cmailto:subscribed@noreply.github.com%3cmailto:subscribed@noreply.github.com%3cmailto:subscribed@noreply.github.com>>> Subject: [pren/poltype] Case with 3 elements in multipole from .keyb (#30)
In multipole.py (lines of interest shown below), when reading from the .keyb file, I ran into a case where tmplst only had 3 elements, so the variable atmidx was not set properly. This caused an error: UnboundLocalError: local variable 'atmidx' referenced before assignment
I have attached the no3.sdf and poltype.ini I used to run, also the no3.keyb file that was generated are here: no3.ziphttps://github.com/pren/poltype/files/4954948/no3.zip
Snippet from the no3.keyb file that threw the error:
multipole 1 1.09799
0.00000 0.00000 -0.00165
0.00000
0.00000 0.00000
0.00000 0.00000 0.00000
-- Jay W. Ponder Phone: 1-314-935 4275 Chemistry, Campus Box 1134 Fax: 1-314-935 4481 Washington University in St. Louis One Brookings Drive Email: ponder@dasher.wustl.edumailto:ponder@dasher.wustl.edu<mailto:ponder@dasher.wustl.edu%3cmailto:ponder@dasher.wustl.edu> St. Louis, Missouri 63130 USA WWW: http://dasher.wustl.edu/
— You are receiving this because you commented. Reply to this email directly, view it on GitHubhttps://github.com/pren/poltype/issues/30#issuecomment-662006362, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ABNC6XVSXJL7T7IZKZN5IADR4XHLLANCNFSM4PDZJT3A.
This message is from an external sender. Learn more about why this matters.https://ut.service-now.com/sp?id=kb_article&number=KB0011401
— You are receiving this because you commented. Reply to this email directly, view it on GitHub, or unsubscribe.
-- Jay W. Ponder Phone: 1-314-935 4275 Chemistry, Campus Box 1134 Fax: 1-314-935 4481 Washington University in St. Louis One Brookings Drive Email: ponder@dasher.wustl.edumailto:ponder@dasher.wustl.edu St. Louis, Missouri 63130 USA WWW: http://dasher.wustl.edu/
— You are receiving this because you commented. Reply to this email directly, view it on GitHubhttps://github.com/pren/poltype/issues/30#issuecomment-662025638, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ABNC6XRWN26HKOOONT7JQ5LR4XLTBANCNFSM4PDZJT3A.
This message is from an external sender. Learn more about why this matters.https://ut.service-now.com/sp?id=kb_article&number=KB0011401
Yes, it would require simple changes to rotpole, and more difficult changes to the torque.
We’re going to need to borrow Chao! Or maybe since Chao already did the heavy lifting to get the 3-Fold torques for the current code, somebody could see if they can adapt his method. (When he first derived the 3-Fold case, I had a plaque made in honor of Chao with a wrench attached to it, proclaiming him to be the “Torque Master”) I’m not going to volunteer, at least in the immediate future..
What do you think about the nitrate parameters I attached. I know you are not fond of “symmetry violations”, but the nitrate ion is really quite rigid. We have used those parameters. And I also gave them to Dave Case at some point, though I don’t know if he has actually tried them.
On Jul 21, 2020, at 1:28 PM, Pengyu Ren notifications@github.com wrote:
I think the “norm of 3 atoms” for Z is OK. Probably need to re-derive torque to force conversion…
From: Jay Ponder notifications@github.com Sent: Tuesday, July 21, 2020 1:17 PM To: pren/poltype poltype@noreply.github.com Cc: Ren, Pengyu pren@utexas.edu; Comment comment@noreply.github.com Subject: Re: [pren/poltype] Case with 3 elements in multipole from .keyb (#30)
Pengyu, I think you are right about the method in the current code. Though in this case the “problem” is only when the molecule is exactly flat. An “inversion" at the nitrogen is OK, since you should never have a nonzero z-dipole for nitrate anyway.
An alternative (better?) way to do trisector would be to set the z-axis as perpendicular to the plane defined by the three nitrate oxygen atoms. You could do this after first normalizing the N-O distance to all be one, which the current trisector code already does. Then choose the “sign” of the z-axis based on whether the nitrogen atom lies above or below the plane of the oxygens. (When all atoms are in a plane, then the sign of the z-axis is undefined, but that’s OK as long as you don’t have a z-dipole, which you should not be using in that case.) This method of using the plane of the oxygens to set the z-axis is otherwise stable to the situation you describe (I think..). It would work for ammonia too, although it does not solve the discontinuity with the dipoles flipping sign when the ammonia inverts that was discussed yesterday, so again the z-dipole would need to be zero.
We have previously done nitrate ion, and have used the parameters below. This is based on a simple Z-then-X frame at both N and O. And, yes, this is “unsymmetrical” but as long as the ion is pretty flat (and indeed the out-of-plane is very large when fit to QM..) I think it’s OK. My feeling is that the minor violation of symmetry is a reasonable price to pay for getting the better electrostatics on nitrogen.
#########################################
AMOEBA Parameters for Nitrate Ion
#########################################
atom 1 1 N "Nitrate N" 7 14.007 3 atom 2 2 O "Nitrate O" 8 15.999 1
vdw 1 3.7100 0.1100 vdw 2 3.5100 0.1120
bond 1 2 390.0 1.2606 angle 2 1 2 155.00 120.00 strbnd 2 1 2 18.70 18.70 opbend 2 1 2 2 172.00
multipole 1 2 2 1.07363 0.00000 0.00000 0.00000 0.14407 0.00000 -0.28814 0.00000 0.00000 0.14407
multipole 2 1 2 -0.69121 0.00000 0.00000 0.04941 -0.50067 0.00000 -0.08271 0.00000 0.00000 0.58338
polarize 1 1.0730 0.3900 2 polarize 2 0.8370 0.3900 1
On Jul 21, 2020, at 12:51 PM, Pengyu Ren notifications@github.com<mailto:notifications@github.com> wrote:
Jay The trisector calculation has to be “smooth” between flat and non-flat structures in MD. The trisector is the average of 3 N-O vectors when 3 vectors are not in the same plane. But it would be “0” is the 3 N-O is symmetric and flat. When its flat but the 3 O-N-O angles are all different, the trisector(average of 3) would be a vector in the same plane, instead of norm to the plane. So I don’t think we can use trisector for something goes from non-flat to flat (inverting) just like no Z-bisector frame for amine.
Pengyu
From: Jay Ponder notifications@github.com<mailto:notifications@github.com> Sent: Tuesday, July 21, 2020 12:41 PM To: pren/poltype poltype@noreply.github.com<mailto:poltype@noreply.github.com> Cc: Ren, Pengyu pren@utexas.edu<mailto:pren@utexas.edu>; Comment comment@noreply.github.com<mailto:comment@noreply.github.com> Subject: Re: [pren/poltype] Case with 3 elements in multipole from .keyb (#30)
Hi,
Yes, the “trisector” frame, which is called 3-Fold internally in the Tinker code, is better for the nitrate ion nitrogen. It would allow you to have a nonzero zz-quadrupole, which I might guess could be significant in nitrate (?).
The 3-Fold local frame certainly should be stable to all atoms being exactly in the same plane, but this should be checked. The only drawback to 3-Fold is that the torque calculation is significantly more complex than for the other local frames. But that really shouldn’t affect overall performance.
As Pengyu notes, if you do use a “None” frame as in the parameters listed below, then the small z-dipole value should be set to zero. Tinker will not do this automatically. Tinker could easily enforce such zeroing in those kinds of cases, but I’ve always preferred to not force that in the code as there are (rare) cases where you might want to break “symmetry”.
Best, Jay
On Jul 21, 2020, at 12:24 PM, Pengyu Ren notifications@github.com<mailto:notifications@github.com<mailto:notifications@github.com%3cmailto:notifications@github.com>> wrote:
Another (better) option for N is to use trisector as Z frame given the 3 O atoms are treated the same.
https://github.com/pren/poltype/blob/gh-pages/README_MULTIPOLE.MD (bottom right)
From: Pengyu Ren notifications@github.com<mailto:notifications@github.com<mailto:notifications@github.com%3cmailto:notifications@github.com>> Sent: Tuesday, July 21, 2020 12:21 PM To: pren/poltype poltype@noreply.github.com<mailto:poltype@noreply.github.com<mailto:poltype@noreply.github.com%3cmailto:poltype@noreply.github.com>> Cc: Ren, Pengyu pren@utexas.edu<mailto:pren@utexas.edu<mailto:pren@utexas.edu%3cmailto:pren@utexas.edu>>; Your activity your_activity@noreply.github.com<mailto:your_activity@noreply.github.com<mailto:your_activity@noreply.github.com%3cmailto:your_activity@noreply.github.com>> Subject: Re: [pren/poltype] Case with 3 elements in multipole from .keyb (#30)
N in NO3- can only have charge (no frames) due to symmetry. It should be like a single ion /or nobel gas atom. In tinker you can do N 0 0 charge 0 0 0 … or just N charge 0 0 0 … So the output format below is actually OK. We can add “0 )” to make it more clear. The tiny dipole_z should be set to 0 (I am not sure Tinker ignores it internally and Z axis is arbitrary now)
Pengyu
From: Michael Quevillon notifications@github.com<mailto:notifications@github.com<mailto:notifications@github.com%3cmailto:notifications@github.com<mailto:notifications@github.com%3cmailto:notifications@github.com%3cmailto:notifications@github.com%3cmailto:notifications@github.com>>> Sent: Tuesday, July 21, 2020 11:50 AM To: pren/poltype poltype@noreply.github.com<mailto:poltype@noreply.github.com<mailto:poltype@noreply.github.com%3cmailto:poltype@noreply.github.com<mailto:poltype@noreply.github.com%3cmailto:poltype@noreply.github.com%3cmailto:poltype@noreply.github.com%3cmailto:poltype@noreply.github.com>>> Cc: Subscribed subscribed@noreply.github.com<mailto:subscribed@noreply.github.com<mailto:subscribed@noreply.github.com%3cmailto:subscribed@noreply.github.com<mailto:subscribed@noreply.github.com%3cmailto:subscribed@noreply.github.com%3cmailto:subscribed@noreply.github.com%3cmailto:subscribed@noreply.github.com>>> Subject: [pren/poltype] Case with 3 elements in multipole from .keyb (#30)
In multipole.py (lines of interest shown below), when reading from the .keyb file, I ran into a case where tmplst only had 3 elements, so the variable atmidx was not set properly. This caused an error: UnboundLocalError: local variable 'atmidx' referenced before assignment
I have attached the no3.sdf and poltype.ini I used to run, also the no3.keyb file that was generated are here: no3.ziphttps://github.com/pren/poltype/files/4954948/no3.zip
Snippet from the no3.keyb file that threw the error:
multipole 1 1.09799
0.00000 0.00000 -0.00165
0.00000
0.00000 0.00000
0.00000 0.00000 0.00000
-- Jay W. Ponder Phone: 1-314-935 4275 Chemistry, Campus Box 1134 Fax: 1-314-935 4481 Washington University in St. Louis One Brookings Drive Email: ponder@dasher.wustl.edumailto:ponder@dasher.wustl.edu<mailto:ponder@dasher.wustl.edu%3cmailto:ponder@dasher.wustl.edu> St. Louis, Missouri 63130 USA WWW: http://dasher.wustl.edu/
— You are receiving this because you commented. Reply to this email directly, view it on GitHubhttps://github.com/pren/poltype/issues/30#issuecomment-662006362, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ABNC6XVSXJL7T7IZKZN5IADR4XHLLANCNFSM4PDZJT3A.
This message is from an external sender. Learn more about why this matters.https://ut.service-now.com/sp?id=kb_article&number=KB0011401
— You are receiving this because you commented. Reply to this email directly, view it on GitHub, or unsubscribe.
-- Jay W. Ponder Phone: 1-314-935 4275 Chemistry, Campus Box 1134 Fax: 1-314-935 4481 Washington University in St. Louis One Brookings Drive Email: ponder@dasher.wustl.edumailto:ponder@dasher.wustl.edu St. Louis, Missouri 63130 USA WWW: http://dasher.wustl.edu/
— You are receiving this because you commented. Reply to this email directly, view it on GitHubhttps://github.com/pren/poltype/issues/30#issuecomment-662025638, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ABNC6XRWN26HKOOONT7JQ5LR4XLTBANCNFSM4PDZJT3A.
This message is from an external sender. Learn more about why this matters.https://ut.service-now.com/sp?id=kb_article&number=KB0011401
— You are receiving this because you commented. Reply to this email directly, view it on GitHub, or unsubscribe.
-- Jay W. Ponder Phone: 1-314-935 4275 Chemistry, Campus Box 1134 Fax: 1-314-935 4481 Washington University in St. Louis One Brookings Drive Email: ponder@dasher.wustl.edu St. Louis, Missouri 63130 USA WWW: http://dasher.wustl.edu/
For the N, I don’t think there can be quadrupoles if there are three atom “2” that are the same?
For the O (type 2), I would think it has to be Z-only (O N), again sine the other two Os (2) are the same? This requires XX and YY components of quadruple to be the same.
From: Jay Ponder notifications@github.com Sent: Tuesday, July 21, 2020 1:37 PM To: pren/poltype poltype@noreply.github.com Cc: Ren, Pengyu pren@utexas.edu; Comment comment@noreply.github.com Subject: Re: [pren/poltype] Case with 3 elements in multipole from .keyb (#30)
Yes, it would require changes to rotpole, and more of course to the torque.
We’re going to need to borrow Chao! Or maybe since Chao already did the heavy lifting to get the 3-Fold torques for the current code, somebody could see if they can adapt his method. (I actually had a plaque made in honor of Chao with a wrench attached to it, proclaiming him to be the “Torque Master”) I’m not going to volunteer, at least in the immediate future..
What do you think about the nitrate parameters I attached. I know you are not fond of “symmetry violations”, but the nitrate ion is really quite rigid. We have used those parameters. And I also gave them to Dave Case at some point, though I don’t know if he has actually use them.
On Jul 21, 2020, at 1:28 PM, Pengyu Ren notifications@github.com<mailto:notifications@github.com> wrote:
I think the “norm of 3 atoms” for Z is OK. Probably need to re-derive torque to force conversion…
From: Jay Ponder notifications@github.com<mailto:notifications@github.com> Sent: Tuesday, July 21, 2020 1:17 PM To: pren/poltype poltype@noreply.github.com<mailto:poltype@noreply.github.com> Cc: Ren, Pengyu pren@utexas.edu<mailto:pren@utexas.edu>; Comment comment@noreply.github.com<mailto:comment@noreply.github.com> Subject: Re: [pren/poltype] Case with 3 elements in multipole from .keyb (#30)
Pengyu, I think you are right about the method in the current code. Though in this case the “problem” is only when the molecule is exactly flat. An “inversion" at the nitrogen is OK, since you should never have a nonzero z-dipole for nitrate anyway.
An alternative (better?) way to do trisector would be to set the z-axis as perpendicular to the plane defined by the three nitrate oxygen atoms. You could do this after first normalizing the N-O distance to all be one, which the current trisector code already does. Then choose the “sign” of the z-axis based on whether the nitrogen atom lies above or below the plane of the oxygens. (When all atoms are in a plane, then the sign of the z-axis is undefined, but that’s OK as long as you don’t have a z-dipole, which you should not be using in that case.) This method of using the plane of the oxygens to set the z-axis is otherwise stable to the situation you describe (I think..). It would work for ammonia too, although it does not solve the discontinuity with the dipoles flipping sign when the ammonia inverts that was discussed yesterday, so again the z-dipole would need to be zero.
We have previously done nitrate ion, and have used the parameters below. This is based on a simple Z-then-X frame at both N and O. And, yes, this is “unsymmetrical” but as long as the ion is pretty flat (and indeed the out-of-plane is very large when fit to QM..) I think it’s OK. My feeling is that the minor violation of symmetry is a reasonable price to pay for getting the better electrostatics on nitrogen.
#########################################
AMOEBA Parameters for Nitrate Ion
#########################################
atom 1 1 N "Nitrate N" 7 14.007 3 atom 2 2 O "Nitrate O" 8 15.999 1
vdw 1 3.7100 0.1100 vdw 2 3.5100 0.1120
bond 1 2 390.0 1.2606 angle 2 1 2 155.00 120.00 strbnd 2 1 2 18.70 18.70 opbend 2 1 2 2 172.00
multipole 1 2 2 1.07363 0.00000 0.00000 0.00000 0.14407 0.00000 -0.28814 0.00000 0.00000 0.14407
multipole 2 1 2 -0.69121 0.00000 0.00000 0.04941 -0.50067 0.00000 -0.08271 0.00000 0.00000 0.58338
polarize 1 1.0730 0.3900 2 polarize 2 0.8370 0.3900 1
On Jul 21, 2020, at 12:51 PM, Pengyu Ren notifications@github.com<mailto:notifications@github.com<mailto:notifications@github.com%3cmailto:notifications@github.com>> wrote:
Jay The trisector calculation has to be “smooth” between flat and non-flat structures in MD. The trisector is the average of 3 N-O vectors when 3 vectors are not in the same plane. But it would be “0” is the 3 N-O is symmetric and flat. When its flat but the 3 O-N-O angles are all different, the trisector(average of 3) would be a vector in the same plane, instead of norm to the plane. So I don’t think we can use trisector for something goes from non-flat to flat (inverting) just like no Z-bisector frame for amine.
Pengyu
From: Jay Ponder notifications@github.com<mailto:notifications@github.com<mailto:notifications@github.com%3cmailto:notifications@github.com>> Sent: Tuesday, July 21, 2020 12:41 PM To: pren/poltype poltype@noreply.github.com<mailto:poltype@noreply.github.com<mailto:poltype@noreply.github.com%3cmailto:poltype@noreply.github.com>> Cc: Ren, Pengyu pren@utexas.edu<mailto:pren@utexas.edu<mailto:pren@utexas.edu%3cmailto:pren@utexas.edu>>; Comment comment@noreply.github.com<mailto:comment@noreply.github.com<mailto:comment@noreply.github.com%3cmailto:comment@noreply.github.com>> Subject: Re: [pren/poltype] Case with 3 elements in multipole from .keyb (#30)
Hi,
Yes, the “trisector” frame, which is called 3-Fold internally in the Tinker code, is better for the nitrate ion nitrogen. It would allow you to have a nonzero zz-quadrupole, which I might guess could be significant in nitrate (?).
The 3-Fold local frame certainly should be stable to all atoms being exactly in the same plane, but this should be checked. The only drawback to 3-Fold is that the torque calculation is significantly more complex than for the other local frames. But that really shouldn’t affect overall performance.
As Pengyu notes, if you do use a “None” frame as in the parameters listed below, then the small z-dipole value should be set to zero. Tinker will not do this automatically. Tinker could easily enforce such zeroing in those kinds of cases, but I’ve always preferred to not force that in the code as there are (rare) cases where you might want to break “symmetry”.
Best, Jay
On Jul 21, 2020, at 12:24 PM, Pengyu Ren notifications@github.com<mailto:notifications@github.com<mailto:notifications@github.com%3cmailto:notifications@github.com<mailto:notifications@github.com%3cmailto:notifications@github.com%3cmailto:notifications@github.com%3cmailto:notifications@github.com>>> wrote:
Another (better) option for N is to use trisector as Z frame given the 3 O atoms are treated the same.
https://github.com/pren/poltype/blob/gh-pages/README_MULTIPOLE.MD (bottom right)
From: Pengyu Ren notifications@github.com<mailto:notifications@github.com<mailto:notifications@github.com%3cmailto:notifications@github.com<mailto:notifications@github.com%3cmailto:notifications@github.com%3cmailto:notifications@github.com%3cmailto:notifications@github.com>>> Sent: Tuesday, July 21, 2020 12:21 PM To: pren/poltype poltype@noreply.github.com<mailto:poltype@noreply.github.com<mailto:poltype@noreply.github.com%3cmailto:poltype@noreply.github.com<mailto:poltype@noreply.github.com%3cmailto:poltype@noreply.github.com%3cmailto:poltype@noreply.github.com%3cmailto:poltype@noreply.github.com>>> Cc: Ren, Pengyu pren@utexas.edu<mailto:pren@utexas.edu<mailto:pren@utexas.edu%3cmailto:pren@utexas.edu<mailto:pren@utexas.edu%3cmailto:pren@utexas.edu%3cmailto:pren@utexas.edu%3cmailto:pren@utexas.edu>>>; Your activity your_activity@noreply.github.com<mailto:your_activity@noreply.github.com<mailto:your_activity@noreply.github.com%3cmailto:your_activity@noreply.github.com<mailto:your_activity@noreply.github.com%3cmailto:your_activity@noreply.github.com%3cmailto:your_activity@noreply.github.com%3cmailto:your_activity@noreply.github.com>>> Subject: Re: [pren/poltype] Case with 3 elements in multipole from .keyb (#30)
N in NO3- can only have charge (no frames) due to symmetry. It should be like a single ion /or nobel gas atom. In tinker you can do N 0 0 charge 0 0 0 … or just N charge 0 0 0 … So the output format below is actually OK. We can add “0 )” to make it more clear. The tiny dipole_z should be set to 0 (I am not sure Tinker ignores it internally and Z axis is arbitrary now)
Pengyu
From: Michael Quevillon notifications@github.com<mailto:notifications@github.com<mailto:notifications@github.com%3cmailto:notifications@github.com<mailto:notifications@github.com%3cmailto:notifications@github.com%3cmailto:notifications@github.com%3cmailto:notifications@github.com<mailto:notifications@github.com%3cmailto:notifications@github.com%3cmailto:notifications@github.com%3cmailto:notifications@github.com%3cmailto:notifications@github.com%3cmailto:notifications@github.com%3cmailto:notifications@github.com%3cmailto:notifications@github.com>>>> Sent: Tuesday, July 21, 2020 11:50 AM To: pren/poltype poltype@noreply.github.com<mailto:poltype@noreply.github.com<mailto:poltype@noreply.github.com%3cmailto:poltype@noreply.github.com<mailto:poltype@noreply.github.com%3cmailto:poltype@noreply.github.com%3cmailto:poltype@noreply.github.com%3cmailto:poltype@noreply.github.com<mailto:poltype@noreply.github.com%3cmailto:poltype@noreply.github.com%3cmailto:poltype@noreply.github.com%3cmailto:poltype@noreply.github.com%3cmailto:poltype@noreply.github.com%3cmailto:poltype@noreply.github.com%3cmailto:poltype@noreply.github.com%3cmailto:poltype@noreply.github.com>>>> Cc: Subscribed subscribed@noreply.github.com<mailto:subscribed@noreply.github.com<mailto:subscribed@noreply.github.com%3cmailto:subscribed@noreply.github.com<mailto:subscribed@noreply.github.com%3cmailto:subscribed@noreply.github.com%3cmailto:subscribed@noreply.github.com%3cmailto:subscribed@noreply.github.com<mailto:subscribed@noreply.github.com%3cmailto:subscribed@noreply.github.com%3cmailto:subscribed@noreply.github.com%3cmailto:subscribed@noreply.github.com%3cmailto:subscribed@noreply.github.com%3cmailto:subscribed@noreply.github.com%3cmailto:subscribed@noreply.github.com%3cmailto:subscribed@noreply.github.com>>>> Subject: [pren/poltype] Case with 3 elements in multipole from .keyb (#30)
In multipole.py (lines of interest shown below), when reading from the .keyb file, I ran into a case where tmplst only had 3 elements, so the variable atmidx was not set properly. This caused an error: UnboundLocalError: local variable 'atmidx' referenced before assignment
I have attached the no3.sdf and poltype.ini I used to run, also the no3.keyb file that was generated are here: no3.ziphttps://github.com/pren/poltype/files/4954948/no3.zip
Snippet from the no3.keyb file that threw the error:
multipole 1 1.09799
0.00000 0.00000 -0.00165
0.00000
0.00000 0.00000
0.00000 0.00000 0.00000
-- Jay W. Ponder Phone: 1-314-935 4275 Chemistry, Campus Box 1134 Fax: 1-314-935 4481 Washington University in St. Louis One Brookings Drive Email: ponder@dasher.wustl.edumailto:ponder@dasher.wustl.edu<mailto:ponder@dasher.wustl.edu%3cmailto:ponder@dasher.wustl.edu<mailto:ponder@dasher.wustl.edu%3cmailto:ponder@dasher.wustl.edu%3cmailto:ponder@dasher.wustl.edu%3cmailto:ponder@dasher.wustl.edu>> St. Louis, Missouri 63130 USA WWW: http://dasher.wustl.edu/
— You are receiving this because you commented. Reply to this email directly, view it on GitHubhttps://github.com/pren/poltype/issues/30#issuecomment-662006362, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ABNC6XVSXJL7T7IZKZN5IADR4XHLLANCNFSM4PDZJT3A.
This message is from an external sender. Learn more about why this matters.https://ut.service-now.com/sp?id=kb_article&number=KB0011401
— You are receiving this because you commented. Reply to this email directly, view it on GitHub, or unsubscribe.
-- Jay W. Ponder Phone: 1-314-935 4275 Chemistry, Campus Box 1134 Fax: 1-314-935 4481 Washington University in St. Louis One Brookings Drive Email: ponder@dasher.wustl.edumailto:ponder@dasher.wustl.edu<mailto:ponder@dasher.wustl.edu%3cmailto:ponder@dasher.wustl.edu> St. Louis, Missouri 63130 USA WWW: http://dasher.wustl.edu/
— You are receiving this because you commented. Reply to this email directly, view it on GitHubhttps://github.com/pren/poltype/issues/30#issuecomment-662025638, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ABNC6XRWN26HKOOONT7JQ5LR4XLTBANCNFSM4PDZJT3A.
This message is from an external sender. Learn more about why this matters.https://ut.service-now.com/sp?id=kb_article&number=KB0011401
— You are receiving this because you commented. Reply to this email directly, view it on GitHub, or unsubscribe.
-- Jay W. Ponder Phone: 1-314-935 4275 Chemistry, Campus Box 1134 Fax: 1-314-935 4481 Washington University in St. Louis One Brookings Drive Email: ponder@dasher.wustl.edumailto:ponder@dasher.wustl.edu St. Louis, Missouri 63130 USA WWW: http://dasher.wustl.edu/
— You are receiving this because you commented. Reply to this email directly, view it on GitHubhttps://github.com/pren/poltype/issues/30#issuecomment-662035971, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ABNC6XVYX34FAIYQOMGEXM3R4XN35ANCNFSM4PDZJT3A.
This message is from an external sender. Learn more about why this matters.https://ut.service-now.com/sp?id=kb_article&number=KB0011401
I guess for N the X and Z is the plane and Qxx=Qzz (donut?) is OK. For O it is also OK if it is perfectly symmetric & flat…o So I think your multipoles are ok.
From: Pengyu Ren notifications@github.com Sent: Tuesday, July 21, 2020 1:51 PM To: pren/poltype poltype@noreply.github.com Cc: Ren, Pengyu pren@utexas.edu; Your activity your_activity@noreply.github.com Subject: Re: [pren/poltype] Case with 3 elements in multipole from .keyb (#30)
For the N, I don’t think there can be quadrupoles if there are three atom “2” that are the same?
For the O (type 2), I would think it has to be Z-only (O N), again sine the other two Os (2) are the same? This requires XX and YY components of quadruple to be the same.
From: Jay Ponder notifications@github.com<mailto:notifications@github.com> Sent: Tuesday, July 21, 2020 1:37 PM To: pren/poltype poltype@noreply.github.com<mailto:poltype@noreply.github.com> Cc: Ren, Pengyu pren@utexas.edu<mailto:pren@utexas.edu>; Comment comment@noreply.github.com<mailto:comment@noreply.github.com> Subject: Re: [pren/poltype] Case with 3 elements in multipole from .keyb (#30)
Yes, it would require changes to rotpole, and more of course to the torque.
We’re going to need to borrow Chao! Or maybe since Chao already did the heavy lifting to get the 3-Fold torques for the current code, somebody could see if they can adapt his method. (I actually had a plaque made in honor of Chao with a wrench attached to it, proclaiming him to be the “Torque Master”) I’m not going to volunteer, at least in the immediate future..
What do you think about the nitrate parameters I attached. I know you are not fond of “symmetry violations”, but the nitrate ion is really quite rigid. We have used those parameters. And I also gave them to Dave Case at some point, though I don’t know if he has actually use them.
On Jul 21, 2020, at 1:28 PM, Pengyu Ren notifications@github.com<mailto:notifications@github.com<mailto:notifications@github.com%3cmailto:notifications@github.com>> wrote:
I think the “norm of 3 atoms” for Z is OK. Probably need to re-derive torque to force conversion…
From: Jay Ponder notifications@github.com<mailto:notifications@github.com<mailto:notifications@github.com%3cmailto:notifications@github.com>> Sent: Tuesday, July 21, 2020 1:17 PM To: pren/poltype poltype@noreply.github.com<mailto:poltype@noreply.github.com<mailto:poltype@noreply.github.com%3cmailto:poltype@noreply.github.com>> Cc: Ren, Pengyu pren@utexas.edu<mailto:pren@utexas.edu<mailto:pren@utexas.edu%3cmailto:pren@utexas.edu>>; Comment comment@noreply.github.com<mailto:comment@noreply.github.com<mailto:comment@noreply.github.com%3cmailto:comment@noreply.github.com>> Subject: Re: [pren/poltype] Case with 3 elements in multipole from .keyb (#30)
Pengyu, I think you are right about the method in the current code. Though in this case the “problem” is only when the molecule is exactly flat. An “inversion" at the nitrogen is OK, since you should never have a nonzero z-dipole for nitrate anyway.
An alternative (better?) way to do trisector would be to set the z-axis as perpendicular to the plane defined by the three nitrate oxygen atoms. You could do this after first normalizing the N-O distance to all be one, which the current trisector code already does. Then choose the “sign” of the z-axis based on whether the nitrogen atom lies above or below the plane of the oxygens. (When all atoms are in a plane, then the sign of the z-axis is undefined, but that’s OK as long as you don’t have a z-dipole, which you should not be using in that case.) This method of using the plane of the oxygens to set the z-axis is otherwise stable to the situation you describe (I think..). It would work for ammonia too, although it does not solve the discontinuity with the dipoles flipping sign when the ammonia inverts that was discussed yesterday, so again the z-dipole would need to be zero.
We have previously done nitrate ion, and have used the parameters below. This is based on a simple Z-then-X frame at both N and O. And, yes, this is “unsymmetrical” but as long as the ion is pretty flat (and indeed the out-of-plane is very large when fit to QM..) I think it’s OK. My feeling is that the minor violation of symmetry is a reasonable price to pay for getting the better electrostatics on nitrogen.
#########################################
AMOEBA Parameters for Nitrate Ion
#########################################
atom 1 1 N "Nitrate N" 7 14.007 3 atom 2 2 O "Nitrate O" 8 15.999 1
vdw 1 3.7100 0.1100 vdw 2 3.5100 0.1120
bond 1 2 390.0 1.2606 angle 2 1 2 155.00 120.00 strbnd 2 1 2 18.70 18.70 opbend 2 1 2 2 172.00
multipole 1 2 2 1.07363 0.00000 0.00000 0.00000 0.14407 0.00000 -0.28814 0.00000 0.00000 0.14407
multipole 2 1 2 -0.69121 0.00000 0.00000 0.04941 -0.50067 0.00000 -0.08271 0.00000 0.00000 0.58338
polarize 1 1.0730 0.3900 2 polarize 2 0.8370 0.3900 1
On Jul 21, 2020, at 12:51 PM, Pengyu Ren notifications@github.com<mailto:notifications@github.com<mailto:notifications@github.com%3cmailto:notifications@github.com<mailto:notifications@github.com%3cmailto:notifications@github.com%3cmailto:notifications@github.com%3cmailto:notifications@github.com>>> wrote:
Jay The trisector calculation has to be “smooth” between flat and non-flat structures in MD. The trisector is the average of 3 N-O vectors when 3 vectors are not in the same plane. But it would be “0” is the 3 N-O is symmetric and flat. When its flat but the 3 O-N-O angles are all different, the trisector(average of 3) would be a vector in the same plane, instead of norm to the plane. So I don’t think we can use trisector for something goes from non-flat to flat (inverting) just like no Z-bisector frame for amine.
Pengyu
From: Jay Ponder notifications@github.com<mailto:notifications@github.com<mailto:notifications@github.com%3cmailto:notifications@github.com<mailto:notifications@github.com%3cmailto:notifications@github.com%3cmailto:notifications@github.com%3cmailto:notifications@github.com>>> Sent: Tuesday, July 21, 2020 12:41 PM To: pren/poltype poltype@noreply.github.com<mailto:poltype@noreply.github.com<mailto:poltype@noreply.github.com%3cmailto:poltype@noreply.github.com<mailto:poltype@noreply.github.com%3cmailto:poltype@noreply.github.com%3cmailto:poltype@noreply.github.com%3cmailto:poltype@noreply.github.com>>> Cc: Ren, Pengyu pren@utexas.edu<mailto:pren@utexas.edu<mailto:pren@utexas.edu%3cmailto:pren@utexas.edu<mailto:pren@utexas.edu%3cmailto:pren@utexas.edu%3cmailto:pren@utexas.edu%3cmailto:pren@utexas.edu>>>; Comment comment@noreply.github.com<mailto:comment@noreply.github.com<mailto:comment@noreply.github.com%3cmailto:comment@noreply.github.com<mailto:comment@noreply.github.com%3cmailto:comment@noreply.github.com%3cmailto:comment@noreply.github.com%3cmailto:comment@noreply.github.com>>> Subject: Re: [pren/poltype] Case with 3 elements in multipole from .keyb (#30)
Hi,
Yes, the “trisector” frame, which is called 3-Fold internally in the Tinker code, is better for the nitrate ion nitrogen. It would allow you to have a nonzero zz-quadrupole, which I might guess could be significant in nitrate (?).
The 3-Fold local frame certainly should be stable to all atoms being exactly in the same plane, but this should be checked. The only drawback to 3-Fold is that the torque calculation is significantly more complex than for the other local frames. But that really shouldn’t affect overall performance.
As Pengyu notes, if you do use a “None” frame as in the parameters listed below, then the small z-dipole value should be set to zero. Tinker will not do this automatically. Tinker could easily enforce such zeroing in those kinds of cases, but I’ve always preferred to not force that in the code as there are (rare) cases where you might want to break “symmetry”.
Best, Jay
Another (better) option for N is to use trisector as Z frame given the 3 O atoms are treated the same.
https://github.com/pren/poltype/blob/gh-pages/README_MULTIPOLE.MD (bottom right)
From: Pengyu Ren notifications@github.com<mailto:notifications@github.com<mailto:notifications@github.com%3cmailto:notifications@github.com<mailto:notifications@github.com%3cmailto:notifications@github.com%3cmailto:notifications@github.com%3cmailto:notifications@github.com<mailto:notifications@github.com%3cmailto:notifications@github.com%3cmailto:notifications@github.com%3cmailto:notifications@github.com%3cmailto:notifications@github.com%3cmailto:notifications@github.com%3cmailto:notifications@github.com%3cmailto:notifications@github.com>>>> Sent: Tuesday, July 21, 2020 12:21 PM To: pren/poltype poltype@noreply.github.com<mailto:poltype@noreply.github.com<mailto:poltype@noreply.github.com%3cmailto:poltype@noreply.github.com<mailto:poltype@noreply.github.com%3cmailto:poltype@noreply.github.com%3cmailto:poltype@noreply.github.com%3cmailto:poltype@noreply.github.com<mailto:poltype@noreply.github.com%3cmailto:poltype@noreply.github.com%3cmailto:poltype@noreply.github.com%3cmailto:poltype@noreply.github.com%3cmailto:poltype@noreply.github.com%3cmailto:poltype@noreply.github.com%3cmailto:poltype@noreply.github.com%3cmailto:poltype@noreply.github.com>>>> Cc: Ren, Pengyu pren@utexas.edu<mailto:pren@utexas.edu<mailto:pren@utexas.edu%3cmailto:pren@utexas.edu<mailto:pren@utexas.edu%3cmailto:pren@utexas.edu%3cmailto:pren@utexas.edu%3cmailto:pren@utexas.edu<mailto:pren@utexas.edu%3cmailto:pren@utexas.edu%3cmailto:pren@utexas.edu%3cmailto:pren@utexas.edu%3cmailto:pren@utexas.edu%3cmailto:pren@utexas.edu%3cmailto:pren@utexas.edu%3cmailto:pren@utexas.edu>>>>; Your activity your_activity@noreply.github.com<mailto:your_activity@noreply.github.com<mailto:your_activity@noreply.github.com%3cmailto:your_activity@noreply.github.com<mailto:your_activity@noreply.github.com%3cmailto:your_activity@noreply.github.com%3cmailto:your_activity@noreply.github.com%3cmailto:your_activity@noreply.github.com<mailto:your_activity@noreply.github.com%3cmailto:your_activity@noreply.github.com%3cmailto:your_activity@noreply.github.com%3cmailto:your_activity@noreply.github.com%3cmailto:your_activity@noreply.github.com%3cmailto:your_activity@noreply.github.com%3cmailto:your_activity@noreply.github.com%3cmailto:your_activity@noreply.github.com>>>> Subject: Re: [pren/poltype] Case with 3 elements in multipole from .keyb (#30)
N in NO3- can only have charge (no frames) due to symmetry. It should be like a single ion /or nobel gas atom. In tinker you can do N 0 0 charge 0 0 0 … or just N charge 0 0 0 … So the output format below is actually OK. We can add “0 )” to make it more clear. The tiny dipole_z should be set to 0 (I am not sure Tinker ignores it internally and Z axis is arbitrary now)
Pengyu
From: Michael Quevillon notifications@github.com<mailto:notifications@github.com<mailto:notifications@github.com%3cmailto:notifications@github.com<mailto:notifications@github.com%3cmailto:notifications@github.com%3cmailto:notifications@github.com%3cmailto:notifications@github.com<mailto:notifications@github.com%3cmailto:notifications@github.com%3cmailto:notifications@github.com%3cmailto:notifications@github.com%3cmailto:notifications@github.com%3cmailto:notifications@github.com%3cmailto:notifications@github.com%3cmailto:notifications@github.com<mailto:notifications@github.com%3cmailto:notifications@github.com%3cmailto:notifications@github.com%3cmailto:notifications@github.com%3cmailto:notifications@github.com%3cmailto:notifications@github.com%3cmailto:notifications@github.com%3cmailto:notifications@github.com%3cmailto:notifications@github.com%3cmailto:notifications@github.com%3cmailto:notifications@github.com%3cmailto:notifications@github.com%3cmailto:notifications@github.com%3cmailto:notifications@github.com%3cmailto:notifications@github.com%3cmailto:notifications@github.com>>>>> Sent: Tuesday, July 21, 2020 11:50 AM To: pren/poltype poltype@noreply.github.com<mailto:poltype@noreply.github.com<mailto:poltype@noreply.github.com%3cmailto:poltype@noreply.github.com<mailto:poltype@noreply.github.com%3cmailto:poltype@noreply.github.com%3cmailto:poltype@noreply.github.com%3cmailto:poltype@noreply.github.com<mailto:poltype@noreply.github.com%3cmailto:poltype@noreply.github.com%3cmailto:poltype@noreply.github.com%3cmailto:poltype@noreply.github.com%3cmailto:poltype@noreply.github.com%3cmailto:poltype@noreply.github.com%3cmailto:poltype@noreply.github.com%3cmailto:poltype@noreply.github.com<mailto:poltype@noreply.github.com%3cmailto:poltype@noreply.github.com%3cmailto:poltype@noreply.github.com%3cmailto:poltype@noreply.github.com%3cmailto:poltype@noreply.github.com%3cmailto:poltype@noreply.github.com%3cmailto:poltype@noreply.github.com%3cmailto:poltype@noreply.github.com%3cmailto:poltype@noreply.github.com%3cmailto:poltype@noreply.github.com%3cmailto:poltype@noreply.github.com%3cmailto:poltype@noreply.github.com%3cmailto:poltype@noreply.github.com%3cmailto:poltype@noreply.github.com%3cmailto:poltype@noreply.github.com%3cmailto:poltype@noreply.github.com>>>>> Cc: Subscribed subscribed@noreply.github.com<mailto:subscribed@noreply.github.com<mailto:subscribed@noreply.github.com%3cmailto:subscribed@noreply.github.com<mailto:subscribed@noreply.github.com%3cmailto:subscribed@noreply.github.com%3cmailto:subscribed@noreply.github.com%3cmailto:subscribed@noreply.github.com<mailto:subscribed@noreply.github.com%3cmailto:subscribed@noreply.github.com%3cmailto:subscribed@noreply.github.com%3cmailto:subscribed@noreply.github.com%3cmailto:subscribed@noreply.github.com%3cmailto:subscribed@noreply.github.com%3cmailto:subscribed@noreply.github.com%3cmailto:subscribed@noreply.github.com<mailto:subscribed@noreply.github.com%3cmailto:subscribed@noreply.github.com%3cmailto:subscribed@noreply.github.com%3cmailto:subscribed@noreply.github.com%3cmailto:subscribed@noreply.github.com%3cmailto:subscribed@noreply.github.com%3cmailto:subscribed@noreply.github.com%3cmailto:subscribed@noreply.github.com%3cmailto:subscribed@noreply.github.com%3cmailto:subscribed@noreply.github.com%3cmailto:subscribed@noreply.github.com%3cmailto:subscribed@noreply.github.com%3cmailto:subscribed@noreply.github.com%3cmailto:subscribed@noreply.github.com%3cmailto:subscribed@noreply.github.com%3cmailto:subscribed@noreply.github.com>>>>> Subject: [pren/poltype] Case with 3 elements in multipole from .keyb (#30)
In multipole.py (lines of interest shown below), when reading from the .keyb file, I ran into a case where tmplst only had 3 elements, so the variable atmidx was not set properly. This caused an error: UnboundLocalError: local variable 'atmidx' referenced before assignment
I have attached the no3.sdf and poltype.ini I used to run, also the no3.keyb file that was generated are here: no3.ziphttps://github.com/pren/poltype/files/4954948/no3.zip
Snippet from the no3.keyb file that threw the error:
multipole 1 1.09799
0.00000 0.00000 -0.00165
0.00000
0.00000 0.00000
0.00000 0.00000 0.00000
-- Jay W. Ponder Phone: 1-314-935 4275 Chemistry, Campus Box 1134 Fax: 1-314-935 4481 Washington University in St. Louis One Brookings Drive Email: ponder@dasher.wustl.edumailto:ponder@dasher.wustl.edu<mailto:ponder@dasher.wustl.edu%3cmailto:ponder@dasher.wustl.edu<mailto:ponder@dasher.wustl.edu%3cmailto:ponder@dasher.wustl.edu%3cmailto:ponder@dasher.wustl.edu%3cmailto:ponder@dasher.wustl.edu<mailto:ponder@dasher.wustl.edu%3cmailto:ponder@dasher.wustl.edu%3cmailto:ponder@dasher.wustl.edu%3cmailto:ponder@dasher.wustl.edu%3cmailto:ponder@dasher.wustl.edu%3cmailto:ponder@dasher.wustl.edu%3cmailto:ponder@dasher.wustl.edu%3cmailto:ponder@dasher.wustl.edu>>> St. Louis, Missouri 63130 USA WWW: http://dasher.wustl.edu/
— You are receiving this because you commented. Reply to this email directly, view it on GitHubhttps://github.com/pren/poltype/issues/30#issuecomment-662006362, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ABNC6XVSXJL7T7IZKZN5IADR4XHLLANCNFSM4PDZJT3A.
This message is from an external sender. Learn more about why this matters.https://ut.service-now.com/sp?id=kb_article&number=KB0011401
— You are receiving this because you commented. Reply to this email directly, view it on GitHub, or unsubscribe.
-- Jay W. Ponder Phone: 1-314-935 4275 Chemistry, Campus Box 1134 Fax: 1-314-935 4481 Washington University in St. Louis One Brookings Drive Email: ponder@dasher.wustl.edumailto:ponder@dasher.wustl.edu<mailto:ponder@dasher.wustl.edu%3cmailto:ponder@dasher.wustl.edu<mailto:ponder@dasher.wustl.edu%3cmailto:ponder@dasher.wustl.edu%3cmailto:ponder@dasher.wustl.edu%3cmailto:ponder@dasher.wustl.edu>> St. Louis, Missouri 63130 USA WWW: http://dasher.wustl.edu/
— You are receiving this because you commented. Reply to this email directly, view it on GitHubhttps://github.com/pren/poltype/issues/30#issuecomment-662025638, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ABNC6XRWN26HKOOONT7JQ5LR4XLTBANCNFSM4PDZJT3A.
This message is from an external sender. Learn more about why this matters.https://ut.service-now.com/sp?id=kb_article&number=KB0011401
— You are receiving this because you commented. Reply to this email directly, view it on GitHub, or unsubscribe.
-- Jay W. Ponder Phone: 1-314-935 4275 Chemistry, Campus Box 1134 Fax: 1-314-935 4481 Washington University in St. Louis One Brookings Drive Email: ponder@dasher.wustl.edumailto:ponder@dasher.wustl.edu<mailto:ponder@dasher.wustl.edu%3cmailto:ponder@dasher.wustl.edu> St. Louis, Missouri 63130 USA WWW: http://dasher.wustl.edu/
— You are receiving this because you commented. Reply to this email directly, view it on GitHubhttps://github.com/pren/poltype/issues/30#issuecomment-662035971, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ABNC6XVYX34FAIYQOMGEXM3R4XN35ANCNFSM4PDZJT3A.
This message is from an external sender. Learn more about why this matters.https://ut.service-now.com/sp?id=kb_article&number=KB0011401
— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHubhttps://github.com/pren/poltype/issues/30#issuecomment-662042927, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ABNC6XT6FHWNHROBDJSTKA3R4XPP5ANCNFSM4PDZJT3A.
This message is from an external sender. Learn more about why this matters.https://ut.service-now.com/sp?id=kb_article&number=KB0011401
For the nitrogen, I think the “out-of-plane” diagonal quadrupole can be nonzero. If you do trisector, this would be the zz-quadrupole. For Z-then-X as in the parameters I sent, it’s the yy-quadrupole. In either case the other two diagonal quadrupoles should have opposite sign and half the magnitude. The good thing is that this out-of-plane quadrupole doesn’t change sign when the nitrogen inverts by making small motions above and below the plane of the oxygens. The whole point is to try to use something other than just a partial charge (“None” frame) on nitrogen.
For the oxygen, using Z-then-X, the z-axis will be in the direction of the nitrogen. The z-axis is thus defined and unique, so there can be a z-dipole and zz-quadrupole. The x-axis is (approximately) in the plane of the molecule, and the y-axis is roughly normal to the molecular plane. So you also get to have different xx- and yy-quadrupoles.
I believe the only issue with the parameters I suggest is the lack of “symmetry”. But again, I think that’s not a big deal and it’s (much) more important to do well on the electrostatic model.
On Jul 21, 2020, at 1:50 PM, Pengyu Ren notifications@github.com wrote:
For the N, I don’t think there can be quadrupoles if there are three atom “2” that are the same?
For the O (type 2), I would think it has to be Z-only (O N), again sine the other two Os (2) are the same? This requires XX and YY components of quadruple to be the same.
From: Jay Ponder notifications@github.com Sent: Tuesday, July 21, 2020 1:37 PM To: pren/poltype poltype@noreply.github.com Cc: Ren, Pengyu pren@utexas.edu; Comment comment@noreply.github.com Subject: Re: [pren/poltype] Case with 3 elements in multipole from .keyb (#30)
Yes, it would require changes to rotpole, and more of course to the torque.
We’re going to need to borrow Chao! Or maybe since Chao already did the heavy lifting to get the 3-Fold torques for the current code, somebody could see if they can adapt his method. (I actually had a plaque made in honor of Chao with a wrench attached to it, proclaiming him to be the “Torque Master”) I’m not going to volunteer, at least in the immediate future..
What do you think about the nitrate parameters I attached. I know you are not fond of “symmetry violations”, but the nitrate ion is really quite rigid. We have used those parameters. And I also gave them to Dave Case at some point, though I don’t know if he has actually use them.
On Jul 21, 2020, at 1:28 PM, Pengyu Ren notifications@github.com<mailto:notifications@github.com> wrote:
I think the “norm of 3 atoms” for Z is OK. Probably need to re-derive torque to force conversion…
From: Jay Ponder notifications@github.com<mailto:notifications@github.com> Sent: Tuesday, July 21, 2020 1:17 PM To: pren/poltype poltype@noreply.github.com<mailto:poltype@noreply.github.com> Cc: Ren, Pengyu pren@utexas.edu<mailto:pren@utexas.edu>; Comment comment@noreply.github.com<mailto:comment@noreply.github.com> Subject: Re: [pren/poltype] Case with 3 elements in multipole from .keyb (#30)
Pengyu, I think you are right about the method in the current code. Though in this case the “problem” is only when the molecule is exactly flat. An “inversion" at the nitrogen is OK, since you should never have a nonzero z-dipole for nitrate anyway.
An alternative (better?) way to do trisector would be to set the z-axis as perpendicular to the plane defined by the three nitrate oxygen atoms. You could do this after first normalizing the N-O distance to all be one, which the current trisector code already does. Then choose the “sign” of the z-axis based on whether the nitrogen atom lies above or below the plane of the oxygens. (When all atoms are in a plane, then the sign of the z-axis is undefined, but that’s OK as long as you don’t have a z-dipole, which you should not be using in that case.) This method of using the plane of the oxygens to set the z-axis is otherwise stable to the situation you describe (I think..). It would work for ammonia too, although it does not solve the discontinuity with the dipoles flipping sign when the ammonia inverts that was discussed yesterday, so again the z-dipole would need to be zero.
We have previously done nitrate ion, and have used the parameters below. This is based on a simple Z-then-X frame at both N and O. And, yes, this is “unsymmetrical” but as long as the ion is pretty flat (and indeed the out-of-plane is very large when fit to QM..) I think it’s OK. My feeling is that the minor violation of symmetry is a reasonable price to pay for getting the better electrostatics on nitrogen.
#########################################
AMOEBA Parameters for Nitrate Ion
#########################################
atom 1 1 N "Nitrate N" 7 14.007 3 atom 2 2 O "Nitrate O" 8 15.999 1
vdw 1 3.7100 0.1100 vdw 2 3.5100 0.1120
bond 1 2 390.0 1.2606 angle 2 1 2 155.00 120.00 strbnd 2 1 2 18.70 18.70 opbend 2 1 2 2 172.00
multipole 1 2 2 1.07363 0.00000 0.00000 0.00000 0.14407 0.00000 -0.28814 0.00000 0.00000 0.14407
multipole 2 1 2 -0.69121 0.00000 0.00000 0.04941 -0.50067 0.00000 -0.08271 0.00000 0.00000 0.58338
polarize 1 1.0730 0.3900 2 polarize 2 0.8370 0.3900 1
On Jul 21, 2020, at 12:51 PM, Pengyu Ren notifications@github.com<mailto:notifications@github.com<mailto:notifications@github.com%3cmailto:notifications@github.com>> wrote:
Jay The trisector calculation has to be “smooth” between flat and non-flat structures in MD. The trisector is the average of 3 N-O vectors when 3 vectors are not in the same plane. But it would be “0” is the 3 N-O is symmetric and flat. When its flat but the 3 O-N-O angles are all different, the trisector(average of 3) would be a vector in the same plane, instead of norm to the plane. So I don’t think we can use trisector for something goes from non-flat to flat (inverting) just like no Z-bisector frame for amine.
Pengyu
From: Jay Ponder notifications@github.com<mailto:notifications@github.com<mailto:notifications@github.com%3cmailto:notifications@github.com>> Sent: Tuesday, July 21, 2020 12:41 PM To: pren/poltype poltype@noreply.github.com<mailto:poltype@noreply.github.com<mailto:poltype@noreply.github.com%3cmailto:poltype@noreply.github.com>> Cc: Ren, Pengyu pren@utexas.edu<mailto:pren@utexas.edu<mailto:pren@utexas.edu%3cmailto:pren@utexas.edu>>; Comment comment@noreply.github.com<mailto:comment@noreply.github.com<mailto:comment@noreply.github.com%3cmailto:comment@noreply.github.com>> Subject: Re: [pren/poltype] Case with 3 elements in multipole from .keyb (#30)
Hi,
Yes, the “trisector” frame, which is called 3-Fold internally in the Tinker code, is better for the nitrate ion nitrogen. It would allow you to have a nonzero zz-quadrupole, which I might guess could be significant in nitrate (?).
The 3-Fold local frame certainly should be stable to all atoms being exactly in the same plane, but this should be checked. The only drawback to 3-Fold is that the torque calculation is significantly more complex than for the other local frames. But that really shouldn’t affect overall performance.
As Pengyu notes, if you do use a “None” frame as in the parameters listed below, then the small z-dipole value should be set to zero. Tinker will not do this automatically. Tinker could easily enforce such zeroing in those kinds of cases, but I’ve always preferred to not force that in the code as there are (rare) cases where you might want to break “symmetry”.
Best, Jay
On Jul 21, 2020, at 12:24 PM, Pengyu Ren notifications@github.com<mailto:notifications@github.com<mailto:notifications@github.com%3cmailto:notifications@github.com<mailto:notifications@github.com%3cmailto:notifications@github.com%3cmailto:notifications@github.com%3cmailto:notifications@github.com>>> wrote:
Another (better) option for N is to use trisector as Z frame given the 3 O atoms are treated the same.
https://github.com/pren/poltype/blob/gh-pages/README_MULTIPOLE.MD (bottom right)
From: Pengyu Ren notifications@github.com<mailto:notifications@github.com<mailto:notifications@github.com%3cmailto:notifications@github.com<mailto:notifications@github.com%3cmailto:notifications@github.com%3cmailto:notifications@github.com%3cmailto:notifications@github.com>>> Sent: Tuesday, July 21, 2020 12:21 PM To: pren/poltype poltype@noreply.github.com<mailto:poltype@noreply.github.com<mailto:poltype@noreply.github.com%3cmailto:poltype@noreply.github.com<mailto:poltype@noreply.github.com%3cmailto:poltype@noreply.github.com%3cmailto:poltype@noreply.github.com%3cmailto:poltype@noreply.github.com>>> Cc: Ren, Pengyu pren@utexas.edu<mailto:pren@utexas.edu<mailto:pren@utexas.edu%3cmailto:pren@utexas.edu<mailto:pren@utexas.edu%3cmailto:pren@utexas.edu%3cmailto:pren@utexas.edu%3cmailto:pren@utexas.edu>>>; Your activity your_activity@noreply.github.com<mailto:your_activity@noreply.github.com<mailto:your_activity@noreply.github.com%3cmailto:your_activity@noreply.github.com<mailto:your_activity@noreply.github.com%3cmailto:your_activity@noreply.github.com%3cmailto:your_activity@noreply.github.com%3cmailto:your_activity@noreply.github.com>>> Subject: Re: [pren/poltype] Case with 3 elements in multipole from .keyb (#30)
N in NO3- can only have charge (no frames) due to symmetry. It should be like a single ion /or nobel gas atom. In tinker you can do N 0 0 charge 0 0 0 … or just N charge 0 0 0 … So the output format below is actually OK. We can add “0 )” to make it more clear. The tiny dipole_z should be set to 0 (I am not sure Tinker ignores it internally and Z axis is arbitrary now)
Pengyu
From: Michael Quevillon notifications@github.com<mailto:notifications@github.com<mailto:notifications@github.com%3cmailto:notifications@github.com<mailto:notifications@github.com%3cmailto:notifications@github.com%3cmailto:notifications@github.com%3cmailto:notifications@github.com<mailto:notifications@github.com%3cmailto:notifications@github.com%3cmailto:notifications@github.com%3cmailto:notifications@github.com%3cmailto:notifications@github.com%3cmailto:notifications@github.com%3cmailto:notifications@github.com%3cmailto:notifications@github.com>>>> Sent: Tuesday, July 21, 2020 11:50 AM To: pren/poltype poltype@noreply.github.com<mailto:poltype@noreply.github.com<mailto:poltype@noreply.github.com%3cmailto:poltype@noreply.github.com<mailto:poltype@noreply.github.com%3cmailto:poltype@noreply.github.com%3cmailto:poltype@noreply.github.com%3cmailto:poltype@noreply.github.com<mailto:poltype@noreply.github.com%3cmailto:poltype@noreply.github.com%3cmailto:poltype@noreply.github.com%3cmailto:poltype@noreply.github.com%3cmailto:poltype@noreply.github.com%3cmailto:poltype@noreply.github.com%3cmailto:poltype@noreply.github.com%3cmailto:poltype@noreply.github.com>>>> Cc: Subscribed subscribed@noreply.github.com<mailto:subscribed@noreply.github.com<mailto:subscribed@noreply.github.com%3cmailto:subscribed@noreply.github.com<mailto:subscribed@noreply.github.com%3cmailto:subscribed@noreply.github.com%3cmailto:subscribed@noreply.github.com%3cmailto:subscribed@noreply.github.com<mailto:subscribed@noreply.github.com%3cmailto:subscribed@noreply.github.com%3cmailto:subscribed@noreply.github.com%3cmailto:subscribed@noreply.github.com%3cmailto:subscribed@noreply.github.com%3cmailto:subscribed@noreply.github.com%3cmailto:subscribed@noreply.github.com%3cmailto:subscribed@noreply.github.com>>>> Subject: [pren/poltype] Case with 3 elements in multipole from .keyb (#30)
In multipole.py (lines of interest shown below), when reading from the .keyb file, I ran into a case where tmplst only had 3 elements, so the variable atmidx was not set properly. This caused an error: UnboundLocalError: local variable 'atmidx' referenced before assignment
I have attached the no3.sdf and poltype.ini I used to run, also the no3.keyb file that was generated are here: no3.ziphttps://github.com/pren/poltype/files/4954948/no3.zip
Snippet from the no3.keyb file that threw the error:
multipole 1 1.09799
0.00000 0.00000 -0.00165
0.00000
0.00000 0.00000
0.00000 0.00000 0.00000
-- Jay W. Ponder Phone: 1-314-935 4275 Chemistry, Campus Box 1134 Fax: 1-314-935 4481 Washington University in St. Louis One Brookings Drive Email: ponder@dasher.wustl.edumailto:ponder@dasher.wustl.edu<mailto:ponder@dasher.wustl.edu%3cmailto:ponder@dasher.wustl.edu<mailto:ponder@dasher.wustl.edu%3cmailto:ponder@dasher.wustl.edu%3cmailto:ponder@dasher.wustl.edu%3cmailto:ponder@dasher.wustl.edu>> St. Louis, Missouri 63130 USA WWW: http://dasher.wustl.edu/
— You are receiving this because you commented. Reply to this email directly, view it on GitHubhttps://github.com/pren/poltype/issues/30#issuecomment-662006362, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ABNC6XVSXJL7T7IZKZN5IADR4XHLLANCNFSM4PDZJT3A.
This message is from an external sender. Learn more about why this matters.https://ut.service-now.com/sp?id=kb_article&number=KB0011401
— You are receiving this because you commented. Reply to this email directly, view it on GitHub, or unsubscribe.
-- Jay W. Ponder Phone: 1-314-935 4275 Chemistry, Campus Box 1134 Fax: 1-314-935 4481 Washington University in St. Louis One Brookings Drive Email: ponder@dasher.wustl.edumailto:ponder@dasher.wustl.edu<mailto:ponder@dasher.wustl.edu%3cmailto:ponder@dasher.wustl.edu> St. Louis, Missouri 63130 USA WWW: http://dasher.wustl.edu/
— You are receiving this because you commented. Reply to this email directly, view it on GitHubhttps://github.com/pren/poltype/issues/30#issuecomment-662025638, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ABNC6XRWN26HKOOONT7JQ5LR4XLTBANCNFSM4PDZJT3A.
This message is from an external sender. Learn more about why this matters.https://ut.service-now.com/sp?id=kb_article&number=KB0011401
— You are receiving this because you commented. Reply to this email directly, view it on GitHub, or unsubscribe.
-- Jay W. Ponder Phone: 1-314-935 4275 Chemistry, Campus Box 1134 Fax: 1-314-935 4481 Washington University in St. Louis One Brookings Drive Email: ponder@dasher.wustl.edumailto:ponder@dasher.wustl.edu St. Louis, Missouri 63130 USA WWW: http://dasher.wustl.edu/
— You are receiving this because you commented. Reply to this email directly, view it on GitHubhttps://github.com/pren/poltype/issues/30#issuecomment-662035971, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ABNC6XVYX34FAIYQOMGEXM3R4XN35ANCNFSM4PDZJT3A.
This message is from an external sender. Learn more about why this matters.https://ut.service-now.com/sp?id=kb_article&number=KB0011401
— You are receiving this because you commented. Reply to this email directly, view it on GitHub, or unsubscribe.
-- Jay W. Ponder Phone: 1-314-935 4275 Chemistry, Campus Box 1134 Fax: 1-314-935 4481 Washington University in St. Louis One Brookings Drive Email: ponder@dasher.wustl.edu St. Louis, Missouri 63130 USA WWW: http://dasher.wustl.edu/
multipole 401 1.26710 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000
correct output now
In multipole.py (lines of interest shown below), when reading from the .keyb file, I ran into a case where
tmplst
only had 3 elements, so the variableatmidx
was not set properly. This caused an error:UnboundLocalError: local variable 'atmidx' referenced before assignment
https://github.com/pren/poltype/blob/a7ae210c24890ed3c8edcdd5740f6b5b36ae437a/PoltypeModules/multipole.py#L386-L396
I have attached the
no3.sdf
andpoltype.ini
I used to run, also theno3.keyb
file that was generated are here: no3.zipSnippet from the no3.keyb file that threw the error: