Instalando o SIESTA no Linux automaticamente

Publicado por Iago Lira (última atualização em 10/10/2017)

[ Hits: 6.950 ]

Homepage: https://notabug.org/iagolira/

Download 6474.

Download 1481214382.install-siesta.sh (versão 2)

Download 1482896417.install-siesta.sh (versão 3)

Download 1501031893.install-siesta.sh (versão 4)

Download 1504456979.install-siesta.sh (versão 5)




Resolvi criar um script para instalação automatizada do programa SIESTA, pois para um iniciante, a mesma é muito complicada. Além disso, esse script proporciona que o usuário aprenda a compilar o SIESTA com o mesmo.

O SIESTA é um pacote para realizar cálculos de Estrutura Eletrônica, cálculos Ab Initio  e de Dinâmica Molecular.

Em outras palavras, é um Software de Modelagem Molecular, desenvolvido por uma equipe envolvendo várias Universidades e Centros de Pesquisa, e chefiada pelo Prof. Dr. Emilio Artacho, da Universidade de Cambridge:

http://www.phy.cam.ac.uk/directory/artachoe
http://departments.icmab.es/leem/siesta/
http://departments.icmab.es/leem/siesta/About/team.html
https://psc.edu/index.php/user-resources/software/siesta
http://flex.phys.tohoku.ac.jp/texi/siesta-2.0.2-manual.pdf

  



Versões atualizadas deste script

Versão 2 - Enviado por maxshu em 08/12/2016

Changelog: O "script" anterior tinha uma linha com o diretório das "libraries" errada.

Download 1481214382.install-siesta.sh


Versão 3 - Enviado por Iago Lira em 28/12/2016

Changelog: Corrigi alguns bugs e fiz algumas melhorias (instalação do executável no diretório /usr/bin). Com esta correção basta digitar no terminal:

siesta < file.fdf > file.out

Download 1482896417.install-siesta.sh


Versão 4 - Enviado por Iago Lira em 25/07/2017

Changelog: Nesta nova edição incluí a atualização das novas versões do SIESTA (in Launchpad).

Download 1501031893.install-siesta.sh


Versão 5 - Enviado por Iago Lira em 03/09/2017

Changelog: Adicionei "--enable-mpi" para execução em paralelo com o mpi.

Download 1504456979.install-siesta.sh


Esconder código-fonte

#!/bin/bash
#+-----------------------------------+
#| Autor: Francisco Iago Lira Passos |
#| Data: 02-08-2016                  |
#| Modificado em: 25-07-2017         |
#+-----------------------------------+
#==================================================================================================
export site="http://departments.icmab.es/leem/siesta/CodeAccess/Code/downloads.html"
export newsite="https://launchpad.net/siesta/+download"
export sited="https://departments.icmab.es/leem/siesta/CodeAccess/Code"
export user=$(users | sed 's/^.\{7\} //')
export dirs

clear
echo "
===================================================================================================
=   ______  __    ___  ______   _______   _____  ___      ___       ______  __    ___  ________   =
=  |_    _| | \   | | |  __  | |__   __| |  _  | | |      | |      |_    _| | \   | | |  ______|  =
=    |  |   |  \  | | | |  |_|    | |    | |_| | | |      | |        |  |   |  \  | | | |         =
=    |  |   | | \ | | | |____     | |    |  _  | | |      | |        |  |   | | \ | | | |  ____   =
=    |  |   | |\ \| | |____  |    | |    | | | | | |      | |        |  |   | |\ \| | | | |__  |  =
=   _|  |_  | | \   |  ____| |    | |    | | | | | |____  | |____   _|  |_  | | \   | | |____| |  =
=  |______| |_|  \__| |______|    |_|    |_| |_| |______| |______| |______| |_|  \__| |________|  =
=                      ______   ______   ______   ______   _______   _____                        =
=                     |  __  | |_    _| |    __| |  __  | |__   __| |  _  |                       =
=                     | |  |_|   |  |   |  |     | |  |_|    | |    | |_| |                       =
=                     | |____    |  |   |  |_    | |____     | |    |  _  |                       =
=                     |____  |   |  |   |   _|   |____  |    | |    | | | |                       =
=                      ____| |  _|  |_  |  |___   ____| |    | |    | | | |                       =
=                     |______| |______| |______| |______|    |_|    |_| |_|                       =
===================================================================================================
"
read -p "Enter the installation directory (ex: /usr/local/lib): " dirs
read -p "Enter the compiler (ex: gfortran): " compiler
read -p 'Enter the "liblapack.a/librefblas.a" directory: ' dirl

echo "========================================"

#==================================================================================================
################# NEW FILES ##################
KEYWORDS=("siesta-" "tgz")
IFS=$'\n'
#dir1
#sed 's/.*siesta-//g; s/.tar.*//g; s/.tgz//; s/-.*//'
#dir2
#sed 's/.*siesta-//g; s/.tar.*//g; s/.tgz//'
# https://launchpad.net/siesta/$pasta1/$pasta2/+download

wget $newsite --no-check-certificate -q -O - | grep "${KEYWORDS[*]}" |\
 sed 's/">.*//g; s/.*\///g; /pdf/d; /html/d; s/.*="//g; /change/d; /json/d' > lista2

#Account
cnt=0
#cleaning
echo "" > lista

while read x
do 
 dir1[$cnt]=$(echo $x | sed 's/.*siesta-//g; s/.tar.*//g; s/.tgz//; s/-.*//')
 dir2[$cnt]=$(echo $x | sed 's/.*siesta-//g; s/.tar.*//g; s/.tgz//')
 char[$cnt]=$x
 export dir1
 export dir2
 echo $x ${dir1[$cnt]} ${dir2[$cnt]} >> lista
 let cnt=$cnt+1
done < lista2

#==================================================================================================
################  OLD FILES ##################
KEYWORDS=("siesta" "tgz")
IFS=$'\n'
wget $site --no-check-certificate -q -O - | grep "${KEYWORDS[*]}" |\
 sed 's/">.*//g; s/.*\///g; /pdf/d; /html/d; s/.*="//g' >> lista2
##############################################

echo "=========== SIESTA VERSION ============="
c1=0
while read x
do
 let cnt=$cnt+1
 let c1=$c1+1
 char[$cnt]=$x 
 echo "    ($c1) --> $x"
done < lista2

read -p "Type with your choose:" choose

#number of lines of lista2
nlista2=$(($(cat lista | wc -l)-1))

#==================================================================================================
#Siesta instalation
c1=1
while read x
do
 if [ $c1 == $choose ]
 then
  echo "========== EXTRACTING FILES... ==========="
  #OLD files
  [ -e $dirs/$x ] && [ $choose -gt $nlista2 ] && echo "Existing file!" ||\
  wget --no-check-certificate -c -P $dirs $sited/$x
  #NEW files
  newsited="https://launchpad.net/siesta/${dir1[$c1]}/${dir2[$c1]}/+download"
  [ -e $dirs/$x ] && [ $choose -le $nlista2 ] && echo "Existing file!" ||\
  wget --no-check-certificate -c -P $dirs $newsited/$x
  cd $dirs
  tar -xzvf $dirs/$x
    if [ $? == 0 ]; then
      echo "========== SUCCESSFULLY EXTRACTED! ==========="
      echo
      echo "========== INSTALLING SIESTA... ==========="
      cd $dirs/$(echo $x | sed 's/.tgz//g; s/.tar.gz//g')/Obj
      sh ../Src/obj_setup.sh
      cd ../Src
      ./configure --with-blas=$dirl/librefblas.a --with-lapack=$dirl/liblapack.a --prefix=/usr/local/bin/ FC=$compiler
      cp arch.make ../Obj
      cd ../Obj
      make
      cp siesta /usr/local/bin
    fi
fi
let c1=$c1+1
done < lista2

Scripts recomendados

Gerenciamento de clientes com cbq,squid e firewall no kurumin.

get-geo2 - localiza o endereço de um IP/HOST no Google Maps

Compilar Apache 2.x.x

Slackware multilib-upgrade

Configuração de failover de links de internet


  

Comentários
[1] Comentário enviado por iagolira em 20/09/2016 - 10:00h

Caso encontre algum problema com o certificado do dropbox use a opção "--no-check-certificate", pois é o único erro que encontrei ao rodar o script,
Ou seja, troque as seguintes linhas:
"wget $site -q -O - | grep "${KEYWORDS[*]}" | sed 's/">.*//g; s/.*\///g; /pdf/d; /html/d' > lista"
"wget -c -P $dirs $sited/$x"
por
"wget $site --no-check-certificate -q -O - | grep "${KEYWORDS[*]}" | sed 's/">.*//g; s/.*\///g; /pdf/d; /html/d' > lista"
"wget --no-check-certificate -c -P $dirs $sited/$x"

Nome: Francisco Iago Lira Passos
Curso: Mestrando em Física

[2] Comentário enviado por iagolira em 22/09/2016 - 11:01h

Troque "./configure --with-blas=$dirl/librefblas.a --with-lapack=$dirl/Libs/liblapack.a --prefix=/usr/local/bin/ FC=$compiler"
Por " ./configure --with-blas=$dirl/librefblas.a --with-lapack=$dirl/liblapack.a --prefix=/usr/local/bin/ FC=$compiler"
Nome: Francisco Iago Lira Passos
Curso: Mestrando em Física


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts