forked from rikigigi/analisi
-
Notifications
You must be signed in to change notification settings - Fork 0
/
LEGGIMI.txt
71 lines (53 loc) · 2.81 KB
/
LEGGIMI.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
Riccardo Bertossa, 2018
SISSA
1) Introduzione
Programma che esegue molti tipi di analisi su traiettorie in formato binario o
testuale. È posssibile utilizzare traiettorie direttamente generate da LAMMPS
nel formato .bin con "id type xu yu zu vx vy vz" per le analisi che utilizzano
le posizioni o le velocità degli atomi (spettro vibrazionale, spostamento
quadratico medio, funzione di van Hove -- g(r), istogramma del numero di
vicini) oppure partendo da file di testo con dati in colonna per le analisi che
utilizzano le correnti (calcolo dei coefficienti di Green-Kubo). Sono presenti
nella cartella dei sorgenti degli script python che convertono l'output del
programma cp.x di Quantum Espresso nel formato convertibile nel formato
binario di LAMMPS (vedi help del programma). Il programma può convertire anche in
questo formato le traiettorie di gromacs.
Per compilare utilizzare cmake.
Il programma presenta una parallelizzazione con i thread e con mpi (solo per
l'analisi a blocchi). Se si utilizza la parallelizzazione mpi ciascun
blocco viene assegnato ad un processo, quindi conviene utilizzare un
numero di blocchi multiplo del numero di processi. Bisogna ancora
utilizzare la parallelizzazione sui thread all'interno di ogni nodo di
calcolo per essere efficienti (opzione -N [#threads]).
Dipendenze:
compilatore C++11
kernel unix (mmap)
FFTW3
Eigen3
Boost (program_options)
Mpi (opzionale)
libxdrfile (formato file di gromacs -- opzionale )
2) Compilazione
(mpi, in una cartella separata dai sorgenti)
cmake [cartella sorgenti] -DCMAKE_CXX_COMPILER=mpicxx -DCMAKE_C_COMPILER=mpicc -DUSE_MPI=ON
make
se non si vuole utilizzare MPI, eseguire
cmake [cartella sorgenti]
make
visualizzare l'aiuto con
./analisi --help
se cmake non trova le librerie (viene detto durante la configurazione)
potrebbe essere necessario specificarle manualmente con
-D[nome variabile mancante]=[percorso della libreria .so oppure .a]
fra gli argomenti con cui viene chiamato cmake
3) Struttura
La classe Traiettoria legge i file binari di LAMMPS e applica opzionalmente le
pbc.
La classe MediaBlocchiG (mediablocchi.h) esegue le medie a blocchi su oggetti generali che
supportano le operazioni necessarie a calcolare la media e la varianza. Qui è
svolta la parallelizzazione MPI. Ci sono molte classi che vi si interfacciano.
In main.cpp vengono lette le opzioni da riga di comando e impostati i vari
calcoli che è possibile fare.
La parallelizzazione sui thread è svolta con la libreria standard del C++11
Per aggiungere altri calcoli utilizzare come esempio la classe che calcola
lo spostamento quadratico medio Msd (msd.h,msd.cpp).