3
0
mirror of https://github.com/triqs/dft_tools synced 2024-12-26 06:14:14 +01:00
Commit Graph

461 Commits

Author SHA1 Message Date
Michel Ferrero
fc3e6b904a Fix TRIQSConfig for standalone projects
Small fix to allow standalone project to use the triqs_set_rpath_for_target
macro.

  modified:   cmake/TRIQSConfig.cmake.in
2013-09-30 11:03:14 +02:00
Olivier Parcollet
674797efb3 array: add a contructor for reshaping temporary
- add a constructor from indexmap and storage &&,
- used when reshaping a temp. array.
2013-09-28 22:54:21 +02:00
Olivier Parcollet
6f7deca96a tuple tools : add reverse for a tuple...
- add in std:: the reverse to be able to apply the algorithms on a
  reversed tuple
- overloaded std::get, std::tuple_size for this
- added tests.
2013-09-28 22:54:21 +02:00
Olivier Parcollet
e8af74a030 h5: add a parent in group
- add a parent in the group, to allow iteration on group
elements
- normally in h5, one needs to have the parent group and the name
of the group to iterate on its elements.
- added a parent (possibly empty) to get a simply syntax to
get the element of a group...
2013-09-28 16:11:46 +02:00
Olivier Parcollet
33a19227ab arrays: length of domain corrected for && 2013-09-28 14:02:03 +02:00
Michel Ferrero
007b88f2cd Fix small uninitialized problem in mc_tools
modified:   triqs/mc_tools/mc_generic.hpp
2013-09-28 14:01:52 +02:00
Michel Ferrero
fe1aeb8dbf Fix for compatibility with 32-bit systems
This is a fix for issue #18. The type float128 doesn't exist on 32-bit
machines. I removed it from the matrix_stack.pyx detection of a scalar.

  modified:   pytriqs/gf/local/matrix_stack.pyx
2013-09-26 21:59:21 +02:00
Michel Ferrero
68e742df53 Add list/tuple of long in python parameter class
modified:   pytriqs/parameters/parameters.pyx
2013-09-23 15:39:20 +02:00
Olivier Parcollet
1906dc30a5 Fix expression template for gf & std::vector
- add move semantics in expression template.

for gfs :
- rm descriptor
- Remove data from expr, rewrote assignment
  which now iterates on the mesh, simply.
  RHS models now FunctionOnMesh
- This fix the multiplication bug of gf
- Remove assign_no_resize/assign_with_resize from proxy
2013-09-22 18:17:40 +02:00
Michel Ferrero
1e94eab495 Put back the meta in documentation
modified:   doc/index.rst
2013-09-18 11:50:18 +02:00
Michel Ferrero
5addd5412b Modification of triqs_prepare_local_pytriqs macro
With this modification it should now be possible to compile
an application even if:

1) It has already been installed
2) One does not have write permissions on the installed dir

  modified:   cmake/TRIQSConfig.cmake.in
2013-09-17 16:26:58 +02:00
Michel Ferrero
28140f14fb Work on documentation
Mainly on the python part. I had a quick browse through to check if
the scripts were still working.
2013-09-17 14:55:55 +02:00
Michel Ferrero
2921cbcc06 Cythonize random generators
A trivial cythonized version of the c++ random_generator class.
Useful to get the names of the generators from the python.

  new file:   pytriqs/random/*
  new file:   doc/reference/python/random/*
2013-09-16 12:20:06 +02:00
Olivier Parcollet
7607d3963d Fix 2cca958 for gcc 4.6
- forgot a type...
2013-09-13 20:26:46 +02:00
Olivier Parcollet
5fe1ebcc3b add wrap_clean make target.
-> to clean the cython wrappers.
2013-09-13 19:16:08 +02:00
tayral
e0f0c85c3d doc: fixed a few typos+ put back tutorial for arrays+changed a few titles 2013-09-13 17:46:51 +02:00
Michel Ferrero
84df58aad7 Fix upper bound problem in tails
There was a mistake in the computation of omax in the tail multiplication.

  modified:   triqs/gfs/local/functions.cpp
  modified:   triqs/gfs/local/tail.hpp
2013-09-13 12:16:04 +02:00
Olivier Parcollet
2cca9584b9 mpi: first draft for #12
- a thin layer, using a bit boost::mpi (for the communicator mostly ...)
  along the lines discussed in #12.
- implemented reduce, allreduce, bcast for arrays, simple scalars,
and any custom type that support boost serialization.
- Custom types :  the operations are done recursively on members.
  No change is needed in the class to use this mpi routine, as long as
  serialize function is defined.
- For arrays of basic types (int, double...), a direct call to MPI C API, which works also for views
  (as long as they are contiguous).
- For arrays of more complex types, we revert to boost::mpi.
- Added a simple test.
- Work still in progress :
   - missing a simple scatter/gather for the arrays
   - need more tests & API thinking.
   - dispatch array code to array lib
   - reduce is "sum" only, but do we need more.
2013-09-13 09:20:21 +02:00
Michel Ferrero
f0dfabff38 Change tail implementation with fixed array size
Now the tail have a fixed size. It actually makes everything simpler. I took
order_min = -1 and order_max = 8. This makes the tails compatible with the
previous implementation. However we might want to change this to something like
-10, 10 so that they are self-contained. This commit should also fix issue #11.
2013-09-12 15:21:56 +02:00
Olivier Parcollet
d4c96a9d93 gf: minor correction for 2 times, etc...
-> are going to be replaced soon anyway ...
2013-09-11 20:48:03 +02:00
Olivier Parcollet
0586c77307 add c14 details in std::c14
- to use already a few c14 convenience details :

-> polymorphic std::plus, e.g.
   boost::mpi::reduce (world, A,C, std::c14::plus<>(),0);
this plus determine the type by itself ...
  -> errors on the type can be very cryptic on the gf.

-> add std::c14::make_unique
(equivalent of make_shared for unique_ptr).
2013-09-11 20:22:38 +02:00
Olivier Parcollet
b534936589 Fix matrix * alias issue and adapt det_manip
- The previous version of the * operator for matrix was too clever.
It was giving a lazy object and then rewriting C = A *B into gemm (a,A,B,0,C).
The pb was in case of aliasing : when e.g. C = A, or is a part of A.
gemm is not correct that case, and as a result generic code like
a = a *b
may not be correct in matrix case, which is unacceptable.

- So we revert to a simple * operator for matrix
that does immediate computation.
Same thing for matrix* vector

- we also suppress a_x_ty class.

-> for M = a * b,
when M is a matrix, there is no overhead due to move assignment
-> however, when M is a view, there is an additionnal copy.

-Correctness comes first, hence the fix.
However, if one wants more speed and one can guarantee that
there is no aliasing possible, then one has to write a direct gemm call.

-> det_manip class was adapted, since in that case, we can show there
no alias, and we want the speed gain, so the * ops where replaced
by direct blas call (using the array blas interface).

-> also gemm, gemv, ger were overloaded in the case the return
matrix/vector (i.e. last parameter of the function) is not an lvalue,
but a temporary view created on the fly.
2013-09-11 18:49:22 +02:00
Olivier Parcollet
3c2a3c51dc arrays : fix in bug in ref counting in deserialize 2013-09-11 18:39:46 +02:00
Olivier Parcollet
c06e183ae5 arrays : revised version of map & fold
- also cleaned a bit reinterpretview example
2013-09-11 18:39:25 +02:00
Olivier Parcollet
a0eba01769 arrays : clean move constructor of cuboid::map
- remove mess linked to old icc 13 support
and write a clear and readable code.
2013-09-11 18:38:18 +02:00
Olivier Parcollet
e0f58aeb62 gf : clean product mesh
- reinterpret array is much simple.
clean old code after check on various compilers
2013-09-11 18:38:18 +02:00
Olivier Parcollet
1a85f5a16c Work on doc 2013-09-11 18:38:18 +02:00
tayral
d86c0df332 Fix #8
- Order of inclusion of Python include path and nunpy python include path
reversed.
--> on Ubuntu 12.04, there is a link numpy in /usr/include/python2.7
which was *before* the numpy include path, i.e.  in this case
the new version of numpy installed by virtualenv.

By reversing the order of the include, the numpy arrayobject.h
file of virtualenv is found first, the Python.h is found anyway
in the correct system directory (does not change with new numpy version).

O. Parcollet
2013-09-11 14:48:05 +02:00
Michel Ferrero
e3c0ab526a Update necessary cmake version
Also removed Fortran.
2013-09-10 16:49:17 +02:00
Michel Ferrero
18b5e11bef Move the boost formula to triqs/formulas
The doc is updated.
2013-09-10 14:16:40 +02:00
Michel Ferrero
32bee97004 Change link from github
modified:   doc/install.rst
  modified:   doc/installation/osx_lion.rst
2013-09-09 15:53:26 +02:00
Laura Messio
29a6a9f5df gf : cleaning the imtime evaluator 2013-09-09 15:41:46 +02:00
Laura Messio
257bdb9d6a Work on gf
gf: security in the case beta<0 added in the mesh construction
gf: inline added in slice
test/triqs/gf: test of on_mesh() added
gfs: scalar for two-real_times
test/triqs/gf/ renamed in gfs, test gf_retw.cpp completed
gfs: evaluator homogeneised
two_times: evaluator corrected
test/triqs/gf/ renamed in gfs, test gf_retw.cpp completed

+ Correction after rebase

Fix a test : gf_re_im_freq_time
There is an issue with the last point.
To be fixed.
2013-09-09 15:41:46 +02:00
Laura Messio
196e3f9663 doc: det_manip, link towards the cookbook added, explanations added 2013-09-09 15:41:46 +02:00
Laura Messio
a39e41e9fd det_manip: try_insert_from_function(i,j,fx,fy,ksi) 2013-09-09 15:41:46 +02:00
Laura Messio
6239dee8b3 test/triqs/mc_tools directory added, with an example of simple random walker 2013-09-09 15:41:46 +02:00
Michel Ferrero
a5b122d91a Fix cmake so that -DMATHJAX_PATH works
modified:   CMakeLists.txt
  modified:   cmake/FindMathJax.cmake
2013-09-09 14:49:15 +02:00
Michel Ferrero
dade89f60d Add necessary version of cmake
modified:   doc/installation/requirements.rst
2013-09-09 14:48:49 +02:00
Michel Ferrero
e7d29d8243 New notation for Monte Carlo variables 2013-09-09 10:55:54 +02:00
Olivier Parcollet
fe58c9759f Work on doc. Added notations & C++ intro 2013-09-08 22:13:04 +02:00
Olivier Parcollet
4413c6a588 Fix #3
I have no clue why this is a pb, and I can not reproduce it,
but the change is correct and trivial so I merge this pull request.
2013-09-08 16:54:22 +02:00
Olivier Parcollet
b1f61b2f7a Work on doc 2013-09-08 16:13:53 +02:00
Olivier Parcollet
f3480b60c6 doc : add some file 2013-09-08 15:42:44 +02:00
Olivier Parcollet
1dd2d9e691 correction after compiling on linux gcc 4.8.1/ clang 3.3
- clef : lazy_method is broken . remove it from the test for the moment.
2013-09-08 15:35:57 +02:00
Olivier Parcollet
4bbcbe35ef gcc 4.6: correction
- removing some test & tuple_tool which fail on old 4.6
For Ubuntu 12.04 compat.
2013-09-08 15:17:18 +02:00
Olivier Parcollet
2c542647fd clef : new version using lvalues and moving rvalues
- change : all objects are by default
  stored now by reference, not by copy any more.
  Unless the trait force_copy_in_expr is true.
- rvalue refs are moved into the tree
- simplifies a lot the writing of lazy method, objects.
- added a macro for methods
- tests ok. Further check needed to control absence of copies...
- improved documentation
2013-09-08 15:04:12 +02:00
Olivier Parcollet
27be5cbd5b arrays: fix some test to avoid valgrind error 2013-09-08 11:58:37 +02:00
Olivier Parcollet
11081a68b7 Fix #5
- a temp. array in stev had the wrong sign.
2013-09-08 11:58:07 +02:00
Olivier Parcollet
1313566669 utility: simplify a bit tuple::apply 2013-09-06 21:23:55 +02:00
Olivier Parcollet
e8bca45cd0 mv test gf -> gfs 2013-09-06 17:51:51 +02:00