2017年11月29日
一挖息、qwwad簡介
Quantum Wells, Wires and Dots (QWWAD)是英國 P. Harrison 和 A. Valavanis 等人開發(fā)的基于GPL3許可的開源工具吓肋,用于對半導體的微納結(jié)構(gòu)進行數(shù)值仿真。工具本身是 P. Harrison 和 A. Valavanis 撰寫的 "Quantum Wells, Wires and Dots" 書籍的配套代碼叉讥,書中每一個數(shù)值仿真的結(jié)果都可以在代碼中找到對應的示例,以方便讀者將物理模型與仿真代碼聯(lián)系起來饥追。
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
當然是最方便的安裝方法捏顺,但是這樣就不方便對源代碼進行查看與編輯了六孵。為了更加深入地理解代碼以及根據(jù)自身需要修改代碼,下面根據(jù)源代碼自行編譯安裝幅骄。
正好最近的win10更新后在應用商店提供了Ubuntu的Linux子系統(tǒng)劫窒,正好方便我們進行試驗了。按照微軟的說明安裝好了Ubuntu拆座,檢查了一下版本為16.04 LTS主巍。
進入Ubuntu系統(tǒng)冠息,發(fā)現(xiàn)基本的編譯器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發(fā)行版的版本號為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過程中出現(xiàn)下如下錯誤:
../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);
檢查發(fā)現(xiàn)是頭文件qwwad/linear-algebra.h
沒有預定義zheev_()
函數(shù)。根據(jù)qwwad/linear-algebra.h
的注釋中說明的編譯條件搞旭,如果存在正式的LAPACK C綁定散怖,就不會聲明zheev_()
函數(shù),看來對于現(xiàn)在的情況需要加入對zheev_()
的外部聲明了选脊。
修改config.h
杭抠,將其中的編譯條件HAVE_LAPACKE
由1改為0,這樣就有zheev_()
函數(shù)的外部說明了恳啥。再次運行make
偏灿,成功。
- make install
make install
接下來就輕松了钝的,直接安裝就成翁垂。按照預設的命令,qwwad將被安裝在/usr/local
下硝桩,而qwwad書中的例子放置在/usr/local/share/qwwad/example
下沿猜,為了方便起見,使用cp -r
把例子拷貝到用戶的家目錄碗脊,以后就可以順利地運行實例了啼肩。
最后還出現(xiàn)了一點小狀況,運行實例腳本時顯示qwwad_diffuse: error while loading shared libraries: libqwwad.so.1: cannot open shared object file: No such file or directory
衙伶,結(jié)果發(fā)現(xiàn)是make install
后系統(tǒng)沒有更新鏈接庫祈坠,運行sudo ldconfig
,問題解決矢劲,示例腳本可以正常運行赦拘。
全文完