python sympy模块计算 Clebsch-Gorden 系数

(未经允许,不得转载)

角动量代数还是挺常用的,今天本想自己写一个 python 的 CG 系数函数,又觉得可能已经有现成的包了。 google 搜了一下,第一条就是 sympy 官网的相关文档,快准爽。学习了一下官网文档,简单记在这。

1. 安装 sympy

我用的 pycharm,所以按照常规的模块安装方法,搜了一下 sympy,很快就装上了。

2. 使用 sympy 计算 Clebsch-Gorden 系数

代码如下

from sympy.physics.quantum.cg import CG
from sympy import S

cg = CG( S(3)/2, S(3)/2, S(1)/2, -S(1)/2, 1, 1 ).doit()
print("cg = ", cg )

2.1 S: SingletonRegistry

S(3): 表示整数 3,而且是 sympy 存在内存里的唯一的整数 3
S(3)/2: 表示有理数 3/2,而不是浮点数 1.5,前者是严格的,后者是有数值误差的。

2.2 doit: 计算值

python 里有些表达式不会马上计算其值,例如 Integral,和这里的 CG 函数。貌似解释器会先存着这个表达式,而不计算表达式的值,如果你想让它立即马上计算值,就让它“do it”,即加上 doit 函数。

2.3 运行结果

cg =  sqrt(3)/2

我用我自己写的 c++ 版代码验证过了,是正确的。

3. 总结

python sympy 模块 可以很方便地计算 Clebsch-Gorden 系数。
另外我还翻了翻,sympy.physics 里面还有氢原子波函数,所以要画氢原子电子云的话,可以直接调用之。

posted on 2022-09-29 11:26  luyi07  阅读(307)  评论(0编辑  收藏  举报

导航