orex / supercell

The program allows you to create regular structure supercell from cif file with partial occupancy and/or substitutions.
GNU General Public License v2.0
96 stars 56 forks source link

most of the example failed #1

Closed WeiLiPenguin closed 8 years ago

WeiLiPenguin commented 8 years ago

Hi, I try to run the examples with the script, but:

terminate called after throwing an instance of 'std::logic_error'
  what():  basic_string::_S_construct null not valid

Please help me, what kind of information do you need?

Best Regards! Thanks for the tool.

orex commented 8 years ago

Hi, Wei Li.

This error looks like system related stuff. Please, provide me an information about 1) Your system. 2) Please, recompile the program with cmake -DCMAKE_BUILD_TYPE=Debug ../ . It will produce more verbose output. 3) Please also run command supercell -d -i Ca2Al2SiO7.cif and print all output you have.

Best, Kirill.

WeiLiPenguin commented 8 years ago

Hi, Kirill OS: ubuntu 14.04 64 g++ (Ubuntu 4.8.4-2ubuntu1~14.04.1) 4.8.4

ldd supercell

        linux-vdso.so.1 =>  (0x00007ffd6d35c000)
        libopenbabel.so.4 => /usr/local/lib/libopenbabel.so.4 (0x00007fbf28896000)
        libboost_regex.so.1.54.0 => /usr/lib/x86_64-linux-gnu/libboost_regex.so.1.54.0 (0x00007fbf2857a000)
        libboost_program_options.so.1.54.0 => /usr/lib/x86_64-linux-gnu/libboost_program_options.so.1.54.0 (0x00007fbf2830b000)
        libboost_system.so.1.54.0 => /usr/lib/x86_64-linux-gnu/libboost_system.so.1.54.0 (0x00007fbf28107000)
        libarchive.so.13 => /usr/lib/x86_64-linux-gnu/libarchive.so.13 (0x00007fbf27e66000)
        libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fbf27b61000)
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fbf2785b000)
        libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fbf27645000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fbf2727f000)
        libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fbf2707b000)
        libicuuc.so.52 => /usr/lib/x86_64-linux-gnu/libicuuc.so.52 (0x00007fbf26d02000)
        libicui18n.so.52 => /usr/lib/x86_64-linux-gnu/libicui18n.so.52 (0x00007fbf268fa000)
        libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fbf266dc000)
        libnettle.so.4 => /usr/lib/x86_64-linux-gnu/libnettle.so.4 (0x00007fbf264ad000)
        libattr.so.1 => /lib/x86_64-linux-gnu/libattr.so.1 (0x00007fbf262a7000)
        liblzo2.so.2 => /lib/x86_64-linux-gnu/liblzo2.so.2 (0x00007fbf26086000)
        liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5 (0x00007fbf25e64000)
        libbz2.so.1.0 => /lib/x86_64-linux-gnu/libbz2.so.1.0 (0x00007fbf25c53000)
        libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007fbf25a3a000)
        libxml2.so.2 => /usr/lib/x86_64-linux-gnu/libxml2.so.2 (0x00007fbf256d3000)
        /lib64/ld-linux-x86-64.so.2 (0x0000556eb93c9000)
        libicudata.so.52 => /usr/lib/x86_64-linux-gnu/libicudata.so.52 (0x00007fbf23e65000)

the output is the same like before,

debug compiler flags seems still have -O3

I will try -O0 and with gdb to find where cause the error.

could you please add a test in the .travis.yaml to see if have the same error?

I find code crash at around d2o_main_class.cpp:1632, is that could be related to the openbabel read cif file ?

Best Regards!

orex commented 8 years ago

Hi, Wei Li.

I can confirm, that openbabel is a weak place of my program. I will add the test shortly, but what version of openbabel you are using?

-O0 will not help you. You should use -g.

For me it is very strange, that you don't have anything else in the output. You should have at least header of my program run.

Kirill.

WeiLiPenguin commented 8 years ago

Yes, Kinrill It has only your header and that error. I mean your cmake hardcoded with the Debug flag with -g -O3, I try to change to -g -O0. I install openbabel like your .travis.yaml file, so clone from its repo, should be newest one? but it also have apt-get install openbabel. I am confused now.

Wei

orex commented 8 years ago

You should remove openbabel from ubuntu repository. Most probably they cannot live together. Just before remove openbabel from repository, can you run openbabel itself? From both /usr/bin and /usr/local/bin folder. Most probaly the problem here.

I've add the test. It is failed, but with another error. I'm going to research the problem.

orex commented 8 years ago

I've just add the test. The funny thing, that it has passed with clang, but failed with gcc. I'm very surprised. Your help in solving of the issue is crucial.

orex commented 8 years ago

It looks like this is even GCC compiler bug. The workaround is not to use "-O0" option in OpenBabel compiling. Use default cmake options for openbabel (cmake ../ -DCMAKE_BUILD_TYPE=Release) to make the supercell program working.

WeiLiPenguin commented 8 years ago

Great! It works! BTW: is that possible run in parallel?

orex commented 8 years ago

You can run my program in parallel only for some cases, now. Although, the enumerating algorithm can be parallelized very efficiently I don't see now any strong reason to implement this. If it is not a secret, can you briefly describe your project. We can discuss and I can implement this. You can do this public (creating a new issue) or privately (my e-mail in git log).