3
0
mirror of https://github.com/triqs/dft_tools synced 2025-01-12 22:18:23 +01:00
Commit Graph

53 Commits

Author SHA1 Message Date
Olivier Parcollet
22f9576834 Finish gf wrapping
- clean old.
- clean gf_desc.py
2014-05-29 21:39:36 +02:00
Michel Ferrero
3be8e65ae7 Fix operator generator to have converter header 2014-05-24 01:00:16 +02:00
Michel Ferrero
76aa6120e9 Add new python operators
For now they are called operators2.
2014-05-22 23:58:07 +02:00
Michel Ferrero
df09891219 Add unary operators in python wrapper
This is useful to add unary operators to the number_protocol.
2014-05-22 23:58:07 +02:00
Olivier Parcollet
6934692327 add converter for scalar_valued gf
- converted as 1x1 matrix view.
- add a small test
2014-05-22 23:42:51 +02:00
Olivier Parcollet
16057c7a4e forgot one file 2014-05-22 21:08:08 +02:00
Olivier Parcollet
f2136f7b80 gf. wrap legendre. 2014-05-22 17:56:42 +02:00
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
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
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
Olivier Parcollet
dd91c51647 wrapper.
Correction converter specialization
(avoid redeclaration).
2014-05-19 22:18:17 +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
3a31077d51 gf : new wrapper 2014-05-11 21:47:52 +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
91dc34a869 Added accessor positive only to MeshImFreq 2014-05-08 12:04:54 +01:00
Olivier Parcollet
22ef7ac015 gf. add __call__(double) to gf_imtime, wrapped from C++ evaluator 2014-04-02 11:15:24 +02:00
Olivier Parcollet
6e87bee850 lattice: clean old classes, add bz_mesh, gf on bz 2014-02-18 15:53:38 +01:00
Olivier Parcollet
dd6b996e5d arrays: to_python now raise exception when array is empty
- otherwise it was simply crashing .
- now raise a C++ exception
- adapted cython wrapper to catch it as a python exception
2014-02-04 15:04:40 +01:00
Olivier Parcollet
758c07c87c Correction of last correction....
The construction from c++ should *not* be changed...
2014-01-21 14:29:44 +01:00
Olivier Parcollet
1adf10429f Fix #52 : Correct 6022015
- forgot to correct the call to self.kind (now returning a char, not an
  int), in previous commit.
2014-01-21 13:30:23 +01:00
Olivier Parcollet
602201527d Fix #51
- The kind() method of mesh should return a char,
like the parameter of the constructor of mesh,
not the C++ corresponding int.
- otherwise, the reduction - construction is broken
and by extension all pickling and then all mpi constructions.
2014-01-17 21:12:24 +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
Michel Ferrero
f7fad85fca Iteration over the doc
This is an iteration over the doc mainly thank to Priyanka.
I fixed another couple of details on the way.
2013-12-31 14:22:00 +01:00
Olivier Parcollet
5b8113b46a pytriqs: add option to use mpi4py instead of boost.python.mpi
- to choose mpi4py over boost.python.mpi, pass -DPython_use_mpi4py=ON

- boost.mpi stays the default for python, but
  adding the possibility of using mpi4py instead.

- Due to numerous pbs on recent OS X + brew installation.
  boost.mpi does not work (crash in openmpi ??), mpi4py does

- the pytriqs/utility/mpi.py is now configured by the cmake (like
  version.py) to prepare one of the two possibilities.

- TODO:  not tested carefully : to be done in other machines.
2013-12-30 22:32:09 +01:00
Michel Ferrero
15f0899016 Fix missing cached key in archives
When an object with __hdf_write__ was written in an archive, the
corresponding key was not cached. Therefore, one could not access
the object which had just been written.
2013-12-23 13:15:27 +01:00
Michel Ferrero
b7d7c656ce Fix a missing mask in tail fit (imfreq)
I applied the patch provided by Thomas.

  modified:   pytriqs/gf/local/gf_imfreq.py
2013-12-19 11:54:44 +01:00
Michel Ferrero
80eb00046f Fix tail in from_L_R in gf_generic
The order_max was not set properly.
2013-12-18 23:10:24 +01:00
Michel Ferrero
255de834a2 Fix max tail order in gf_imfreq 2013-12-16 14:34:02 +01:00
Olivier Parcollet
fb6b47cacf cmake. group c++11 flags
Now that boost compilation is gone, no need
of that mess.
Put same compilation flags for all code.
2013-12-04 22:24:14 +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
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
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
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
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
5fe1ebcc3b add wrap_clean make target.
-> to clean the cython wrappers.
2013-09-13 19:16:08 +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
Michel Ferrero
d6f2fb97b6 Fix BZPatch class and partial DOS computation
modified:   pytriqs/lattice/bz_patch.py
  modified:   pytriqs/lattice/tight_binding.py
2013-09-05 17:55:18 +02:00
Michel Ferrero
93eea0ed74 Get rid of boost compilation from sources
Also change pytriqs.boost to boost
2013-09-02 14:26:32 +02:00
Olivier Parcollet
ab5b95bc4e added mpi4py layer for experiments...
utility/mpi_mpi4py.py
is the new mpi.py to use with mpi4py.
For testing for the moment.
Passes on old solver ok.
2013-08-29 18:06:04 +02:00
Michel Ferrero
9c258fa7e1 Add tools to be able to find version and release
I added a version.hpp and updated the version.py so that
one can find the version of the library either from the
c++ or the python (if there is python support).

  modified:   CMakeLists.txt
  modified:   cmake/TRIQSConfig.cmake.in
  modified:   pytriqs/version.py.in
  modified:   triqs/CMakeLists.txt
  new file:   triqs/version.hpp.in
2013-08-29 11:41:19 +02:00
Olivier Parcollet
b45045e81c gfs: change the name of the mesh -> gf_mesh for gcc
gcc has a pb because the template mesh<Variable,Opt>
has the name same as the gf mesh method (!).
Clang is fine however on this...

Solution : rename the template mesh<...> to gf_mesh...
Not very elegant, but ok.
2013-08-27 14:20:50 +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
Michel Ferrero
3162d504b7 Add some more direct accesses in pytriqs/operators
modified:   pytriqs/operators/__init__.py
2013-08-02 10:14:33 +02:00
Olivier Parcollet
bd4926157c [API BREAK] rename directory gf -> gfs 2013-07-29 11:53:02 +02:00