Skip to content

Commit

Permalink
Updated after publication of the unfolding-density operator paper, Ph…
Browse files Browse the repository at this point in the history
…ys. Rev. B. 91, 041116(R) (2015).
  • Loading branch information
Paulo V C Medeiros committed Jan 28, 2015
1 parent e0f9a55 commit da7bde2
Show file tree
Hide file tree
Showing 8 changed files with 386 additions and 238 deletions.
36 changes: 16 additions & 20 deletions README
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
======================================================================================
BandUP: Band Unfolding code for Plane-wave based calculations
Please visit www.ifm.liu.se/theomod/compphys/band-unfolding
Please visit www.ifm.liu.se/theomod/compphys/band-unfolding
======================================================================================
Copyright (C) 2013, 2014 Paulo V. C. Medeiros - [email protected]
Copyright (C) 2013-2015 Paulo V. C. Medeiros - [email protected]

BandUP is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
Expand All @@ -23,7 +23,8 @@ Plane-wave codes currently supported by BandUP
* At the moment, BandUP can parse wavefunctions generated by:
* VASP
* Quantum ESPRESSO
* Do contact me if you would like to have support to the pw code you use.
* Feel free to contact me if you use another plane-wave code and would like to have
support to it added in BandUP
* As usual, I'll do my best to help you out.
* Of course, you can also collaborate by writing/sending me a routine to read
the wavefunctions produced by your code. If you already have a routine, then
Expand All @@ -38,58 +39,54 @@ How to compile BandUP
* This should work in most Unix environments with Intel compilers installed.
* Do check, however, the system requirements below if you have any problem.


======================================================================================
System requirements:
======================================================================================
* Preferably Linux
* Might work in other environments based on Unix
* Fortran 90 and C compilers
* Preferably Intel compilers (ifort and icc), version 12.1.4 (or higher)
* Python 2.7 (or higher) for the post-processing utilities
* Python 2.7.x for the post-processing utilities
* You will need to have the following packages installed
(you probably already have most of them):
* numpy
* scipy
* matplotlib
* argparse
* heapq
* Please let me know if I've forgotten to list any other package!
* Optional: PyQt4
* PyQt4 is needed only if you want to use the graphical user interface
(GUI) version of the plotting tool.
* If the GUI doesn't work with you, you can keep using the plotting tool
in the command line, just as usual.

======================================================================================
Publications:
======================================================================================
* If you use BandUP (or any part or modified version of it) in your work, please:
* State that you've used the BandUP code (or a modified version fo it)
* Read and cite the following papers (and the appropriate references therein):

>>> Phys. Rev. B 89, 041407(R) (2014) <http://dx.doi.org/10.1103/PhysRevB.89.041407>
>>> Phys. Rev. B 91, 041116(R) (2015) <http://dx.doi.org/10.1103/PhysRevB.91.041116>


======================================================================================
Tips:
======================================================================================
* It might be handy to include the BandUP_bin folder in your PATH. By doing so,
you'll be able to use BandUP in whataver folder you're working at.
* BandUP accepts some optional command line arguments and flags. To know them,
run the code with the flag '-help'.
* Since the plotting tool has a lot of different options, I've given it a GUI:
utils/post_unfolding/plot/plotting_tool_GUI/BandUP_plot_GUI.pyw
You'll find a symlink to it (bandup_plot) in the BandUP_bin folder.
* The GUI requires that you have PyQt4 in you python install.
* If you move the BandUP_plot_GUI.pyw file, move the BandUP_plot_GUI.ui too.

* It might be handy to include the directory BandUP_bin in your PATH. By doing so,
you'll be able to use BandUP in whataver folder you're working at.


======================================================================================
Please mind that:
======================================================================================
* If you use BandUP (or any part of it) in your work, please state that you've
used the BandUP code (or a modified version fo it), and read and cite our paper:
>>> Phys. Rev. B 89, 041407(R) (2014).

* Additionally, if you perform unfolding along with calculations employing spinor
eigenstates (noncollinear magnetism, spin-orbit coupling, etc), then you should
also read and cite our paper that describes the methodology used:
>>> arXiv:1409.5343, Submitted (2014) <http://arxiv.org/abs/1409.5343>

* Although I've tried to make the compilation as simple as possible - and it has
indeed worked fine so far with many combinations of compilers, computers, and
operating systems, I cannot guarantee that it will always work smoothly.
Expand All @@ -100,7 +97,6 @@ Please mind that:
using other versions of ifort/icc (and *maybe* even other non-intel compilers),
but I cannot, unfortunatelly, guarantee that it will work in 100% of the cases.
* Of course, I'll try my best to help you out in case you do have problems.
* The support to two-component spinor-like wavefunctions is still under test.
* Last, but not least: Always check the results with a critical eye, specially
if they don't look the way you think they are supposed to. Please notify me if
weird stuff happens and you think it's the code's fault!
Expand Down
11 changes: 2 additions & 9 deletions src/band_unfolding_routines_mod.f90
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
!! Copyright (C) 2013, 2014 Paulo V. C. Medeiros
!! Copyright (C) 2013-2015 Paulo V. C. Medeiros
!!
!! This file is part of BandUP: Band Unfolding code for Plane-wave based calculations.
!!
Expand All @@ -15,14 +15,6 @@
!! You should have received a copy of the GNU General Public License
!! along with BandUP. If not, see <http://www.gnu.org/licenses/>.

!/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! module band_unfolding
! ===================
! This module contains the routines that are directly related to the unfolding
! of the bands.
!/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


!===============================================================================
! MODULE: band_unfolding
!
Expand Down Expand Up @@ -625,6 +617,7 @@ end subroutine get_delta_Ns_for_output
subroutine calc_rho(rho, delta_N, pc_ener, delta_e, wf, &
selected_coeff_indices, std_dev, add_elapsed_time_to)
!! Copyright (C) 2014 Paulo V. C. Medeiros
!! rho is the 'unfolding-density operator', defined in Phys. Rev. B. 91, 041116(R) (2015)
!! Please make sure that delta_N /= 0 before calling this subroutine
implicit none
complex(kind=kind_cplx_coeffs), dimension(:,:), allocatable, intent(out) :: rho
Expand Down
3 changes: 1 addition & 2 deletions src/constants_and_types_mod.f90
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
!! Copyright (C) 2013, 2014 Paulo V. C. Medeiros
!! Copyright (C) 2013-2015 Paulo V. C. Medeiros
!!
!! This file is part of BandUP: Band Unfolding code for Plane-wave based calculations.
!!
Expand All @@ -15,7 +15,6 @@
!! You should have received a copy of the GNU General Public License
!! along with BandUP. If not, see <http://www.gnu.org/licenses/>.


!===============================================================================
! MODULE: constants_and_types
!
Expand Down
22 changes: 14 additions & 8 deletions src/general_io_mod.f90
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
!! Copyright (C) 2013, 2014 Paulo V. C. Medeiros
!! Copyright (C) 2013-2015 Paulo V. C. Medeiros
!!
!! This file is part of BandUP: Band Unfolding code for Plane-wave based calculations.
!!
Expand Down Expand Up @@ -36,17 +36,23 @@ module general_io
file_for_pc_reduced_to_prim_cell, file_for_SC_reduced_to_prim_cell

integer, parameter :: str_len=256
character(len=30), parameter :: package_version="2.5.0 (BETA), 2014-12-12"
character(len=str_len), parameter :: file_header_BandUP="# File created by BandUP - Band Unfolding code for Plane-wave based calculations, &
V"//trim(adjustl(package_version)), &
file_header_BandUP_short="# File created by BandUP, V"//trim(adjustl(package_version)), &
file_for_pc_reduced_to_prim_cell="BandUP_suggestion_of_pc_for_your_reference_unit_cell.POSCAR", &
file_for_SC_reduced_to_prim_cell="BandUP_suggestion_of_smaller_SC_based_on_your_input_SC.POSCAR"
character(len=30), parameter :: package_version="2.5.0, 2015-01-28"
character(len=str_len), parameter :: file_header_BandUP="# File created by BandUP - &
Band Unfolding code for &
Plane-wave based calculations, &
V"//trim(adjustl(package_version)), &
file_header_BandUP_short="# File created by BandUP, &
V"//trim(adjustl(package_version)),&
file_for_pc_reduced_to_prim_cell="BandUP_suggestion_of_pc_&
for_your_reference_unit_&
cell.POSCAR", &
file_for_SC_reduced_to_prim_cell="BandUP_suggestion_of_&
smaller_SC_based_on_your_&
input_SC.POSCAR"

!! Functions and subroutines
CONTAINS


function available_io_unit(min_unit,max_unit) result(unit_num)
! Returns a number unit_num which can be safely used in statements like
! open(file=unit_num)
Expand Down
Loading

0 comments on commit da7bde2

Please sign in to comment.