Skip to content
The quasiparticle self-consistent GW method in the PMT method (LAPW+LMTO+Lo). See the;
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
Document org mode document started. May 31, 2019
GetSyml Add MATERIALS/ Improve MTOHamiltonian extraction May 9, 2019
MATERIALS GaAsEPS/ Si_dopoing_sample/ May 31, 2019
StructureTool Structure tool was updated. (including a makelink file and Install fi… Jul 22, 2016
fpgw Use ifile_handle() to open files. Fixing. May 31, 2019
.gitignore lm72-gga files are taken. this versio esstially pass make check. May 29, 2010
CleanAll.gfortran Rename InstallAll and CleanAll (add -v options). Nov 23, 2014
CleanAll.ifort Rename InstallAll and CleanAll (add -v options). Nov 23, 2014
CleanAll.ifort.cmd Rename InstallAll and CleanAll (add -v options). Nov 23, 2014
CleanAll.ifort12 (option is -O1). Use this for rcgw. Apr 30, 2015
InstallAll.gfortran.centos7.1 Structuretool is being updated. Jul 22, 2016
InstallAll.ifort.rcgw (option is -O1). Use this for rcgw. Apr 30, 2015
InstallAll.ifort12 Structuretool is being updated. Jul 22, 2016
InstallAll.pgi Structuretool is being updated. Jul 22, 2016 Add QSGW80 prescription to May 17, 2019

ecalj — a package for the first-principles electronic structure calculations.

This is (org-mode in emacs) at Email to

What can we do in ecalj package?

  1. All electron full-potential PMT method, where the PMT method means A mixed basis method of two kinds of augmented waves, that is, LAPW+LMTO. Relaxiation of atomic positions is possible at the GGA/LDA level. (Not automatic for lattice defermation yet). Our recent research shows that very localized MTOs (damping factor are ∼ 1 a.u), together with APW (cutoff is ≈ 2 to 3 Ry) works well to get reasonable convergences. (PMT formalism) (PMT applied to diatomic molecules). As we can use automatic settings of MTOs paremeters all the time, we don’t need to be bothered with the setting of them. The PMT method method is promising since it can connect physics and chemistry, and virtually it can be a very efficient method (currenty the ability is limited by the implementetion in ecalj).

    In principle, it is possible to perform reasonable calculations just from atomic structures and very minimum setting. (For QSGW for 4f electrons, automatically-generated ctrl file may not work). We have document included about how to confirm calculations to be publicaiton quality.

  2. The PMT-QSGW method, that is, the Quasiparticle self-consistent GW method (QSGW) based on the PMT method Thanks to PMT, we can perform QSGW with very minimum settings by hands. Easy to use. After converged, we can easily make band plots of the QSGW calculaiton without the Wanneir interpolation, because, roughly speaking, such an interpolation scheme is internally built in. In addion, we can calculate dielectric functions, spectrum function of the Green’s functions and so on (some of functions are obsolate. Need fixing).

    For paralellized calculations, we currently mainly have k-paralell only. In addition, memory distribution is not yet so much. These may cause some problems to handle primitive cells including many atoms. Roughly speaking, our current PMT-QSGW is applicable upto 16 atoms a cell (light atoms are easier to handle). (Formulation of PMT-QSGW method) (PMT-QSGW applied to a variety of insulators)

    We have so much room to make PMT and QSGW very efficient.

  3. The Wannier function generators and effective model generators (Maxloc Wannier and effective interaction between Wannier funcitons). This is adopted from codes by Dr.Miyake,Dr.Sakuma, and Dr.Kino. See fpgw/Wannier/README. cRPA is implemented, mRPA will be implemented.
  4. Utilitys are included, to write crystal structures. For example, a converter between POSCAR(VASP) and our crystal strucrue file ‘ctrls.*’ are included.


  • For publications, make a citation cleary to this homepage such as;

[1] ecalj package at Its one-body part is developed based on the Questaal at Its GW part is originally taken from ecalj. in the references on the same footing of other papers.

  • Except commercial use, you can freely use and modify this package for your purpose.

You can re-distribute your modified package as long as you cited our ecalj package. For commercial use, ask to takaokotani.

Automatic installation script and test


Manuals and Samples of ecalj

We have presentations of ecalj in file:Document/ Especially, file:Document/Manual/ecaljmanual.pdf is the main document. Varieties of samples are at file:MATERIALS/ (some of them are obsolate).

How to perform paper quality calculations with minimum costs?


Usage minimum. QSGW for Si

See file:Document/Manual/ecaljmanual.pdf Here I show its very minimum. In Japanese, see (and others. Use search engine.)

(1) Write structure file by hand (you can have ctrls from POSCAR(VASP) with vasp2ctrl in ecalj/StructureTool/.)

(2) conver to by si –nk=6 (without argument, it shows help). Then you have default (rename to

(3) Run “lmfa si” to prepare atom.

NOTE: If you like to skip them, run ./ Si at /home/takao/ecalj/MATERIALS. >cd Si >cp ../ >job_band_nspin1 si This shows you band by LDA. To generate, we can use ecalj/GetSyml/ When it is correctly installed (see below), $getsyml si should generate a from You can edit it and run job_band.

(4) For PMT-QSGW, make GWinput.tmp by mkGWIN_v2 si. Copy GWinput.tmp as GWinput. (you supply three numbers for the command mkGIWN_V2.)

(5) Then run a script gwsc, e.g. “gwsc 2 si -np 3” (2+1 iteration with 3 nodes).

(6) To continue calculation do “gwsc 5 si -np 3” again. (To start, you need QGpsi ESEAVR When you start from these files, 0th iteration is skipped —thus we have just five iteration.

(7) For band, dos, and pdos plot, we have scripts which almost automatically makes these plot in gnuplot. Thus easy to modify these plots at your desposal.

Structure tool (Brillowin zone and symmetry lines writer).

In any calculations, we first need to supply crystal structure correctly. In the case of ecalj, we write it ctrls.*. All calculaitons can be performed from it.

For this purpose, we have converters between POSCAR (VASP’s crystal structure file) and ctrls.*(that for ecalj). In addition, we have a simple script to invoke crystal strucrure viewer, usually VESTA. It is in file:Structure/tool/.

Furthermore, we have a tool to generate BZ and symmetry lines on it for band plot. The symmetry line is written into syml.* and used for the band plot mode, job_band.

Install the viever

Here we use VESTA at Download it, and expand it to a directory. VESTA can handle kinds of format of crystal structure.

Then make a softlike by > ln -s ~/ecalj/StructureTool/ ~/bin/viewvesta > ln -s ~/ecalj/StructureTool/ ~/bin/ctrl2vasp > ln -s ~/ecalj/StructureTool/ ~/bin/vasp2ctrl

With this procedure we can run command viewvesta, ctrl2vasp, vasp2ctrl from console as long as you have ~/bin/ in the command search path. In my case, .bashrc have a line export PATH=$HOME/bin:$HOME/VESTA-x86_64:$PATH

It depends on your machine. (after editing .bashrc, you have to do “source ~/.bashrc” to reflect changes).

Set the variable of VESTA=, at the begining of ~/ecalj/StructureTool/ to let it know where is VESTA.

Symmetry line finder.

This is to generate symmetry lines. syml.* from ctrl.* in ecalj/GetSyml/ In the directory, we have, which is based on the seekpath See Lincence.txt in it. Folllowing citations are required. 1.Y. Hinuma, G. Pizzi, Y. Kumagai, F. Oba, I. Tanaka, Band structure diagram paths based on crystallography, Comp. Mat. Sci. 128, 140 (2017) 2.You should also cite spglib that is an essential library used in the implementation.

How to do version up?

Be careful to do version up. It may cause another problem. But it is not so difficult to move it back to original version if you use git. An important things is keeping your changes by yourself. Especially your own* files (see InstalAll.ifort).

>cd ecalj >git log This shows what version you use now.

>git diff > gitdiff_backup This is to save your changes added to the original (to a file git_diff_backup ) for safe. I recommend you do take git diff >foobar as backup. >git stash also move your changes to stash.

>git checkout -f CAUTION!!!: this delete your changes in ecalj/. This recover files controlled by git to the original which was just downloaded.

>git pull This takes all new changes.

I think it is recommended to use >gitk –all

and read this document. Difference can be easily taken, e.g. by >git diff d2281:README 81d27:README (here d2281 and 81d27 are several digits of the begining of its version id). >git show 81d27:README is also useful.

History (not maintained well).

. May 2019: org documentaion started. Use ifile_handle(). . March 2019: this document is cleaned up slightly . March 2016: new histgram bin m_freq.F (HistBin_ratio and HisBin_dw are used to specify new mesh. . March 2016: wklm(1) is only used (only f_L for l=m=0 is used. See Eq.28 in JPSJ83,094711(2014).)


For 4f, we need modification to GWinput.tmp

( ask to t.kotani. We have a memo to treat 4f)

(for previous users): known bug(or not) for spin susceptibility mode

(This mode is now obsolate because we are switching to a new method with localized basis for spin susceptibility.) T.Kotani thinks epsPP\_lmfh\_chipm branch may/(or may not) have a bug (because of symmetrization). The bug may be near

if (is==nspinmx) then 
  call x0kf_v4hz(npm,ncc,... 

in fpgw/main/hx0fp0.m.F (This bug may be from a few years ago, after I implemented EIBZ mode). I think “if (is==nspinmx.or.chipm) then” may be necessary especially for cases with more than two atoms in the cell (thus fe\_epsPP\_lmfh test may not work for this case…) A possible test is by removing symmetrization—> use eibzsym=F.

You can’t perform that action at this time.