体积为L^3的容器中,自由粒子状态数(后期补理论)

# 代码用于计算在体积为L^3的无限深势阱中,一个满足周期性边界条件的自由粒子的状态个数。


import numpy as np  # 用来处理数据

# 计算量子数组
num_list = []

# 定义能级
E = 29  # 初始能量

n_X = 0
n_Y = 0
n_Z = 0

# 根号取整
sqrt_E = int(np.sqrt(E))

for i in range(0, sqrt_E + 1):
    for j in range(0, sqrt_E + 1):
        for k in range(0, sqrt_E + 1):
            if i ** 2 + j ** 2 + k ** 2 == E:
                if (i, j, k) not in num_list:
                    num_list.append((i, j, k))
                if (-i, j, k) not in num_list:
                    num_list.append((-i, j, k))
                if (i, -j, k) not in num_list:
                    num_list.append((i, -j, k))
                if (-i, -j, k) not in num_list:
                    num_list.append((-i, -j, k))
                if (i, j, -k) not in num_list:
                    num_list.append((i, j, -k))
                if (-i, j, -k) not in num_list:
                    num_list.append((-i, j, -k))
                if (i, -j, -k) not in num_list:
                    num_list.append((i, -j, -k))
                if (-i, -j, -k) not in num_list:
                    num_list.append((-i, -j, -k))
                else:
                    continue


def output(num_list):
    str_temp = ""
    if len(num_list) == 1:
        str_temp = (0, 0, 0)
    else:
        for i in range(0, int(len(num_list) / 2)):
            j = 2 * i
            str_temp += str(num_list[j]) + " " + str(num_list[j]) + "\n"
    return str_temp


# 输出量子数组的个数,以及各个量子数
print(f"能级:", E, "\n", len(num_list), "states", ":", "\n", output(num_list))
temp_list1 = []
temp_list2 = []
temp_list3 = []

for i in range(0, len(num_list)):
    temp_list1 = [num_list[i][0]]
    temp_list2 = [num_list[i][1]]
    temp_list3 = [num_list[i][2]]

# x = np.array(temp_list1)
# y = np.array(temp_list2)
# z = np.array(temp_list3)
#
# ax = plt.subplot(projection='3d')  # 创建一个三维的绘图工程
# ax.set_title('3d_image_show')  # 设置本图名称
# ax.scatter(x, y, z, c='r')  # 绘制数据点 c: 'r'红色,'y'黄色,等颜色
#
# ax.set_xlabel('X')  # 设置x坐标轴
# ax.set_ylabel('Y')  # 设置y坐标轴
# ax.set_zlabel('Z')  # 设置z坐标轴
#
# plt.show()

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值