ESPResSo

Descrição

De acordo com a documentação do ESPResSo, ESPResSo (Extensible Simulation Package for Research on Soft Matter) é um pacote de software altamente versátil para realizar e analisar simulações de dinâmica molecular de muitos corpos, usado em física de matéria mole, química e biologia molecular.

Versões Disponíveis

  • espresso/3.3.1 (default)

Carregando o Módulo

# Carregar ESPResSo
module load espresso/3.3.1

# Verificar instalação
Espresso -h

Submissão de Jobs Seriais

submit_espresso_serial.sh
#!/bin/bash
#SBATCH -J espresso_serial
#SBATCH -N 1
#SBATCH -n 1
#SBATCH -t 05:00:00
#SBATCH --mem=4G

export INPUT="simulation.tcl"
export OUTPUT="*.out *.dat"

module load espresso
job-nanny Espresso simulation.tcl

Submissão de Jobs MPI

submit_espresso_mpi.sh
#!/bin/bash
#SBATCH -J espresso_mpi
#SBATCH -N 2
#SBATCH --ntasks-per-node=28
#SBATCH -t 24:00:00
#SBATCH --mem-per-cpu=2G

export INPUT="simulation.tcl"
export OUTPUT="*.out *.dat"

module load espresso

job-nanny srun -n $SLURM_NTASKS Espresso simulation.tcl

Exemplo de Script Tcl

simulation.tcl
# Sistema básico de polímeros
set n_part 100
set box_l 10.0

# Configurar sistema
setmd box_l $box_l $box_l $box_l
setmd periodic 1 1 1

# Criar partículas
for {set i 0} {$i < $n_part} {incr i} {
    part $i pos [expr rand()*$box_l] [expr rand()*$box_l] [expr rand()*$box_l]
}

# Configurar interações
inter 0 0 lennard-jones 1.0 1.0 1.12246 0.25 0.0 0.0

# Termalização
setmd time_step 0.01
setmd skin 0.4
thermostat langevin 1.0 1.0

# Minimização
integrate 1000

# Produção
for {set i 0} {$i < 10} {incr i} {
    integrate 1000
    puts "Energia: [analyze energy total]"
}

Simulação com LB (Lattice Boltzmann)

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

export INPUT="lb_simulation.tcl"
export OUTPUT="*.out *.dat"

module load espresso

job-nanny srun -n $SLURM_NTASKS Espresso lb_simulation.tcl
lb_simulation.tcl
# Lattice Boltzmann com partículas
set box_l 20.0
setmd box_l $box_l $box_l $box_l

# Criar fluido LB
lbfluid gpu grid 1.0 dens 1.0 visc 3.0 tau 0.01

# Adicionar partículas coloidais
set n_col 10
for {set i 0} {$i < $n_col} {incr i} {
    part $i pos [expr rand()*$box_l] [expr rand()*$box_l] [expr rand()*$box_l] \
         type 0 radius 1.0
}

# Acoplamento partícula-fluido
lbbounce 0 1

# Integração
integrate 10000

Job Array para Varredura de Parâmetros

submit_espresso_array.sh
#!/bin/bash
#SBATCH -J espresso_array
#SBATCH --array=1-5
#SBATCH -N 1
#SBATCH -n 1
#SBATCH -t 12:00:00
#SBATCH --mem=8G

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

module load espresso

# Parâmetros para varredura
TEMPS=(1.0 1.5 2.0 2.5 3.0)
TEMP=${TEMPS[$SLURM_ARRAY_TASK_ID-1]}

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

# Modificar temperatura no script
sed "s/TEMPERATURA/$TEMP/g" ../template.tcl > simulation.tcl

job-nanny Espresso simulation.tcl

Referências

Ver também