From 167abb244c2b54cbd02403d5e077e9e655e0bbd2 Mon Sep 17 00:00:00 2001 From: Donjan Rodic <donjan@dyx.ch> Date: Tue, 22 Mar 2016 08:43:15 +0100 Subject: [PATCH] added ex04 solution --- .../ex04_solution/exchange_energies_L6.png | Bin 0 -> 15598 bytes .../ex04_solution/exchange_energies_L7.png | Bin 0 -> 14747 bytes exercises/ex04_solution/heised.ipynb | 120 ++++++++++ exercises/ex04_solution/heised_cpp/.gitignore | 1 + exercises/ex04_solution/heised_cpp/Makefile | 12 + .../ex04_solution/heised_cpp/energy_gap.png | Bin 0 -> 47595 bytes .../heised_cpp/groundstate_energy.png | Bin 0 -> 54012 bytes exercises/ex04_solution/heised_cpp/heised.cpp | 214 ++++++++++++++++++ .../ex04_solution/heised_cpp/openchain.dat | 20 ++ .../heised_cpp/periodicchain.dat | 20 ++ exercises/ex04_solution/heised_cpp/plot.py | 48 ++++ 11 files changed, 435 insertions(+) create mode 100644 exercises/ex04_solution/exchange_energies_L6.png create mode 100644 exercises/ex04_solution/exchange_energies_L7.png create mode 100644 exercises/ex04_solution/heised.ipynb create mode 100644 exercises/ex04_solution/heised_cpp/.gitignore create mode 100644 exercises/ex04_solution/heised_cpp/Makefile create mode 100644 exercises/ex04_solution/heised_cpp/energy_gap.png create mode 100644 exercises/ex04_solution/heised_cpp/groundstate_energy.png create mode 100644 exercises/ex04_solution/heised_cpp/heised.cpp create mode 100644 exercises/ex04_solution/heised_cpp/openchain.dat create mode 100644 exercises/ex04_solution/heised_cpp/periodicchain.dat create mode 100644 exercises/ex04_solution/heised_cpp/plot.py diff --git a/exercises/ex04_solution/exchange_energies_L6.png b/exercises/ex04_solution/exchange_energies_L6.png new file mode 100644 index 0000000000000000000000000000000000000000..1a3534f0b3fb4c265d9b0c4ea15cbede6c70c594 GIT binary patch literal 15598 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 literal 0 HcmV?d00001 diff --git a/exercises/ex04_solution/exchange_energies_L7.png b/exercises/ex04_solution/exchange_energies_L7.png new file mode 100644 index 0000000000000000000000000000000000000000..18e042aa76f8426ee9e3f4d14ede4abbdb14fa2b GIT binary patch literal 14747 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∨5~Fp_o_#R*;ll^GHcHe>7bkhZ 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 BHERF> literal 0 HcmV?d00001 diff --git a/exercises/ex04_solution/heised.ipynb b/exercises/ex04_solution/heised.ipynb new file mode 100644 index 0000000..2e20136 --- /dev/null +++ b/exercises/ex04_solution/heised.ipynb @@ -0,0 +1,120 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Exact Diagonalization\n", + "\n", + "A C++ code for exact diagonalization is attached to this solution sheet, and can be compiled by following the instructions provided with the skeleton code. Numeric results are available in the openchain.dat and periodicchain.dat for an open and periodic boundary conditions, respectively. The figures below can be reproduced with the `plot.py` script." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "<center>Figure 1: Ground state energy converging to value of −0.44325 for the thermodynamic limit.</center>" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "<img src=\"exchange_energies_L6.png\" width=\"300\"/>" + ], + "text/plain": [ + "<IPython.core.display.Image object>" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "<img src=\"exchange_energies_L7.png\" width=\"300\"/>" + ], + "text/plain": [ + "<IPython.core.display.Image object>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from IPython.display import Image\n", + "from IPython.display import display\n", + "display(Image(url=\"exchange_energies_L6.png\", width=300), Image(url=\"exchange_energies_L7.png\", width=300))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Figure 2: Strength of the local contribution of each bond to the Heisenberg Hamiltonian\n", + "for even and odd open chains." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In Figure 1 we observe the oscillation of the ground state energy between even and odd number of sites in both lattice topologies. In the case of periodic boundary conditions this is easily understood by the appearance of a frustrated spin in an odd chain, i.e. one spin can align in order to favor the bond with the previous spin, or with the next spin, but not both at the same time.\n", + "\n", + "For an open chain there is no apparent frustration, but the increase in energy per site can still be understood from the local contributions to the Heisenberg Hamiltonian as shown in Figure 2. The major contribution to the ground state comes from the dimerized state, i.e. a chain of singlets: this is only possible in an even chain (see left panel). In the odd chain (right panel) the system tries to build singlets from both boundaries, which is again giving rise to frustration in the center where the two incompatible dimer patterns meet. In the thermodynamic limit L → ∞ the difference between even and odd length vanishes." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "<center>Figure 3: Extrapolation of the energy gap. Extrapolation is performed only on the last\n", + "four lattice sizes.</center>\n", + "\n", + "By targeting the two lowest eigenenergies in the Lanczos solver (or a similar iterative\n", + "eigensolver) for each quantum number sector we identify the smallest excitation from the\n", + "ground state. Figure 3 shows how the energy gap nicely extrapolates to zero ∼ 1/L in\n", + "the thermodynamic limit." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.4.3" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/exercises/ex04_solution/heised_cpp/.gitignore b/exercises/ex04_solution/heised_cpp/.gitignore new file mode 100644 index 0000000..15611dc --- /dev/null +++ b/exercises/ex04_solution/heised_cpp/.gitignore @@ -0,0 +1 @@ +alps-2.2* diff --git a/exercises/ex04_solution/heised_cpp/Makefile b/exercises/ex04_solution/heised_cpp/Makefile new file mode 100644 index 0000000..f4e2fe5 --- /dev/null +++ b/exercises/ex04_solution/heised_cpp/Makefile @@ -0,0 +1,12 @@ +CXX = g++ +CPPFLAGS = -std=c++14 -I${ALPSDIR}/boost -I${ALPSDIR}/alps/src + +ALPSDIR = alps-2.2.b4-src-with-boost + +heised: heised.cpp + ${CXX} ${CPPFLAGS} -o $@ $^ -llapack -lblas + +prepare_alps: + mkdir -p ${ALPSDIR}/build + -cd ${ALPSDIR}/build; cmake -D Boost_ROOT_DIR:PATH=../boost ../alps/ + cp ${ALPSDIR}/build/src/alps/config.h ${ALPSDIR}/alps/src/alps/ diff --git a/exercises/ex04_solution/heised_cpp/energy_gap.png b/exercises/ex04_solution/heised_cpp/energy_gap.png new file mode 100644 index 0000000000000000000000000000000000000000..8928c5d034caf6a5f386efec40f81b94a888422b GIT binary patch literal 47595 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 literal 0 HcmV?d00001 diff --git a/exercises/ex04_solution/heised_cpp/groundstate_energy.png b/exercises/ex04_solution/heised_cpp/groundstate_energy.png new file mode 100644 index 0000000000000000000000000000000000000000..978505a5335b620084599a07eb4b9092222f315a GIT binary patch literal 54012 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 EAE0<%_y7O^ literal 0 HcmV?d00001 diff --git a/exercises/ex04_solution/heised_cpp/heised.cpp b/exercises/ex04_solution/heised_cpp/heised.cpp new file mode 100644 index 0000000..deaf687 --- /dev/null +++ b/exercises/ex04_solution/heised_cpp/heised.cpp @@ -0,0 +1,214 @@ +#include <vector> +#include <iostream> +#include <fstream> +#include <iomanip> +#include <cassert> +#include <boost/numeric/ublas/vector.hpp> +#include <boost/random.hpp> +#include <boost/tuple/tuple.hpp> + +// FROM ALPS: #include <alps/utility/bitops.hpp> +namespace alps +{ + inline static int BX_(long x) + { return ((x) - (((x)>>1)&0x77777777) - (((x)>>2)&0x33333333) - (((x)>>3)&0x11111111)); } + + inline long popcnt(uint32_t x) + { return (((BX_(x)+(BX_(x)>>4)) & 0x0F0F0F0F) % 255); } +} + +class SpinHalfBasis +{ +public: + enum { NOT_FOUND=-1 }; + typedef unsigned State; + typedef unsigned Index; + + SpinHalfBasis(unsigned l, unsigned nups); + + State state( Index i ) const { return states_[i]; } + Index index( State s ) const { return index_[s]; } + Index dimension() const { return states_.size(); } + +private: + std::vector<State> states_; + std::vector<Index> index_; +}; + +SpinHalfBasis::SpinHalfBasis(unsigned l, unsigned nups) // l: chain length; nups: spins-ups (fixes the symmetry sector). +: index_(State(1<<l), NOT_FOUND) // initialize index_ to have 2^l entries each of which is the NOT_FOUND flag. +{ + // find all states with [nups] up spins + for( State s = 0; s < index_.size(); ++s ) + { + if( alps::popcnt(s) == nups ) // if the state is in this sector keep it. + { + index_[s] = states_.size(); + states_.push_back(s); + } + } +} + +class HeisenbergHamiltonian : public SpinHalfBasis +{ +public: + typedef double Scalar; + typedef boost::numeric::ublas::vector<Scalar> Vector; + + HeisenbergHamiltonian(unsigned l, unsigned nups, bool periodic, double j); + + void multiply(const Vector& x, Vector& y) const; + +private: + unsigned l_; // length of the chain + bool periodic_; // periodic boundary conditions off/on + double j_; // coupling J +}; + +HeisenbergHamiltonian::HeisenbergHamiltonian(unsigned l, unsigned nups, bool periodic, double j) +: SpinHalfBasis(l,nups) +, l_(l) +, periodic_(periodic) +, j_(j) +{ +} + +/// Calculate y = H x +void HeisenbergHamiltonian::multiply(const Vector& x, Vector& y) const +{ + // check dimensions + assert( x.size() == dimension() ); + assert( y.size() == dimension() ); + + // diagonal part: +J/4 for parallel, -J/4 for antiparallel neighbors + State mask = (1<<(l_-1)) - 1; // contains a single 0 at the m.s.b. and 1s everywhere else + for( Index i = 0; i < dimension(); ++i ) + { + State s = state(i); + int p = alps::popcnt(mask & ( s ^ (~s>>1) )); // number of parallel pairs. s ^ (~s>>1): implements an EQUAL over neighbour spins. + y[i] = .25*j_*( 2.*p - l_ + 1 )*x[i]; // # par - # antipar = 2 * # par - # bonds. + } + + // off-diagonal part: {01,10} -> J/2 {10,01} + for( Index i = 0; i < dimension(); ++i ) + { + State s = state(i); + for( int r = 0; r < l_-1; ++r ) + { + State sflip = s ^ (3<<r); // flip spins (r,r+1). (3<<r): bit pattern with all zeros except at r and r+1. + Index j = index(sflip); + if( j != NOT_FOUND ) // we need to filter out events like e.g. (1,1) flip-> (0,0), since this kicks us out of the symmetry sector. + y[j] += .5*j_*x[i]; + } + } + + // periodic boundaries + if( periodic_ ) + { + for( Index i = 0; i < dimension(); ++i ) + { + State s = state(i); + // diagonal + int p = 1 & ( s ^ (~s>>(l_-1)) ); + y[i] += .25*j_*( 2.*p - 1 )*x[i]; + // off-diagonal + State sflip = s ^ ( 1 | (1<<(l_-1)) ); // ( 1 | (1<<(l_-1)) ): bit pattern with 1s at least and most sig. bits. the rest are zero. + Index j = index(sflip); + if( j != NOT_FOUND ) + y[j] += .5*j_*x[i]; + } + } +} + +namespace ietl +{ + // overload mult function inside ietl for use with our HeisenbergHamiltonian objects. + inline void mult( const HeisenbergHamiltonian& h, const HeisenbergHamiltonian::Vector& x, HeisenbergHamiltonian::Vector& y ) + { + h.multiply( x, y ); + } +} + +// ietl::mult() needs to be declared before including these +#include <ietl/interface/ublas.h> +#include <ietl/lanczos.h> + +std::pair< std::vector<double>, std::vector<int> > +diagonalize( const HeisenbergHamiltonian& h, unsigned nvals=1, unsigned maxiter=1000) +{ + typedef ietl::vectorspace<HeisenbergHamiltonian::Vector> Vectorspace; + typedef ietl::lanczos<HeisenbergHamiltonian,Vectorspace> Lanczos; + typedef ietl::lanczos_iteration_nlowest<double> Iteration; + typedef boost::mt19937 Generator; + + Vectorspace vspace(h.dimension()); + Lanczos solver(h,vspace); + Iteration iter(maxiter,nvals); + + solver.calculate_eigenvalues(iter,Generator()); // call the solver for the eigenvalues. + + if( iter.iterations() == maxiter ) + std::cerr << "Lanczos did not converge in " << iter.iterations() << " iterations." << std::endl; + else + std::cout << " Lanczos converged after " << iter.iterations() << " iterations." << std::endl; + + return std::make_pair(solver.eigenvalues(),solver.multiplicities()); +} + +void do_chain(int l, bool periodic, double j, unsigned nstates, std::ostream& datfile) +{ + std::cout << "+++ Diagonalizing S=1/2 Heisenberg " << (periodic ? "periodic" : "open") + << " chain with L=" << l << ", J=" << j << std::endl; + + std::vector<double> all_energies; + + for( unsigned n = 0; n <= l; ++n ) // iterate over # up spins. (sectors) + { + double sz = n-l/2.; + std::cout << "--- Sector Sz=" << sz << ": "; + HeisenbergHamiltonian ham(l,n,periodic,j); + std::cout << ham.dimension() << " basis states" << std::endl; + + unsigned nvals = std::min(nstates,ham.dimension()); + std::vector<double> evals; + std::vector<int> mults; + boost::tie(evals,mults) = diagonalize(ham,nvals); + + for( unsigned i = 0; i < nvals; ++i ) + std::cout << n-l/2. << '\t' << evals[i] << '\t' << mults[i] << '\n'; + all_energies.insert(all_energies.end(),evals.begin(),evals.begin()+nvals); + } + + // print data to file + std::sort(all_energies.begin(),all_energies.end()); + datfile << l; + for( unsigned i = 0; i < nstates; ++i ) datfile << '\t' << all_energies[i]; + datfile << std::endl; +} + +void write_dat_header(std::ostream& datfile,unsigned nstates) +{ + datfile << "# Sz"; + for( unsigned i = 0; i < nstates; ++i ) + datfile << "\tE" << i; + datfile << "\n"; + datfile.precision(10); +} + +int main() +{ + int lmin = 2; + int lmax = 20; + double j = 1.; + unsigned nstates = 2; // How many of the lowest eigenvalues (energies) do you want to calculate? ( nstates = 1 ... just the ground state) + + std::ofstream opendata("openchain.dat"); + write_dat_header(opendata,nstates); + for( int l = lmin; l <= lmax; ++l ) + do_chain(l,false,j,nstates,opendata); + + std::ofstream periodicdata("periodicchain.dat"); + write_dat_header(periodicdata,nstates); + for( int l = lmin; l <= lmax; ++l ) + do_chain(l,true,j,nstates,periodicdata); +} diff --git a/exercises/ex04_solution/heised_cpp/openchain.dat b/exercises/ex04_solution/heised_cpp/openchain.dat new file mode 100644 index 0000000..243b04d --- /dev/null +++ b/exercises/ex04_solution/heised_cpp/openchain.dat @@ -0,0 +1,20 @@ +# Sz E0 E1 +2 -0.75 0.25 +3 -1 -1 +4 -1.616025404 -0.9571067812 +5 -1.927886253 -1.927886253 +6 -2.493577134 -2.001995357 +7 -2.836239681 -2.836239681 +8 -3.374932599 -2.982240488 +9 -3.736321706 -3.736321706 +10 -4.258035207 -3.93067359 +11 -4.632093302 -4.632093302 +12 -5.142090633 -4.861147937 +13 -5.525322097 -5.525322097 +14 -6.026724662 -5.780492604 +15 -6.416920492 -6.416920492 +16 -6.911737146 -6.692460429 +17 -7.307408708 -7.307408708 +18 -7.797011069 -7.599284884 +19 -8.197105742 -8.197105742 +20 -8.682473334 -8.502378698 diff --git a/exercises/ex04_solution/heised_cpp/periodicchain.dat b/exercises/ex04_solution/heised_cpp/periodicchain.dat new file mode 100644 index 0000000..d59ce22 --- /dev/null +++ b/exercises/ex04_solution/heised_cpp/periodicchain.dat @@ -0,0 +1,20 @@ +# Sz E0 E1 +2 -1.5 0.5 +3 -0.75 -0.75 +4 -2 -1 +5 -1.868033989 -1.868033989 +6 -2.802775638 -2.118033989 +7 -2.855179257 -2.855179257 +8 -3.651093409 -3.128419064 +9 -3.797299784 -3.797299784 +10 -4.515446354 -4.092207347 +11 -4.718936363 -4.718936363 +12 -5.387390917 -5.031543404 +13 -5.62958433 -5.62958433 +14 -6.263549534 -5.956443824 +15 -6.533667572 -6.533667572 +16 -7.142296361 -6.872106678 +17 -7.433520165 -7.433520165 +18 -8.022749087 -7.781499637 +19 -8.330488454 -8.330488454 +20 -8.90438653 -8.686440986 diff --git a/exercises/ex04_solution/heised_cpp/plot.py b/exercises/ex04_solution/heised_cpp/plot.py new file mode 100644 index 0000000..4da32ad --- /dev/null +++ b/exercises/ex04_solution/heised_cpp/plot.py @@ -0,0 +1,48 @@ +import numpy as np +import matplotlib.pyplot as plt + +tasks = [('open','openchain.dat'),('periodic','periodicchain.dat')] + +# create two figures +plt.figure(1) +plt.title('Ground state energy per site') +plt.xlabel('$1/L$') +plt.ylabel('$E_0/L$') +plt.figure(2) +plt.title('Gap') +plt.xlabel('$1/L$') +plt.ylabel('$E_1-E_0$') +plt.xlim(0,0.3) +plt.ylim(0,0.8) + +for t in tasks: + # load data + name = t[0] + data = np.loadtxt(t[1]) + lengths = data[:,0] + invlen = 1./lengths + e0 = data[:,1] + e1 = data[:,2] + + # plot ground state energy per site + gs = e0/lengths + plt.figure(1) + plt.plot(invlen,gs,label=name) + plt.legend(loc='upper left') + + # restrict to chains of even length + even = lengths%2 == 0 + invlen = invlen[even] + gap = (e1-e0)[even] + + # fit to form y = m*x = m/L for the 4 largest chains + numpoints = 4 + m = np.linalg.lstsq(np.vstack(invlen[-numpoints:]),gap[-numpoints:])[0] + + # plot gap and 1/L fit + plt.figure(2) + plt.plot(invlen,gap,'.',label=name) + invlen = np.concatenate((invlen,[0.])) + plt.plot(invlen,m*invlen) + plt.legend(loc='upper left') +plt.show() \ No newline at end of file -- GitLab