在某文件夹下创建ITensor文件夹。在该文件夹内执行
git clone https://github.com/ITensor/ITensor itensor
得到以itensor命名的编译源文件。这个文件夹名字可以自己改。
前置:安装lapack和blas依赖库.
sudo apt-get update
sudo apt-get install libblas-dev liblapack-dev
检验是否正确安装:
dpkg -L libblas-dev
dpkg -L liblapack-dev
若能弹出对应路径说明安装成功。在这里留心安装的具体路径,
之后设置BLAS_LAPACK_LIBFLAGS
可能会用到
在终端执行
cd itensor
进入下载的库文件所在的文件夹.
cp options.mk.sample options.mk
将示例mk文件另存为mk文件.并且执行
sudo nano options.mk
以nano编辑器打开配置文件。配置文件里默认的平台是MacOS,我们用的是WSL2,所以将
PLATFORM=macos
BLAS_LAPACK_LIBFLAGS=-framework Accelerate
这两行注释掉,而将下面的
#PLATFORM=lapack
#BLAS_LAPACK_LIBFLAGS=-lpthread -L/usr/lib -lblas -llapack
取消注释。注意看自己的BLAS_LAPACK_LIBFLAGS
是否需要修改.比如我的就应该是-L/usr/lib/x86_64-linux-gnu
.ctrl+O,ENTER保存。ctrl+X退出。
依然是在itensor目录下,在bash终端执行
make
等待终端执行完成。
为了能够在ITensor源文件所在文件夹以外的路径使用Itensor, 应该遵循以下步骤。
-
将itensor/tutorial/project_template下的所有文件(Makefile,myappname.cc,myclass.h,当然说明书README.md无关紧要)复制粘贴到含有main函数代码的cpp文件所在的文件夹中;
-
修改LIBRARY_DIR.这个路径和options.mk所在的文件夹的路径是相同的.(如果有/mnt/e/wsl/ubuntu2204/cpp/itensorCalculation/ITensor/itensor/options.mk,那么就将
LIBRARY_DIR=$(HOME)/itensor
改写为
LIBRARY_DIR=/mnt/e/wsl/ubuntu2204/cpp/itensorCalculation/ITensor/itensor
即可;
- 修改APPNAME.这个是你的程序的名字.我给自己的程序源文件主程序起名为ctnmodel.cc, 所以
APP=myappname
改为
APP=ctnmodel
-
增加依赖库.模板里的myclass.h是用来测试的,在实际过程中可以替换为自己的头文件;
-
编译的源文件名字,只要完成了APP的修改就无需改动.
然后在bash终端执行
make
编译出执行文件.
注意
示例的Makefile并没有添加可执行权限,如果你想在bash终端中进行执行,那么你可以
chmod +x ctnmodel
(ctnmodel换成你自己程序的名字)
或者直接在你的Makefile里面找到build和debug的行, 然后分别添加
chmod +x $(APP)
和
chmod +x $(APP)-g
最后形成这样的表达:
build: $(APP) #这一行是为了添加可执行权限,如果你不需要,可以将其注释掉 chmod +x $(APP) debug: $(APP)-g #同上 chmod +x $(APP)-g
你可以通过在终端执行
./ctnmodel
(ctnmodel换成你的程序的名字)来完成程序的执行.这些模板都是由Makefile来进行管理的,所以对于vscode的编译执行功能没有得到充分发挥.
待续:vscode的配置.