美文网首页
qwwad 系列其一

qwwad 系列其一

作者: azpo2009_198e | 来源:发表于2017-11-29 22:39 被阅读0次

    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
    

    接下来开始编译过程:

    1. configure
    cd ~/qwwad-1.5.2-build
    ../qwwad-1.5.2/configure
    
    1. 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,成功。

    1. 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,问题解决,示例脚本可以正常运行。


    全文完

    相关文章

      网友评论

          本文标题:qwwad 系列其一

          本文链接:https://www.haomeiwen.com/subject/cvopbxtx.html