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

496 Commits

Author SHA1 Message Date
Olivier Parcollet
0a1285405c [gfs] Lattice fourier, multivar G, curry, tail
- Add Fourier for lattice.
  - Add regular_bz_mesh, cyclic_lattice, and their FFT.

- rm freq_infty.
- The gf can now be evaluated on a tail_view, which result in composing the tail.
- Fix the following issue :
  g(om_) << g(om_ +1)
  will recompose the tail correctly.
- TODO : TEST THIS NEW FEATURE IN DETAIL.

- Work on singularity for G(x, omega)

 - Separate the factory for singularity from the data factory in gf.
 - overload assign_from_functoin (renamed).
 - Fix singularity_t and co in the gf (const issue).

- Clean tail, add tail_const_view
 - add m_tail for x -> tail on any mesh
 - test curry + fourier works on k
2014-10-18 21:20:35 +02:00
Olivier Parcollet
47cb8a03f7 [arrays] Important changes in implementation.
- Simplify group_indices
  - Only for C ordered, remove complex compile time.
  - Could be generalized to non C ordered, but no need.
- Fix slice for custom orders.
- Generalize the group_indices for the custom order.
- Add c_ordered_transposed_view (useful ?)
- Improve slice, special for ellipsis (quicker).
- Simplify TraversalOrder
- Assignement. Specialize one case for speed.
- use FORCEINLINE in foreach, according to speed test for clang
- add one speed test
- Modify iterators for better speed.
- along the lines decided for the foreach
- update doc.
2014-10-18 21:20:17 +02:00
Olivier Parcollet
d1c8a9a46e gcc compilation detail 2014-10-18 21:20:17 +02:00
Olivier Parcollet
672834fd68 A few parts of the lib only in C++14 mode
- multivariable gf
- some part of tuple tools.
- modified tests
2014-10-18 21:20:17 +02:00
Olivier Parcollet
f8aef6a290 [gfs] Add memory layout option 2014-10-18 21:20:17 +02:00
Olivier Parcollet
fa07abbea9 [gfs] Singularity as an explicit template parameter
- change the underlying data : do not flatten the linear indices of the
  mesh into a single index, keep a higher dim array.
- easier for various places, and necessary for g(nu,nu').
- work on several 2 part. containers.
- add default target (may not be always matrix_valued)
2014-10-18 21:20:16 +02:00
Olivier Parcollet
9c129cb224 [mpi] draft of gf support
- done Matsubara freq for testing and rereading.
- TODO: generalize to other meshes.
- draft for multi var gf
2014-10-18 21:20:01 +02:00
Hartmut Hafermann
ebbb2f0b25 [mpi] vector, test and draft of doc 2014-10-18 21:19:52 +02:00
Olivier Parcollet
38cfef4e9f Implement mpi lib (1). Array, generic, base, vector
- Implement the basic structure of the mpi lib
  and specialization for arrays, basic types, std::vector
- adapted the array class for the lazy mpi mechanism
- pass tests on arrays :
   - scatter, gather on array<long,2> array<complex,2>, etc...
   - broadcast
- several files for readibility
- the std::vector coded but not tested.
- generic mecanism implemented and tested (mpi_generic test)
- added several tests for the mpi lib.
- TODO : more tests, doc...
2014-10-18 21:19:51 +02:00
Olivier Parcollet
56820a9493 [doc] install and exceptions 2014-10-18 21:19:51 +02:00
Olivier Parcollet
dfe1948d38 [cmake] Test log compare command ready to copy-paste.
- remove the ; !
2014-10-18 21:19:51 +02:00
Olivier Parcollet
dddae19853 Clean old boost and old mc_tools code (v1) 2014-10-18 21:05:07 +02:00
tayral
edd1ff4529 Restructuring documentation.
A first general restructuration of the doc according to the pattern [tour|tutorial|reference].
In the reference part, objects are documented per topic.
In each topic, [definition|c++|python|hdf5] (not yet implemented)
2014-10-18 12:21:08 +01:00
tayral
a9e5f20c39 put back literalinclude instead of triqs_example for c++ 2014-10-17 17:01:20 +01:00
tayral
880f30b086 Changed all literalincludes --> runblock / triqs_example
This is to avoid keeping code snippets that do not work in the doc. At least there will be an error message.
2014-10-17 16:50:46 +01:00
Priyanka Seth
70d4aba545 Determining delta from gf (currently only BlockGf and GfImFreq) 2014-10-17 15:55:03 +02:00
Priyanka Seth
ec32223ea7 Clean up _gf_common.py -- removed duplicated python functions 2014-10-17 10:21:32 +02:00
Olivier Parcollet
c1f221e085 [arrays] More include by default 2014-10-16 22:32:11 +02:00
Olivier Parcollet
5b6b0ecf38 Revert "include map and fold headers into array.hpp"
This is not the right place for include...

This reverts commit 63fd1b8b2d.
2014-10-16 22:21:37 +02:00
Hartmut Hafermann
63fd1b8b2d include map and fold headers into array.hpp 2014-10-16 16:30:48 +02:00
Priyanka Seth
d8e79056bf Modify det_manip to access determinant x_values and y_values 2014-10-14 16:26:08 +02:00
Hartmut Hafermann
e93adc0b84 [gfs] add << operator for gfs
kept <<= for backward compatibility
TODO: clean doc and examples, possibly add deprecation warning
2014-10-13 17:42:11 +02:00
Michel Ferrero
2f2374ea29 Fix issue #128
This is just cosmetics but should be fine.
2014-10-09 13:15:58 +02:00
Michel Ferrero
173a97d07c Fix for issue #134
There was a bug in the transpose of the indices. Added a test.
2014-10-09 12:46:07 +02:00
Olivier Parcollet
0fd82579e3 [cmake] Fix cmake python for Ubuntu 14.04
There is a bug in Ubuntu 14.04 : the interpreter
does not return the correct position of the libpython.
We add the correct path to the path hints, at the end (lowest priority).
In most machines, the first hint is the correct answer.
2014-10-08 17:01:40 +02:00
Priyanka Seth
6a38d6747c Fix in tail-matrix multiplication
Set order_max to correspond to the mask
2014-10-07 13:55:56 +02:00
Priyanka Seth
9be131e8e1 Allow indices in gf_struct/operator names to be strings. 2014-10-07 13:53:18 +02:00
Michel Ferrero
3b59d26a67 Two fixes in tight binding part 2014-10-06 23:18:10 +02:00
Priyanka Seth
71fa498833 API change for tail fitters
python fit_tail, replace_by_tail ==> fit_tail_depr, replace_by_tail_depr
c++ set_tail_from_fit ==> fit_tail
2014-10-01 10:52:32 +02:00
Priyanka Seth
11f17631b5 Added predefined hamiltonians to operators 2014-09-27 01:16:28 +02:00
Michel Ferrero
d73c1cf00c Fix and wrap set_tail_from_fit
The c++ version of the tail fit is wrapped to python. I also changed
slightly the code so that when replace_by_fit is true the data is
changed all the way to the end of the Matsubara axis not only on the
interval where the fit was done.
2014-09-26 12:35:59 +02:00
Olivier Parcollet
b31f4a0a09 Correction: include cmake dir 2014-09-19 20:52:26 +02:00
Olivier Parcollet
c9a5856fb8 [clef] Fix placeholder () and [] operators
- had been forgotten.
- modified g(k,om) test
2014-09-18 22:47:53 +02:00
Olivier Parcollet
c7a1a25846 Fix bug in building regular type from python
- the flag is really enforce_copy and should force a copy
- for a view : it is false, no change
- for a regular type : it is true, and now this will enforce the
  copy in the call of numpy. numpy does it for us.
- The problematic case was when we construct a regular type
  from a complicated view in python, which is an array
  but is not C contiguous.
  (hence the PyArray_Check was false, and the C_Contiguous flag was not set)
  Now it is fine, since we ask numpy to systematically copy the data for us
  and build a C contigous array.
  --> the constructor from python does not support custom memory layout
  because numpy only support C and Fortran

Conflicts:

	triqs/arrays/impl/indexmap_storage_pair.hpp
2014-09-18 15:01:17 +02:00
Olivier Parcollet
1a85b9eb81 Fix #122 : correction : forgot inline 2014-09-09 10:06:41 +02:00
Olivier Parcollet
e6234ed3d5 Fix #122
- the conj_ function was not written properly
  (T is a ref, the trait is_complex was not returning true).
- a simpler version is clearly better !
2014-09-08 20:54:59 +02:00
Olivier Parcollet
7cf7d09c77 Fix #112 and put back g +=/-= matrix for imfreq
- The issue comes from the fact that the default generated
  += and co by the Python API is the one for immutable types, like int.
- Indeed, in python, for an int :
  x=1
  id(x)
  140266967205832
  x+=1
  id(x)
  140266967205808
- For a mutable type, like a gf, it is necessary to
  add explicitly the xxx_inplace_add functions.
- Added :
   - the generation of the inplace_xxx functions
   - a method in class_ in the wrapper generator that
     deduce all += operator from the + operators.
   - this assumes that the +=, ... are defined in C++.
   - The generation of such operators are optional, with option
     with_inplace_operators in the arithmetic flag.
- Also, added the overload g += M and g -= M for
  g : GfImfreq, M a complex matrix.
  Mainly for legacy Python codes.
2014-09-06 19:07:34 +02:00
Olivier Parcollet
dcbdd5bc54 Clean the eigenelements tests.
- Clean the output of the test.
- Separate from previous commit to be able to retest previous test
  with same lib code.
2014-09-04 11:58:20 +02:00
Olivier Parcollet
9265c2db7f Fix #119
- Cleaned of the eigensystems computations (worker is simpler, decision
  at runtime, etc..).
- Fix #119 : When the matrix is in C order, the fortran lapack
  sees in fact its conjugate, so we need to conjugate the eigenvectors at the end.
  NB : not true if the storage order of the matrix is already fortran of course.
2014-09-04 11:55:32 +02:00
Olivier Parcollet
be1b9b6f19 python wrapper. No new function if no constructor
- When a type has no python constructor (E.g. parameters)
  do not define the xxx_new function.
- Leads to a better error message when trying to construct
  such an object in python.
- TODO : check there is no issue with serialization ?
2014-07-27 16:27:16 +02:00
Olivier Parcollet
522477eb2d desc generator : minor cleaning
- while porting apps. examples to 1.2
- add build_ipytriqs, etc...
- various details...
2014-07-27 15:38:22 +02:00
Olivier Parcollet
51b008c369 cmake: make TRIQS_PATH absolute
- when TRIQS_PATH is given e.g. with ~, make it absolute
  to avoid config. error.
2014-07-27 15:38:22 +02:00
Olivier Parcollet
06dbfb71bf correct previous commit after linux test 2014-07-26 18:46:57 +02:00
Olivier Parcollet
6fb71f50c9 desc wrapper generator: small improve, clean
- detect the use module.
- clean the code specific to wrapper generation from clang_parser.
- add support for default arguments for int, double, char.
- TODO : add more complex default arguments
2014-07-26 18:37:20 +02:00
Olivier Parcollet
03dbf576ae rm obsolete brew boost
deleted:    packaging/os_x/boost.rb
2014-07-24 20:44:41 +02:00
Olivier Parcollet
e5928de7f5 Fix #108 (tentatively).
- Pb was that indices for gf where empty when constructed
  with default args from C++.
- changed into : make indices from the shape in the default
  case.
- also added more, simpler construction, for the indices
  to easy C++ construction.
2014-07-24 17:17:16 +02:00
Olivier Parcollet
88800c903c doc: adapt to new web site subdirectory
triqs/1.1
triqs/1.2
etc...
2014-07-23 17:25:02 +02:00
Olivier Parcollet
0c64c2a010 Add date+time in C++ exceptions in wrapper
- the wrapper will now add date and time
  at the boundary between C++ and Python.
- using C lib, not C++ (lack of support of C++ chrono functions in gcc).
2014-07-23 15:47:19 +02:00
Priyanka Seth
e3e652f556 Doc changes -- installation 2014-07-23 14:14:19 +02:00
Priyanka Seth
c61b8941ee More prettification: can not --> cannot 2014-07-16 23:30:05 +02:00