We may need to install following tools and libraries. It dependes on systems. Here is a case of ubuntu and gfortran.
sudo apt-get update
sudo apt-get install git gitk gfortran mpich csh bash tcsh gawk emacs numpy matplotlib
sudo apt-get -y install intel-mkl
Some memos here.
- etags is automatically installed when you install emacs in the latest ubuntu.
- We need python 3 (usually already in ubuntu. Type \>python (ctrl+D for quit)).
- git makes things easier. Especiall for version up. >git diff at ecalj/ shows orginal and your modification.
git clone https://github.com/tkotani/ecalj.git # Get source code
After you did the above git clone command, a directory ecalj/ appears. We can check history of ecalj by “>gitk –all” at ecalj/ directory after you got git clone.
Do
FC=gfortran ./InstallAll
at ecalj/. If you see “OK! All passed!”, you have succeeded. (FC=foobar can be ifort or nvfortran) In advance, set BINDIR in the InstallAll. We copy all binaries to BINDIR.
Set command path BINDIR. For example, write
PATH="~/bin/:$PATH"
in your .bashrc.
We have to install VESTA and make sure that ‘viewvesta’ command works. You need to read GetSyml/README.org to install getsyml.py. It is useful to get Brillowin zone plot and symmetry line plot in it. Generated syml.* is used for the band plot in ecalj. (syml is a little strange… we will fix)
When InstallAll have finished, we have all required binaries and shell scripts in your ~/bin/ directory, or somewhere else where BINDIR specified in InstallAll
If something wrong, run “./CleanAll” at ecalj/ and redo installation. Look into CleanAll.
Usually we use -O2 in CMakeList.txt. But we may need to use -O1 or -O0 for some files to avoid compilar bugs. We may set some conditional compilation setteings.
But I don’t know cucrrent status.
SRC/ ├── TestInstall : Root of Install test ├── exec : CMakeLists.txt and scripts ├── main : All main *.f90 ├── subroutines : All subrouitnes. *.f90. main_foobar.f90 are main routines, essentially. └── wanniergw : Maxloc Wannier related source codes *.f90 Wannier part is separated because we will throw it away, because we are moving to MTO-based localized basis (MLO).
All fortran codes are in main/ subrouitnes/ and wanniergw/ We have a CMakeLists.txt which generates Makefile. Look into it.
We have a test system with make at ecalj/SRC/TestInstall. Look into Makefile, which is the main contrller for test. At each directory such as TestInstall/copt/, we have makefile, which is called from ecalj/SRC/TestInstall/Makefile
Set your starting files and result for test at TestInstall/foobar/*, and write TestInstall/foobar/makefile. And register the test to TestInstall/Makefile.
To test all of binaries, just do >make all >make lmall !tests only LDA part. >make gwall !tests only GW part.