首页 > 编程语言 >原子核四极形变的 python 可视化

原子核四极形变的 python 可视化

时间:2024-04-08 19:45:04浏览次数:16  
标签:cos python max mid 四极 可视化 np ax sin

把原子核当作液滴,讨论较小的形变,经过一系列处理,可以用公式处理:

\[R = R_0 \left\{ 1 + \beta \sqrt{\frac{5}{16\pi}} (\cos\gamma (3\cos^2\theta -1) + \sqrt{3}\sin\gamma\sin^2\theta\cos2\phi) \right\}. \]

import numpy as np
import matplotlib.pyplot as plt
from scipy import special
import mpl_toolkits.mplot3d.axes3d as axes3d

n = 15

thetas, phis = np.linspace(0, np.pi, n), np.linspace(0, 2*np.pi, n)
THETA, PHI = np.meshgrid(thetas, phis)

beta = 0.5
gamma = np.pi/6

def R(theta, phi):
    temp1 = 3 * np.cos(theta) * np.cos(theta) - 1
    temp2 = np.sin(theta) * np.sin(theta) * np.cos(2*phi)
    temp = np.cos(gamma) * temp1 + np.sqrt(3) * np.sin(gamma) * temp2
    return 1 + beta * np.sqrt(5/16/np.pi) * temp

R = R(THETA, PHI)
X = R * np.sin(THETA) * np.cos(PHI)
Y = R * np.sin(THETA) * np.sin(PHI)
Z = R * np.cos(THETA)
fig = plt.figure()
ax = fig.add_subplot(1,1,1, projection='3d')
plot = ax.plot_surface(
    X, Y, Z, rstride=1, cstride=1, cmap=plt.get_cmap('jet'),
    linewidth=0, antialiased=False, alpha=0.5 )
#plt.title(r"$\sum_m|Y^m_4|^2$")
# below are codes copied from stackoverflow, to make the scaling correct
max_range = np.array([X.max()-X.min(), Y.max()-Y.min(), Z.max()-Z.min()]).max() / 2.0
mid_x = (X.max()+X.min()) * 0.5
mid_y = (Y.max()+Y.min()) * 0.5
mid_z = (Z.max()+Z.min()) * 0.5
ax.set_xlim(mid_x - max_range, mid_x + max_range)
ax.set_ylim(mid_y - max_range, mid_y + max_range)
ax.set_zlim(mid_z - max_range, mid_z + max_range)
ax.set_xlabel(r'$x$')
ax.set_ylabel(r'$y$')
ax.set_zlabel(r'$z$')
ax.set_aspect('equal')
#help(ax)
ax.view_init(elev=30,azim=0) #调节视角,elev指向上(z方向)旋转的角度,azim指xy平面内旋转的角度
#plt.legend(r"$|Y_{lm}|^2$")
plt.show()

长椭球是一个维度特别长,另外两个维度有旋转对称性:
image
扁椭球是一个维度特别短,另外两个维度有旋转对称性:
image
三轴形变是三个轴都不同,分为长、中、短:
image

标签:cos,python,max,mid,四极,可视化,np,ax,sin
From: https://www.cnblogs.com/luyi07/p/18122395

相关文章

  • 任务处理【华为OD机试】(JAVA&Python&C++&JS题解)
    一.题目-任务处理在某个项目中有多个任务(用tasks数组表示)需要您进行处理,其中tasks[i]=[si,ei],你可以在si<=day<=ei中的任意一天处理该任务。请返回你可以处理的最大任务数。注:一天可以完成一个任务的处理。输入描述:第一行为任务数量n,1<=n<=100000。后......
  • 跳马【华为OD机试】(JAVA&Python&C++&JS题解)
    一.题目马是象棋(包括中国象棋和国际象棋)中的棋子,走法是每步直一格再斜一格,即先横着或直着走一格,然后再斜着走一个对角线,可进可退,可越过河界,俗称“马走‘日’字。给顶m行n列的棋盘(网格图),棋盘上只有有棋子象棋中的棋子“马”,并且每个棋子有等级之分,等级为k的马可以跳1~k......
  • python高级脚本
    python高级脚本自动化测试脚本importunittestclassTestCalculator(unittest.TestCase):deftest_addition(self):self.assertEqual(2+2,4)deftest_subtraction(self):self.assertEqual(5-3,1)if__name__=="__main__":un......
  • Python元组tuple
    一、元组定义元组tuple像是一个列表list,它内部的值不可被修改。元组是一个有序的、不可变数据结构/类型列表->元组  加锁过程元组->列表  解锁过程列表和元组对比listtuple声明[]()索引YESYES切片YESYES追加元素YESNO修改元素YESNO删......
  • python获取指定视频分辨率并移动到相应的文件夹中-2
    importosimportshutilfrommoviepy.editorimportVideoFileClip#获取所有文件defgetAllFiles(fire_dir,houzui=".mp4"):filepath_list=[]forroot,folder_names,file_namesinos.walk(fire_dir):forfile_nameinfile_names:......
  • python获取指定视频分辨率并移动到相应的文件夹中
    importosimportshutilfrommoviepy.editorimportVideoFileClip#获取所有文件defgetAllFiles(fire_dir):filepath_list=[]forroot,folder_names,file_namesinos.walk(fire_dir):forfile_nameinfile_names:file_path=root+os......
  • python下载包过慢 pip 设置镜像
    通过修改配置文件Windows上的配置方式:打开pip.ini文件,通常位于C:\Users\YourUsername\pip\pip.ini,如果文件不存在可以创建它。在pip.ini文件中添加以下内容:[global]index-url=https://pypi.tuna.tsinghua.edu.cn/simpleLinux/macOS上的配置方式:打开或创建~/.pi......
  • R语言层次聚类、多维缩放MDS分类RNA测序(RNA-seq)乳腺发育基因数据可视化|附数据代码
    全文链接:https://tecdat.cn/?p=35691原文出处:拓端数据部落公众号分析师:QingLi在生物学和医学研究中,乳腺发育是一个复杂而精细的过程,涉及众多基因的表达调控。近年来,随着高通量测序技术的发展,RNA测序(RNA-seq)技术已经成为研究基因表达模式的有力工具。通过RNA-seq技术,我们可以获......
  • linux 环境下 elasticsearch 及 python 相关库的使用
    -elasticsearch是什么?elasticsearch简称es,是一个开源的分布式搜索引擎,可以用来实现搜索、日志统计、分析、系统监控等功能。-安装1、下载官网下载地址2、解压tarzxvfelasticsearch-8.13.0-linux-x86_64.tar.gz-C/usr/local/3、解决JDK依赖问题新版本的es压缩......
  • 解锁水务新视界:水泵房3D可视化技术探索
    在现代化城市建设中,水务管理已经成为城市运营不可或缺的一部分。而水泵房作为水务系统的核心组成部分,其运行状态和效率直接影响到整个城市的供水安全。然而,传统的水泵房管理方式往往存在诸多不足,如信息不透明、操作复杂、维护困难等。 3D可视化技术通过高精度的三维建模和渲染......