-
Notifications
You must be signed in to change notification settings - Fork 20
How to use
jjren edited this page Sep 22, 2019
·
9 revisions
- 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
CompressConfigto control the behavior
- Ground state or several lowest excited states
- One-site or two-site optimization
- Mix sub-optimal states by
procedureto avoid local minimum - Control bond dimension by
procedureto accelerate computation at an early stage and achieve high accuracy in the end. - TDH hybrid optimization configs
- use
OptmizeConfigto control the behavior - No convergence on the optimization is guaranteed and the user should check the outcome before using it
- 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
EvolveConfigto control the behavior
More details about the evolution schemes, please refer to arXiv:1907.12044.
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
- use
-Oflag 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.