Description
As the official webpage states, SIESTA is both a method and its computer program implementation, to perform efficient electronic structure calculations and ab initio molecular dynamics simulations of molecules and solids. SIESTA's efficiency stems from a basis of localized atomic orbitals.
Among its features are
Total and partial energies.
Atomic forces and stress tensor.
Electric dipole moment, Dielectric polarization
Atomic, orbital, and bond populations (Mulliken).
Electron density, band structure, local and orbital-projected density of states
Geometry relaxation, Molecular dynamics, Phonons;
Spin polarized calculations (collinear or not).
Real-time Time-Dependent Density Functional Theory (TDDFT).
Module
SIESTA version | Module file | Requirement | Compute Partitions | CPU/GPU |
---|---|---|---|---|
5.0.1 | siesta/5.0.1 | openmpi/gcc/5.0.3 | Rocky Linux 9 | ✅ / ❌ |
Example job scripts
#!/bin/bash #SBATCH --time 12:00:00 #SBATCH --partition=cpu-clx #SBATCH --nodes=1 #SBATCH --ntasks-per-node=24 #SBATCH --cpus-per-task=4 #SBATCH --job-name=siesta module load openmpi/gcc/5.0.3 # Load siesta # Check the table above to find which module to load, depending on the version to be used module load siesta/5.0.1 # Set the number of OpenMP threads as given by the SLURM parameter "cpus-per-task" export OMP_NUM_THREADS=${SLURM_CPUS_PER_TASK} # Adjust the maximum stack size of OpenMP threads export OMP_STACKSIZE=512m # Do not use the CPU binding provided by slurm export SLURM_CPU_BIND=none # Binding OpenMP threads export OMP_PLACES=cores export OMP_PROC_BIND=close # Important: Do not use srun when SLURM_CPU_BIND=none in combination with the pinning settings defined above # Carefully check the best binding options for your case mpirun --bind-to core --map-by numa siesta