-
Notifications
You must be signed in to change notification settings - Fork 16
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
CompressConfig
to control the behavior
- 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
- 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.
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
-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.