Hi ADRIAN,
Thanks for your response.I did what you suggested but got the below errors.I changed the doubles in the dmrg.h file to complex doubles too.The last change I made was to leave the complex doubles in lines 431 and 472 unchanged in the dmrg.C. Any suggestions?
Thanks.
Akin
g++ -DHAVE_CONFIG_H -I. -I. -I../.. -DNDEBUG -I/home/aakande/ALPS/alps-1.3.3/include -I/home/aakande/boost_1_35_0 -I/usr/local/mpich_quad-gcc/include -I/usr/local/mpich_quad-gcc/include/mpi2c++ -I/home/aakande/ALPS/alps-1.3.3/include -I/home/aakande/lp_solve_4.0 -pthread -ftemplate-depth-150 -O3 -DBOOST_DISABLE_ASSERTS -fexceptions -w -MT dmrg.o -MD -MP -MF .deps/dmrg.Tpo -c -o dmrg.o dmrg.C dmrg.C: In member function 'void DMRGTask::init()': dmrg.C:114: error: no match for 'operator=' in '((DMRGTask*)this)->DMRGTask::conserved_quantumnumber_value.std::vector<_Tp, _Alloc>::operator[] [with _Tp = alps::half_integer<short int>, _Alloc = std::allocator<alps::half_integer<short int> >](((long unsigned int)i)) = alps::evaluate [with U = std::complex<double>](((const std::basic_string<char, std::char_traits<char>, std::allocator<char>
&)((const std::basic_string<char, std::char_traits<char>,
std::allocator<char> >*)(& std::basic_string<char, std::char_traits<char>, std::allocator<char> >(((const std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)((const std::basic_string<char, std::char_traits<char>, std::allocator<char>
*)(&((alps::StringValue*)((DMRGTask*)this)->DMRGTask::<anonymous>.alps::scheduler::Task::parms.alps::Parameters::operator[](((const
std::string&)((const std::string*)(& std::operator+(const std::basic_string<_CharT, _Traits, _Alloc>&, const _CharT*) [with _CharT = char, _Traits = std::char_traits<char>, _Alloc = std::allocator<char>](((const char*)"_total")))))))->alps::lexical_cast_string<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >::<anonymous>))))))), ((const alps::Parameters&)((const alps::Parameters*)(&((DMRGTask*)this)->DMRGTask::<anonymous>.alps::scheduler::Task::parms))))' /home/aakande/ALPS/alps-1.3.3/include/alps/model/half_integer.h:53: note: candidates are: alps::half_integer<short int>& alps::half_integer<short int>::operator=(const alps::half_integer<short int>&) dmrg.C: In member function 'dmtk::BasicOp<std::complex<double> > DMRGTask::create_site_operator(const std::string&, const alps::SiteOperator&, int)': dmrg.C:403: error: no matching function for call to 'fabs(std::complex<double>&)' /usr/include/bits/mathcalls.h:182: note: candidates are: double fabs(double) /usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../include/c++/4.1.2/cmath:230: note: long double std::fabs(long double) /usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../include/c++/4.1.2/cmath:226: note: float std::fabs(float) dmrg.C: In member function 'void DMRGTask::build_bond_operator(const alps::BondOperator&, const boost::detail::edge_desc_impl<boost::undirected_tag, long unsigned int>&, dmtk::Hami<std::complex<double> >&)': dmrg.C:472: error: template argument 1 is invalid dmrg.C:472: error: expected unqualified-id before '>' token dmrg.C:487: error: 'coords' was not declared in this scope make: *** [dmrg.o] Error 1
As far as I know the DMRG code does not support complex Hamiltonians, but you should ask Adrian.
Matthias
Look at dmrg.C, replace all the "<double>" by "<complex<double> >", and recompile. This should do the trick for you.
Let me know how it works for you.
Saludos,
<ADRIAN>
comp-phys-alps-users@lists.phys.ethz.ch