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
|
||||
===========================
|
||||
|
||||
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
|
||||
----------
|
||||
@ -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
|
||||
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
|
||||
-------------------------------------
|
||||
@ -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
|
||||
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
|
||||
----------------
|
||||
@ -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
|
||||
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
|
||||
|
||||
reference/python/contents
|
||||
|
||||
Version compatibility
|
||||
---------------------
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
versions
|
||||
|
||||
|
@ -3,49 +3,36 @@
|
||||
Welcome
|
||||
=======
|
||||
|
||||
TRIQS is a scientific project that provides a set of tools for the study of
|
||||
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).
|
||||
.. sidebar:: TRIQS 1.0
|
||||
|
||||
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>
|
||||
#include <triqs/arrays/linalg/inverse.hpp>
|
||||
#include <triqs/arrays/linalg/determinant.hpp>
|
||||
This duality is a real advantage in the development of new many-body tools.
|
||||
Critical parts where performance is essential can be written in C++ (like a
|
||||
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;
|
||||
int main(){
|
||||
placeholder<0> i_;
|
||||
placeholder<1> j_;
|
||||
matrix<double> A(2,2);
|
||||
A(i_,j_) << i_+j_;
|
||||
Some :ref:`full-fledged applications <applications>` have been written using
|
||||
TRIQS and are maintained by the TRIQS collaboration. They allow for example to
|
||||
solve a generic quantum impurity model or to run a complete LDA+DMFT
|
||||
calculation.
|
||||
|
||||
matrix<double> B = inverse(A);
|
||||
double C = determinant(A);
|
||||
Since 2005, the TRIQS library and applications have allowed to address
|
||||
questions as diverse as:
|
||||
|
||||
std::cout << "A^(-1) = "<< B << std::endl;
|
||||
std::cout << "det(A) = " <<C <<std::endl;
|
||||
}
|
||||
* Momentum-selective aspects on cuprate superconductors (with various cluster DMFT)
|
||||
* 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
|
||||
|
||||
If you omit CMAKE_INSTALL_PREFIX, the default `path_to_install_directory` is ./INSTALL_DIR.
|
||||
|
||||
Configuration options are described :ref:`here<install_options>`.
|
||||
If you omit ``CMAKE_INSTALL_PREFIX``, the default
|
||||
``path_to_install_directory`` is a subdirectory ``INSTALL_DIR`` in your build
|
||||
directory. More configuration options are described in the
|
||||
:ref:`cmake options <install_options>`.
|
||||
|
||||
#. Compile the code, run the tests and install the library::
|
||||
|
||||
@ -50,7 +51,7 @@ Installation steps
|
||||
.. note::
|
||||
|
||||
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
|
||||
scheme:
|
||||
@ -73,7 +74,3 @@ Further reading
|
||||
installation/python
|
||||
installation/clang
|
||||
installation/changelog
|
||||
|
||||
..
|
||||
installation/intel
|
||||
|
||||
|
@ -1,44 +1,46 @@
|
||||
.. index:: clang
|
||||
|
||||
|
||||
.. highlight:: bash
|
||||
|
||||
.. _install_clang:
|
||||
Using clang compiler
|
||||
==========================
|
||||
|
||||
**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).
|
||||
Using the clang compiler
|
||||
========================
|
||||
|
||||
*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).
|
||||
|
||||
* 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 really makes little sense to develop with e.g. gcc 4.6 today, specially with a library like TRIQS,
|
||||
which uses a lot of metaprogramming.
|
||||
The **clang** compiler is *highly recommended* for anyone developing in C++ since:
|
||||
|
||||
Note however that for *production* compilations, gcc, specially recent versions, still produces in general
|
||||
a slighly more optimal code for TRIQS applications, also the difference is small.
|
||||
* 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 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.
|
||||
|
||||
It is highly recommended to use the latest stable on linux (3.3), and the default compiler on Os X (Mountain lion).
|
||||
Note, however, that for *production* compilations, gcc, especially recent versions, still produces in general
|
||||
a slighly more optimal code for TRIQS applications, even if the difference is small.
|
||||
|
||||
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
|
||||
---------------------------------------------
|
||||
------------------------------
|
||||
|
||||
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.
|
||||
Precompiled versions are available at the `LLVM dowload page <http://llvm.org/releases/download.html>`_.
|
||||
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>`_.
|
||||
|
||||
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::
|
||||
|
||||
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.
|
||||
|
||||
|
@ -10,9 +10,9 @@ Customizing installation: cmake options
|
||||
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
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
@ -21,7 +21,7 @@ You can then customize the installation options using the :program:`ccmake` prog
|
||||
|
||||
ccmake .
|
||||
|
||||
This opens an interface with your main installation options shown ::
|
||||
This opens an interface with your main installation options shown::
|
||||
|
||||
BUILD_SHARED_LIBS ON
|
||||
Build_Documentation OFF
|
||||
@ -33,14 +33,10 @@ This opens an interface with your main installation options shown ::
|
||||
|
||||
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.
|
||||
* ``Build_CTHyb``: Build the continuous-time hybridization impurity solver.
|
||||
* ``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`.
|
||||
* ``CMAKE_INSTALL_PREFIX``: This is the directory :file:`path_to_install_directory` where you want to install TRIQS.
|
||||
* ``Build_Documentation``: Get the documentation locally in :file:`path_to_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.
|
||||
|
||||
After having corrected your options you may build, test and install TRIQS as described in :ref:`installation`.
|
||||
|
||||
|
||||
|
@ -3,66 +3,69 @@
|
||||
.. _requirements:
|
||||
|
||||
A complete list of requirements
|
||||
================================
|
||||
===============================
|
||||
|
||||
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
|
||||
libraries and tools used by TRIQS are listed in the table:
|
||||
libraries and tools used by TRIQS are described below.
|
||||
|
||||
.. _require_cxx_compilers:
|
||||
|
||||
|
||||
C++ compilers
|
||||
-----------------
|
||||
-------------
|
||||
|
||||
TRIQS is written in C++, i.e. in the **C++11** standard as defined by the ISO.
|
||||
A recent compiler is therefore mandatory.
|
||||
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.
|
||||
* g++ 4.8.1 and higher
|
||||
* :ref:`clang 3.3<install_clang>` 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
|
||||
|
||||
* C++98 compilers.
|
||||
* Obsolete compilers
|
||||
|
||||
Compilers implementing previous version of the C++ standard (c++98) do not work, and
|
||||
will *never* be supported. This includes :
|
||||
* g++ 4.6.3 to 4.8.0
|
||||
|
||||
TRIQS can be built with these compilers but because they lack full C++11 support,
|
||||
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
|
||||
* 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.
|
||||
|
||||
* g++ before 4.6
|
||||
* Intel icc 12.0 and below.
|
||||
|
||||
|
||||
Libraries
|
||||
---------------
|
||||
---------
|
||||
|
||||
================== ================ ================================================================================
|
||||
Libraries/tools Version Comment
|
||||
Library/tool Version Comment
|
||||
================== ================ ================================================================================
|
||||
mpi openmpi Parallelism
|
||||
mpi openmpi Parallelism.
|
||||
Since standard linux distributions (and macports on OS X)
|
||||
now provides openmpi, even on laptops, we avoid the unnecessary complication
|
||||
of maintaining a non parallel version of TRIQS
|
||||
fftw >= 3.2 Fourier transform
|
||||
of maintaining a non-parallel version of TRIQS
|
||||
fftw >= 3.2 Fourier transforms
|
||||
boost >= 1.49 C++ librairies
|
||||
hdf5 >= 1.8.0 File storage system. Important: the *serial* version must be installed
|
||||
python >= 2.6.5
|
||||
scipy python mathematical library
|
||||
numpy python scientific library
|
||||
h5py python interface to hdf5 library
|
||||
mpi4py python MPI
|
||||
sphinx >= 1.0.1 python documentation tools (to compile documentation)
|
||||
python >= 2.6.5 The Python interpreter
|
||||
scipy Python mathematical library
|
||||
numpy Python scientific library
|
||||
h5py Python interface to hdf5 library
|
||||
mpi4py Python MPI
|
||||
sphinx >= 1.0.1 Python documentation tools (to compile documentation)
|
||||
pyparsing Tool for sphinx (to compile documentation)
|
||||
matplotlib >= 0.99 python 2D plotting library
|
||||
cython >=0.17 cython package
|
||||
matplotlib >= 0.99 Python 2D plotting library
|
||||
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 \
|
||||
hdf5-tools libhdf5-serial-dev python-h5py libboost1.48-all-dev python-dev \
|
||||
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:
|
||||
|
||||
|
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