有机电子器件模拟器

oedes的Python项目详细描述


Travis-CI-badgeReadthedocs-badgeBinder-badge

这是正在进行的工作。有关文档,请参见doc/,有关使用示例,请参见examples/

安装

pip install oedes

建议在安装之后运行测试套件

python -c "import oedes; oedes.test()"

示例模拟

建立并求解了pn结突变的模型:

importoedesfromoedesimportmodels# Define doping profiledefdoping_profile(mesh,ctx,eq):Nd=ctx.param(eq,'Nd')Na=ctx.param(eq,'Na')returnoedes.ad.where(mesh.x<mesh.length*0.5,Nd,-Na)# Define device modelpoisson=models.PoissonEquation()temperature=models.ConstTemperature()electron=models.BandTransport(poisson=poisson,name='electron',z=-1,thermal=temperature)hole=models.BandTransport(poisson=poisson,name='hole',z=1,thermal=temperature)doping=models.FixedCharge(poisson,density=doping_profile)semiconductor=models.Electroneutrality([electron,hole,doping],name='semiconductor')recombination=models.DirectRecombination(semiconductor)anode=models.OhmicContact(poisson,semiconductor,'electrode0')cathode=models.OhmicContact(poisson,semiconductor,'electrode1')equations=[poisson,temperature,electron,hole,doping,semiconductor,anode,cathode,recombination]# Define device parametersparams={'T':300,'epsilon_r':12,'Na':1e24,'Nd':1e24,'hole.mu':1,'electron.mu':1,'hole.energy':-1.1,'electron.energy':0,'electrode0.voltage':0,'electrode1.voltage':0,'hole.N0':1e27,'electron.N0':1e27,'beta':1e-9}# Discretize and solve discrete modelmesh=oedes.fvm.mesh1d(100e-9)model=oedes.fvm.discretize(equations,mesh)c=oedes.context(model)c.solve(params)# Plot bands and quasi Fermi potentialsimportmatplotlib.pylabaspltp=c.mpl(plt.gcf(),plt.gca())p.plot(['electron.Eband'],label='$E_c$')p.plot(['hole.Eband'],label='$E_v$')p.plot(['electron.Ef'],linestyle='--',label='$E_{Fn}$')p.plot(['hole.Ef'],linestyle='-.',label='$E_{Fp}$')p.apply_settings({'xunit':'n','xlabel':'nm'})p.ax.legend(loc=0,frameon=False)plt.show()
doc/fig/tutorial-pn.png

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

推荐PyPI第三方库


热门话题
java如何克服带有空值的不可空bean级验证   “此行有多个标记”的authenticateUser上的java MySQLConnection错误   java处理Jackson异常   java Netbeans编辑器如何知道文件在撤消后不会被修改?   目标C相当于Java的ArrayList   java当需要int时,可以将short传递给方法调用吗?   drawString()方法上的java MouseListener   java服务器socket是执行此操作的最佳选项   java需要单个匹配bean,但找到了2:org。springframework。网状物servlet。mvc。方法注释。RequestMappingHandlerMapping   如何在Java中执行Windows命令?   安卓应用程序的java文件主机   java将所有spring引导属性都设置在内。将yml文件转换为系统属性   Java邮件中的html内联链接在邮件客户端中不起作用   Java二进制文件的bazel版本控制   java如何在自定义ListView中使用Intent   java(Spring MVC+Hibernate 4+Test 4)自动连线DAO返回NULL   java一次add()调用可以在Solr服务器中索引多少文档?   java如何获取Avro GenericRecord大小