《隧穿效应的设计.doc》由会员分享,可在线阅读,更多相关《隧穿效应的设计.doc(20页珍藏版)》请在金锄头文库上搜索。
1、量子隧穿效应的可视化1 技术指标此为设计一个用户界面,通过输入粒子质量,势垒高度等参数,进行量子隧穿规律的演示。它包括以下要求:1.1 有用户任意输入可调参数的界面。可调参数包括输入的粒子质量,粒子能量,势垒高度,势垒宽度,且反射率和透射率可以直观的显示出来。1.2 根据量子力学中对一维方势垒的求解,设计出各个模块的参数(例如透射系数大小、反射系数大小等); 1.3 用Matlab来进行模拟。编写隧穿效应程序及使用GUI(图形用户接口) 设定用户界面。1.4 通过给定的四个参数,可以给出该条件下,量子隧穿规律的动画演示。并且在有参数改变的情况下,可以观察动画演示的改变。2 基本原理 2.1 在
2、量子力学里,量子隧穿效应为一种量子特性,是一种衰减波耦合效应,是如电子等微观粒子能够穿过它们本来无法通过的“墙壁”的现象。其量子行为遵守薛定谔波动方程。假若条件恰当,任何波动方程都会显示出出衰减波耦合效应。根据量子力学,微观粒子具有波的性质,而有不为零的几率穿过位势障壁。若要使隧穿效应发生,必须有一个 2 型介质的薄区域,像三明治一般,夹在两个 1 型介质的区域。2 型介质的波动方程必须容许实值指数函数解答(上升指数函数或下降指数函数),而 1 型介质的波动方程则必须容许行进波解答。在光学里,1 型介质可能是玻璃,而 2 型介质可能是真空。在量子力学里,从粒子运动这方面来说,1 型介质区域是粒
3、子总能量大于位能的区域,而 2 型介质是粒子总能量小于位能的区域(称为位势垒)。假若条件恰当,从 1 型介质区域入射至 2 型介质区域,行进波的波幅会穿透过 2 型介质区域,再以进行波的形式,出现于第二个 1 型介质区域。在量子力学里,穿透过的波幅可以合乎物理地解释为行进粒子。遵守薛定谔波动方程,穿透波幅的绝对值平方和入射波幅的绝对值平方的比率给出了粒子隧穿的透射系数,也就是其透射几率。对于遵守其它种波动方程的光波、微波、绳波、声波等等,穿透波幅可以物理地解释为行进能量,而穿透波幅的绝对值平方和入射波幅的绝对值平方的比率则给出了穿透能量和入射能量的比率。隧穿粒子的能量不变,只有量子幅降低。因此
4、,找到粒子的几率也会降低。这些类似隧穿现象发生的尺寸与行进波的波长有关。对于电子来说, 2 型介质区域的厚度通常只有几纳米。相比之下,对于一个隧穿出原子核的粒子来说,厚度会是超小;对于光波来说,虽然 2 型介质区域的厚度超大,类似现象仍旧会发生。参考下图:图1 隧穿效应展示图仔细观察薛定谔波动方程。假若粒子可以被视为一个局域化 (localized) 于一点的物体,则粒子在介质区域内运动的行为是由粒子的动能设定的。在 1 型介质区域内,动能是正值的;而在 2 型介质区域内,动能是负值的。这现象并不会造成任何矛盾。量子力学不允许粒子局域化于一点。粒子的波函数必是有些散开的(非局域的),而非局域的
5、物体,其动能的期望值必是正值的。思路推导:思考一个入射波,遇到处于x轴坐标0与a之间的位势Uo。入射波的一部分会反射回去,成为反射波;另一部分则会穿透过位势,成为透射波。那么,在位势垒的左边与右边,波函数是不同的。在位势垒的内部,根据 WKB 近似,波函数大约为sin(8*pi*x4)。一个粒子穿透过位势垒的几率等于透射率,当取所有物理参数都超大于普朗克常数的经典极限,那么,透射系数正确地变为零,也就是说,粒子无法穿透过位势垒。 2.2 隧穿效应的例子1) 冷发射现象:冷发射是指低温时在外静电场影响下电子从金属中飞出的现象。按照金属势阱中的电子气,在温度T为0K时,电子从低能级开始,在不违反泡
6、利原理的原则下填充,一直填充到能级Ef。Ef成为费米能级。因为温度对电子气的能态分布影响是极小的,所以我们就考虑T为0K的情况。一般情况下,真空为无限厚的势垒,要使电子从金属中溢出,必须传递给它能量,能量值不能小于脱出功:W=Vo-Ef。2) 接触电势差:两种不同性质的金属相接触会产生电势差的现象可用隧道效应来解释。按照前述的金属势阱模型,两种金属应有不同的脱出功和费米能级。若使它们互相接触,则它们为有限宽的势垒分开。因为金属中部分电子的能级高于金属的费米能级,这些电子有可能隧道跃迁到金属的自由能级上,知道金属的填充能级上限相等才停止。3) 衰变:衰变就是因为粒子摆脱了本来不可能摆脱的强力的束
7、缚而“逃出”原子核。扫描隧道显微镜是量子隧穿效应的主要应用之一。扫描隧道显微镜可以克服普通光学显微镜像差的限制,通过穿遂电子扫描物体表面,从而辨别大大小于光波长的物体。4) 扫描隧道显微镜:普通的显微镜无法观察到很多微小尺寸的物体;可是,扫描隧道显微镜能够清晰地观察到这些物体的细节。扫描隧道显微镜克服了普通显微镜的极限问题(像差限制,波长限制等等)。它可以用隧穿电子来扫描一个物体的表面。3 建立模型描述微观粒子隧穿势垒是一种随机现象,可用蒙特卡罗方法对其进行模拟,运用蒙特卡罗方法处理此问题,首先根据要处理问题的规律,构建一个概率模型。然后依据概率模型进行随机抽样,得出一组按已知分布的随机序列。
8、最后依据这一随机序列,借助计算机程序设计语言或图形软件,实现微观粒子势垒隧穿的动态随机过程的模拟。3.1 概率模型的构建设质量为m,能量为E的粒子,沿x轴正方向射向方势垒。方势垒的势函数为U(x)=Uo(0xa);0(xa);粒子的波函数H满足定态薛定谔方程求解出透射率D和反射率R。透射率D是透射波几率流密度与入射流几率密度之比,是粒子隧穿势垒的概率。反射率R是反射波几率流密度与入射流几率密度之比,是粒子被势垒反射的概率。粒子射向势垒,有两种可能,隧穿或反射,且两种可能的概率之和为1。3.2 数据的生成根据上述粒子入射方势垒的概率模型进行随机抽样,便得到随机变量的分布函数的随机数序列。在蒙特卡
9、罗方法中,有多种方法实现按已知分布的随机抽样。对于此隧穿效应问题的特点,采用离散型随机变量的直接抽样法。 据此,产生随机序列的步骤如下:1) 计算机产生一个0至1均匀分布的随机数r;2)若满足1-Dr=1,则Xf=1(表示粒子隧穿势垒),否则Xf=0(表示粒子被势垒反射);3)重复上述步骤便可产生符合要求的分布的只有两个取值(0和1)的随机序列。这个随机数序列便是实现势垒隧穿动态随机过程的依据。3.3 势垒隧穿动态随机过程的实现利用上述生成的只有0和1两种取值的随机数序列,借助计算机程序设计语言或图形软件,就可实现势垒隧穿动态随机过程的模拟。这里采用编写Matlab程序的方法来实现。在编写Ma
10、tlab程序时,用Matlab的rand函数产生0至1之间均匀分布的随机数,利用EraseMode属性的Xor值,可实现对图形对象本身的擦除,从而实现动画模式,程序设计流程图如下图2 方势垒隧穿效应动态随机过程程序流程图图3 GUI界面的untitledhan.fig图图4 入射粒子能量大于势垒高度时的GUI界面显示图图5 入射粒子能量小于势垒高度时的GUI界面显示图4 模型组成模块功能描述势垒隧穿的动态随机过程Matlab程序的功能描述如下:function varargout = untitledhan(varargin)% UNTITLEDHAN M-file for untitledh
11、an.fig% UNTITLEDHAN, by itself, creates a new UNTITLEDHAN or raises the existing% singleton*.% H = UNTITLEDHAN returns the handle to a new UNTITLEDHAN or the handle to% the existing singleton*.% UNTITLEDHAN(CALLBACK,hObject,eventData,handles,.) calls the local%function named CALLBACK in UNTITLEDHAN.
12、M with the given input arguments.% UNTITLEDHAN(Property,Value,.) creates a new UNTITLEDHAN or raises the% existing singleton*.Starting from the left, property value pairs are% applied to the GUI before untitledhan_OpeningFunction gets called. An% unrecognized property name or invalid value makes pro
13、perty application% stop. All inputs are passed to untitledhan_OpeningFcn via varargin.% *See GUI Options on GUIDEs Tools menu. Choose GUI allows only one% instance to run (singleton).% See also: GUIDE, GUIDATA, GUIHANDLES% Copyright 2002-2003 The MathWorks, Inc.% Edit the above text to modify the re
14、sponse to help untitledhan% Last Modified by GUIDE v2.5 21-Jan-2010 22:42:31% Begin initialization code - DO NOT EDITgui_Singleton = 1;gui_State = struct(gui_Name, mfilename, .gui_Singleton, gui_Singleton, .gui_OpeningFcn, untitledhan_OpeningFcn, .gui_OutputFcn, untitledhan_OutputFcn, .gui_LayoutFcn
15、, , .gui_Callback, );if nargin & ischar(varargin1)gui_State.gui_Callback = str2func(varargin1);endif nargoutvarargout1:nargout = gui_mainfcn(gui_State, varargin:);elsegui_mainfcn(gui_State, varargin:);end% End initialization code - DO NOT EDIT% - Executes just before untitledhan is made visible.function untitledhan_OpeningFcn(hObject, eventdata, handles, varargin)% This function has no output args, see OutputFcn.% hObject handle to figure% eventdata reserved - to be defined in a future version of MATLAB% handles