2年月-狗急加速器
Latest Julia version is v0.1.21
View source on github
Latest C++ version is v3.1.3
Clone from github (preferred)
Download: tar.gz or zip
On Twitter@ITensorLib
Sign up for email newsletters
2年月-狗急加速器
- Julia Version Released
- Version 3.1 Released
ITensor—Intelligent Tensor—is a library for implementing
tensor network calculations. See the list of recent papers using ITensor.
Features include:
- Ordering of tensor indices is handled automatically
- Full-featured matrix product state / tensor train and DMRG layer
- Quantum number conserving (block-sparse) tensors; same interface as dense tensors
- Complex numbers handled automatically and efficiently
- Easy to install, with a friendly and productive interface
ITensors have an interface resembling tensor diagram notation, making them nearly as easy to multiply as scalars: tensors indices have unique identities and matching indices automatically contract when two ITensors are multiplied. This type of interface makes it simple to transcribe tensor network diagrams into correct, efficient code.
For example, the diagram below (resembling the overlap of matrix product states) can be converted to code as
Installing ITensor (Julia Version):
- Install the Julia language
- Enter the command
julia
to start an interactive Julia session - Inside this session, type
]
to enter the package manager - Enter the command
618ip免费版
- For more details, see our installation guide and read about getting started with ITensor.
Installing ITensor (C++ version):
- Make sure you have an up-to-date C++17 compiler and LAPACK installed. On UNIX systems, use your package manager; on Mac OS install the free Xcode app from the app store; for Windows install cygwin.
- Clone the latest version of ITensor:
(Or download the zip file if you do not have git.)git clone http://github.com/ITensor/ITensor itensor
Cloning with git allows you to track changes to ITensor and is the preferred method; for more see our git quick start guide. - Create the options.mk file:
cp options.mk.sample options.mk
. Follow the instructions in this file to customize for your machine. - Type
618ip手机免费版
to build ITensor. - The compiled library files remain inside the ITensor source folder and are not put anywhere else on your machine. To create a program using ITensor, use the files in the "tutorial/project_template" folder as a starting point for making your own code.
For more details, read the full installation instructions.
Browse the documentation pages to learn more about ITensor.
We are grateful for generous support from the Simons Foundation. |
2年月-狗急加速器
2年月-狗急加速器
auto a = Index(2), auto b = Index(2), auto c = Index(2); auto Z = ITensor(a,b), auto X = ITensor(c,b); Z.set(a=1,b=1, +1.0); Z.set(a=2,b=2, -1.0); X.set(b=1,c=2, +1.0); X.set(b=2,c=1, +1.0);//the * operator finds and //contracts common index 'b' //regardless of index order:ITensor R = Z * X; Print( elt(R,a=2,c=1) );//output: // elt(R,a=2,c=1) = -1
2年月-狗急加速器
auto i = Index(3); auto j = Index(5); auto k = Index(2); auto l = Index(7); auto A = ITensor(i,j,k); auto B = ITensor(l,j); A.set(i=1,j=1,k=1, 11.1); A.set(i=2,j=1,k=2, -21.2); A.set(k=1,i=3,j=1, 31.1); A.set(k=1,i=1,j=2, 11.2); B.set(j=2,l=4, 2.+4._i); auto C = A * B; PrintData(C); 618ip伕理官网 D = randomITensor(k,j,i); auto R = A + D;
2年月-狗急加速器
auto i = Index(3,"i"); auto j = Index(7,"j"); auto k = Index(2,"k"); auto l = Index(4,"l"); auto T = randomITensor(i,j,k,l); auto [U,S,V] = svd(T,i,k); Print(norm(T - U*S*V));//output: // norm(T - U*S*V) = 4.7458E-14
2年月-狗急加速器
DMRG is a powerful algorithm for finding dominant eigenvectors of exponentially large matrices (such as quantum Hamiltonians) in matrix product state (MPS) form. It is adaptive and converges very quickly and to high precision.
In addition to state-of-the-art DMRG codes, ITensor features the AutoMPO system, which is a powerful domain-specific language for creating matrix product operator (MPO) tensor networks as a sum of local terms, which is especially useful for quantum mechanics applications.
//Define Hilbert space of N spin-one sites int N = 100; auto sites = SpinOne(N); 618IP地址切换器,哪个更好用,给个地址_百度知道:2021-12-25 · 2021-09-13 IP地址切换器,哪个更好用,给个地址 8 2021-07-02 win7有没有好的IP地址切换器,我用过几个都没用 2021-12-18 更换IP地址的软件有哪些 2 2021-11-12 通过自己家里的ip地址切换器发的贴能查出来吗 4 2021-06-22 有什么好用的IP切换器软件,怎么修改成国外IP地址? auto ampo = AutoMPO(sites); for(int j = 1; j < N; ++j) { ampo += 0.5,"S+",j,"S-",j+1; ampo += 0.5,"S-",j,"S+",j+1; ampo += "Sz",j,"Sz",j+1; } auto H = toMPO(ampo); 618ip手机免费版 //to be a product state auto psi0 = MPS(InitState(sites,"Z0")); //Perform 5 sweeps of DMRG auto sweeps = Sweeps(5); //Specify max number of states kept each sweep sweeps.maxdim() = 50, 50, 100, 100, 200; 618伕理软件官网 auto [energy,psi] = dmrg(H,psi0,sweeps,"Quiet"); //Continue to analyze wavefunction afterward Print(inner(psi,H,psi)); //<psi|H|psi> for(int j = 1; j <= N; ++j) { //Make site j the MPS "orthogonality center" psi.position(j); 618ip免费版 Real Szj = elt(psi(j) * op(sites,"Sz",j) * dag(prime(psi(j),"Site"))); println("Sz_",j," = ",Szj); }