计算化学公社

标题: 求助: 如何把"Standard orientation"转换为"Input orientation"? [打印本页]

作者
Author:
chust    时间: 2021-3-7 21:25
标题: 求助: 如何把"Standard orientation"转换为"Input orientation"?
大家好, 我在使用Gaussian做表面团簇体系计算时, 一方面希望利用体系的对称性加速计算(所以不使用nosymm), 另一方面又希望在输入的坐标系方向下分析各种数据(偶极, 极化率, 极化率导数...).
但是, 如果不使用nosymm关键词, Gaussian会自动把分子平移旋转到新的坐标系, 即"Standard orientation", 输出的结果似乎也是在新的坐标系下的数据, 但我需要的是原始"Input orientation"坐标系下的数据.

我的初步理解是, "Standard orientation"是在输入坐标系"Input orientation"下做平移和旋转得到的, 那么只要得到了平移旋转矩阵, 就可以变换到原始坐标系了, 但是我不知道怎么得到这个矩阵. 希望大家可以帮帮忙, 非常感谢!

作者
Author:
chust    时间: 2021-3-7 21:54
虽然没有在log文件中找到具体矩阵, 但发现这个问题其实很简单, 假设输入坐标为x, 标准坐标为x', 那么有x'=C*x+dx, 其中C为3*3旋转矩阵, dx为3*1平移矩阵, 只需要任意取输入坐标和标准坐标中的4对, 即可求解出相应的矩阵, 所有导出量利用这个旋转平移矩阵应该也可以导出了.

但这种方还是比较麻烦, 因为需要编程实现, 如果有简单的方法, 让Gaussian自动在Input orientation中输出结果就好了, 希望懂的大神告诉怎么做.
作者
Author:
granvia    时间: 2021-3-7 22:34
Nosymm
作者
Author:
chust    时间: 2021-3-7 22:43
granvia 发表于 2021-3-7 22:34
Nosymm

谢谢, 但是经验算, 发现nosymm会显著增加计算时间...
作者
Author:
sobereva    时间: 2021-3-8 00:15
末尾的archive段落给出的偶极矩、极化率这些都是输入朝向下的,即便没写nosymm
作者
Author:
beefly    时间: 2021-3-8 08:53
在3D空间中的转动矩阵没有唯一解,需要给转动矩阵加上限制条件:每个原子的平均位移最大或最小。用PDBSUP程序可以根据转动前后的原子坐标算出转动矩阵

http://www.ruppweb.org/Xray/comp/superpos.htm
作者
Author:
granvia    时间: 2021-3-8 17:47
beefly 发表于 2021-3-8 08:53
在3D空间中的转动矩阵没有唯一解,需要给转动矩阵加上限制条件:每个原子的平均位移最大或最小。用PDBSUP程 ...

你说的是两个不同分子之间的最佳旋转吧? LZ说的是同一分子构型两种不同取向间的旋转,其对应矩阵应该是唯一确定的。
作者
Author:
beefly    时间: 2021-3-10 20:44
granvia 发表于 2021-3-8 17:47
你说的是两个不同分子之间的最佳旋转吧? LZ说的是同一分子构型两种不同取向间的旋转,其对应矩阵应该是 ...

你说的可以看作一种特殊情况。算法是一样的
作者
Author:
granvia    时间: 2021-3-10 23:59
beefly 发表于 2021-3-10 20:44
你说的可以看作一种特殊情况。算法是一样的

对于不同构型的分子,算法也不唯一吧,比如Kabsch算法也是不错的选择:https://mp.weixin.qq.com/s/Oi5Q1glMbjbPipvMClmgdg
作者
Author:
Daisy_zju    时间: 2023-11-16 17:21
最近刚好在求从标准朝向到输入朝向的旋转矩阵,借用了mdanalysis的包
from MDAnalysis.analysis import align
R, rmsd = align.rotation_matrix(test_centered,ref_centered)
在这个基础上应该很快就能求出平移向量




欢迎光临 计算化学公社 (http://bbs.keinsci.com/) Powered by Discuz! X3.3