发光材料和光谱转换光伏器件的光线跟踪。

pvtrace的Python项目详细描述


Optical ray tracing for luminescent materials and spectral converter photovoltaic devices

简介

pvtrace是一个用python编写的统计光子路径跟踪器。它跟踪光子通过三维场景,并记录它们与物体的相互作用,以建立有关能量流的统计信息。这种方法特别适用于光电和非成像光学,其目标是设计能有效地将光传输到目标位置的系统。

文档

交互式jupyter笔记本示例和教程可以在docs directory中找到。

静态版本包含在项目文档中,https://pvtrace.readthedocs.io

能力

pvtrace最初是为了描述发光太阳能集中器(lsc)的性能而编写的,它采用蒙特卡罗方法进行光线跟踪。每条光线都是独立的,可以通过反射和折射与场景中的对象交互。物体具有不同的光学性质:折射率、吸收系数、发射光谱和量子产率。

pvtrace的一个关键特性是能够模拟光子在发光材料中的再吸收。这需要数以千计的射线来建立入射光子和出射光子的强度分布和光谱,因为这些过程不能以连续的方式近似。

pvtrace对于对光线光学模拟感兴趣的研究人员或设计人员也很有用,但与其他软件包相比,pvtrace在运行这些模拟时会慢一些,因为它单独跟踪每条光线。

跟踪玻璃球体的最小工作示例

frompvtrace.scene.nodeimportNodefrompvtrace.scene.sceneimportScenefrompvtrace.scene.rendererimportMeshcatRendererfrompvtrace.geometry.sphereimportSpherefrompvtrace.material.dielectricimportDielectricfrompvtrace.light.lightimportLightfrompvtrace.algorithmimportphoton_tracerimportfunctoolsimportnumpyasnp# Add nodes to the scene graphworld=Node(name="world (air)",geometry=Sphere(radius=10.0,material=Dielectric.air()))sphere=Node(name="sphere (glass)",geometry=Sphere(radius=1.0,material=Dielectric.glass()),parent=world)sphere.translate((0,0,2))# Add source of photonslight=Node(name="Light (555nm)",light=Light(divergence_delegate=functools.partial(Light.cone_divergence,np.radians(20))))# Trace the scenescene=Scene(world)forrayinlight.emit(100):# Do something with this optical path informationpath=photon_tracer.follow(ray,scene)

安装

使用pip

pip install pvtrace

依赖性

  • python=3.7.2
  • trimesh(用于网格形状)
  • meshcat(用于可视化)
  • 努比
  • 任意树

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
带有字符串的java JNA调用与带有字节[]的java JNA调用的行为不同   java基于键列表获取子映射   重启后永久增加java堆大小?   JavaHTTPS服务器:相互SSL身份验证   java为什么接受接口的方法会拒绝该接口的实现?   片段中的java视图无法应用于()   ms access Java SQL更新命令不工作   java将web服务自动打包和部署到Oracle Application Server 10g   java有没有办法在安卓 studio中为安卓时钟设置多个警报?   位于FTP服务器上的文件上的Java校验和md5   在Java中创建类时遇到问题。有些方法不太确定   java错误:在类chrome\u驱动程序中找不到主方法   通用海图(Javascript\Java)