awietek / xdiag Goto Github PK
View Code? Open in Web Editor NEWC++ library for Exact Diagonalization of quantum many-body systems
Home Page: https://awietek.github.io/xdiag
License: Apache License 2.0
C++ library for Exact Diagonalization of quantum many-body systems
Home Page: https://awietek.github.io/xdiag
License: Apache License 2.0
Steps to reproduce
% cmake -S . -B build
-- The CXX compiler identification is GNU 14.1.0
-- Checking whether CXX compiler has -isysroot
-- Checking whether CXX compiler has -isysroot - yes
-- Checking whether CXX compiler supports OSX deployment target flag
-- Checking whether CXX compiler supports OSX deployment target flag - yes
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /opt/homebrew/bin/g++-14 - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Compiler ID : GNU
-- Compiler version: 14.1.0
-- Build type: Release
-- CMAKE_INSTALL_PREFIX is not set
Default value: /usr/local
Will set it to /Users/spuriosity1/gh/xdiag/install
-- -------- BUILDING NORMAL XDIAG LIBRARY -------------
-- -------- Determining Linear Algebra backend -------------
-- Could NOT find MKL (missing: MKL_LIBRARIES MKL_INCLUDE_DIRS MKL_INTERFACE_LIBRARY MKL_THREAD_LAYER_LIBRARY MKL_CORE_LIBRARY)
-- Looking for sgemm_
-- Looking for sgemm_ - not found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE
-- Looking for dgemm_
-- Looking for dgemm_ - found
-- Found BLAS: /Library/Developer/CommandLineTools/SDKs/MacOSX13.1.sdk/System/Library/Frameworks/Accelerate.framework
-- Looking for cheev_
-- Looking for cheev_ - found
-- Found LAPACK: /Library/Developer/CommandLineTools/SDKs/MacOSX13.1.sdk/System/Library/Frameworks/Accelerate.framework;-lm;-ldl
-- Employing Lapack/Blas as linear algebra backend
-- -------- Determining if OpenMP is present -------------
-- Found OpenMP_CXX: -fopenmp (found version "4.5")
-- Found OpenMP: TRUE (found version "4.5")
-- Employing OpenMP
-- -------- Determining if HDF5 is present -------------
-- Found HDF5: hdf5_cpp-shared (found version "1.14.3") found components: CXX
-- Employing HDF5
-- -------- Creating config.hpp -------------
-- Found Git: /usr/bin/git (found version "2.37.1 (Apple Git-137.1)")
-- Configuring done (1.8s)
-- Generating done (0.0s)
-- Build files have been written to: /Users/spuriosity1/gh/xdiag/build
% cmake --build build
/Users/spuriosity1/gh/xdiag/xdiag/utils/error.cpp:13:13: error: redefinition of 'const char* std::bad_variant_access::what() const'
13 | const char *std::bad_variant_access::what() const noexcept {
| ^~~
In file included from /Users/spuriosity1/gh/xdiag/xdiag/utils/error.cpp:4:
/opt/homebrew/Cellar/gcc/14.1.0_1/include/c++/14/variant:1334:17: note: 'virtual const char* std::bad_variant_access::what() const' previously defined here
1334 | const char* what() const noexcept override
| ^~~~
Note that build also fails under Apple clang, but for different reasons.
Hi,
using the xcode version #49f8fe7, @riccardo-rende and I tried to diagonalize an Heisenberg chain using this code :
#include <xdiag/all.hpp>
using namespace xdiag;
int main() try {
int n_sites = 36;
int nup = n_sites / 2;
Spinhalf block(n_sites, nup);
// Define the nearest-neighbor Heisenberg model
BondList bonds;
for (int i = 0; i < n_sites; ++i) {
bonds += Bond("HB", "J", {i, (i + 1) % n_sites});
}
bonds["J"] = 1.0;
set_verbosity(2); // set verbosity for monitoring progress
double e0 = eigval0(bonds, block); // compute ground state energy
Log("Ground state energy: {:.12f}", e0);
} catch (Error e) {
error_trace(e);
}
We checked that up to L=32 we get the correct results.
However, for L=34 we obtain the following error:
Warning: Tmatrix zero dimensional in eig0_cplx
Ground state energy: nan
and for L=36 the code runs but the energy is wrong, namely it goes below the exact one :
Exact energy per site : -0.44378432839067183
Lanczos energy per site after 64 iterations : -0.4737482323668045
The same happens for the square lattice, the energy for the 4x4 is correct, instead for the 6x6 goes below the exact one.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.