计算化学公社

标题: 求教:如何将离散的光谱绘制上包络线(跟Gaussian view里面那样) [打印本页]

作者
Author:
胆小鬼    时间: 2023-5-31 14:36
标题: 求教:如何将离散的光谱绘制上包络线(跟Gaussian view里面那样)
最近在算转动光谱,现在已经把离散的光谱图做出来了。但利用origin的洛伦兹拟合总是失败。网上有些教程都是单峰模拟,但我的应该不止单峰。有没有大神知道用什么软件或者方法可以像Gaussian一样把自己的离散的光谱做成连续的模拟光谱。不胜感激
作者
Author:
wzkchem5    时间: 2023-5-31 16:21
首先确定一下,你是想做(多个峰的)洛伦兹拟合还是(多个峰的)洛伦兹展宽?这两者是完全不一样的
作者
Author:
sobereva    时间: 2023-6-1 00:24
做离散数据展宽直接用Multiwfn(http://sobereva.com/multiwfn)就完了,看下文。不管你是用什么程序算的、不管是什么光谱,展宽成Gaussian或洛伦兹或者二者混合峰型的光谱曲线都可以用Multiwfn很容易地做到。你的情况只需要写一个Multiwfn绘制光谱的通用输入文件即可,里面记录各个跃迁能和强度信息,格式看Multiwfn手册3.13.2节
使用Multiwfn绘制红外、拉曼、UV-Vis、ECD、VCD和ROA光谱图
http://sobereva.com/224

注意那叫GaussView


拟合和展宽完全是两码事。拟合是你已经有了连续的光谱曲线,然后再基于这样的光谱拟合出一个个独立的跃迁对应的峰。

作者
Author:
胆小鬼    时间: 2023-6-1 17:17
wzkchem5 发表于 2023-5-31 16:21
首先确定一下,你是想做(多个峰的)洛伦兹拟合还是(多个峰的)洛伦兹展宽?这两者是完全不一样的

是做多峰,从离散的结果来看应该还有一些比较小的宽的带。我用matlab做了个程序,对每一个峰进行了洛伦兹(归一化)展宽之后乘以峰的高度,然后把所有的峰得到的函数累加起来。不知道这种方法是否合理。
作者
Author:
胆小鬼    时间: 2023-6-1 17:20
本帖最后由 胆小鬼 于 2023-6-1 17:34 编辑
sobereva 发表于 2023-6-1 00:24
做离散数据展宽直接用Multiwfn(http://sobereva.com/multiwfn)就完了,看下文。不管你是用什么程序算的、 ...

是的 ,是gv。感谢指正。请问sob老师。如果不用Multiwfn做洛伦兹展宽。用一些普通的作图软件是否能完成?我用origin里面的拟合结果都不是很理想,不知道是用这些软件天生就是做不通还是我的方法有问题呢。
另外,Gaussian展宽和洛伦兹展宽经过看您的文章我已经知道两者区别了,那这样看的话gv里面的IR用的是洛伦兹展宽吗?您的博文里面讲到ir一般是lorentz展宽 但我不是很确定gv里面是不是也是。

作者
Author:
wzkchem5    时间: 2023-6-1 17:43
本帖最后由 wzkchem5 于 2023-6-1 10:44 编辑
胆小鬼 发表于 2023-6-1 10:20
是的 ,是gv。感谢指正。请问sob老师。如果不用Multiwfn做洛伦兹展宽。用一些普通的作图软件是否能完成? ...

因为你要做的是展宽,但是你用origin做的是拟合,当然结果不对。用matlab自己写程序再作图可以,主要两个容易弄错的点是(1)峰展宽以后峰高应该乘以什么系数;(2)只有横坐标是波数、能量等的光谱可以假设每个峰一样宽且峰对称,当横坐标是波长时需要把光谱转成横坐标是能量的谱,展宽以后再把横坐标转回波长,而不能直接把谱展宽(当谱的波长范围远小于波长本身时可能可以除外;另外转动光谱本来一般也不以波长为横坐标,所以不存在这个问题)。此外有一个我也不太清楚的问题是,假如有的峰的激发能特别接近0,洛伦兹展宽的峰尾拖到了能量为0处还有明显分布,那么激发能小于0的部分要不要把激发能取绝对值,加到激发能为正数部分的光谱上面?这一点不知有没有懂这方面的人可以补充一下。

另外没必要不用Multiwfn,Multiwfn是免费的,而且做展宽并不麻烦,如果嫌作图不好看还可以导出来用其他软件(包括但不限于origin)作图。

作者
Author:
胆小鬼    时间: 2023-6-1 20:12
wzkchem5 发表于 2023-6-1 17:43
因为你要做的是展宽,但是你用origin做的是拟合,当然结果不对。用matlab自己写程序再作图可以,主要两个 ...

感谢您!我是用gv导出的文件 所以横坐标为波数。峰高系数我乘以光谱能量强度。另外您说的激发能低的情况,根据公式好像并不会算出负值,不知道您说的激发能小于0是指什么。我将展宽后的函数设置了步长0.1,波数从2500-3700cm-1。将半峰宽设置合适后,我计算的结果和gv给的峰形也很符合。
作者
Author:
wzkchem5    时间: 2023-6-1 20:39
胆小鬼 发表于 2023-6-1 13:12
感谢您!我是用gv导出的文件 所以横坐标为波数。峰高系数我乘以光谱能量强度。另外您说的激发能低的情况 ...

我的意思是,比如说10cm-1处有一个峰,做洛伦兹展宽以后,得到展宽的峰形I = f(v),I在f(10)处取最大值,但是对于任意v,I都不是0,尤其当v<0时I也不是0。因为波数v<0的光其实就是相位差180度的、波数为-v的光,所以我不知道实际报的谱图应该取f(v),还是f(v)+f(-v)。
这个问题对于高斯展宽、且最大吸收波数远大于半峰宽的情况可以忽略(因为v为负数时f(v)极其接近0),但是对于最大吸收波数比较接近0、峰宽比较宽、且使用洛伦兹展宽的情形,可能不能忽略。




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