[Wannier] Exclude-Bands & Checkpoint

Jonathan Yates jonathan.yates at materials.ox.ac.uk
Thu Sep 4 19:25:19 CEST 2014


Andrew,

 The exclude_bands keyword doesn’t work in quite the way you want it to. It is used to tell the ab-initio code to exclude those bands from the calculation of the overlap and projection matrices. 

 If you wanted to exclude the lower three bands you could set the bottom of the outer energy window (dis_win_min) to be above the energy of the 3rd band. Of course this only works if the top of the 3rd band is below the bottom of the 4th band. If this isn’t the case you would need to either edit the mmn file yourself to remove the bands, or put a little hack into W90.

 W90 should have probably detected the problem and given a more informative warning message - I’ll add this to the list of things to fix.

Jonathan
 
 

On 4 Sep 2014, at 14:33, Andrew Buckley <andrew.buckley at postgrad.curtin.edu.au> wrote:

>  
> Hi all,
> 
> I'm running Wannier90-2.0.0 in the post-processing mode (no ab initio code involved).  My goal is to extract the unitary matrix "u_matrix" Wannier90 finds to minimise the spread functional for the input Bloch states.  I'm using this matrix to operate on a set of phonon-eigenvectors (delocalised -> localised).  More specifically, I want the u_matrix for a case where 3 Bloch states (the translational phonons) have been excluded (not mixed with the other Bloch states in the Wannierisation).
> 
> How I get the u_matrix:  I have used the w90chk2chk.x executable and the -export option to output the u_matrix to a seedname.chk.fmt file.  This worked when I did not exclude any bands.
> 
> My problem:  When I put "exclude_bands : 1,2,3" in the seedname.win file, the wannier90.x executable runs without error (though results appear dubious), but running w90chk2chk.x thereafter produces a segmentation fault.  Here is the error.  The italics indicate my debugging write statements I've added to w90chk2chk.F90.
> 
> "
> $ ../../w90chk2chk.x -export graphene
>  Finished get seedname
>  Got to before consistency checks
>  Dealt with num_bands fine
>  Read number of excluded bands
>  It was:           3
> Program received signal SIGSEGV: Segmentation fault - invalid memory reference.
> "
> 
> I think this means that it failed at the line:
>     read(chk_unit) (exclude_bands(i),i=1,num_exclude_bands) ! Excluded bands
> The log file has no information other than "Reading information from file graphene.chk :".
> 
> Advice?  I'm not sure why this happens, or even if excluding the first 3 "bands" will result in an appropriate unitary matrix for my problem.  
> 
> Extra information:  Attached are my .win, .nnkp, .mmn, .wout, .chk and .log files - perhaps I've missed something obvious.  
> Translations:  the transformed translational eigenvectors must remain translations.  That is, all entries in a translational eigenvector must remain equal to each other.
> 
> Yes, I'm new to running Wannier90, and I recognise that it's not built for "Wannierising" phonons, but I'm hoping that I can use it just to obtain the unitary transformation.
> 
> Any advice would be much appreciated.
> Thanks a lot,
> Andrew​
> 
> 
> 
> 
> 
> 
> 
> 
> 
> <graphene.chk><graphene.mmn><graphene.nnkp><graphene.win><graphene.wout><w90chk2chk.log>_______________________________________________
> Wannier mailing list
> Wannier at quantum-espresso.org
> http://mailman.qe-forge.org/cgi-bin/mailman/listinfo/wannier



More information about the Wannier mailing list