In [34]:
import plotly.graph_objects as go
import numpy as np
from sympy.physics.hydrogen import R_nl
from sympy import Ynm
from sympy import var
var("r theta phi")
n = 3
l = 2
m = 0
Z = 2
xmesh=[]
ymesh=[]
zmesh=[]
psi=[]
points=20
for z in np.linspace(-10.,10.,points):
for y in np.linspace(-10.,10.,points):
for x in np.linspace(-10.,10.,points):
xmesh.append(x)
ymesh.append(y)
zmesh.append(z)
r = np.sqrt(x**2+y**2+z**2)
theta=np.arccos(z/r)
phi=np.arctan(y/x)
value=R_nl(n,l,r,Z)* Ynm(l,m,theta,phi).evalf()
psi.append(float(value))
# print('{0:6.3f} {1:6.3f} {2:6.3f} {3:6.3f} {4:6.3f} {5:6.3f} {6:6.3f}'.format(x,y,z,r,theta,phi,value))
iso = 0.3*max(psi)
fig= go.Figure(data=go.Isosurface(
x=xmesh,
y=ymesh,
z=zmesh,
value=psi,
isomin=-iso,
isomax=iso,
surface_count=2,
opacity=1.0,
caps=dict(x_show=False, y_show=False,z_show=False)
))
fig.show()
In [0]:
print(type(psi[0]))
In [0]: