From 04cf39a3613936b7fda3edce78ca5f71094e4617 Mon Sep 17 00:00:00 2001 From: Laura Messio Date: Fri, 10 Jan 2014 14:55:19 +0100 Subject: [PATCH] deprecated gfs files removed --- triqs/gfs/deprecated/re_im_freq.hpp | 91 --------------- triqs/gfs/deprecated/re_im_time.hpp | 122 --------------------- triqs/gfs/deprecated/refreq_imtime.hpp | 110 ------------------- triqs/gfs/deprecated/tool.hpp | 43 -------- triqs/gfs/deprecated/two_real_times.hpp | 140 ------------------------ 5 files changed, 506 deletions(-) delete mode 100644 triqs/gfs/deprecated/re_im_freq.hpp delete mode 100644 triqs/gfs/deprecated/re_im_time.hpp delete mode 100644 triqs/gfs/deprecated/refreq_imtime.hpp delete mode 100644 triqs/gfs/deprecated/tool.hpp delete mode 100644 triqs/gfs/deprecated/two_real_times.hpp diff --git a/triqs/gfs/deprecated/re_im_freq.hpp b/triqs/gfs/deprecated/re_im_freq.hpp deleted file mode 100644 index 6d42e7f0..00000000 --- a/triqs/gfs/deprecated/re_im_freq.hpp +++ /dev/null @@ -1,91 +0,0 @@ -/******************************************************************************* - * - * TRIQS: a Toolbox for Research in Interacting Quantum Systems - * - * Copyright (C) 2012 by M. Ferrero, O. Parcollet - * - * TRIQS is free software: you can redistribute it and/or modify it under the - * terms of the GNU General Public License as published by the Free Software - * Foundation, either version 3 of the License, or (at your option) any later - * version. - * - * TRIQS is distributed in the hope that it will be useful, but WITHOUT ANY - * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more - * details. - * - * You should have received a copy of the GNU General Public License along with - * TRIQS. If not, see . - * - ******************************************************************************/ -#ifndef TRIQS_GF_RE_IM_FREQ_H -#define TRIQS_GF_RE_IM_FREQ_H -#include "./tools.hpp" -#include "./gf.hpp" -#include "./refreq.hpp" -#include "./imfreq.hpp" -#include "./meshes/product.hpp" - -namespace triqs { namespace gfs { - - struct re_im_freq {}; - - // the mesh - template struct gf_mesh : mesh_product,gf_mesh> { - typedef gf_mesh m1_t; - typedef gf_mesh m2_t; - typedef mesh_product B; - gf_mesh () = default; - gf_mesh (double wmin, double wmax, int n_freq_re, double beta, statistic_enum S, int n_freq_im) : - B { gf_mesh(wmin,wmax,n_freq_re,full_bins), gf_mesh(beta, S, n_freq_im)} {} - }; - - namespace gfs_implementation { - - // singularity - template struct singularity { typedef gf type;}; - - // h5 name - template struct h5_name { static std::string invoke(){ return "GfReImFreq";}}; - - /// --------------------------- data access --------------------------------- - - template struct data_proxy : data_proxy_array,1> {}; - - /// --------------------------- evaluator --------------------------------- - - template - struct evaluator { - static constexpr int arity = 2; - template - std::complex operator() (G const * g, double w, long n) const { - auto & data = g->data(); - auto & mesh = g->mesh(); - int nr; double wr; bool in; - std::tie(in, nr, wr) = windowing( std::get<0>(g->mesh().components()), w); - if (!in) TRIQS_RUNTIME_ERROR <<" Evaluation out of bounds"; - auto gg = [g,data,mesh]( int nr, int n) {return data(mesh.index_to_linear(std::tuple{nr,n}));}; - return wr * gg(nr,n) + (1-wr) * gg(nr+1,n) ; - } - }; - - // ------------------------------- Factories -------------------------------------------------- - - template struct factories { - typedef gf gf_t; - struct target_shape_t {}; - // typedef typename gf_mesh::type mesh_t; - - static gf_t make_gf(double wmin, double wmax, int nw, double beta, statistic_enum S, int nwn) { - auto m = gf_mesh(wmin, wmax, nw, beta, S, nwn); - typename gf_t::data_regular_t A(m.size()); - A() =0; - return gf_t (m, std::move(A), gf({wmin, wmax, nw}), nothing() ) ; - } - }; - - } // gfs_implementation - -}} -#endif - diff --git a/triqs/gfs/deprecated/re_im_time.hpp b/triqs/gfs/deprecated/re_im_time.hpp deleted file mode 100644 index ce8cf1f4..00000000 --- a/triqs/gfs/deprecated/re_im_time.hpp +++ /dev/null @@ -1,122 +0,0 @@ -/******************************************************************************* - * - * TRIQS: a Toolbox for Research in Interacting Quantum Systems - * - * Copyright (C) 2012 by M. Ferrero, O. Parcollet - * - * TRIQS is free software: you can redistribute it and/or modify it under the - * terms of the GNU General Public License as published by the Free Software - * Foundation, either version 3 of the License, or (at your option) any later - * version. - * - * TRIQS is distributed in the hope that it will be useful, but WITHOUT ANY - * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more - * details. - * - * You should have received a copy of the GNU General Public License along with - * TRIQS. If not, see . - * - ******************************************************************************/ -#ifndef TRIQS_GF_RE_IM_TIMES_H -#define TRIQS_GF_RE_IM_TIMES_H -#include "../tools.hpp" -#include "../gf.hpp" -#include "../retime.hpp" -#include "../imtime.hpp" -#include "../meshes/product.hpp" -#include "./tool.hpp" - -namespace triqs { namespace gfs { - - struct re_im_time {}; - - // the gf_mesh - template struct gf_mesh : mesh_product,gf_mesh> { - typedef gf_mesh m1_t; - typedef gf_mesh m2_t; - typedef mesh_product B; - gf_mesh () = default; - gf_mesh (double tmin, double tmax, size_t nt, double beta, statistic_enum S, size_t ntau, mesh_kind mk=full_bins) : - B {gf_mesh(tmin,tmax,nt), gf_mesh(beta,S, ntau, mk)} {} - }; - - namespace gfs_implementation { - - // singularity - //template struct singularity { typedef gf type;}; - - // h5 name - template struct h5_name { static std::string invoke(){ return "GfReImTime";}}; - - /// --------------------------- data access --------------------------------- - - template struct data_proxy : data_proxy_array,1> {}; - - /// --------------------------- evaluator --------------------------------- - template - struct evaluator { - static constexpr int arity = 2; - template - std::complex operator() (G const * g, double t, double tau) const { - double beta = std::get<1>(g->mesh().components()).domain().beta; - int p = std::floor(tau/beta); - tau -= p*beta; - size_t nr,ni; double wr,wi; bool in; - std::tie(in, nr, wr) = windowing( std::get<0>(g->mesh().components()),t); - if (!in) TRIQS_RUNTIME_ERROR <<" Evaluation out of bounds, tmax=" << std::get<0>(g->mesh().components()).x_max() << ", tmin=" << std::get<0>(g->mesh().components()).x_min() << "here, t=" <(g->mesh().components()),tau); - if (!in) TRIQS_RUNTIME_ERROR <<" Evaluation out of bounds, taumax=" << std::get<1>(g->mesh().components()).x_max()<< ", taumin=" << std::get<1>(g->mesh().components()).x_min() << "here, tau=" <on_mesh(nr,ni);}; //data( g->mesh().index_to_linear(nr,ni)); - auto res = (1-wr) * ( (1-wi) * gg(nr,ni) + wi * gg(nr,ni+1)) + wr * ( (1-wi) * gg(nr+1,ni) + wi * gg(nr+1,ni+1)); - return ((std::get<1>(g->mesh().components()).domain().statistic == Fermion) && (p%2==1) ? -res : res); - } - }; - - // ------------------------------- Factories -------------------------------------------------- - - template struct factories { - typedef gf gf_t; - struct target_shape_t {}; - - template - static gf_t make_gf(MeshType && m) { - typename gf_t::data_regular_t A(m.size()); - A() =0; - return gf_t (m, std::move(A), nothing(), nothing() ) ; - } - - static gf_t make_gf(double tmin, double tmax, size_t nt, double beta, statistic_enum S, size_t ntau, mesh_kind mk=full_bins) { - auto m = gf_mesh(tmin,tmax, nt, beta, S, ntau, mk); - typename gf_t::data_regular_t A(m.size()); - A() =0; - return gf_t (m, std::move(A), nothing(), nothing()); - //return gf_t (m, std::move(A), make_gf(tmin, tmax, nt), nothing()); - } - }; - - } // gfs_implementation - - // CHANGE THIS NAME !!! - template - void assign_from_expression (gf_impl const &, RHS) {} - - //slices - inline gf_view slice_mesh_imtime (gf_view g, size_t index) { - auto arr = reinterpret_linear_array(g.mesh(),g.data()); // view it as a 2d array - return { std::get<0>(g.mesh().components()), arr(arrays::range(), index), local::tail(1,1), nothing() }; - } - - /* gf_view slice_mesh_retime ( gf_view g, size_t index) { - auto arr = reinterpret_linear_array(g.mesh(),g.data()); // view it as a 2d array - return { std::get<1>(g.mesh().components()), arr(index, arrays::range()), g.singularity().singularity(), nothing() }; - } - */ - // - // gf_view slice_meshes ( gf_view g, size_t index) { - // return { std::get<0>(g.mesh().components()), g.data()(arrays::range(), index), tail ( g.singularity(.......) ), g.symmetry()} - // } - -}} -#endif - diff --git a/triqs/gfs/deprecated/refreq_imtime.hpp b/triqs/gfs/deprecated/refreq_imtime.hpp deleted file mode 100644 index 1bd5d427..00000000 --- a/triqs/gfs/deprecated/refreq_imtime.hpp +++ /dev/null @@ -1,110 +0,0 @@ -/******************************************************************************* - * - * TRIQS: a Toolbox for Research in Interacting Quantum Systems - * - * Copyright (C) 2012 by M. Ferrero, O. Parcollet - * - * TRIQS is free software: you can redistribute it and/or modify it under the - * terms of the GNU General Public License as published by the Free Software - * Foundation, either version 3 of the License, or (at your option) any later - * version. - * - * TRIQS is distributed in the hope that it will be useful, but WITHOUT ANY - * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more - * details. - * - * You should have received a copy of the GNU General Public License along with - * TRIQS. If not, see . - * - ******************************************************************************/ -#ifndef TRIQS_GF_IMTIME_REFREQ_TIMES_H -#define TRIQS_GF_IMTIME_REFREQ_TIMES_H -#include "./tools.hpp" -#include "./gf.hpp" -#include "./imtime.hpp" -#include "./refreq.hpp" -#include "./meshes/product.hpp" - -namespace triqs { namespace gfs { - - struct refreq_imtime {}; - - // the mesh - template struct gf_mesh :mesh_product,gf_mesh> { - typedef gf_mesh m1_t; - typedef gf_mesh m2_t; - typedef mesh_product B; - gf_mesh () = default; - gf_mesh(B const & x) : B(x) {} - gf_mesh (double wmin, double wmax, size_t n_freq, double beta, statistic_enum S, size_t nt, mesh_kind mk=full_bins ) : - B {gf_mesh(wmin,wmax,n_freq), gf_mesh(beta,S,nt,mk)} {} - }; - - namespace gfs_implementation { - // singularity - //template struct singularity { typedef gf type;}; - - // h5 name - template struct h5_name { static std::string invoke(){ return "GfReFreqImTime";}}; - - /// --------------------------- data access --------------------------------- - - template struct data_proxy : data_proxy_array,1> {}; - - /// --------------------------- evaluator --------------------------------- - - template - struct evaluator { - static constexpr int arity = 2; - template - std::complex operator() (G const * g, double omega, double tau) const { - double beta = std::get<1>(g->mesh().components()).domain().beta; - int p = std::floor(tau/beta); - tau -= p*beta; - size_t n1,n2; double w1,w2; bool in; - std::tie(in, n1, w1) = windowing( std::get<0>(g->mesh().components()),omega); - if (!in) TRIQS_RUNTIME_ERROR <<" Evaluation out of bounds"; - std::tie(in, n2, w2) = windowing( std::get<1>(g->mesh().components()),tau); - if (!in) TRIQS_RUNTIME_ERROR <<" Evaluation out of bounds"; - auto gg = on_mesh(*g); //[g]( size_t n1, size_t n2) {return g->on_mesh(n1,n2);}; - auto res = w1 *( w2*gg(n1,n2) + (1-w2)*gg(n1,n2+1)) + (1-w1) * ( w2*gg(n1+1,n2) + (1-w2)*gg(n1+1,n2+1)); - - //std::cout << "eval reref imtim"<< n1 << " "<< n2 << " "<< w1 << " " << w2 << " "<< omega << " "<< tau<< std::endl; - - return ((std::get<1>(g->mesh().components()).domain().statistic == Fermion) && (p%2==1) ? -res : res); - } - }; - - // ------------------------------- Factories -------------------------------------------------- - - template struct factories { - typedef gf gf_t; - struct target_shape_t {}; - - template - static gf_t make_gf(MeshType && m) { - typename gf_t::data_regular_t A(m.size()); - A() =0; - return gf_t (m, std::move(A), nothing(), nothing() ) ; - } - - static gf_t make_gf(double wmin, double wmax, size_t n_freq, double beta, statistic_enum S, size_t nt, mesh_kind mk=full_bins) { - auto m = gf_mesh(wmin, wmax, n_freq, beta,S, nt, mk); - typename gf_t::data_regular_t A(m.size()); - A() =0; - return gf_t (m, std::move(A), nothing(), nothing() ) ; - } - }; - - } // gfs_implementation - - //slices - inline gf_view slice_mesh_imtime (gf_view g, size_t index) { - auto arr = reinterpret_linear_array(g.mesh(),g.data()); // view it as a 2d array - return { std::get<0>(g.mesh().components()), arr(arrays::range(),index), local::tail(1,1), nothing() }; - } - -}} -#endif - diff --git a/triqs/gfs/deprecated/tool.hpp b/triqs/gfs/deprecated/tool.hpp deleted file mode 100644 index b99a4c01..00000000 --- a/triqs/gfs/deprecated/tool.hpp +++ /dev/null @@ -1,43 +0,0 @@ -/******************************************************************************* - * - * TRIQS: a Toolbox for Research in Interacting Quantum Systems - * - * Copyright (C) 2012 by M. Ferrero, O. Parcollet - * - * TRIQS is free software: you can redistribute it and/or modify it under the - * terms of the GNU General Public License as published by the Free Software - * Foundation, either version 3 of the License, or (at your option) any later - * version. - * - * TRIQS is distributed in the hope that it will be useful, but WITHOUT ANY - * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more - * details. - * - * You should have received a copy of the GNU General Public License along with - * TRIQS. If not, see . - * - ******************************************************************************/ -#pragma once -#include "../gf.hpp" - -namespace triqs { namespace gfs { - - // make_gf and make_gf_view forward any args to them - template - gf make_gf(gf_mesh m, U &&... x) { - return gfs_implementation::factories::make_gf(std::move(m), std::forward(x)...); - } - - template - gf make_gf(U &&... x) { - return gfs_implementation::factories::make_gf(std::forward(x)...); - } - - template - gf_view make_gf_view(U &&... x) { - return gfs_implementation::factories::make_gf_view(std::forward(x)...); - } - -}} - diff --git a/triqs/gfs/deprecated/two_real_times.hpp b/triqs/gfs/deprecated/two_real_times.hpp deleted file mode 100644 index 309f9124..00000000 --- a/triqs/gfs/deprecated/two_real_times.hpp +++ /dev/null @@ -1,140 +0,0 @@ -/******************************************************************************* - * - * TRIQS: a Toolbox for Research in Interacting Quantum Systems - * - * Copyright (C) 2012 by M. Ferrero, O. Parcollet - * - * TRIQS is free software: you can redistribute it and/or modify it under the - * terms of the GNU General Public License as published by the Free Software - * Foundation, either version 3 of the License, or (at your option) any later - * version. - * - * TRIQS is distributed in the hope that it will be useful, but WITHOUT ANY - * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more - * details. - * - * You should have received a copy of the GNU General Public License along with - * TRIQS. If not, see . - * - ******************************************************************************/ -#ifndef TRIQS_GF_TWO_TIMES_H -#define TRIQS_GF_TWO_TIMES_H -#include "../tools.hpp" -#include "../gf.hpp" -#include "../retime.hpp" -#include "../meshes/product.hpp" -#include "./tool.hpp" - -namespace triqs { namespace gfs { - - struct two_real_times {}; - - // the mesh - template struct gf_mesh :mesh_product ,gf_mesh > { - typedef mesh_product ,gf_mesh > B; - gf_mesh() = default; - gf_mesh (double tmax, double n_time_slices) : - B(gf_mesh ( 0, tmax,n_time_slices, full_bins), - gf_mesh ( 0, tmax,n_time_slices, full_bins) ) {} - }; - - namespace gfs_implementation { - - /// --------------------------- closest mesh point on the grid --------------------------------- - - template - struct get_closest_point { - typedef typename gf_mesh::type mesh_t; - - // // NOT FINISHED, NOT TESTED - // template - // static typename mesh_t::index_t invoke(G const * g, closest_pt_wrap const & p) { - // return std::floor( double(p.value) / g->mesh().delta() + 0.5); - // } - - }; - - // h5 name - template struct h5_name { static std::string invoke(){ return "GfTwoRealTime";}}; - template struct h5_name { static std::string invoke(){ return "GfTwoRealTime_s";}}; - - /// --------------------------- evaluator --------------------------------- - - template - struct evaluator { - static constexpr int arity = 2; - typedef typename std::conditional < std::is_same::value, arrays::matrix>, std::complex>::type rtype; - template - rtype operator() (G const * g, double t0, double t1) const { - int n0,n1; double w0,w1; bool in; - std::tie(in, n0, w0) = windowing(std::get<0>(g->mesh().components()),t0); - if (!in) TRIQS_RUNTIME_ERROR <<" Evaluation out of bounds"; - std::tie(in, n1, w1) = windowing(std::get<1>(g->mesh().components()),t1); - if (!in) TRIQS_RUNTIME_ERROR <<" Evaluation out of bounds"; - auto gg = on_mesh(*g); - return (1-w0) * ( (1-w1) * gg(n0, n1) + w1 * gg(n0, n1+1) ) + w0 * ( (1-w1) * gg(n0+1, n1) + w1 * gg(n0+1, n1+1)); - } - }; - - /// --------------------------- data access --------------------------------- - - template struct data_proxy : data_proxy_array,3> {}; - template struct data_proxy : data_proxy_array,1> {}; - - // ------------------------------- Factories -------------------------------------------------- - - //matrix_valued - template struct factories { - typedef gf gf_t; - typedef gf_mesh mesh_t; - typedef tqa::mini_vector target_shape_t; - - static gf_t make_gf(double tmax, double n_time_slices, tqa::mini_vector shape) { - auto m = gf_mesh(tmax, n_time_slices); - typename gf_t::data_regular_t A(shape.front_append(m.size())); A() =0; - return gf_t (m, std::move(A), nothing(), nothing() ) ; - } - }; - - //scalar_valued - template struct factories { - typedef gf gf_t; - typedef gf_mesh mesh_t; - struct target_shape_t {}; - - static gf_t make_gf(double tmax, double n_time_slices) { - auto m = gf_mesh(tmax, n_time_slices); - typename gf_t::data_regular_t A(m.size()); A() =0; - return gf_t (m, std::move(A), nothing(), nothing() ) ; - } - }; - - } // gfs_implementation - - // ------------------------------- Additionnal free function for this gf -------------------------------------------------- - - // from g(t,t') and t, return g(t-t') for any t'>t - // - inline gf slice (gf_view const & g, double t) { - auto const & m = std::get<0> (g.mesh().components()); //one-time mesh - int it = get_closest_mesh_pt_index(m, t); //index of t on this mesh - int nt = m.size() - it; - if (it+1 < nt) nt = it+1 ; //nt=length of the resulting GF's mesh - double dt = m.delta(); - auto res = gf{{0, 2*(nt-1)*dt, nt}, g(t,t).shape()}; - res() = 0; - auto _ = arrays::range();// everyone - for(int sh=0; sh - auto get_1d_mesh_from_2times_mesh(M const & m) DECL_AND_RETURN(std::get<0>(m.components())); - -}} -#endif -