3
0
mirror of https://github.com/triqs/dft_tools synced 2024-11-01 03:33:50 +01:00
Commit Graph

28 Commits

Author SHA1 Message Date
tayral
8c1f7945e4 Various small fixes in imfreq Gfs.
- documentation of matsubara_freq_mesh
- fixing doc of fit_tail
- fixing right conventions for matsubara_freq_mesh
2014-02-19 11:59:47 +00:00
Olivier Parcollet
2b315fcdea gf : corrections
- correct previous commit (for scalar gf, the new check was not compiling)
- correct windowing of linear mesh (left point corrected as right point for rounding error
2014-02-18 19:25:29 +01:00
Olivier Parcollet
e82d95d1a8 gf: add C++14 impl of meshes products
-  add c14 include
- the C++14 is lot more readable (due to generic lambda).
- for mesh/product.hpp -> now 2 versions (C++14 and C++11 for temporary
  backward compatibility).
2014-02-18 15:37:57 +01:00
Olivier Parcollet
91978da6db gfs: mesh product, rename shape method...
- just a renaming for readibility.
2014-01-30 20:28:30 +01:00
Olivier Parcollet
b644b38a6a gf: imfreq. general case, fix python interface
- Fix constructor, now taking n_points like the positive_only case
- Fix python, h5read, for general case (i.e. all frequencies).
2014-01-07 14:30:40 +01:00
Olivier Parcollet
2200e2680f gf: imfreq: fix out of bound product gf imfreq
- gf<cartesian_product<imfreq,imfreq>> was not correct
  when out bounds. Fixed evaluator.
- tensor_proxy : fix the trait for algebra which was incorrect.
- TODO: clean code (repetition, put in mesh some windowing).
2014-01-06 19:16:25 +01:00
Olivier Parcollet
1ecec0b933 gfs: Fix bug in imfreq with <0 freq.
- there was a confusion in gf imfreq, in the new case
where freq can be <0 (non real gf, or for product gf).
- index: is the matsubara n, as in the struct matsubara_freq
  index can be >0 or <0
- linear_index : is the shift from the 0. It is always >0.
  Fixed function to compute it.

- Also changed the construction of mesh_point in the generic iterator.
  Before, was constructed with a mesh point of index 0
  Now, added a new constructor on mesh_point_t, just taking the mesh
  which construct the *first* mesh_point.
  Fixed linear, discrete, product accordingly.
  Added to the documentation of the concepts of gf.
2014-01-05 20:10:33 +01:00
tayral
b8e29192da gfs: Fixed bug in index_to_point. 2014-01-05 16:58:54 +01:00
Olivier Parcollet
bdac3e159c work on doc for gf, and details.
- little details : code cleaning, clang formatting,  along
with documentation writing for c++ gf.
- separated the mesh in small class for better doc.
- work on documentation : reorganize specialisation, ...
2013-12-30 22:32:16 +01:00
Olivier Parcollet
5f7e0989a3 gfs. Rm code introduced only for Krylov QMC
- This function was redondant : qmc code cleaned.
- using make_clone in gfs namespace for ADL usage.
2013-12-23 23:21:30 +01:00
Olivier Parcollet
ce221dfc1c gf: add negative matsubara freqs
- add possibility of having negative matsubara freqs
in the matsubara mesh.

- TODO :
   finish imtime complex
   adapt fourier in this case
   test
2013-12-17 15:09:34 +01:00
Olivier Parcollet
17ab555213 gf: fix matsubara_freq and mesh_pt
- cleaner implementation, solve some bugs...
2013-11-20 15:16:53 +01:00
Olivier Parcollet
9ce291d640 gf: update gf imfreq for g( om - nu) case
DRAFT : to be tested further...

- update gf<imfreq>
- write a specific mesh for matsubara frequencies
- now the cast series is :
  mesh_pt --> matsubara_freq --> complex<double>
- matsubara_freq is just the matsubara frequency
- arithmetic of the mesh_pt casted to matsubara_freq
- arithmetic of matsubara_freq is casted to complex, except + and -,
  which are kept as matsubara_freq.
- evaluator now accept : int, mesh_pt, and matsubara_freq
  for matsubara_freq : for negative omega, use conjugation
  for omega outside windows, evaluate the tail on omega.
- as a result : g( om - nu) where om, nu are 2 meshes points,
  is the extrapolation outside the grid if necessary.
- updated tests
- added evaluation for tail.
2013-11-18 23:41:32 +01:00
Olivier Parcollet
184274c893 gf : fix bug in mesh_pt_generator
- in the default constructor, do not call the pointer
that may be null.
- appeared only in python (unused in c++), for new matsubara...
2013-11-18 23:41:32 +01:00
Olivier Parcollet
579368f24b gf. Clean Fourier
- lazy_fourier and co --> fourier
- ex fourier --> make_gf_from_fourier to make a new gf
- = fourier (g) works only iif lhs is a view, like scalar.
- updated python (commented fourier method).
2013-10-23 18:46:55 +02:00
Olivier Parcollet
e5648d2bfd gf : various fixes
- blocks : including the iterator
  --> there is still an issue, with the use of & intead of a view
- details after rereading...
2013-10-21 15:12:53 +02:00
Olivier Parcollet
9edda8724d implement gf_const_view 2013-10-21 15:12:53 +02:00
Olivier Parcollet
9002c1e456 implement array_const_view 2013-10-21 15:12:53 +02:00
Laura Messio
7693077b79 gf: Fix out of bound in linear mesh in gf eval.
- When reaching the last point of the grid,
move one step back and set w =1.
- fix the gf_2times but and related issues.
2013-10-21 15:11:44 +02:00
Olivier Parcollet
39edb2f846 [API change] gf : factories -> constructors
- Make more general constructors for the gf.
  gf( mesh, target_shape_t)
- remove the old make_gf for the basic gf.
- 2 var non generic gf removed.
- clean evaluator
- add tensor_valued
- add a simple vertex test.
- clean specialisation
- Fix bug introduced in 1906dc3
- forgot to resize the gf in new version of operator =
- Fix make_singularity in gf.hpp

- clean resize in operator =

- update h5 read/write for block gf
  - changed a bit the general trait to save *all* the gf.
  - allows a more general specialization, then a correct for blocks

- NOT FINISHED : need to save the block indice for python.
  How to reread ?
  Currently it read the blocks names and reconstitute the mesh from it.
  Is it sufficient ?

- clean block constructors

 - block constructors simplest possible : an int for the number of blocks
 - rest in free factories.
 - fixed the generic constructor from GfType for the regular type :
   only enable iif GfType is ImmutableGreenFunction

- multivar. fix linear index in C, and h5 format

  - linear index now correctly flatten in C mode
    (was in fortran mode), using a simple reverse of the tuple in the folding.
  - fix the h5 read write of the multivar fonctions
   in order to write an array on dimension # variables + dim_target
   i.e. without flattening the indices of the meshes.
   Easier for later data analysis, e.g. in Python.

- merge matrix/tensor_valued. improve factories

  - matrix_valued now = tensor_valued<2>
    (simplifies generic code for h5).
  - factories_one_var -> factories : this is the generic case ...
    only a few specialization, code is simpler.

- clef expression call with rvalue for *this
- generalize matrix_proxy to tensor and clean

 - clean exception catch in tests

  - exception catching catch in need in test
    because the silly OS X does not print anything, just "exception occurred".
    Very convenient for the developer...
  - BUT, one MUST add return 1, or the make test will *pass* !!
  - --> systematically replace the catch by a macro TRIQS_CATCH_AND_ABORT
    which return a non zero error code.
   - exception : curry_and_fourier which does not work at this stage
   (mesh incompatible).

- gf: clean draft of gf 2 times
  - comment the python interface for the moment.
  - rm useless tests
2013-10-21 15:11:44 +02:00
Olivier Parcollet
a5938a8d9e Fix arithmetic of mesh_points in gf
- the arithmetics of the gf mesh_points :
the forwarding of the second argument was missing,
leading to subtle bugs e.g. in  (in matrix case) :

  deltaw(iom_) << iom_ * gw.singularity()(-1) + gw.singularity()(0) - gw(iom_);

because the partial evaluation of the expression introduced a dangling const matrix_view &
instead of moving the temporary matrix_view into the final matrix expression template.
2013-10-18 21:52:57 +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
Laura Messio
29a6a9f5df gf : cleaning the imtime evaluator 2013-09-09 15:41:46 +02:00
Olivier Parcollet
165b44a081 gf: mesh. const_iterator and add cbegin
- for meshes :
clean concept w/ doc, add cbegin, and changed
iterator to const_iterator (more standard name).
2013-08-27 13:43:58 +02:00
Olivier Parcollet
7898bd8d88 gf : mesh now the class, not a trait.
simplify : mesh was a impl trait,
make it the class itself.
corrected the gf, tests and the cython.
2013-08-27 13:43:58 +02:00
Olivier Parcollet
44bf1e322a gf product and curry. First draft
- works on simple case, to be reread.
- curry in general. To be reread ..
- added some tests.
2013-07-30 22:37:41 +02:00
Olivier Parcollet
65bdc65da1 gf: fix upper bound in out of bounds check in linear mesh 2013-07-29 11:53:02 +02:00
Olivier Parcollet
bd4926157c [API BREAK] rename directory gf -> gfs 2013-07-29 11:53:02 +02:00