Skip to content

Tags

Tags

6.6.3

Toggle 6.6.3's commit message
6.6.3 Bug fix in restarting PBC calculations.

Solved by simple change in DMRG_MAIN

6.6.2

Toggle 6.6.2's commit message
6.6.2 Fix a nasty bug in the PRIMME lazy operator H.v subroutine.

This the output vector used in the 2nd transposition for 1^RxH^L happened
to have wrong dimensions.
Those were implicitly assumed to be identical to those of the 1st call:
call vector_transpose_MPI(Drs(k),mpiDls(k),V(i_start:i_end,iv),
               Dls(k),mpiDrs(k),vt,  mpiSBCOMM(k))
vt(Dls(k)*mpiDrs(k))

while in the second call one has:
call vector_transpose_MPI(Dls(k),mpiDrs(k),Hvt,&
               Drs(k),mpiDls(k),vt, mpiSBCOMM(k))
vt(Drs(k)*mpiDls(k))

these numbers can be different, so we substituted vt with vout with
proper dims.
This error appear evident only here because we are looping over block vectors
internally (using PRIMME interface) so spare lazy operator construction time
within DQ_shift/=0 case (in Arpack this was working indeed).

Checked against serial Arpack/Primme and MPI Arpack/Primme.

6.6.1

Toggle 6.6.1's commit message
6.6.1 Updated README and many improvements in DMRG_MEASURE

(discussed and implemented through CODEX to speedup execution).

6.6.0

Toggle 6.6.0's commit message
6.6.0 Updated code with Davidson-Jacobi serial/MPI solver + wavefunct…

…ion prediction iDMRG.

6.5.0

Toggle 6.5.0's commit message
6.5.0 Code updated.

This version feature a number of improvements to speedup execution.

* A revised mpi_transpose (key in MVP operations) which wrap up communications
step. Tests have indicated about 2x gain.
* A reduced Lanczos error threshold. Unlike ED method here it is not
necessary to push error convergence so much.
* A new wavefunction prediction scheme for OBC and PBC infinite DMRG method.
It works fine with Neigen=1 NOT for Neigen>1. This is due to the fact that
Arpack currently accepts only one guess.

The last point will be solved using PRIMME with Jacobi-Davidson blocks
methods, which is now integrated in SciFortran > 4.28.0.
However this will require some non-trivial work.

6.4.1

Toggle 6.4.1's commit message
6.4.1 Fix compilation bug.

6.4.0

Toggle 6.4.0's commit message
6.4.0 new feature and possible-bug fix.

The code so far was targeting a single state (THE groundstate).
So, when degeneracies are present, this approach disregards part of
the degenerate manifold leading to possible physics inconsistencies.

The updated version automatically check for degenerate solutions, provided
the user is smart enought to set the LANC_NSTATES to a number > 1,
within a threhsold GS_DEG_THRESHOLD (set to 1d-10).
This solved the problem with apparent AFM ordering at large U in Hubbard systems
(checked for the BHZ-HubKan model).

This update involved simple changes throughout the code.

6.3.1

Toggle 6.3.1's commit message
6.3.1 Update following new version SciFortran 4.26.0 sligthly

breaking back-compatibility.

SciFortran now includes support for generic sparse_matrices.
Here we use a special local version of sparse_matrices with the same
naming convention. This required to fine tune SciFortran use.

6.3.0

Toggle 6.3.0's commit message
6.3.0 Updated Quantum Numbers input.

Merge branch 'dev_QN_shift'

The code now uses `QN_Density` and `QN_Sfhit` as main inputs to set QN.
The target QN is obtained for each lenght as:

Q(L) = int(QN_Density*L) + QN_Shift

In this way the user has full access to sectors with different QN.
There is no more distinction in `local` or `global` QN or anything like that.
We use density instead, e.g. magnetization density m for spin, total spin-occupation density n_\up and n_\down for electrons.
(we still miss orbital resolved spin-occupations n_{a\sigma} for Hubbard systems).

See the README.md for a more thorough description AND/OR check the tests.

TODO: add an examples directory

6.2.5

Toggle 6.2.5's commit message
6.2.5 Added several new measurements in DMRG_MEASURE:

* Polarization/Topological marker Z (localization marker as from Resta & Sorella).
* Structure factors from correlations C_AB(i,j) using discrete Fourier transforms
C(q) = \sum_ij exp(iq(ri-rj))<A^+_iB_j>
* Calculation of the structure factor using A_q = \sum_i exp(iqr_i)A_i
* Various interfaces to measure.

> Automatic test from CODEX using regression test:
Heisenberg and Hubbard with OBC/PBC and correlation raw/connected, dble/cmplx e
post-processing da checkpoint.