mirror of
https://github.com/triqs/dft_tools
synced 2025-01-12 22:18:23 +01:00
Work on documentation
modified: doc/applications.rst modified: doc/index.rst modified: doc/install.rst modified: doc/installation/clang.rst modified: doc/installation/install_options.rst modified: doc/installation/requirements.rst modified: doc/installation/ubuntu.rst new file: doc/changelog.rst new file: doc/versions.rst
This commit is contained in:
parent
bb7394dfaf
commit
96bedae5f1
@ -3,6 +3,10 @@
|
|||||||
Applications based on TRIQS
|
Applications based on TRIQS
|
||||||
===========================
|
===========================
|
||||||
|
|
||||||
|
The TRIQS collaboration not only works at the elaboration of libraries to
|
||||||
|
construct new tools for the study of quantum systems. Some full-fledged
|
||||||
|
applications have readily been developed and are maintained by the TRIQS
|
||||||
|
collaboration.
|
||||||
|
|
||||||
Wien2TRIQS
|
Wien2TRIQS
|
||||||
----------
|
----------
|
||||||
@ -11,7 +15,7 @@ Wien2TRIQS is an interface to Wien2k for LDA+DMFT calculation. It allows
|
|||||||
you to turn band-structure calculations obtained from the Wien2k package to
|
you to turn band-structure calculations obtained from the Wien2k package to
|
||||||
inputs to full-fledged LDA+DMFT calculations in a few lines!
|
inputs to full-fledged LDA+DMFT calculations in a few lines!
|
||||||
|
|
||||||
*Homepage:* `<http://ipht.cea.fr/triqs/new/dft_tools/index.html>`_
|
*Homepage:* `<http://ipht.cea.fr/triqs/dft_tools/>`_
|
||||||
|
|
||||||
Hybridization-expansion matrix solver
|
Hybridization-expansion matrix solver
|
||||||
-------------------------------------
|
-------------------------------------
|
||||||
@ -21,7 +25,7 @@ of a quantum impurity embedded in a conduction bath. It is based on a quantum
|
|||||||
Monte Carlo algorithm that stochastically samples the diagrams of a
|
Monte Carlo algorithm that stochastically samples the diagrams of a
|
||||||
hybridization expansion of the partition function.
|
hybridization expansion of the partition function.
|
||||||
|
|
||||||
*Homepage:* `<http://ipht.cea.fr/triqs/new/cthyb_matrix/index.html>`_
|
*Homepage:* `<http://ipht.cea.fr/triqs/cthyb_matrix/>`_
|
||||||
|
|
||||||
Hubbard I solver
|
Hubbard I solver
|
||||||
----------------
|
----------------
|
||||||
@ -30,4 +34,4 @@ This solver gives the Hubbard I solution of a quantum impurity problem,
|
|||||||
i.e. it solves the atomic limit. This simple approximation allows to have
|
i.e. it solves the atomic limit. This simple approximation allows to have
|
||||||
very quick answer even for large multiband systems.
|
very quick answer even for large multiband systems.
|
||||||
|
|
||||||
*Homepage:* `<http://ipht.cea.fr/triqs/new/hubbardI/index.html>`_
|
*Homepage:* `<http://ipht.cea.fr/triqs/hubbardI/>`_
|
||||||
|
25
doc/changelog.rst
Normal file
25
doc/changelog.rst
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
|
||||||
|
.. _changelog:
|
||||||
|
|
||||||
|
Changelog
|
||||||
|
=========
|
||||||
|
|
||||||
|
This document describes the main changes in TRIQS 1.0 that might
|
||||||
|
have consequences for your scripts and archives.
|
||||||
|
|
||||||
|
Python classes
|
||||||
|
--------------
|
||||||
|
|
||||||
|
The number of python classes in the old 0.x releases was increasing with no
|
||||||
|
clear naming convention. In TRIQS 1.0 we have unified the naming of the classes
|
||||||
|
following the `PEP naming conventions
|
||||||
|
<http://www.python.org/dev/peps/pep-0008/#naming-conventions>`_:
|
||||||
|
|
||||||
|
* Package and module names: lowercase with underscores
|
||||||
|
* Class names: CapWords
|
||||||
|
* Function and method arguments: lowercase with underscores
|
||||||
|
|
||||||
|
Archives
|
||||||
|
--------
|
||||||
|
|
||||||
|
|
@ -27,3 +27,12 @@ Python modules
|
|||||||
:maxdepth: 1
|
:maxdepth: 1
|
||||||
|
|
||||||
reference/python/contents
|
reference/python/contents
|
||||||
|
|
||||||
|
Version compatibility
|
||||||
|
---------------------
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:maxdepth: 1
|
||||||
|
|
||||||
|
versions
|
||||||
|
|
||||||
|
@ -3,49 +3,36 @@
|
|||||||
Welcome
|
Welcome
|
||||||
=======
|
=======
|
||||||
|
|
||||||
TRIQS is a scientific project that provides a set of tools for the study of
|
.. sidebar:: TRIQS 1.0
|
||||||
interacting quantum systems. It allows to quickly implement many-body
|
|
||||||
calculations and explore new theoretical and phenomenological ideas within a
|
|
||||||
flexible, easy-to-use python environment (à la Matlab).
|
|
||||||
|
|
||||||
Powerful c++ libraries
|
This is the homepage of the new TRIQS 1.0. Many things
|
||||||
----------------------
|
have changed and been improved since the versions 0.x.
|
||||||
|
The format of the archives and names of some python classes
|
||||||
|
have changed too. So go look at our :ref:`changelog page <changelog>`
|
||||||
|
to find out how to upgrade to 1.0.
|
||||||
|
|
||||||
.. code-block:: c++
|
TRIQS is a scientific project providing a set of libraries to develop new tools
|
||||||
|
for the study of interacting quantum systems. The libraries exist at two
|
||||||
|
complementary levels: on the one hand, C++ libraries allow to quickly develop
|
||||||
|
performant low-level codes; on the other hand python libraries implement the
|
||||||
|
most common many-body objects, like Green's functions, that can be manipulated
|
||||||
|
easily in python scripts.
|
||||||
|
|
||||||
#include <triqs/arrays.hpp>
|
This duality is a real advantage in the development of new many-body tools.
|
||||||
#include <triqs/arrays/linalg/inverse.hpp>
|
Critical parts where performance is essential can be written in C++ (like a
|
||||||
#include <triqs/arrays/linalg/determinant.hpp>
|
quantum impurity solver) while the manipulation of the results, preparation of
|
||||||
|
the inputs or interface with other programs can be done at the very
|
||||||
|
user-friendly python level.
|
||||||
|
|
||||||
using triqs::arrays::array; using triqs::arrays::matrix; using triqs::clef::placeholder;
|
Some :ref:`full-fledged applications <applications>` have been written using
|
||||||
int main(){
|
TRIQS and are maintained by the TRIQS collaboration. They allow for example to
|
||||||
placeholder<0> i_;
|
solve a generic quantum impurity model or to run a complete LDA+DMFT
|
||||||
placeholder<1> j_;
|
calculation.
|
||||||
matrix<double> A(2,2);
|
|
||||||
A(i_,j_) << i_+j_;
|
|
||||||
|
|
||||||
matrix<double> B = inverse(A);
|
Since 2005, the TRIQS library and applications have allowed to address
|
||||||
double C = determinant(A);
|
questions as diverse as:
|
||||||
|
|
||||||
std::cout << "A^(-1) = "<< B << std::endl;
|
* Momentum-selective aspects on cuprate superconductors (with various cluster DMFT)
|
||||||
std::cout << "det(A) = " <<C <<std::endl;
|
* Degree of correlation in iron-based superconductors (within an LDA+DMFT approach)
|
||||||
}
|
* Fermionic Mott transition and exploration of Sarma phase in cold-atoms
|
||||||
|
|
||||||
User-friendly python interface
|
|
||||||
------------------------------
|
|
||||||
|
|
||||||
.. plot::
|
|
||||||
:include-source:
|
|
||||||
:scale: 70
|
|
||||||
|
|
||||||
from pytriqs.gf.local import *
|
|
||||||
g = GfReFreq(indices = ['s','d'], window = [-2,2], n_points = 1000)
|
|
||||||
g['d','d'] = Omega - 0.3
|
|
||||||
g['d','s'] = 0.2
|
|
||||||
g['s','d'] = 0.2
|
|
||||||
g['s','s'] = inverse( Wilson(1.0) )
|
|
||||||
g.invert()
|
|
||||||
|
|
||||||
from pytriqs.plot.mpl_interface import oplot
|
|
||||||
oplot( g['d','d'], '-o', RI = 'S', x_window = (-1.8,1.8), name = "Impurity" )
|
|
||||||
oplot( g['s','s'], '-x', RI = 'S', x_window = (-1.8,1.8), name = "Bath" )
|
|
||||||
|
@ -37,9 +37,10 @@ Installation steps
|
|||||||
|
|
||||||
$ cmake -DCMAKE_INSTALL_PREFIX=path_to_install_directory ../src
|
$ cmake -DCMAKE_INSTALL_PREFIX=path_to_install_directory ../src
|
||||||
|
|
||||||
If you omit CMAKE_INSTALL_PREFIX, the default `path_to_install_directory` is ./INSTALL_DIR.
|
If you omit ``CMAKE_INSTALL_PREFIX``, the default
|
||||||
|
``path_to_install_directory`` is a subdirectory ``INSTALL_DIR`` in your build
|
||||||
Configuration options are described :ref:`here<install_options>`.
|
directory. More configuration options are described in the
|
||||||
|
:ref:`cmake options <install_options>`.
|
||||||
|
|
||||||
#. Compile the code, run the tests and install the library::
|
#. Compile the code, run the tests and install the library::
|
||||||
|
|
||||||
@ -50,7 +51,7 @@ Installation steps
|
|||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
We remind you that on multicore machine, make's option -jN (where N is the number of cores)
|
We remind you that on multicore machine, make's option -jN (where N is the number of cores)
|
||||||
greatly speed up the compilation e.g. make -j8 on a 8 cores machine...
|
greatly speeds up the compilation, e.g. make -j8 on an 8 core machine...
|
||||||
|
|
||||||
#. After the installation TRIQS has been installed using the standard UNIX
|
#. After the installation TRIQS has been installed using the standard UNIX
|
||||||
scheme:
|
scheme:
|
||||||
@ -73,7 +74,3 @@ Further reading
|
|||||||
installation/python
|
installation/python
|
||||||
installation/clang
|
installation/clang
|
||||||
installation/changelog
|
installation/changelog
|
||||||
|
|
||||||
..
|
|
||||||
installation/intel
|
|
||||||
|
|
||||||
|
@ -1,44 +1,46 @@
|
|||||||
.. index:: clang
|
.. index:: clang
|
||||||
|
|
||||||
|
|
||||||
.. highlight:: bash
|
.. highlight:: bash
|
||||||
|
|
||||||
.. _install_clang:
|
.. _install_clang:
|
||||||
Using clang compiler
|
|
||||||
==========================
|
|
||||||
|
|
||||||
**clang/llvm** is one of the very best C++ compilers, with gcc.
|
Using the clang compiler
|
||||||
It is open source, on linux and OS X (where it is now the standard compiler provided by Apple).
|
========================
|
||||||
|
|
||||||
*clang* compiler is **highly recommended** for anyone developing in C++ since :
|
**clang/llvm** is one of the very best C++ compilers, with gcc. It is open
|
||||||
|
source on linux and OS X (where it is now the standard compiler provided by
|
||||||
|
Apple).
|
||||||
|
|
||||||
|
The **clang** compiler is *highly recommended* for anyone developing in C++ since:
|
||||||
|
|
||||||
* It is standard compliant (C++11).
|
* It is standard compliant (C++11).
|
||||||
* It has very nice and useful error messages, much nicer than intel or gcc (even thought gcc is catching up...).
|
* It has very nice and useful error messages, much nicer than intel or gcc (even thought gcc is catching up).
|
||||||
It really makes little sense to develop with e.g. gcc 4.6 today, specially with a library like TRIQS,
|
It really makes little sense to develop with e.g. gcc 4.6 today, especially with a library like TRIQS,
|
||||||
which uses a lot of metaprogramming.
|
which uses a lot of metaprogramming.
|
||||||
|
|
||||||
Note however that for *production* compilations, gcc, specially recent versions, still produces in general
|
Note, however, that for *production* compilations, gcc, especially recent versions, still produces in general
|
||||||
a slighly more optimal code for TRIQS applications, also the difference is small.
|
a slighly more optimal code for TRIQS applications, even if the difference is small.
|
||||||
|
|
||||||
It is highly recommended to use the latest stable on linux (3.3), and the default compiler on Os X (Mountain lion).
|
It is highly recommended to use the latest stable version on linux (3.3), and the default compiler on OS X (Mountain lion).
|
||||||
|
|
||||||
Get and install clang on linux
|
Get and install clang on linux
|
||||||
---------------------------------------------
|
------------------------------
|
||||||
|
|
||||||
Precompiled versions are available at the `LLVM dowload page <http://llvm.org/releases/download.html>`_,
|
Precompiled versions are available at the `LLVM dowload page <http://llvm.org/releases/download.html>`_.
|
||||||
use it. Just untar them, and add the directory in your path.
|
Just untar them and add the directory in your path.
|
||||||
|
|
||||||
In any case, it is also very easy to compile clang from source, just follow the
|
It is also very easy to compile **clang** from source, just follow the
|
||||||
`instructions <http://clang.llvm.org/get_started.html#build>`_.
|
`instructions <http://clang.llvm.org/get_started.html#build>`_.
|
||||||
|
|
||||||
Usage
|
Usage
|
||||||
--------------
|
-----
|
||||||
|
|
||||||
To use clang ::
|
In order to use clang when building TRIQS::
|
||||||
|
|
||||||
CXX=clang++ cmake path_to_TRIQS_source_directory .... others options ...
|
CXX=clang++ cmake -DCMAKE_INSTALL_PREFIX=path_to_install_directory ../src + other options
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
On Os X, the options -std=c++11 and -stdlib=libc++ are automatically added by the TRIQS installation script.
|
On OS X, the options -std=c++11 and -stdlib=libc++ are automatically added by the TRIQS
|
||||||
|
installation script.
|
||||||
|
|
||||||
|
@ -12,7 +12,7 @@ Specifying the compiler or compile/link flags
|
|||||||
|
|
||||||
To specify the compiler with cmake one may use the CXX, CXXFLAGS variables, e.g.::
|
To specify the compiler with cmake one may use the CXX, CXXFLAGS variables, e.g.::
|
||||||
|
|
||||||
CXX=clang++ CXXFLAGS=XXXX cmake path_to_TRIQS_source_directory .....
|
CXX=clang++ CXXFLAGS=XXXX cmake path_to_TRIQS_source_directory ...
|
||||||
|
|
||||||
Customize the installation
|
Customize the installation
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
@ -33,14 +33,10 @@ This opens an interface with your main installation options shown ::
|
|||||||
|
|
||||||
You can for instance change the following options:
|
You can for instance change the following options:
|
||||||
|
|
||||||
* ``CMAKE_INSTALL_PREFIX``: This is the directory :file:`path_to_TRIQS_install_directory` where you want to install TRIQS.
|
* ``CMAKE_INSTALL_PREFIX``: This is the directory :file:`path_to_install_directory` where you want to install TRIQS.
|
||||||
* ``Build_CTHyb``: Build the continuous-time hybridization impurity solver.
|
* ``Build_Documentation``: Get the documentation locally in :file:`path_to_install_directory/share/doc`.
|
||||||
* ``Build_HubbardI``: Build a simple HubbardI solver.
|
|
||||||
* ``Build_Wien2k``: Build the interface to **WIEN2K**.
|
|
||||||
* ``Build_Documentation``: Get the documentation locally in :file:`path_to_TRIQS_install_directory/share/doc`.
|
|
||||||
|
|
||||||
You may change all other installation options (like locations of libraries, the choice of compilers, etc.) in the advanced mode, by typing 't' after having opened the *ccmake* interface.
|
You may change all other installation options (like locations of libraries, the choice of compilers, etc.) in the advanced mode, by typing 't' after having opened the *ccmake* interface.
|
||||||
|
|
||||||
After having corrected your options you may build, test and install TRIQS as described in :ref:`installation`.
|
After having corrected your options you may build, test and install TRIQS as described in :ref:`installation`.
|
||||||
|
|
||||||
|
|
||||||
|
@ -3,66 +3,69 @@
|
|||||||
.. _requirements:
|
.. _requirements:
|
||||||
|
|
||||||
A complete list of requirements
|
A complete list of requirements
|
||||||
================================
|
===============================
|
||||||
|
|
||||||
TRIQS is built upon several python and C++ libraries, which, if not present
|
TRIQS is built upon several python and C++ libraries, which, if not present
|
||||||
already in your system, can be freely downloaded and installed. All the
|
already in your system, can be freely downloaded and installed. All the
|
||||||
libraries and tools used by TRIQS are listed in the table:
|
libraries and tools used by TRIQS are described below.
|
||||||
|
|
||||||
.. _require_cxx_compilers:
|
.. _require_cxx_compilers:
|
||||||
|
|
||||||
|
|
||||||
C++ compilers
|
C++ compilers
|
||||||
-----------------
|
-------------
|
||||||
|
|
||||||
TRIQS is written in C++, i.e. in the **C++11** standard as defined by the ISO.
|
TRIQS is written in C++, i.e. in the **C++11** standard as defined by the ISO.
|
||||||
A recent compiler is therefore mandatory.
|
A recent compiler is therefore mandatory.
|
||||||
There are 3 categories of C++ compilers.
|
There are 3 categories of C++ compilers.
|
||||||
|
|
||||||
* Standard compliant C++ compilers (recommended and supported).
|
* Standard compliant C++ compilers
|
||||||
|
|
||||||
* :ref:`clang 3.3<install_clang>` and higher.
|
* :ref:`clang 3.3<install_clang>` and higher
|
||||||
* g++ 4.8.1 and higher
|
* g++ 4.8.1 and higher
|
||||||
|
|
||||||
* Obsolete compilers.
|
These compilers are recommended and supported.
|
||||||
|
|
||||||
TRIQS compiles on them, but they lack full C++11 support.
|
|
||||||
Therefore TRIQS may be slower, since some optimisations are disabled in the library
|
|
||||||
and they may not be supported in later release.
|
|
||||||
|
|
||||||
* g++ 4.6.4 to 4.8.0
|
* Obsolete compilers
|
||||||
|
|
||||||
* C++98 compilers.
|
* g++ 4.6.3 to 4.8.0
|
||||||
|
|
||||||
Compilers implementing previous version of the C++ standard (c++98) do not work, and
|
TRIQS can be built with these compilers but because they lack full C++11 support,
|
||||||
will *never* be supported. This includes :
|
TRIQS may be slower (some optimisations are disabled in the library
|
||||||
|
and they may not be supported in later release).
|
||||||
|
|
||||||
|
* C++98 compilers
|
||||||
|
|
||||||
* g++ before 4.6
|
* g++ before 4.6
|
||||||
* Intel icc 12.0 and below.
|
* Intel icc 12.0 and below
|
||||||
|
|
||||||
|
Compilers implementing the previous version of the C++ standard (C++98) do not work and
|
||||||
|
will *not* be supported.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Libraries
|
Libraries
|
||||||
---------------
|
---------
|
||||||
|
|
||||||
================== ================ ================================================================================
|
================== ================ ================================================================================
|
||||||
Libraries/tools Version Comment
|
Library/tool Version Comment
|
||||||
================== ================ ================================================================================
|
================== ================ ================================================================================
|
||||||
mpi openmpi Parallelism
|
mpi openmpi Parallelism.
|
||||||
Since standard linux distributions (and macports on OS X)
|
Since standard linux distributions (and macports on OS X)
|
||||||
now provides openmpi, even on laptops, we avoid the unnecessary complication
|
now provides openmpi, even on laptops, we avoid the unnecessary complication
|
||||||
of maintaining a non parallel version of TRIQS
|
of maintaining a non-parallel version of TRIQS
|
||||||
fftw >= 3.2 Fourier transform
|
fftw >= 3.2 Fourier transforms
|
||||||
boost >= 1.49 C++ librairies
|
boost >= 1.49 C++ librairies
|
||||||
hdf5 >= 1.8.0 File storage system. Important: the *serial* version must be installed
|
hdf5 >= 1.8.0 File storage system. Important: the *serial* version must be installed
|
||||||
python >= 2.6.5
|
python >= 2.6.5 The Python interpreter
|
||||||
scipy python mathematical library
|
scipy Python mathematical library
|
||||||
numpy python scientific library
|
numpy Python scientific library
|
||||||
h5py python interface to hdf5 library
|
h5py Python interface to hdf5 library
|
||||||
mpi4py python MPI
|
mpi4py Python MPI
|
||||||
sphinx >= 1.0.1 python documentation tools (to compile documentation)
|
sphinx >= 1.0.1 Python documentation tools (to compile documentation)
|
||||||
pyparsing Tool for sphinx (to compile documentation)
|
pyparsing Tool for sphinx (to compile documentation)
|
||||||
matplotlib >= 0.99 python 2D plotting library
|
matplotlib >= 0.99 Python 2D plotting library
|
||||||
cython >=0.17 cython package
|
cython >=0.17 A language that allows to write C extensions for the Python language
|
||||||
================== ================ ================================================================================
|
================== ================ ================================================================================
|
||||||
|
|
||||||
|
|
||||||
|
@ -18,7 +18,7 @@ Install the following packages which are necessary to build TRIQS and use it::
|
|||||||
openmpi-checkpoint libopenmpi-dev libblas-dev liblapack-dev libfftw3-dev libgmp-dev \
|
openmpi-checkpoint libopenmpi-dev libblas-dev liblapack-dev libfftw3-dev libgmp-dev \
|
||||||
hdf5-tools libhdf5-serial-dev python-h5py libboost1.48-all-dev python-dev \
|
hdf5-tools libhdf5-serial-dev python-h5py libboost1.48-all-dev python-dev \
|
||||||
python-numpy python-scipy python-virtualenv python-matplotlib doxygen\
|
python-numpy python-scipy python-virtualenv python-matplotlib doxygen\
|
||||||
python-tornado python-zmq
|
python-tornado python-zmq python-mpi4py
|
||||||
|
|
||||||
Optionally, you may be interested in:
|
Optionally, you may be interested in:
|
||||||
|
|
||||||
|
6
doc/versions.rst
Normal file
6
doc/versions.rst
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
|
||||||
|
Version compatibility
|
||||||
|
=====================
|
||||||
|
|
||||||
|
As the TRIQS library and applications based on it might live separate lives, it
|
||||||
|
is important to define a clear version compatibility scheme.
|
Loading…
Reference in New Issue
Block a user