CCCM is a high-order CCM (coupled cluster method) code for lattice spin systems at T=0 by Damian J. J. Farnell (DF). Historically, this code is based on "foundations" laid by Ray Bishop and John Parkinson (amongst others), and Chen Zeng's work in the 90's on the high-order code. This code has been exploited and pushed forward by Damian Farnell and Sven Krüger primarily. Indeed, the current incarnation of the CCM code is still being used and extended by Johannes Richter and his co-workers. Because Damians time is being increasingly concentrated on other topics Joerg Schulenburg (JS) did some improvements and necessary changes to the code and set up this webpage for distribution of the most recent code. If you have suggestions and code patches, send it to Joerg together with a description what it does (better), so he can include it in the official version.
check signature using
gpg --verify ccmXXXX.asc
--- please also look at the ChangeLog file at the tgz package --- 31.05.10 - bounding=... in ccm-script removed (automatically computed) - set GAP=0 if DI is not converged - improve shift estimation for DI-GAP-code (EXPERIMENTAL=4) every 2nd GAP was bad for J1-J2 models - rewrite DI-GAP (power method, see wikipedia), making it more robust - add option to set start vector (--startx=0..., see setStartX in solve.c) sample: triangle.ccm sub-5-5 NR convergence - better TermCompression (minimum size computed at runtime, bitshift used) more compression by use of maxbits + bitshift, (cfg+term only once?) ex: 5*18bit+4bit.term+Xbit.factor05=94bit+X=12Byte instead of 16,24,32B - check number of different coefficients (for better compression) switch on by TermCompression+=2 (smaller TERMSIZE, up to 50% less memory, no precission loss, but save to disk may not work compressed! ToDo) - print warning, when bounding triangle is set, bounding=... is obsolete now - fix bug: LatticeSymmetries.number >= MAX_NUM_SYM - add option --symmetries=... to set num symmetries (use carefully!) - add option --expects=... to set max. num of computed expectation values - fix: accuracy 1e-8 instead 1e-10 for j1j2_square_Neel J2=0.2 (float used) - output Mag iterations if error grows (divergence) - add options --subm and --subn, overrides script m and n (more flexibility) - add option --mom (weight or momentum for direct iteration, macro removed) - add options --increment --minimum --maximum for parameter range to have the advantage to use the same script file for different batch jobs - dont exit if bra-vector does not converge (useful for Delta scans) - add Data/j1j2_square_Coll_Ferromag.ccm (convergence checked, NR vs. DI) - add Data/*.txt files (documentation, remarks , datas, known samples) ... see ChangeLog in tgz-package
Q: What about performance? A: Here are some results: xxzSquare6-6 Oct04 (np=num_parallel_cpus, realtime,usertime,systime) np=2 PM-600MHz 21s,6s,0s + 28m,14m,0s + 49s,14s,7s (old=slow) + 24s,10s,1s (new=fast) np=4 PM-600MHz 20s,4s,0s + 16m, 4m,0s + 30s, 5s,0s np=2 PM-600MHz 11s,4s,0s + 16m, 8m,0s + 22s, 9s,1s np=1 PM-600MHz 4s,3s,0s + 16m,16m,0s + 19s,17s,1s no_np PM-600MHz 3s,3s,0s + 16m,16m,0s + 18s,17s,1s no_np PM-600MHz 3s,3s,0s + 16m,16m,0s + 82s,76s,5s (no_collect) no_np PM-600MHz 3s,3s,0s + 12m06s noDEBUG + static_arrays no_np PM-1200MHz 2s,2s,0s + 5m56s noDEBUG + static_arrays Sep05: no_np Celeron 2GHz = 41s Q: Are there some test models to check correctness of the code? A: Yes, you can find them in the ../Data path. ### model fundClusters bon1terms bond2terms D Eg M (Sep05) xxzCubic-6-6 181 838 53620 D= -1.0 Eg= -1.80360459 M= 0.42859590 P2.6=1400s kagome_j1j2-6 521 8163 458724 D= 0.0 Eg= -0.41827021 M= 0.27026674 P2.6=192s S=1/2-LC-14 931 43537 4205e3 D= -1.0 Eg= -0.44255049 M= 0.14240498 ca.2h S=1-chain-8-8 247 2466 56649 D= -1.0 Eg= -1.38346552 M= 0.53325176 P2.6=76s
- not known, please report (please try the latest version)