计算化学公社

标题: ORCA2EASYSPIN计算失败 [打印本页]

作者
Author:
mfdsrax2    时间: 2025-1-16 22:46
标题: ORCA2EASYSPIN计算失败
一开始在输入Sys=orca2easyspin('Ori-Twist2OPT3.out')出了下面一大堆的提示,但是没有报错。

No Mulliken analysis found for structure 1 of 1.
eulang: Rotation matrix is not orthogonal, deviation is 9.60862e-08.
eulang: Orthogonalizing using singular-value decomposition (SVD).
eulang: Rotation matrix is not orthogonal, deviation is 8.83263e-08.
eulang: Orthogonalizing using singular-value decomposition (SVD).
eulang: Rotation matrix is not orthogonal, deviation is 1.023e-07.
eulang: Orthogonalizing using singular-value decomposition (SVD).
后面全是类似上面两行文字不断重复,数值略有不同。

最后在运行pepper(Sys,Exp);出了下面一堆错,计算也停了,要怎么解决?

Error using full
Requested array exceeds the maximum possible variable size.

Error in ham_zf

Error in ham

Error in resfields

Error in pepper

Error in compisoloop

Error in pepper

Related documentation



作者
Author:
wzkchem5    时间: 2025-1-16 22:54
删掉那些特别小的、即使忽略也不影响算出来的谱图的A值。然后再试
作者
Author:
mfdsrax2    时间: 2025-1-18 22:58
wzkchem5 发表于 2025-1-16 22:54
删掉那些特别小的、即使忽略也不影响算出来的谱图的A值。然后再试

请问一下如何删除A值
作者
Author:
wzkchem5    时间: 2025-1-19 03:07
mfdsrax2 发表于 2025-1-18 15:58
请问一下如何删除A值

matlab自带的帮助文件讲了如何从一个数组里删除特定的元素
作者
Author:
mfdsrax2    时间: 2025-1-20 20:25
wzkchem5 发表于 2025-1-19 03:07
matlab自带的帮助文件讲了如何从一个数组里删除特定的元素

你好,我输出了Sys和Sys.A,是要把A里面那些绝对值很小的数据删掉吗?AFrame,Q和QFrame需不需要同时删

作者
Author:
wzkchem5    时间: 2025-1-20 21:44
mfdsrax2 发表于 2025-1-20 13:25
你好,我输出了Sys和Sys.A,是要把A里面那些绝对值很小的数据删掉吗?AFrame,Q和QFrame需不需要同时删

对,AFrame、Q、QFrame需要同时删
不过你这个计算里面大部分A值绝对值都很大,即使删掉前4个氢,用处也不大。可以考虑把A值相似的氢核合并一下,让程序认为这几个氢核严格等价
作者
Author:
mfdsrax2    时间: 2025-1-20 22:24
wzkchem5 发表于 2025-1-20 21:44
对,AFrame、Q、QFrame需要同时删
不过你这个计算里面大部分A值绝对值都很大,即使删掉前4个氢,用处也 ...

请问一下合并是什么操作?删除掉数值接近的,还是说把接近的数值改成一样的?
作者
Author:
wzkchem5    时间: 2025-1-20 23:07
mfdsrax2 发表于 2025-1-20 15:24
请问一下合并是什么操作?删除掉数值接近的,还是说把接近的数值改成一样的?

easyspin有特殊的语法可以指定若干个等价核,好像是改Sys.n,可以查一下手册
作者
Author:
mfdsrax2    时间: 2025-2-9 16:28
wzkchem5 发表于 2025-1-16 22:54
删掉那些特别小的、即使忽略也不影响算出来的谱图的A值。然后再试

王老师再请问下,有没有办法可以增加MatLab可以调用的内存
作者
Author:
wzkchem5    时间: 2025-2-10 15:55
mfdsrax2 发表于 2025-2-9 09:28
王老师再请问下,有没有办法可以增加MatLab可以调用的内存

MATLAB应该是默认用所有的内存。所以应该想办法减少你这个计算需要的内存,而不是想办法让MATLAB能调用更多的内存。
easyspin需要的内存和A值的数量成指数关系
作者
Author:
mfdsrax2    时间: 2025-2-10 20:51
wzkchem5 发表于 2025-2-10 15:55
MATLAB应该是默认用所有的内存。所以应该想办法减少你这个计算需要的内存,而不是想办法让MATLAB能调用更 ...

我在服务器上装了Matlab,有512GB的内存,仍然提示相同的错误,应该不是内存容量的问题。我看设置里面有一个最大数组大小的选项,但是最大就是10000,是这个的限制吗?
作者
Author:
wzkchem5    时间: 2025-2-10 21:10
mfdsrax2 发表于 2025-2-10 13:51
我在服务器上装了Matlab,有512GB的内存,仍然提示相同的错误,应该不是内存容量的问题。我看设置里面有 ...

我已经说过了,随着A值数目的增加,需要的内存成指数增加。所以512GB仍然不够用是极其有可能的
作者
Author:
hu520130    时间: 2025-3-25 10:59
wzkchem5 发表于 2025-1-20 21:44
对,AFrame、Q、QFrame需要同时删
不过你这个计算里面大部分A值绝对值都很大,即使删掉前4个氢,用处也 ...

王老师,您好,我也是遇到说数组太大超过内存了,然后我输出了Sys和Sys.A后,用ans = ans([2 3 4 5], :)删掉相应不要的数据后,后续需要怎么操作呢?怎么让MATLAB记住现在的数组,并进行后续的这个pepper(Sys,Exp)指令并生成图像呢?这两天刚初学,希望王老师指导一下,不胜感激!
作者
Author:
wzkchem5    时间: 2025-3-25 12:51
hu520130 发表于 2025-3-25 10:59
王老师,您好,我也是遇到说数组太大超过内存了,然后我输出了Sys和Sys.A后,用ans = ans([2 3 4 5], :) ...

用Sys.A = Sys.A([2 3 4 5], :)就行
这种问题问deepseek一般能得到靠谱的答案




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