memoryfolder

メモです

Spin dynamics visualisation with qutip and blender

Blenderというオープンソースの3D描画ソフトがあります。pythonで動かせます。

import bpy
bpy.data.objects["Cube"].data.vertices[0].co.x += 1.0

ということはqutipでシミュレーションした結果を簡単に3Dアニメーションにできます。
coneとcylinerを組み合わせてスピンを作って、

import bpy
import qutip

## solve schrodinger equation
## Im doing multi freq floquet / dressed atom picture and a bit complicated code comes in here
results = qutip.mesolve(  ...  )
fx = results.expect[0]
fy = results.expect[1]
fz = results.expect[2]

#find objects
labframe = bpy.data.objects["Cone.001"]

frame_num = 0
bi = 8 #downsampling
for i in np.arange(1,300):
    bpy.context.scene.frame_set(frame_num)
    
    #labframe dynamics
    x = fx[i*bi+offset]
    y = fy[i*bi+offset]
    z = fz[i*bi+offset]
    theta = np.angle(z+(x**2+y**2)*1j)
    phi = np.angle(x+y*1j)
    labframe.rotation_euler = (0,theta,phi)
    labframe.keyframe_insert(data_path = "rotation_euler", index = -1)

    frame_num += 1

発表前日にこんなの作り始めて気づいたら深夜になってて、発表練習できてなくてけっこう焦りました笑