2017年11月29日
一、qwwad简介
Quantum Wells, Wires and Dots (QWWAD)是英国 P. Harrison 和 A. Valavanis 等人开发的基于GPL3许可的开源工具,用于对半导体的微纳结构进行数值仿真。工具本身是 P. Harrison 和 A. Valavanis 撰写的 "Quantum Wells, Wires and Dots" 书籍的配套代码,书中每一个数值仿真的结果都可以在代码中找到对应的示例,以方便读者将物理模型与仿真代码联系起来。
qwwad使用C++编写,代码开源在launchpad和github等平台,项目主页:https://sourceforge.net/p/qwwad/wiki/Home/
二、qwwad安装
2.1 Ubuntu下软件包安装
qwwad提供了Ubuntu平台的预编译二进制文件,可通过apt-get
方便地安装。
sudo apt-add-repository ppa:qwwad-dev/release
sudo apt-get update
sudo apt-get install qwwad
安装完成~
2.2 自行编译安装
apt-get
当然是最方便的安装方法,但是这样就不方便对源代码进行查看与编辑了。为了更加深入地理解代码以及根据自身需要修改代码,下面根据源代码自行编译安装。
正好最近的win10更新后在应用商店提供了Ubuntu的Linux子系统,正好方便我们进行试验了。按照微软的说明安装好了Ubuntu,检查了一下版本为16.04 LTS。
进入Ubuntu系统,发现基本的编译器gcc、g++什么的都没有🐶,只能先自行安装了
sudo apt-get install gcc g++
然后是qwwad编译所需的依赖库
sudo apt-get install gfortran help2man libarmadillo-dev libboost-program-options-dev libgsl0-dev liblapacke-dev liblapack-dev libxml++2.6-dev
下载源代码,截至目前最新的qwwad发行版的版本号为1.5.2:
wget https://launchpad.net/qwwad/1.5.x/1.5.2/+download/qwwad-1.5.2.tar.gz
接下来开始编译过程:
- configure
cd ~/qwwad-1.5.2-build
../qwwad-1.5.2/configure
- make
make
make过程中出现下如下错误:
../qwwad-1.5.2/src/qwwad_pp_superlattice.cpp:268:63: error: ‘zheev_’ was not declared in this scope
zheev_(&JOBZ,&UPLO,&OH,&Ank[0],&OH,Exi,WORK,&LWORK,RWORK,&INFO);
检查发现是头文件qwwad/linear-algebra.h
没有预定义zheev_()
函数。根据qwwad/linear-algebra.h
的注释中说明的编译条件,如果存在正式的LAPACK C绑定,就不会声明zheev_()
函数,看来对于现在的情况需要加入对zheev_()
的外部声明了。
修改config.h
,将其中的编译条件HAVE_LAPACKE
由1改为0,这样就有zheev_()
函数的外部说明了。再次运行make
,成功。
- make install
make install
接下来就轻松了,直接安装就成。按照预设的命令,qwwad将被安装在/usr/local
下,而qwwad书中的例子放置在/usr/local/share/qwwad/example
下,为了方便起见,使用cp -r
把例子拷贝到用户的家目录,以后就可以顺利地运行实例了。
最后还出现了一点小状况,运行实例脚本时显示qwwad_diffuse: error while loading shared libraries: libqwwad.so.1: cannot open shared object file: No such file or directory
,结果发现是make install
后系统没有更新链接库,运行sudo ldconfig
,问题解决,示例脚本可以正常运行。
全文完
网友评论