N=2 and N=3 Heisenberg chains are to simple for spinpack, because spinpack uses symmetries and so matrix size becomes to one (see remark below for higher s). Use minimum N=5 sites (see example_lc5.html) or switch off all symmetries to see the full base:
cd exe # execution path gcc -lm -o m_1d ../m_1d.c # compile model generation code for chains ./m_1d 2 > daten.def # generate 2 side model config.h: #define CONFIG_NOS1SYM 1 // #define Sud 0 // sym_ud=0 used daten.i: verbose=33 xout=3 99 sym_ud= 0 # no up-down-symmetry (case nu==nd) sym_k= -9999 param= 1.0, 0.0 nud=1,1 # ud-subspace a0 nud=0,2 # dd-subspace a0 nud=2,0 # uu-subspace (same as dd-subspace) a0 make; ./spin results: # nud=1,1 n1=2 hnz/n1=3.00(double entries) J1=1 E0= -1.50000 0.50000 # nud=0,2 n1=1 hnz/n1=1.00 J1=1 E0= 0.50000 # # nud=1,1 n1=2 hnz/n1=3.00(double entries) J1=1 E0= -1.50000 0.50000 i-j 0 0 ZiZj 0.250000 num= 2 r^2= 0.000 i-j 0 1 ZiZj -0.250000 num= 2 r^2= 1.000 i-j 0 0 SiSj 0.750000 Sij-3Zij= -0.000000 -1e-08 num= 2 i-j 0 1 SiSj -0.750000 Sij-3Zij= 0.000000 1e-08 num= 2 x (weight, factor, coefficient, diff, |sN...s0>, (symfactor)): 0.5000000 1 0.7071068 0e+00 |0x2> ( 1) dcorr: 0 idx=1 0.5000000 1 -0.7071068 0e+00 |0x1> ( 1) dcorr: 0 idx=0 # nud=0,2 n1=1 hnz/n1=1.00 J1=1 E0= 0.50000000 i-j 0 0 ZiZj 0.250000 num= 2 r^2= 0.000 i-j 0 1 ZiZj 0.250000 num= 2 r^2= 1.000 i-j 0 0 SiSj 0.750000 Sij-3Zij= 0.000000 0e+00 num= 2 i-j 0 1 SiSj 0.250000 Sij-3Zij= -0.500000 -5e-01 num= 2 SS= 2.000 2S= 2.000 x (weight, factor, coefficient, diff, |sN...s0>, (symfactor)): 1.000000000 1 1.000000000 0e+00 |0x3> ( 1) dcorr: 1 idx=0
Remark (higher s): it looks like E0 of N=2,3,4 for any spin-length gives classical groundstate, i.e. no energy reduction by quantum effects (because no real next-nearest neighbour(?)). Because for N=3 all 3 sites interact with each other, it belongs also to Lieb-Mattis-model class (analytical results).
edit src/config.h # set NN=128 Nw=(64*NN) set maximum NN=N*(2s) make # recompile cd exe # change to executable dir ./m_1d 3 > a.def # N=3 2s=1 base-model-file ../utils/defspin1.sh -s 20 a.def > daten.def # 2s=20 derived-model-file edit daten.i # edit sym_k= -999999 and nud=10,10 # Sz=0 ./spin # Results: e0=E0/(N*s(s+1)) N=3 2s=20 nud=1+59 k=0 n1=1 E0= 300.0, k=no n1=3 E0= 270.0 N=3 2s=20 nud=20+20 k=0- n1=25 E0=-159.0, k=no n1=331 E0=-165.0 N=3 2s=84 ERROR b_factor_lm.Tnorm2.int128 OVL 0 NN=256 NAH=16 N=3 2s=84 e0=-2709.0/5418=-0.5 Tnorm2=f64 vec4 HRMAX=0 N=3 2s=76 e0=-2223.0/4446=-0.5 Tnorm2=f64 vec4 HRMAX=0 N=3 2s=76 err_fulltable hr_len=1023 Tnorm2=f64 ToDo (output mindiffs?) N=3 2s=74 e0=-2109.0/4218=-0.5 Tnorm2=f64 ERROR dbl_over ToDo N=3 2s=70 e0=-1890.0/3780=-0.5 Tnorm2=f64 ERROR dbl_over ToDo N=3 2s=60 e0=-1395.0/2790=-0.5 Tnorm2=f64 N=3 2s=46 ERROR b_factor_lm.Tnorm2.int128 OVL 5.5814e+38 N=3 2s=44 e0=-759.0/1518=-0.5 Tnorm2=__int128 Nw=84*NN NAH=16 N=3 2s=42 e0=-693.0/1386=-0.5 Tnorm2=__int128 Nw=84*NN NAH=16 # ToDo: sum_h21-12^*=6e-10 why? hnz/n1=5..7 minH12=21 maxH12=231 n1=1387 N=3 2s=38 e0=-570.0/1140=-0.5 Tnorm2=__float64 N=3 2s=38 err_fulltable hr_len=1023 Tnorm2=__float32 fix: HRMAX=0 N=3 2s=26 e0=-273.0/546=-0.5 Tnorm2=__float32 N=3 2s=24 e0=-234.0/468=-0.5 Tnorm2=__int128 N=3 2s=24 e0=-234.0/468=-0.5 Tnorm2=__float32 N=3 2s=24 ERROR b_factor_lm OVL 2.0e+19 Tnorm2=__int64 N=3 2s=22 e0=-198.0/396=-0.5 n1=397 dE1=1 dE2=3 dE3=6 N=3 2s=20 e0=-165.0/330=-0.5 n1=331 dE1=1 dE2=3 dE3=6 N=3 2s=10 e0=-45.0/90=-0.5 n1=91 dE1=1 dE2=3 dE3=6 N=3 2s=2 e0=-3/6=-0.5 n1=7 dE1=1 dE2=3 dE3=6 N=3 E0/(2N*s(s+1))=-0.5 == classic 3-particles (no-QM, noNNN) N=3 2s=5 e0=-12.75/26.25= -0.4857 m=1/15 n1=27 dE1=1.5 dE2=4 dE3=7.5 N=3 2s=3 e0=-5.25/11.25= -0.4666 m=1/9 n1=12 bad FTLM.bisec deg.E0 N=3 2s=1 e0=-0.75/2.25= -0.3333 1/3 N=4 is effective N=2 == classic N=5 minimum quantum sample!? classic: cos(2*360/5)=-0.809 has NNN-terms N=5 2s=12 e0=-160.44758991/210= -0.76403614 # see example_lc5.html N=5 2s=2 e0=-6.53112887/10= -0.653112887