mirror of
https://github.com/triqs/dft_tools
synced 2024-12-24 13:23:37 +01:00
Update documentation
Changelog and some updates were done.
This commit is contained in:
parent
1517cdaaeb
commit
6a140d2950
@ -6,10 +6,15 @@ Changelog
|
||||
|
||||
This document describes the main changes in TRIQS.
|
||||
|
||||
master (latest commit on github)
|
||||
--------------------------------
|
||||
version 1.1.0
|
||||
-------------
|
||||
|
||||
* The tails now have fixed size avoid mpi problems
|
||||
* New constructors for the gf [api change]
|
||||
* Fix for gf expression templates
|
||||
* The gf tails now have fixed size to avoid mpi problems
|
||||
* Fixes in gf expression templates
|
||||
* New python random generator interface
|
||||
* Fixes for issues #11, #18, #25
|
||||
|
||||
version 1.0.0
|
||||
-------------
|
||||
|
@ -3,7 +3,7 @@ Table of contents
|
||||
=================
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
:maxdepth: 5
|
||||
|
||||
index
|
||||
install
|
||||
|
@ -1,64 +0,0 @@
|
||||
|
||||
A first external code
|
||||
=====================
|
||||
|
||||
.. highlight:: c
|
||||
|
||||
As a first exercise you can try to write a Monte Carlo code for an Ising chain
|
||||
in a magnetic field. Your goal is to write this code as an external project and
|
||||
to use the Monte Carlo class provided by TRIQS.
|
||||
|
||||
Take some time to read the :ref:`Monte Carlo <montecarlo>` chapter, but don't
|
||||
read the complete example at the end of the chapter because it is precisely
|
||||
what you need to do here. You can check your implementation later.
|
||||
|
||||
.. _isingex:
|
||||
|
||||
Ising chain in magnetic field
|
||||
-----------------------------
|
||||
|
||||
Here's the Hamiltonian for the problem of Ising spins in a magnetic field
|
||||
|
||||
.. math::
|
||||
|
||||
\mathcal{H} = -J \sum_{i=1}^N \sigma_i \sigma_{i+1} - h \sum_{i=1}^N \sigma_i.
|
||||
|
||||
The goal is to find the magnetization per spin :math:`m` of the system for
|
||||
:math:`J = -1.0`, a magnetic field :math:`h = 0.5` as a function of
|
||||
the inverse temperature :math:`\beta`. You can see how the results
|
||||
change with the length of the chain :math:`N`.
|
||||
|
||||
Implementation hints
|
||||
--------------------
|
||||
|
||||
Here are a couple of implementation hints that you might want to follow.
|
||||
|
||||
* In most Monte Carlo programs there is a *configuration* which is modified
|
||||
along the simulation. Take enough time to think how this configuration
|
||||
can be efficiently described and implement it in a separate file, say
|
||||
:file:`configuration.hpp`. In this example, the configuration is a
|
||||
collection of spins that can e.g. be described by a vector of integers.
|
||||
+1 would be a spin up and -1 a spin down. If you're worried with memory
|
||||
space, you could use a vector of booleans (true for up spins, false for
|
||||
down spins).
|
||||
|
||||
* More to come...
|
||||
|
||||
|
||||
Solution
|
||||
--------
|
||||
|
||||
In the limit :math:`N \rightarrow \infty`, the solution for the magnetization
|
||||
is
|
||||
|
||||
.. math::
|
||||
|
||||
m = \frac{\sinh(\beta h) + \frac{\sinh(\beta h)\cosh(\beta h)}{\sqrt{\sinh^2(\beta h) + e^{-4\beta J}}}}
|
||||
{\cosh(\beta h) + \sqrt{\sinh^2(\beta h) + e^{-4\beta J}}}.
|
||||
|
||||
Here's a plot of :math:`m` versus :math:`\beta` for different values of :math:`N`:
|
||||
|
||||
.. image:: m_vs_beta.png
|
||||
:width: 700
|
||||
:align: center
|
||||
|
@ -1,24 +0,0 @@
|
||||
|
||||
Developing a project with TRIQS
|
||||
===============================
|
||||
|
||||
Welcome to this tutorial! The goal of these notes is to give a practical
|
||||
introduction to the development of a code that uses the TRIQS headers and
|
||||
libraries. Rather than being completely general this tutorial will guide you
|
||||
through the development of a simple CT-INT impurity solver.
|
||||
|
||||
At first, we will see how to write a code that uses TRIQS but that is not meant
|
||||
to become part of TRIQS. This is especially relevant when you write a pure C++
|
||||
code for your personal use. You will learn how to write a Monte Carlo
|
||||
simulation with a simple example.
|
||||
|
||||
The next step will be to *pythonize* your code. This is very convenient to
|
||||
change parameters or do simple pre-simulation calculations. It is also
|
||||
the way most of TRIQS applications are done.
|
||||
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
|
||||
triqs_library
|
||||
first_mc
|
Binary file not shown.
Before Width: | Height: | Size: 5.2 KiB |
@ -2,6 +2,7 @@
|
||||
|
||||
Writing you own C++ code with TRIQS
|
||||
------------------------------------
|
||||
|
||||
Basically, this structure means that you have successfully installed TRIQS in
|
||||
:file:`/home/triqs/install` and that you plan to have your new project under
|
||||
:file:`/home/project`. Obviously you can choose any other directory but this
|
||||
@ -47,28 +48,24 @@ the location of the TRIQS libraries. Here is what your simple
|
||||
|
||||
.. code-block :: cmake
|
||||
|
||||
# Append triqs installed files to the cmake load path
|
||||
list(APPEND CMAKE_MODULE_PATH ${TRIQS_PATH}/share/triqs/cmake)
|
||||
# Append triqs installed files to the cmake load path
|
||||
list(APPEND CMAKE_MODULE_PATH ${TRIQS_PATH}/share/triqs/cmake)
|
||||
|
||||
# start configuration
|
||||
cmake_minimum_required(VERSION 2.8)
|
||||
project(myproj CXX)
|
||||
set(CMAKE_BUILD_TYPE Release)
|
||||
# Start configuration
|
||||
cmake_minimum_required(VERSION 2.8)
|
||||
project(myproj CXX)
|
||||
set(CMAKE_BUILD_TYPE Release)
|
||||
|
||||
# We use shared libraries
|
||||
# option(BUILD_SHARED_LIBS "Build shared libraries" ON)
|
||||
# Load TRIQS, including all predefined variables from TRIQS installation
|
||||
find_package(TRIQS REQUIRED)
|
||||
|
||||
# Load TRIQS, including all predefined variables from TRIQS installation
|
||||
find_package(TRIQS REQUIRED)
|
||||
|
||||
# We want to be installed in the TRIQS tree
|
||||
set(CMAKE_INSTALL_PREFIX ${TRIQS_PATH})
|
||||
|
||||
# Build the code, adding triqs in include and link flags
|
||||
add_executable(example main.cpp)
|
||||
include_directories(${TRIQS_INCLUDE_ALL})
|
||||
target_link_libraries(example ${TRIQS_LIBRARY_ALL})
|
||||
# Linking and include info
|
||||
link_libraries(${TRIQS_LIBRARY_ALL})
|
||||
include_directories(${TRIQS_INCLUDE_ALL})
|
||||
|
||||
# Create executable
|
||||
add_executable(example main.cpp)
|
||||
triqs_set_rpath_for_target(example)
|
||||
|
||||
We're all set! Everything is ready to compile our project. If we want to build
|
||||
everything in :file:`/home/project/build`, we do as follows:
|
||||
|
Loading…
Reference in New Issue
Block a user