Exciting

Descrição

De acordo com a página do Exciting, exciting é um pacote de teoria do funcional da densidade (DFT) de potencial completo, all-electron, que implementa as famílias de métodos de ondas planas aumentadas linearizadas. Pode ser aplicado a todos os tipos de materiais e permite explorar a física de elétrons do núcleo, com foco particular em estados excitados dentro da teoria de perturbação de muitos corpos.

Versões Disponíveis

  • exciting/carbon (default)

  • exciting/neon-21

Submissão de Jobs MPI

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

Importante

O comando ulimit -s unlimited é necessário para evitar problemas de pilha em cálculos grandes.

Submissão de Jobs Seriais

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

Exemplo de Arquivo de Entrada XML

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>

Cálculo de Propriedades Específicas

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

# Calcular estado fundamental primeiro
job-nanny srun -n $SLURM_NTASKS excitingmpi

# Depois calcular propriedades (se necessário em outro job)

Job Array para Varredura de Parâmetros

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}

# Modificar rgkmax no arquivo de entrada
sed "s/RGKMAX_VALUE/$RGKMAX/g" ../template.xml > input.xml

job-nanny srun -n $SLURM_NTASKS excitingmpi

Referências

Ver também