Header Ads Widget

Ab initio Calculations Using Wien2k Code

Last Posts

10/recent/ticker-posts

How to install ElaStic 1.0 for WIEN2k

1. In a terminal, change to the home directory:
$ cd ~

($ means a bash shell in a terminal)

2. Download the ElaStic 1.0 package from the Exciting website [ http://exciting-code.org/elastic ]:
$ wget http://exciting.wdfiles.com/local--files/elastic/ElaStic_1.0.tar.gz

3. Extract the ElaStic package:
$ tar xzvf ElaStic_1.0.tar.gz

4. Export the location of ElaStic as ElaSticROOT in .bashrc:
$ gedit ~/.bashrc

At the end of the .bashrc file, add the following line (where "username" should be replaced by your account name):

export ElaSticROOT=/home/username/ElaStic_1.0

then save the changes to .bashrc.

5. Reload the .bashrc settings:
$ source ~/.bashrc

6. Enter:
$ ls -l $ElaSticROOT/README

If successful, it will list the ElaStic README file:

-rw------- 1 username username 7297 May 22  2013 /home/username/ElaStic_1.0/README

Note: The installation of adon_v1_0.tar.gz can be skipped, because WIEN2k uses its own sgroup.

Reference: README in ElaStic_1.0.tar.gz

Example with Diamond
--------------------

Refer to the ElaStic@exciting tutorial at http://exciting-code.org/beryllium-elastic

**How to setup an ElaStic 1.0 calculation for WIEN2k**

1. Create a new directory for Diamond:
$ mkdir C_2nd

2. Changed into the Diamond directory:
$ cd C_2nd

3. Create the struct file for Diamond (e.g., with WIEN2k's StructGen) or place C_2nd.struct (you can download the structure file from this link:C_2nd.struct )into the Diamond directory:
$ ls
C_2nd.struct

4. Generate the input files for distorted structures by running:
$ $ElaSticROOT/ElaStic_Setup 

See the description later in this document for ElaStic_Setup.patch.
Which DFT code would you like to apply for the calculations? 
     exciting  ---------=>  1                                     
     WIEN2k    ---------=>  2                                     
     Quantum ESPRESSO --=>  3
>>>> Please choose (1, 2, or 3): 2
     Energy  ---=>  1           
     Stress  ---=>  2    
>>>> Please choose the method of the calculation (choose 1 or 2): 1

     2nd  ---=>  2           
     3rd  ---=>  3    
>>>> Please choose the order of the elastic constant (choose 2 or 3): 2
0.0u 0.0s 0:00.00 0.0% 0+0k 0+8io 0pf+0w

     Number and name of space group: 227 (F d -3 m) [origin choice 2]       
     Cubic I structure in the Laue classification.       
     This structure has 3 independent second-order elastic constants.

>>>> Please enter the maximum Lagrangian strain 
     The suggested value is between 0.030 and 0.150: 0.05
     The maximum Lagrangian strain is 0.05

>>>> Please enter the number of the distorted structures [odd number > 4]: 11
     The number of the distorted structures is 11

5. Lists the new directories and files that the script ElaStic_Setup has generated:
$ ls
C_2nd.struct  Distorted_Parameters  Dst01  Dst02  Dst03  INFO_ElaStic  Structures_WIEN2k

6. Lists the contents of the subdirectory Dst01 that ElaStic_Setup has generated:
gavin@ubuntucomp:~/wiendata/C_2nd$ ls Dst01
Dst01_01  Dst01_02  Dst01_03  Dst01_04  Dst01_05  Dst01_06  Dst01_07  Dst01_08  Dst01_09  Dst01_10  Dst01_11

7. Change into Dst01
$ cd Dst01

8. Initialize Dst01:
$ $ElaSticROOT/ElaStic_WIEN2k_init

If needed, edit the script ElaStic_WIEN2k_init before running it. For additional details, refer to the README in $ElaSticROOT.

If error "ElaStic_WIEN2k_init: line 23: WIEN2k_init_lapw_silent: command not found" occurs, open ElaStic_WIEN2k_init:
$ gedit $ElaSticROOT/ElaStic_WIEN2k_init

and add $ElaSticROOT/ in front of WIEN2k_init_lapw_silent:

    $ElaSticROOT/WIEN2k_init_lapw_silent -b -vxc 13  -ecut -10.0  -in1_rkmax 8.0  -in2_method GAUSS  -in2_gmax 14  -in2_smear 0.01  -mix 0.1  -kgen_numk 2500  -kgen_shift 0  -inM_method PORT  -inM_tolf 0.1

ElaStic_WIEN2k_init performs an automatic batch initialization of Dst01_01, Dst01_02, ..., Dst01_10, and Dst01_11.
 Alternatively, they could be initialized manually; for example, for Dst01_01:

$ cd ..
$ cd Dst01_01
$ $ElaSticROOT/WIEN2k_init_lapw_silent

9. Repeat 7 and 8 for the other Dst directories

Dst02:
$ cd ..
$ cd Dst02
$ $ElaSticROOT/ElaStic_WIEN2k_init

Dst03:

$ cd ..
$ cd Dst03
$ $ElaSticROOT/ElaStic_WIEN2k_init
$ cd ..

**How to execute an ElaStic 1.0 calculation for WIEN2k**

10. Change into Dst01/Dst01_01
$ cd ./Dst01/Dst01_01

11. Run the calculation for Dst01/Dst01_01
$ run_lapw

12. Repeat 10 and 11 for Dst01_02, Dst01_03, ..., Dst01_10, and Dst01_11. Also, repeat for Dst02 and Dst03.
 

 

 Alternatively, use a modified version of the ElaStic@exciting-submit.sh script:

a) In a terminal, change to the home directory:
$ cd ~

b) Download Exciting boron from the Exciting website [ http://exciting-code.org/boron ]:
$ wget http://exciting.wdfiles.com/local--files/boron/exciting.boron.tar.gz

c) Extract the Exciting boron package:
$ tar xzvf exciting.boron.tar.gz

d) Create a copy of ElaStic@exciting-submit.sh called ElaStic_submit_WIEN2k.sh:
$ cp ~/exciting/tools/ElaStic@exciting-submit.sh ~/ElaStic_1.0/ElaStic_submit_WIEN2k.sh

e) Edit ElaStic_submit_WIEN2k.sh
$ gedit $ElaSticROOT/ElaStic_submit_WIEN2k.sh

There should be a line in the file that looks like:

EXECUTABLE=$EXCITINGROOT/bin/excitingser

Replace "$EXCITINGROOT/bin/excitingser" with the WIEN2k command that you want to use for the calculation.

For example, change it to:

EXECUTABLE="run_lapw"

The line copying xml files is not needed for WIEN2k and can be changed into a comment line by putting a pound sign (#) in front of it:

# cp -f $Dstn_num.xml input.xml

Steps 10, 11, 12 can then be replaced by the following:

f) Change into the C_2nd directory (replace "path-to" to where C_2nd is located on your system):
$ cd path-to/C_2nd

g) Run the calculations with:

$ $ElaSticROOT/ElaStic_submit_WIEN2k.sh 
 


**How to analyze an ElaStic 1.0 calculation for WIEN2k** 

*

  1. Create converged calculation files needed from analysis:


You need to install the package " tcsh "

 $ $ElaSticROOT/ElaStic_Save_Clean_WIEN2k

2. Execute the analyze script
$ $ElaSticROOT/ElaStic_Analyze

See the description later in this document for ElaStic_Analyze.patch.

Output files Dst01_d2E.agr, Dst01_CVe.agr, Dst02_d2E.agr, Dst02_CVe.agr, Dst03_d2E.agr, and Dst03_CVe.agr.

3. Edit ElaStic_2nd.in
$ gedit ElaStic_2nd.in

Change

Dst01     eta_max     Fit_order
Dst02     eta_max     Fit_order
Dst03     eta_max     Fit_order

to

Dst01     0.05     6
Dst02     0.05     6
Dst03     0.05     6

then save the changes.

4. Calculate the elastic constants and moduli
$ $ElaSticROOT/ElaStic_Result

See the description later in this document for ElaStic_Result.patch.

Calculated values below are from ElaStic_2nd.out (using WIEN2k 14.2 with patches [ https://github.com/gsabo/WIEN2k-Patches/tree/master/14.2 ] ).

Parameter | Calculated (GPa) | Experimental (GPa)
C11       | 1099.5           | 1076
C12       | 131.8            | 125
C44       | 589.8            | 577
B0        | 454.35           | 452

Patches for ElaStic 1.0 for WIEN2k
----------------------------------

- Place ElaStic_Analyze.patch into $ElaSticROOT
- Apply the patch with: patch -b ElaStic_Analyze ElaStic_Analyze.patch
Description: Patch to remove the error "sh: 1: ElaStic_Analyze_Energy: not found" 
when it occurs during the running of $ElaSticROOT/ElaStic_Analyze.

- Place ElaStic_Result.patch into $ElaSticROOT
- Apply the patch with: patch -b ElaStic_Result ElaStic_Result.patch
Description: Patch to remove the error "sh: 1: ElaStic_Result_Energy_2nd: not found" 
when it occurs during the running of $ElaSticROOT/ElaStic_Result.

- Place ElaStic_Setup.patch into $ElaSticROOT
- Apply the patch with: patch -b ElaStic_Setup ElaStic_Setup.patch
Description: Patch to remove the error "sh: 1: ElaStic_Setup_WIEN2k: not found" 
when it occurs during the running of $ElaSticROOT/ElaStic_Setup.

Reference: 
NB: You may download the patched copy of the code from the link below:

Patched copy

This copy ( that will be executed in batch mode ) needs to use the .machines file and put on the desktop

With this copy you don't need to change to every directory to run the calculation.

Post a Comment

5 Comments

  1. I have tried this procedure and It works well

    ReplyDelete
  2. HI SIR WHEN I START THE EXEMPLE I FOUND THIS PROBLEME
    Which DFT code would you like to apply for the calculations?
    exciting ---------=> 1
    WIEN2k ---------=> 2
    Quantum ESPRESSO --=> 3
    >>>> Please choose (1, 2, or 3): 2
    sh: 1: ElaStic_Setup_WIEN2k: not found
    CAN YOU HELP ME PLEASE

    ReplyDelete
    Replies
    1. You hace to installe the packages sh , csh , tcsh

      Delete
    2. Still not working, same problem here as Rafiq said... I want to use it with Quantum Espresso as a DFT code.

      Delete
    3. to have to use the original version because the modification is tested only on wien2k code

      Delete