3
0
mirror of https://github.com/triqs/dft_tools synced 2024-12-25 13:53:40 +01:00
Commit Graph

239 Commits

Author SHA1 Message Date
Olivier Parcollet
cfe3532c94 array & gf transpose
- implement transposed_view for arrays.
- .transpose method for gf
- wrapped to python
- add call op. for GfImTime, using C++
- Added ChangeLog
- rm matrix_stack
- start cleaning old code
2014-05-22 16:08:23 +02:00
Olivier Parcollet
5c8270c437 gf_block converter 2014-05-21 23:01:52 +02:00
Olivier Parcollet
4789dccda6 parameters : small details
- an include missing on OS X
- change serialization in the general case where hdf5 can be used,
  (version of hdf5 high enough) to use only one buffer,
  not a buffer per field.
- put back the mpi_param example.
2014-05-21 17:51:40 +02:00
Olivier Parcollet
27af80c04e Serialization boost/h5 and clean parameters
- parameters : clean, add back serialization. Clean whitespace

- serialization : depending on the version of the hdf5 lib,
  uses h5 or boost.

- TODO : test it on a machine with new hdf5.
2014-05-21 14:35:26 +02:00
Olivier Parcollet
945116a54b Fix h5 serialization: no test for old hdf5
- if version is  < 1.8.9, the test is ignored.
2014-05-21 11:05:48 +02:00
Michel Ferrero
e377522879 Fix wrong commit 068c4a1
The fix in simple_read_write was wrong. This should be correct now.
2014-05-21 00:28:40 +02:00
Olivier Parcollet
ccc17bbb4e h5 serialization
- add an h5 serialization using hdf5 >= 1.8.9
  and a file in memory.
- following doc.
2014-05-20 22:24:30 +02:00
Olivier Parcollet
8c0bf592d0 Fix compilation of py_converter.
- py_converters in hpp files
- add guard to prevent inclusion in the wrapper (to avoid 2
  specialisation of the same py_converter).
2014-05-20 22:24:30 +02:00
Michel Ferrero
068c4a116d Fix a bug in simple_read_write.hpp 2014-05-20 18:08:28 +02:00
Olivier Parcollet
914901864a wrapper. Correction
- clean the call to py_converter.
- add a & in the generic function py2c (to be specialized later).
2014-05-19 21:58:33 +02:00
Olivier Parcollet
af084f5d59 parameters & wrapper
- new parameter class :
  parameters are viewed as form, built in C++, and filled in C++/python.
  Each field of the form as a precise C++ type (erased using standard techniques).
  First tests ok, to be reread/checked.

  TODO : serialization is commented. Lead to long compilation time & large code
  due to boost::serialization. Use h5 when possible.

- wrapper :
  - separated the converters of the wrapped type in the TRIQS library
  - necessary for parameters (it used outside an .so) and potentially
    other codes, outside an .so module
2014-05-19 15:19:18 +02:00
Olivier Parcollet
a9bcc33c7e minor correction for linux
- vector on C++14 has explicit default (until C++14 apparently)
  it is a small difference between libc++ and gnu libstdC++
2014-05-11 21:57:18 +02:00
Olivier Parcollet
e32602180c Cleaning h5 interface 2014-05-11 21:47:52 +02:00
Olivier Parcollet
3a31077d51 gf : new wrapper 2014-05-11 21:47:52 +02:00
Olivier Parcollet
3a9f986461 gf: add a few functions in C++ 2014-05-11 21:47:52 +02:00
Olivier Parcollet
376056f7bd gf : add indices, name in C++ 2014-05-11 21:47:51 +02:00
Olivier Parcollet
5105e04ac7 Add new wrapper generator
- with pytriqs.wrap_test as an example.
2014-05-11 21:47:46 +02:00
tayral
3aa380ba9d Fixed abs bug in bravais_lattice + added method
When constructing the last unit vector in 2D, the sanity check was wrong because of usage of abs instead of std::abs.

Added method energy_on_bz_path_2 that returns the energy *matrix* at each k point on a given path instead of the eigenvalues of this matrix. The name of the function should be changed (to energy_matrix_on_bz_path?)

Renaming energies_on_bz_path_2 to energy_matrix_on_bz_path
2014-05-08 12:09:58 +01:00
tayral
7752db89c2 Added linear_to_index to matsub_freq 2014-05-08 12:04:54 +01:00
Olivier Parcollet
78cbbaa52f Fix #74. Correction of previous commit for gcc 4.8.1
- an include was missing after reorganisation.
2014-05-05 18:29:52 +02:00
Olivier Parcollet
8c725f8d5e Work on compilation speed.
- h5/make_h5.... only used in parameters.
- old boost includes before C++11
- remove boost serialization, make macro TRIQS_MAKE_NVP temporarely
- remove boost::is_complex (can be written in 2 lines...)
- move some lib in cpp
2014-05-02 20:49:19 +02:00
Olivier Parcollet
09bf713dc8 clef: correct TRIQS_CLEF_IMPLEMENT_LAZY_METHOD
- The name of the object was left to the name used in the test/debug.
2014-04-25 16:06:44 +02:00
Olivier Parcollet
384c05188c exceptions handling : slight improve
- separate the stack trace from the error message for better python
  handling
- separate triqs::excption from triqs::runtime_error
2014-04-23 19:57:56 +02:00
Olivier Parcollet
b1508a07ff statistics : fix get_value_type detection
- clean a bit the auto_correlation_time
2014-04-17 13:48:54 +02:00
tayral
2c6da6a35a Made autocorrtime calculation from binning faster.
Bin size is doubled at each step to converge faster and reuse previous binned series.
2014-04-17 13:39:51 +02:00
tayral
0e23db7f92 Added constructor of observable on binned_series 2014-04-17 13:39:51 +02:00
tayral
14067abb34 Statistical tools documentation. 2014-04-17 13:39:51 +02:00
Olivier Parcollet
a730f093d6 arrays: fix fold and update documentation
- fold was not correct in e.g. passing an int as init instead of a
  double (was leading to narrowing in return).
- better return type deduction.
- there was an error in the doc (order of argument in the lambda !)
- add a more complex example (Frobenius norm of matrices).
2014-04-09 21:24:03 +02:00
Olivier Parcollet
db59c8e5fc correction: previous commit, forgot a namespace
- in some case, need to add triqs::clef in the macros.
(was not compiling doc).
2014-04-09 12:12:41 +02:00
Olivier Parcollet
2f2104e86e clef : correction of TRIQS_CLEF_IMPLEMENT_LAZY_METHOD for clang 3.3
- there was a compilation pb with clang 3.3
- replace the decltype (with this !) by an explicit type
2014-04-09 11:49:42 +02:00
Olivier Parcollet
4ae4dfd42b arrays: add lazy call to matrix_tensor_proxy
- correction to previous patch
2014-04-07 15:12:34 +02:00
Olivier Parcollet
e1e9ee20fd gf: correct auto_assign
- g(om_)(i_,j_) was not working.
- add the triqs_clef_auto_assign function for matrix_proxy.
- simplified a bit the triqs_clef_auto_assign for gf.
2014-04-07 13:21:36 +02:00
Olivier Parcollet
2fdba13bc5 clef: add version c14
- a slightly different version for c++14,
to avoid some decltype and have clearer error messages.
only in c++1y mode.
2014-04-06 22:26:22 +02:00
Olivier Parcollet
3fd3f38446 clef: fix lazy method call for gcc
- was not compiling on gcc (forward declaration issue).
- now clearer
- add a trivial print change in the mc class (to avoid trivial commit).
2014-04-06 13:01:17 +02:00
Olivier Parcollet
efb00ea5d3 clef: first version of generic sum function
- to improve with in the case where function return an expression
  template, not a regular type, with a make_regular function
2014-04-04 17:47:21 +02:00
Olivier Parcollet
edca014785 rng : preview 2014-04-02 20:36:54 +02:00
Michel Ferrero
82e3b3f02b Fix a bug in bosonic Fourier transform
Appears for full_bins and bosonic GFs.
2014-04-01 17:09:04 +02:00
Olivier Parcollet
5267798b48 arrays: a forgotten std::forward in lazy evaluations...
A(i_,0) was not compiling due to a missing forward ...
2014-03-28 17:20:16 +01:00
Olivier Parcollet
9c979ceb0b Fix #66: when mc_sign_type is complex
- for complex type sign, we do not do the previous check
(to be improved), since isinf, signbit are not defined for
complex numbers.
2014-03-28 15:38:40 +01:00
Olivier Parcollet
c996c3ff7d mc_tools : improve treatment of infinite mc ratios
- when the ratio returned by an attempt of a move is infinite,
previous code was just throwing TRIQS_RUNTIME_ERROR.

- Now when the ratio is infinite, it is replaced by a large number
  (>1 is enough for metropolis), and the sign is properly updated
  using std::signbit.

- NB :

- a double/float in C++ can be :  normal/ zero/ nan/ infinite / subnormal.
  Here, the code will recover only from infinite case.

- std::signbit works for infinite (according to standard).
2014-03-27 20:33:35 +01:00
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
Olivier Parcollet
377a0026ad add c14 less, greater 2014-03-16 00:11:56 +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
9911b18363 mc_tools : add access # proposed/accepted. Add debug_stream
- debug_stream : conditional ostream with a lambda condition for debug.
2014-02-28 17:20:55 +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