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>
>
>
>