Skip to content

How to use

jjren edited this page Sep 22, 2019 · 9 revisions

Compression Features

  • Compression with SVD
  • Bond dimension determined by fixed value or SVD threshold or a mixed approach
  • For fixed value, uniform distribution and Gaussian distribution are supported
  • use CompressConfig to control the behavior

Ground State Optimization Features

  • Ground state or several lowest excited states
  • One-site or two-site optimization
  • Mix sub-optimal states by procedure to avoid local minimum
  • Control bond dimension by procedure to accelerate computation at an early stage and achieve high accuracy in the end.
  • TDH hybrid optimization configs
  • use OptmizeConfig to control the behavior
  • No convergence on the optimization is guaranteed and the user should check the outcome before using it

Evolution Features

  • Support P&C, TDVP_MU, TDVP_PS as evolution method.
  • All schemes could be adaptive
  • TDVP_PS support Krylov subspace method
  • TDVP_MU_VMF: variable mean-field with RKF45 time integration (VMF could automatically determine the time step dt if the rtol/atol and the regularization parameters are given.)
  • use EvolveConfig to control the behavior

More details about the evolution schemes, please refer to arXiv:1907.12044.

Parallelism

We set environment variables to limit NumPy cpu usage when Renormalizer is imported because the parallel efficiency is poor. Preliminary tests show that using 4 cores can hopefully double the speed, while devoting more resources has little benefit.

Related code can be found in Renormalizer/__init__.py.

for env in ["MKL_NUM_THREADS", "NUMEXPR_NUM_THREADS", "OMP_NUM_THREADS"]:
    os.environ[env] = "1"
    del env

Tips

  • use -O flag to enable optimizations (disable asserts) for Python can typically speed things up for 50% (time cost drops to 66%).
  • use float32/complex64 as backend (rather than float64/complex128) can speed things up for 50%. Although all test cases can pass in such configuration, care should be taken because the precision is significantly lower.