This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
howto:atat [2018/01/11 14:18] alopis |
howto:atat [2021/12/09 16:42] (current) |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== Running ATAT on Lengau | + | ====== Running ATAT (The Alloy-Theoretic Automated Toolkit) |
| - | This describes the use of ATAT which employs QE (Quantum Espresso 6.1.0). | + | [[http:// |
| + | |||
| + | |||
| + | This describes the use of ATAT on Lengau and employs QE (Quantum Espresso 6.1.0). | ||
| + | |||
| + | Please find the files at | ||
| - | Please find the files at | ||
| The user must make sure to be using one of their **subdirectories on lustre, that is / | The user must make sure to be using one of their **subdirectories on lustre, that is / | ||
| - | One needs the following files: | + | ===== One needs the following files: |
| 1. maps.pbs | 1. maps.pbs | ||
| Line 23: | Line 27: | ||
| - | One needs to edit the pbs submit script file maps.pbs appropriately: | + | ===== One needs to edit the pbs submit script file maps.pbs appropriately: |
| + | |||
| + | |||
| + | |||
| + | |||
| 1.** Choose the number of nodes that QE will run most efficiently on for your size of QM problem**. In the listed example I have specified 2 nodes, however I have not checked, and perhaps only one node might have been more efficient. | 1.** Choose the number of nodes that QE will run most efficiently on for your size of QM problem**. In the listed example I have specified 2 nodes, however I have not checked, and perhaps only one node might have been more efficient. | ||
| Line 43: | Line 52: | ||
| - | One needs to edit the file " | + | ===== One needs to edit the file " |
| + | |||
| 1. The appropriate PseudoDIR (it could remain as one used for all jobs). | 1. The appropriate PseudoDIR (it could remain as one used for all jobs). | ||
| Line 51: | Line 62: | ||
| 4. Note QE will run over all the specified nodes, while maps is likely to use one core of the first node chosen. The QE jobs appear to run sequentially, | 4. Note QE will run over all the specified nodes, while maps is likely to use one core of the first node chosen. The QE jobs appear to run sequentially, | ||
| + | |||
| + | |||
| + | <file bash maps.pbs> | ||
| + | #!/bin/bash | ||
| + | #PBS -P RCHPC | ||
| + | #PBS -N test_ATAT | ||
| + | #PBS -l select=2: | ||
| + | #PBS -l place=excl | ||
| + | #PBS -l walltime=15: | ||
| + | #PBS -q normal | ||
| + | #PBS -m be | ||
| + | #PBS -M none | ||
| + | #PBS -o / | ||
| + | #PBS -e / | ||
| + | #PBS | ||
| + | |||
| + | module purge | ||
| + | module load gcc/5.1.0 | ||
| + | module load chpc/ | ||
| + | module load chpc/ | ||
| + | module load gcc/6.1.0 | ||
| + | module load chpc/ | ||
| + | |||
| + | nproc=`cat $PBS_NODEFILE | wc -l` | ||
| + | |||
| + | export QESPRESSO=/ | ||
| + | |||
| + | pushd / | ||
| + | |||
| + | maps -d & | ||
| + | |||
| + | pollmach / | ||
| + | |||
| + | touch stop | ||
| + | </ | ||
| + | |||
| + | |||
| + | <file bash runstruct_qe> | ||
| + | |||
| + | #!/bin/bash | ||
| + | # This bash scrpit is for the interface between ATAT and Quantum-ESPRESSO v5.0 | ||
| + | # The final result will be in eV unit | ||
| + | # Produced by GAO Zhe, Mater. Sci & Eng, Seoul Nat'l Univ., S. Korea | ||
| + | # email to gaozhe1983(a)snu.ac.kr | ||
| + | |||
| + | # Set the k-points density in reciprocal space | ||
| + | KPPRA=1000 | ||
| + | |||
| + | # Set the command to run pw.x, for example, | ||
| + | # if you wanna run it with 4 cores/cpus, set it | ||
| + | # as " | ||
| + | |||
| + | #export QESPRESSO=/ | ||
| + | |||
| + | PWCOMMAND=" | ||
| + | |||
| + | # Set some calculation parameters here, which contents: | ||
| + | # cut-off energy for wave-functions and charge density; | ||
| + | # gaussian broadening parameter for smearing; | ||
| + | # especially, the directory where restore your pseudo-potential files. | ||
| + | # Definitely, you can directly set these and some other parameters | ||
| + | # in the input file-creating part. | ||
| + | ######################################################################## | ||
| + | # Recommand from the official manual of Quantum-ESPRESSO: | ||
| + | # for Norm-Conserving pseudo-potential, | ||
| + | # does not need to be setted (or, 4 times of ecutwfc). | ||
| + | # But for ultrasoft pseudo-potential, | ||
| + | # density to 8~10 times of cut-off for wavefunctions. | ||
| + | ######################################################################## | ||
| + | PseudoDIR=/ | ||
| + | CUT_WFC=50 | ||
| + | CUT_CHG=520 | ||
| + | DEGAUSS=0.5 | ||
| + | |||
| + | # Try to find the parameter setting file, which contents the | ||
| + | # information for species of elements | ||
| + | # If this file does not exist, the script will stop | ||
| + | ParamFile=/ | ||
| + | if [ ! -e $ParamFile ]; then | ||
| + | ParamFile=" | ||
| + | if [ ! -e $ParamFile ]; then | ||
| + | ParamFile=" | ||
| + | if [ ! -e $ParamFile ]; then | ||
| + | echo " Cannot find the param file qe.param, stop the code!" | ||
| + | exit 1 | ||
| + | fi | ||
| + | fi | ||
| + | fi | ||
| + | |||
| + | # Create the fist part of input file for QE v5.0 | ||
| + | cat > pwscf.in <<EOF | ||
| + | & | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | / | ||
| + | &system | ||
| + | ibrav = 0 , | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | EOF | ||
| + | |||
| + | # Find the atom number and elements number | ||
| + | # Then, write them into the input file | ||
| + | NAT=`cellcvrt -f < str.out | tail -n +7 | wc -l` | ||
| + | NTYPE=`cellcvrt -f < str.out | tail -n +7 | awk ' | ||
| + | echo " | ||
| + | echo " | ||
| + | |||
| + | # Create the temp input file, which corresponds to | ||
| + | # the second big part. After creating, it will be | ||
| + | # attached follow the former one and deleted. | ||
| + | cat > pwscf.tmp <<EOF | ||
| + | / | ||
| + | & | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | / | ||
| + | &ions | ||
| + | | ||
| + | / | ||
| + | &cell | ||
| + | | ||
| + | | ||
| + | press = 0.0 , | ||
| + | | ||
| + | / | ||
| + | CELL_PARAMETERS alat | ||
| + | EOF | ||
| + | cat pwscf.tmp >> pwscf.in | ||
| + | rm -f pwscf.tmp | ||
| + | |||
| + | # Find and write the lattice vector information | ||
| + | cat str.out | cellcvrt -c -sig=9 | tail -n +4 | head -3 >> pwscf.in | ||
| + | |||
| + | # Find and write the information for element type, mass | ||
| + | # and pseudo-potential files' name | ||
| + | echo " | ||
| + | INT=1 | ||
| + | while [ " | ||
| + | KIND=pp`cellcvrt -f < str.out | tail -n +7 | awk ' | ||
| + | grep " | ||
| + | let " | ||
| + | done | ||
| + | |||
| + | # Find and write the atoms' position to input file | ||
| + | echo " | ||
| + | cat str.out | cellcvrt -c -sig=9 | tail -n +7 | awk ' | ||
| + | |||
| + | # Find the k-points mesh, the mesh will be created | ||
| + | # by Monkhorst-Pack method | ||
| + | echo " | ||
| + | nbat=`cellcvrt -pn < str.out` | ||
| + | echo " | ||
| + | |||
| + | # Run pw.x for calculation | ||
| + | |||
| + | |||
| + | nproc=`cat $PBS_NODEFILE | wc -l` | ||
| + | |||
| + | #mpirun -np 24 $PWCOMMAND < pwscf.in > pwscf.out | ||
| + | mpirun -np $nproc $PWCOMMAND < pwscf.in > pwscf.out | ||
| + | |||
| + | # Abstract the final total energy to " | ||
| + | # in the unit of eV | ||
| + | FERy=`grep ' | ||
| + | FEeV=`echo " | ||
| + | echo " | ||
| + | |||
| + | </ | ||
| + | |||
| + | |||
| + | <file txt lat.in> | ||
| + | |||
| + | 3.155 3.155 3.155 90 90 90 | ||
| + | | ||
| + | -0.5 | ||
| + | -0.5 -0.5 0.5 | ||
| + | 0.0 0.0 0.0 Mo,W | ||
| + | </ | ||
| + | |||
| + | |||
| + | <file txt qe.param> | ||
| + | |||
| + | # The rule for make atomic_species card: | ||
| + | # set the ppXXX as the name of certain line | ||
| + | # then, write down the elemental symbol, mass | ||
| + | # and pseudo-potential name info. | ||
| + | |||
| + | ppW | ||
| + | ppMo Mo 12.011 | ||
| + | | ||
| + | </ | ||