3
0
mirror of https://github.com/triqs/dft_tools synced 2024-12-27 23:03:51 +01:00
Commit Graph

88 Commits

Author SHA1 Message Date
Olivier Parcollet
8045598534 Attempt to fix gelss call in fit_tail.
uncommenting the resize fix the issue on linux.
valgrind reports no error any more.
What was the problem ?
2014-03-19 14:01:26 +01:00
tayral
558df98786 Split cpp from hpp (fit_tail) 2014-03-19 14:00:53 +01:00
Michel Ferrero
5805c7c3aa Fix in off-diagonal elements of density()
This should fix the bug noticed by Leonid in off-diagonal
elements of the density matrix.

  modified:   triqs/gfs/local/functions.cpp
2014-03-08 13:46:31 +01:00
Olivier Parcollet
2f2044e74b gf : imfreq : clean evaluator on int
- evaluator on int was not using the same algorithm
as matsubara_freq, which can be surprising...
2014-03-04 22:11:36 +01:00
Olivier Parcollet
05c717e70f gf: imfreq : fix evaluator for n<0
- in positive only case, the evaluator for n<0
was wrong : must shift the integer by -1 for the fermions.
2014-03-04 20:22:33 +01:00
Olivier Parcollet
5128126055 arrays: change operator() && for const_view
Changed operator()(int, int...) && for array, and views.

- For const_view and regular type, returns value_type (i.e. a copy).
  NB : does make a copy, not a move. Ok for scalar type. TODO: think for complicated types.
  This allows codes like :
  f(x)(0,0) where f : x-> matrix or const_view
  to be correct in clef expression evaluation.

- For _view : return a value_type &, as before to allow :
    A(....)(0,0) = rhs;
  It is not possible to detect dangling refs in that case at compile time.
  Added a security in TRIQS_ARRAYS_DEBUG mode to detect a dangling ref at run time,
  i.e. the case where the view is "unique" (ref count ==1).
  This would be a quite bad design anyway ...

- also :

 - clean operator[] for vector (old workaround for old gcc...)
 - add IsView flag in ISP impl class, for the impl. of operator() &&
2014-03-02 17:11:48 +01:00
Olivier Parcollet
1e220d24c7 kronecker function and overload for matsubara_freq
Used in solver codes.
2014-03-02 17:11:48 +01:00
Olivier Parcollet
a1a29d6c85 gf: correct evaluator for gf imfreq (remove mesh_pt)
mesh_pt should NOT be done directly by (),
it should be casted to matsubara_freq.
Removed an old line of code which we forgot to clean
when introducing matsubara_freq
2014-02-28 15:57:34 +01:00
Olivier Parcollet
a25f742b33 Correction: left some C++14 used in debug...
- decltype(auto) was left behind in 2 places...
2014-02-26 17:49:44 +01:00
Olivier Parcollet
e1c113b745 Fix g(k,om) for tests
- evaluator
- G(k,tau) is real
- partial_eval for matrix_valued functions
- details : simplifying traits (using decay_t)
2014-02-26 16:24:51 +01:00
Olivier Parcollet
b8d7373177 arrays : fix auto_assign for chains assignment.
A(i_)(om_) << ...
for A an array of gf was not working.
Modified the auto_assign of arrays to handle the case when the object
in the array is itself autoassigned.
Using the model of std::vector adapter for clef, which works.
Also fixed the gf for a little details (gf_impl is usually in the expression tree, not gf).
2014-02-21 21:00:38 +01:00
Hartmut Hafermann
3d98857c13 adding missing map serialization header 2014-02-20 16:43:46 +01:00
Olivier Parcollet
73d81cc55a gf: correct bug in matsubara_freq mesh point
- bool at_end() for a mesh point means AFTER the last point ,
as end in STL. It was not correct ( +1 missing).
- also the at_end was not computed in the mesh product.
- it slightly changes the test_fit_tail --> just changed the output.
--> did this bug affect other functions/codes ?
2014-02-19 21:14:59 +01:00
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
b76a61680c gf make_gf_from_g_and_tail : add security
- if shape (g) != shape(t) -> exception
2014-02-18 17:15:59 +01:00
tayral
708c47305c Extending fit_tail for scalar_valued (+ test)
-> extension by using reinterpret_scalar_valued_as_matrix_valued
2014-02-18 16:16:14 +01:00
tayral
da7e7ec971 Fixed fit_tail for pos. and neg. matsub + bosonic
-> code was previously assuming mesh with only positive, fermionic matsubara freqs
-> changed wn_min to n_min (was misleading, since it was an index, not a frequency) / same for <-> max
-> changed doc accordingly
2014-02-18 16:16:14 +01:00
tayral
82a6d21939 Fixed computation of density for full matsub mesh
-> Previously, calculation was implicitly assuming a mesh with only positive matsubara frequencies.
-> Added corresponding test
-> Also added test of density calculation with or without correct tail.
2014-02-18 16:16:14 +01:00
Olivier Parcollet
6e87bee850 lattice: clean old classes, add bz_mesh, gf on bz 2014-02-18 15:53:38 +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
Hartmut Hafermann
65ed3a8dc2 gf: new tail fitting 2014-02-03 22:22:21 +01:00
Olivier Parcollet
85141350e7 remove warnings in compilation
- triqs & tests now compiles with -Wall on clang (3.2)
Checked on OS X.
Todo : recheck on other compilers.
2014-01-30 22:17:28 +01:00
Olivier Parcollet
9f0915acb6 gfs, matsubara: correct unary - for matsubara_freq
- The unary - of matsubara_freq was not correct ...
missing () around the ==
2014-01-30 21:29:53 +01:00
Olivier Parcollet
91978da6db gfs: mesh product, rename shape method...
- just a renaming for readibility.
2014-01-30 20:28:30 +01:00
tayral
1811d53179 Added density for scalar_valued gf (and test thereof) 2014-01-20 17:55:07 +01:00
tayral
2d1dec4c3d Fixed antiperiodicity property of imtime
- the condition p%2 ==1 was wrong if p<0 (never true!)
- added corresponding test (gf_notail)

Conflicts:
	triqs/gfs/imtime.hpp

Fixed by O.P. : already fixed in Laura's pull request ...
2014-01-20 17:54:33 +01:00
Laura Messio
359deae18d correction of a bug in imtime (evaluator_fnt_on_mesh) + corresponding test added 2014-01-20 17:49:47 +01:00
Laura Messio
04cf39a361 deprecated gfs files removed 2014-01-20 17:49:47 +01:00
Olivier Parcollet
6820f4865a gf : target_shape_t. change size_t to int
- to avoid narrowing pbs.
- otherwise {n,n}, with n int does not work, which is crazy.
2014-01-10 21:47:33 +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
tayral
1b3a66af24 Fixed bug out of domain for mesh with positive and negative matsubara frequencies 2014-01-06 16:07:47 +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
74469ad5b0 gf: generalize the constructor of gf_mesh from domain
- to add "positive_only" flags, in the case
we need both negative and positive frequencies in matsubara.
2013-12-27 15:18:46 +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
f6e006c2e0 gf. Correct evaluator imfreq
- overload for matsubara_freq, not the point.
2013-12-04 12:11:48 +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
f45dedb94e gf : improve error message 2013-11-18 23:41:32 +01:00
Olivier Parcollet
abc743c0a1 gf deprecated : correction 2013-11-05 11:39:50 +01:00
Olivier Parcollet
8be0c208c2 gf.Fourier scalar_valued. Fix tail size
- tail is 0, but must be of dimension (1,1)
2013-10-31 14:54:43 +01:00
tayral
4c1c14b989 gf:fourier Add missing function in no_tail case
- one only the Matsubara case.
- TODO: the real omega case : decide and implement.
- impl: remove superfluous dispatch in x_impl
2013-10-31 14:41:48 +01:00
Olivier Parcollet
6326c2b4eb gf/clef. Bug fix, and added scalar->matrix reinterpret for blocks
- clef : fix a little bug in storage when evaluating
  (was using the wrong trait to deduce storage type).
- gf : block :
     - added reinterpret_scalar_valued_gf_as_matrix_valued
       for block function
     - cleaned make_block_gf_view_from_vector
     - added make_block_gf_view_from_vectormake_block_gf_view_from_vector_of_cython_proxy
       and changed the cython accordingly because it requires a slightly different syntax.
     - updated tests
- gf : cleaned some template.
2013-10-31 14:41:48 +01:00
Olivier Parcollet
0f324df3ef gf: Fix for make_fourier in scalar_valued mode 2013-10-30 13:19:33 +01:00
Olivier Parcollet
12cb2db2ba gf: fix auto_assign for chained calls.
- g[k_][om_] << expression was not working.
 now  implemented like for std::vector adapter.
2013-10-26 13:49:24 +02:00