lp:~nickpapior/siesta/4.1-diag

Created by Nick Papior and last modified
Get this branch:
bzr branch lp:~nickpapior/siesta/4.1-diag
Only Nick Papior can upload to this branch. If you are Nick Papior please log in for upload directions.

Branch merges

Related bugs

Related blueprints

Branch information

Owner:
Nick Papior
Project:
Siesta
Status:
Merged

Recent revisions

760. By Nick Papior

Removed ELPA correction, bug has been reported and fix should be ready

If not, we will fix it in later commits. But ELPA should really fix this
before release.

759. By Nick Papior

Reduced memory requirement for spin-orbit calculations

We now re-use the densematrix matrices and do not allocate/deallocate
in the diag3[gk] routines. This makes them more similar to the diag[gk]
routines in interface and behaviour.

The interface parameters have also been updated to complex values.

Bug fixed wrong memory specification in writewave (only for memory tracking)

758. By Nick Papior

Reduced memory requirement for non-colinear calculations

We now re-use the densematrix matrices and do not allocate/deallocate
in the diag2[gk] routines. This makes them more similar to the diag[gk]
routines in interface and behaviour.

The interface parameters have also been updated to complex values.

Change re_alloc routine assignment in writewave to densematrix

757. By Nick Papior

Small bug-fixes and corrections from before this branch

Added print-out and quick-return when requesting band wavefunctions
for spin-orbit coupling.

Added note about neigneeded in diag*k being explicitly calculated and
hence no 2* is needed for non-colinear or spin-orbit.

Fallback the block-size when only using 1D distribution in diagonalization
routines. This is merely cosmetic to let the user know the used block-size.

Fixed an neigwanted in an rdiag call when it fails the diagonalization.

Added comments for why we can re-use the 1D matrices in a 2D distribution
when the memory requirements are equal or smaller in the 2D case.

756. By Nick Papior

Enabled a diagonalization blocksize to explicitly set it

The blocksize only gets set for 2D distributions because
we have to redistribute it there.
Hence, if the blocksize is different from the internal blocksize
the 2D distribution is default to .true., regardless of processory.
This may help certain systems where diagonalization is of highest importance.

Updated the documentation slightly.

Fixed print-out if non-compiled option is present (MRRR and ELPA).

755. By Nick Papior

Reverted the default diagonalization algorithm to D&C

Decreased tolerances for the expert drivers.

754. By Nick Papior

Removed unused codes elpa* and fixed bands and writewave calls

Removed all unused codes (elpa* codes).

Now the bands and writewave code has the correct interfaces
for the diag* routines.

753. By Nick Papior

Updated interfaces with intents

Added intents for the interfaces to make it obvious
what is input and output.

752. By Nick Papior

Enabled 1D distribution with ELPA and made sure it works

I found out that the current ELPA implementation
actually works. But only IFF I use a 2D distribution
and use all processors on the row (so grid-column == 1).
This is rather unfortunate, but is probably due to a bug
in ELPA. For now, if one requests ELPA, we force the above.

Hence, I believe it to be a bug in ELPA that it does not
work for the other distributions. I will let ELPA devs know.

Fixed a bug for expert driver in non-2D distribution.

Changed the behaviour of 2D grids. Now it only makes a
2D grid IFF it is able to split in more than 1 dimension.
I.e. Y x Z for Y > 1 and Z > 1. Otherwise it defaults to
1D distribution (but not for ELPA yet).
I.e. if the 2D distribution would be an Y x 1 or 1 x Y it makes
no sense to redistribute data for the same distribution.
However, the user may override these settings.

Updated the documentation to reflect the ELPA usage.

Fixed compilation in serial.

I have now checked all cases of runs and it should have converged.

MRRR is now the default diagonalization routine, if enabled.

Cleanup of code in diag.F90

751. By Nick Papior

Fixed bug related to the re-distribution of the 2D->1D

I had forgotten to update the descriptors for the p*gemr2d calls.

Added Diag.ProcessorY to the si001-diags test to test the layout as well.

Improved logic in the correct_input routine.

Branch metadata

Branch format:
Branch format 6
Repository format:
Bazaar pack repository format 1 (needs bzr 0.92)
This branch contains Public information 
Everyone can see this information.

Subscribers