-
Notifications
You must be signed in to change notification settings - Fork 13
Nissa Is a Set of SU(N) Algorithms
License
sunpho84/nissa
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
iiii
i::::i
iiii
nnnn nnnnnnnn iiiiiii ssssssssss ssssssssss aaaaaaaaaaaaa
n:::nn::::::::nn i:::::i ss::::::::::s ss::::::::::s a::::::::::::a
n::::::::::::::nn i::::i ss:::::::::::::s ss:::::::::::::s aaaaaaaaa:::::a
nn:::::::::::::::n i::::i s::::::ssss:::::s s::::::ssss:::::s a::::a
n:::::nnnn:::::n i::::i s:::::s ssssss s:::::s ssssss aaaaaaa:::::a
n::::n n::::n i::::i s::::::s s::::::s aa::::::::::::a
n::::n n::::n i::::i s::::::s s::::::s a::::aaaa::::::a
n::::n n::::n i::::i ssssss s:::::s ssssss s:::::s a::::a a:::::a
n::::n n::::n i::::::i s:::::ssss::::::s s:::::ssss::::::s a::::a a:::::a
n::::n n::::n i::::::i s::::::::::::::s s::::::::::::::s a:::::aaaa::::::a
n::::n n::::n i::::::i s:::::::::::ss s:::::::::::ss a::::::::::aa:::a
nnnnnn nnnnnn iiiiiiii sssssssssss sssssssssss aaaaaaaaaa aaaa
Introduction
------------
Nissa Is a Set of SU(3) Algorithm
Creator: Francesco Sanfilippo - fr.sanfilippo@gmail.com
Contributors: Mariam Atoui
Benoit Blossier
Nuria Carrasco
Silvano Simula
Thread pool ideas, SPI and BGQ optimization taken from M.Kruse work
This project is host at: https://github.com/sunpho84/nissa/
Requirements
------------
-MPI distribution (at the moment also when running on scalar machine).
-Support for threads in the compiler.
-gcc >= 6 or intel compiler
-Autotools >= 1.14 to generate configure and Makefile.
-Bison >=3.0 and flex (see scripts in the config folder).
NB: use the scripts in the "config" folder to install the appropriate versions
Compiling and installing
------------------------
Compilation proceeds as customary in autotools:
bash config/bootstrap
mkdir build
cd build
../configure --help # to see all flags
../configure # appending all specific flags
make # -j N to use N threads
The program have to be compiled with C++ including all the libraries and header necessary
for MPI. Typically you can use some wrapper of the system compiler to avoid having to pass
all the paths and flags needed by MPI. Pass the name of such compiler wrapper through "MPICXX"
parameter, e.g: "MPICXX=mpicxx". Optionally, pass the flag needed to activate OpenMP through
CXXFLAGS: if none are passed, they will be guessed.
Structure
---------
The package is divided in various piecese, namely the "library", whose source are
contained in "src" directory, and various projects and tools. This is the content of the
various directories:
-doc: in principle this should contain documentation to each and everything, but at the moment
only notes on some particular routine
-src: contains the library and all the routines common to the various programs (see below)
-tools: simple programs like converters, data check, etc
-projects: programs to perform massive computations
-test: dedicated programs to check the library (inside "nissa" sub-drectory),
and also input files and reference data to check "tools" and "projects" programs
-work_in_prog: scratch area where to develop new programs
Detailed content of "src" directory:
-base: all the routines needed to initialize and close the package and
communicate data, use vector, debug and generate random numbers; file
"global_variables.cpp" contains also all the variables common to the
package
-dirac_operators: dirac operators for twisted mass and staggered regularizations,
in double and quadruple precisions (tm only)
-geometry: routines to move around on the lattice
-hmc: routines to generate new confs with hybrid monte carlo methods, stout staggered and quenched theories only
-inverters: multi-mass (cgm) and single mass (cg) inverters for twisted mass and staggered
Dirac operators, in double and quadruple precisions
-IO: routines to read and write ILDG files and to parse input files, and in general
to access to the filesystem
-linalgs: some linear algebra (not much indeed)
-new_types: this contains definitions of types (file: src/new_types/new_types_definitions.h)
and routines working on new types (see various files, e.g. su3.cpp)
-operations: routines to make contractions, fourier transform and fft, fix the gauge, smear,
and compute gauge observables
All the files contained in the "src" directory are compiled and put together in the
"libissa.a" library, in the main nissa directory. The program that want to use the "nissa"
library should link it and include "nissa.h" (located inside "src").
Copyright
---------
Nissa is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Nissa is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License (that you can find in doc/license)
for more details.
About
Nissa Is a Set of SU(N) Algorithms
Resources
License
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published