Exciting

Description

According to the page of Exciting, exciting is a full-potential all-electron density-functional-theory package implementing the families of linearized augmented planewave methods. It can be applied to all kinds of materials and allows exploring the physics of core electrons, with a particular focus on excited states within many-body perturbation theory.

Available Versions

  • exciting/carbon (default)

  • exciting/neon-21

MPI Job Submission

submit_exciting_mpi.sh
#!/bin/bash
#SBATCH -J exciting_mpi
#SBATCH -N 2
#SBATCH --ntasks-per-node=28
#SBATCH -t 30-00:00:00
#SBATCH --mem-per-cpu=2G

ulimit -s unlimited

export INPUT="input.xml"
export OUTPUT="*.out *.xml"
export WAIT_CHECKPOINT="300"

module load exciting/carbon

job-nanny srun -n $SLURM_NTASKS excitingmpi

Important

The ulimit -s unlimited command is necessary to avoid stack problems in large calculations.

Serial Job Submission

submit_exciting_serial.sh
#!/bin/bash
#SBATCH -J exciting_serial
#SBATCH -N 1
#SBATCH -n 1
#SBATCH -t 7-00:00:00
#SBATCH --mem=8G

ulimit -s unlimited

export INPUT="input.xml"
export OUTPUT="*.out *.xml"

module load exciting/carbon

job-nanny excitingmpi

Example XML Input File

input.xml
<?xml version="1.0" encoding="UTF-8"?>
<input>

  <title>Exciting calculation for silicon</title>

  <structure speciespath="/opt/gridunesp/dist/exciting/carbon/species">
    <crystal scale="10.20">
      <basevect> 0.5 0.5 0.0 </basevect>
      <basevect> 0.5 0.0 0.5 </basevect>
      <basevect> 0.0 0.5 0.5 </basevect>
    </crystal>
    <species speciesfile="Si.xml">
      <atom coord="0.00 0.00 0.00" />
      <atom coord="0.25 0.25 0.25" />
    </species>
  </structure>

  <groundstate
     ngridk="4 4 4"
     rgkmax="7.0"
     gmaxvr="20.0"
     xctype="GGA_PBE_SOL"
     epsengy="1.0e-6"
     maxiter="200"
     />

  <properties>
    <dos nsmdos="2" ngridk="10 10 10" />
    <bandstructure>
      <plot1d>
        <path steps="100">
          <point coord="0.5  0.5  0.5" label="L" />
          <point coord="0.0  0.0  0.0" label="G" />
          <point coord="0.5  0.0  0.0" label="X" />
          <point coord="0.5  0.5  0.5" label="L" />
        </path>
      </plot1d>
    </bandstructure>
  </properties>

</input>

Specific Properties Calculation

submit_exciting_properties.sh
#!/bin/bash
#SBATCH -J exciting_props
#SBATCH -N 2
#SBATCH --ntasks-per-node=28
#SBATCH -t 48:00:00
#SBATCH --mem-per-cpu=2G

ulimit -s unlimited

export INPUT="input_properties.xml"
export OUTPUT="*.out *.xml"

module load exciting/carbon

# Calculate ground state first
job-nanny srun -n $SLURM_NTASKS excitingmpi

# Then calculate properties (if needed in another job)

Job Array for Parameter Scan

submit_exciting_array.sh
#!/bin/bash
#SBATCH -J exciting_array
#SBATCH --array=1-5
#SBATCH -N 1
#SBATCH --ntasks-per-node=28
#SBATCH -t 24:00:00
#SBATCH --mem-per-cpu=2G

ulimit -s unlimited

export INPUT="template.xml"
export OUTPUT="run_${SLURM_ARRAY_TASK_ID}/"

module load exciting/carbon

RGKMAX_VALUES=(5.0 6.0 7.0 8.0 9.0)
RGKMAX=${RGKMAX_VALUES[$SLURM_ARRAY_TASK_ID-1]}

mkdir -p run_${SLURM_ARRAY_TASK_ID}
cd run_${SLURM_ARRAY_TASK_ID}

# Modify rgkmax in input file
sed "s/RGKMAX_VALUE/$RGKMAX/g" ../template.xml > input.xml

job-nanny srun -n $SLURM_NTASKS excitingmpi

References

See also